@anker-in/campaign-ui 0.1.6 → 0.1.7

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.
@@ -16,9 +16,10 @@ export interface ActionProps {
16
16
  gotocartRender?: string | ((_props: any) => React.ReactElement);
17
17
  addtocartRender?: string | ((_props: any) => React.ReactElement);
18
18
  signupRender?: string | ((_props: any) => React.ReactElement);
19
+ shulexRender?: string | ((_props: any) => React.ReactElement);
19
20
  productRender?: string | ((_props: any) => React.ReactElement);
20
21
  productRenderTipMessage?: string;
21
22
  children?: React.ReactNode;
22
23
  }
23
- export declare const CopilotAction: ({ start, history, addtocartHandler, commonRender, pointsExchangeCouponRender, gotocheckoutRender, gotocartRender, addtocartRender, productRender, signupRender, children, }: ActionProps) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const CopilotAction: ({ start, history, addtocartHandler, commonRender, pointsExchangeCouponRender, gotocheckoutRender, gotocartRender, addtocartRender, productRender, signupRender, shulexRender, children, }: ActionProps) => import("react/jsx-runtime").JSX.Element;
24
25
  export {};
@@ -1,2 +1,2 @@
1
- "use strict";var m=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var J=Object.prototype.hasOwnProperty;var M=(r,n)=>{for(var s in n)m(r,s,{get:n[s],enumerable:!0})},O=(r,n,s,d)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of S(n))!J.call(r,o)&&o!==s&&m(r,o,{get:()=>n[o],enumerable:!(d=E(n,o))||d.enumerable});return r};var k=r=>O(m({},"__esModule",{value:!0}),r);var A={};M(A,{CopilotAction:()=>x});module.exports=k(A);var a=require("react/jsx-runtime"),T=require("react"),l=require("react"),t=require("@copilotkit/react-core"),c=require("@copilotkit/runtime-client-gql");const x=({start:r,history:n,addtocartHandler:s,commonRender:d,pointsExchangeCouponRender:o,gotocheckoutRender:u,gotocartRender:h,addtocartRender:y,productRender:R,signupRender:f,children:_})=>{const{setMessages:N,appendMessage:C,isLoading:w}=(0,t.useCopilotChat)();return(0,l.useEffect)(()=>{const e=n?.filter(p=>p?.content||p?.arguments);if(e?.length>0){const p=e?.map(i=>{if(i?.name&&i?.arguments){const v=i?.arguments?.map(g=>g?{...g,ishistory:!0}:{});return new c.ActionExecutionMessage({name:i?.name,arguments:v,scope:i?.scope})}return new c.TextMessage({...i,role:i?.role==="user"?c.Role.User:c.Role.Assistant})});N(p)}},[n]),(0,t.useCopilotAction)({name:"go_to_checkout",description:"go to cart",parameters:[{sku:"",handle:""}],render:u||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),(0,t.useCopilotAction)({name:"common_action",description:"common action",parameters:[{act:""}],render:d||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),(0,t.useCopilotAction)({name:"points_exchange_coupon",description:"points exchange coupon",parameters:[{act:""}],render:o||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),(0,t.useCopilotAction)({name:"go_to_cart",description:"go to cart",parameters:[{sku:"",handle:""}],render:h||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),(0,t.useCopilotAction)({name:"add_to_cart",description:"add to cart",parameters:[{sku:"",handle:""}],render:y||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(e){s&&s(e)}}),(0,t.useCopilotAction)({name:"show_product_card",description:"product card",parameters:[{sku:"",handle:""}],render:R||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(e){console.log("show_product_card-props",e)}}),(0,t.useCopilotAction)({name:"signup",description:"signup",parameters:[{name:"signup"}],render:f||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),(0,t.useCopilotReadable)({description:"Today's date",value:new Date().toLocaleDateString()}),(0,a.jsx)("div",{children:_})};
1
+ "use strict";var m=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var J=Object.prototype.hasOwnProperty;var O=(r,t)=>{for(var s in t)m(r,s,{get:t[s],enumerable:!0})},M=(r,t,s,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of S(t))!J.call(r,i)&&i!==s&&m(r,i,{get:()=>t[i],enumerable:!(d=x(t,i))||d.enumerable});return r};var k=r=>M(m({},"__esModule",{value:!0}),r);var C={};O(C,{CopilotAction:()=>A});module.exports=k(C);var a=require("react/jsx-runtime"),D=require("react"),l=require("react"),n=require("@copilotkit/react-core"),c=require("@copilotkit/runtime-client-gql");const A=({start:r,history:t,addtocartHandler:s,commonRender:d,pointsExchangeCouponRender:i,gotocheckoutRender:u,gotocartRender:h,addtocartRender:y,productRender:R,signupRender:f,shulexRender:_,children:N})=>{const{setMessages:v,appendMessage:w,isLoading:P}=(0,n.useCopilotChat)();return(0,l.useEffect)(()=>{const e=t?.filter(p=>p?.content||p?.arguments);if(e?.length>0){const p=e?.map(o=>{if(o?.name&&o?.arguments){const E=o?.arguments?.map(g=>g?{...g,ishistory:!0}:{});return new c.ActionExecutionMessage({name:o?.name,arguments:E,scope:o?.scope})}return new c.TextMessage({...o,role:o?.role==="user"?c.Role.User:c.Role.Assistant})});v(p)}},[t]),(0,n.useCopilotAction)({name:"go_to_checkout",description:"go to cart",parameters:[{sku:"",handle:""}],render:u||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),(0,n.useCopilotAction)({name:"common_action",description:"common action",parameters:[{act:""}],render:d||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),(0,n.useCopilotAction)({name:"points_exchange_coupon",description:"points exchange coupon",parameters:[{act:""}],render:i||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),(0,n.useCopilotAction)({name:"go_to_cart",description:"go to cart",parameters:[{sku:"",handle:""}],render:h||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),(0,n.useCopilotAction)({name:"add_to_cart",description:"add to cart",parameters:[{sku:"",handle:""}],render:y||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(e){s&&s(e)}}),(0,n.useCopilotAction)({name:"show_product_card",description:"product card",parameters:[{sku:"",handle:""}],render:R||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(e){}}),(0,n.useCopilotAction)({name:"signup",description:"signup",parameters:[{name:"signup"}],render:f||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),(0,n.useCopilotAction)({name:"shulex",description:"shulex",parameters:[{name:"shulex"}],render:_||(e=>(0,a.jsx)("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),(0,n.useCopilotReadable)({description:"Today's date",value:new Date().toLocaleDateString()}),(0,a.jsx)("div",{children:N})};
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 addtocartHandler?: (_args: any) => Promise<any>\n commonRender?: string | ((_props: any) => React.ReactElement)\n pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement)\n gotocheckoutRender?: string | ((_props: any) => React.ReactElement)\n gotocartRender?: string | ((_props: any) => React.ReactElement)\n addtocartRender?: string | ((_props: any) => React.ReactElement)\n signupRender?: string | ((_props: any) => React.ReactElement)\n productRender?: string | ((_props: any) => React.ReactElement)\n productRenderTipMessage?: string\n children?: React.ReactNode\n}\n\nexport const CopilotAction = ({\n start,\n history,\n addtocartHandler,\n commonRender,\n pointsExchangeCouponRender,\n gotocheckoutRender,\n gotocartRender,\n addtocartRender,\n productRender,\n signupRender,\n children,\n}: ActionProps) => {\n const { setMessages, appendMessage, isLoading } = 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 const args = value?.arguments?.map((item: any) => (item ? { ...item, ishistory: true } : {}))\n return new ActionExecutionMessage({\n name: value?.name,\n arguments: args,\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: 'common_action',\n description: 'common action',\n parameters: [{ act: '' }] as any,\n render: commonRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('common_action', props)\n },\n })\n\n useCopilotAction({\n name: 'points_exchange_coupon',\n description: 'points exchange coupon',\n parameters: [{ act: '' }] as any,\n render: pointsExchangeCouponRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('points_exchange_coupon', 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 (props) {\n addtocartHandler && addtocartHandler(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 (props) {\n console.log('show_product_card-props', props)\n // const ishistory = props?.find((item: { ishistory: any }) => item?.ishistory)\n // if (!ishistory) {\n // const content = new TextMessage({\n // content: 'show product card',\n // role: Role.Assistant,\n // })\n // appendMessage(content)\n // }\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": "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",
6
- "names": ["action_exports", "__export", "CopilotAction", "__toCommonJS", "import_jsx_runtime", "import_react", "import_react_core", "import_runtime_client_gql", "start", "history", "addtocartHandler", "commonRender", "pointsExchangeCouponRender", "gotocheckoutRender", "gotocartRender", "addtocartRender", "productRender", "signupRender", "children", "setMessages", "appendMessage", "isLoading", "originhistory", "value", "content", "args", "item", "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 addtocartHandler?: (_args: any) => Promise<any>\n commonRender?: string | ((_props: any) => React.ReactElement)\n pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement)\n gotocheckoutRender?: string | ((_props: any) => React.ReactElement)\n gotocartRender?: string | ((_props: any) => React.ReactElement)\n addtocartRender?: string | ((_props: any) => React.ReactElement)\n signupRender?: string | ((_props: any) => React.ReactElement)\n shulexRender?: string | ((_props: any) => React.ReactElement)\n productRender?: string | ((_props: any) => React.ReactElement)\n productRenderTipMessage?: string\n children?: React.ReactNode\n}\n\nexport const CopilotAction = ({\n start,\n history,\n addtocartHandler,\n commonRender,\n pointsExchangeCouponRender,\n gotocheckoutRender,\n gotocartRender,\n addtocartRender,\n productRender,\n signupRender,\n shulexRender,\n children,\n}: ActionProps) => {\n const { setMessages, appendMessage, isLoading } = 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 const args = value?.arguments?.map((item: any) => (item ? { ...item, ishistory: true } : {}))\n return new ActionExecutionMessage({\n name: value?.name,\n arguments: args,\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: 'common_action',\n description: 'common action',\n parameters: [{ act: '' }] as any,\n render: commonRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('common_action', props)\n },\n })\n\n useCopilotAction({\n name: 'points_exchange_coupon',\n description: 'points exchange coupon',\n parameters: [{ act: '' }] as any,\n render: pointsExchangeCouponRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('points_exchange_coupon', 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 (props) {\n addtocartHandler && addtocartHandler(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 (props) {\n // console.log('show_product_card-props', props)\n // const ishistory = props?.find((item: { ishistory: any }) => item?.ishistory)\n // if (!ishistory) {\n // const content = new TextMessage({\n // content: 'show product card',\n // role: Role.Assistant,\n // })\n // appendMessage(content)\n // }\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 useCopilotAction({\n name: 'shulex',\n description: 'shulex',\n parameters: [\n {\n name: 'shulex',\n },\n ] as any,\n render: shulexRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('shulex-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": "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",
6
+ "names": ["action_exports", "__export", "CopilotAction", "__toCommonJS", "import_jsx_runtime", "import_react", "import_react_core", "import_runtime_client_gql", "start", "history", "addtocartHandler", "commonRender", "pointsExchangeCouponRender", "gotocheckoutRender", "gotocartRender", "addtocartRender", "productRender", "signupRender", "shulexRender", "children", "setMessages", "appendMessage", "isLoading", "originhistory", "value", "content", "args", "item", "props"]
7
7
  }
@@ -30,6 +30,9 @@ export interface ChatProps {
30
30
  /** 通用 action 的触发事件
31
31
  */
32
32
  commonRender?: string | ((_props: any) => React.ReactElement);
33
+ /** shulex的 action 的触发事件
34
+ */
35
+ shulexRender?: string | ((_props: any) => React.ReactElement);
33
36
  /** 通用 积分 换 Coupon 的触发事件
34
37
  */
35
38
  pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement);
@@ -1,2 +1,2 @@
1
- "use strict";var st=Object.create;var f=Object.defineProperty;var nt=Object.getOwnPropertyDescriptor;var rt=Object.getOwnPropertyNames;var at=Object.getPrototypeOf,it=Object.prototype.hasOwnProperty;var pt=(e,s)=>{for(var n in s)f(e,n,{get:s[n],enumerable:!0})},B=(e,s,n,p)=>{if(s&&typeof s=="object"||typeof s=="function")for(let a of rt(s))!it.call(e,a)&&a!==n&&f(e,a,{get:()=>s[a],enumerable:!(p=nt(s,a))||p.enumerable});return e};var g=(e,s,n)=>(n=e!=null?st(at(e)):{},B(s||!e||!e.__esModule?f(n,"default",{value:e,enumerable:!0}):n,e)),ct=e=>B(f({},"__esModule",{value:!0}),e);var gt={};pt(gt,{default:()=>lt});module.exports=ct(gt);var o=require("react/jsx-runtime"),w=require("react"),r=require("react"),x=require("@copilotkit/react-core"),O=require("@copilotkit/react-ui"),v=g(require("./button.js")),S=g(require("./messages.js")),M=g(require("./response.js")),$=g(require("./suggestions.js")),q=require("./action.js"),E=g(require("../../helpers/fetcher.js"));const ut=e=>{const{title:s,runtimeUrl:n,popup:p,shopifyDomain:a,userId:c="",account:d="",prologue:D="",locale:m="",query:u="",messagesCallback:K,showResponseButton:_,gotocheckoutRender:N,commonRender:H,pointsExchangeCouponRender:I,gotocartRender:U,addtocartRender:G,productRender:A,signupRender:F,addtocartHandler:L,style:z,className:J="",lang:R}=e,[Q,V]=R?.popupTipTimeout||[3e3,6e3],[P,h]=(0,r.useState)(!1),[y,W]=(0,r.useState)(!1),[l,X]=(0,r.useState)(D),[Y,C]=(0,r.useState)([]),[k,Z]=(0,r.useState)([]),T=(0,w.useMemo)(()=>({"x-user-id":c||"","x-shopify-domain":a,"x-member-ship":d,"x-user-locale":m}),[c,a,d,m]),j=(0,r.useCallback)(async()=>{const t=await(0,E.default)({url:`${n}/copilotkit/start${u}`,method:"GET",headers:T});C(t?.suggested_questions?.map(i=>({message:i,title:i}))||[]),X(t?.opening_statement||""),Z(t?.history||[])},[c,a,d,m,u]),tt=(0,r.useCallback)(async()=>{const t=await(0,E.default)({url:`${n}/copilotkit/suggested_questions${u}`,method:"GET",headers:T});C(t?.suggested_questions?.data?.map(i=>({message:i,title:i}))||[])},[c,a,d,m,u]),et=()=>{P||h(!0),setTimeout(()=>{h(!1)},V)};return(0,r.useEffect)(()=>{const t=setTimeout(()=>{et()},Q);return()=>{clearTimeout(t)}},[]),(0,o.jsx)("div",{className:J,style:z||{},children:c&&n&&(0,o.jsx)(x.CopilotKit,{runtimeUrl:`${n}/copilotkit/chat${u}`,showDevConsole:!1,headers:T,children:(0,o.jsx)(O.CopilotPopup,{...p,showResponseButton:_!=="follow",labels:{title:s||"DTC Live Chat",initial:l||""},instructions:l||"",onInProgress:t=>{y&&t&&C([]),y&&!t&&tt()},Messages:({messages:t,inProgress:i})=>(0,o.jsx)(S.default,{messages:t,inProgress:i,messagesCallback:K,ResponseButton:_==="follow"?(0,o.jsx)(M.default,{}):void 0,children:(0,o.jsx)($.default,{currentSuggestions:Y})}),Button:({open:t,setOpen:i})=>{const ot=p?.Button||v.default;(0,r.useEffect)(()=>{W(t)},[t]);const b=(0,r.useCallback)(()=>{i(!t),h(!1),(!l||!k?.length)&&j()},[l]);return(0,o.jsxs)(o.Fragment,{children:[R?.popupTip&&P&&!y&&(0,o.jsx)("div",{className:"copilotKitPopup copilotKitPopupTip",children:(0,o.jsx)("button",{onClick:b,"aria-label":"Open Chat",className:"copilotKitPopupTipContent",children:R?.popupTip})}),(0,o.jsx)(ot,{open:t,setOpen:b})]})},children:(0,o.jsx)(q.CopilotAction,{start:l,history:k,commonRender:H,pointsExchangeCouponRender:I,gotocartRender:U,gotocheckoutRender:N,addtocartRender:G,signupRender:F,productRender:A,addtocartHandler:L,productRenderTipMessage:R?.productRenderTipMessage})})})})};var lt=ut;
1
+ "use strict";var ne=Object.create;var h=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ie=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty;var ce=(t,s)=>{for(var n in s)h(t,n,{get:s[n],enumerable:!0})},b=(t,s,n,p)=>{if(s&&typeof s=="object"||typeof s=="function")for(let a of ae(s))!pe.call(t,a)&&a!==n&&h(t,a,{get:()=>s[a],enumerable:!(p=re(s,a))||p.enumerable});return t};var g=(t,s,n)=>(n=t!=null?ne(ie(t)):{},b(s||!t||!t.__esModule?h(n,"default",{value:t,enumerable:!0}):n,t)),ue=t=>b(h({},"__esModule",{value:!0}),t);var de={};ce(de,{default:()=>ge});module.exports=ue(de);var o=require("react/jsx-runtime"),B=require("react"),r=require("react"),w=require("@copilotkit/react-core"),O=require("@copilotkit/react-ui"),v=g(require("./button.js")),S=g(require("./messages.js")),M=g(require("./response.js")),$=g(require("./suggestions.js")),q=require("./action.js"),E=g(require("../../helpers/fetcher.js"));const le=t=>{const{title:s,runtimeUrl:n,popup:p,shopifyDomain:a,userId:c="",account:d="",prologue:D="",locale:m="",query:u="",messagesCallback:K,showResponseButton:_,gotocheckoutRender:N,commonRender:H,shulexRender:I,pointsExchangeCouponRender:U,gotocartRender:G,addtocartRender:A,productRender:F,signupRender:L,addtocartHandler:z,style:J,className:Q="",lang:R}=t,[V,W]=R?.popupTipTimeout||[3e3,6e3],[P,f]=(0,r.useState)(!1),[y,X]=(0,r.useState)(!1),[l,Y]=(0,r.useState)(D),[Z,C]=(0,r.useState)([]),[k,j]=(0,r.useState)([]),T=(0,B.useMemo)(()=>({"x-user-id":c||"","x-shopify-domain":a,"x-member-ship":d,"x-user-locale":m}),[c,a,d,m]),ee=(0,r.useCallback)(async()=>{const e=await(0,E.default)({url:`${n}/copilotkit/start${u}`,method:"GET",headers:T});C(e?.suggested_questions?.map(i=>({message:i,title:i}))||[]),Y(e?.opening_statement||""),j(e?.history||[])},[c,a,d,m,u]),te=(0,r.useCallback)(async()=>{const e=await(0,E.default)({url:`${n}/copilotkit/suggested_questions${u}`,method:"GET",headers:T});C(e?.suggested_questions?.data?.map(i=>({message:i,title:i}))||[])},[c,a,d,m,u]),oe=()=>{P||f(!0),setTimeout(()=>{f(!1)},W)};return(0,r.useEffect)(()=>{const e=setTimeout(()=>{oe()},V);return()=>{clearTimeout(e)}},[]),(0,o.jsx)("div",{className:Q,style:J||{},children:c&&n&&(0,o.jsx)(w.CopilotKit,{runtimeUrl:`${n}/copilotkit/chat${u}`,showDevConsole:!1,headers:T,children:(0,o.jsx)(O.CopilotPopup,{...p,showResponseButton:_!=="follow",labels:{title:s||"DTC Live Chat",initial:l||""},instructions:l||"",onInProgress:e=>{y&&e&&C([]),y&&!e&&te()},Messages:({messages:e,inProgress:i})=>(0,o.jsx)(S.default,{messages:e,inProgress:i,messagesCallback:K,ResponseButton:_==="follow"?(0,o.jsx)(M.default,{}):void 0,children:(0,o.jsx)($.default,{currentSuggestions:Z})}),Button:({open:e,setOpen:i})=>{const se=p?.Button||v.default;(0,r.useEffect)(()=>{X(e)},[e]);const x=(0,r.useCallback)(()=>{i(!e),f(!1),(!l||!k?.length)&&ee()},[l]);return(0,o.jsxs)(o.Fragment,{children:[R?.popupTip&&P&&!y&&(0,o.jsx)("div",{className:"copilotKitPopup copilotKitPopupTip",children:(0,o.jsx)("button",{onClick:x,"aria-label":"Open Chat",className:"copilotKitPopupTipContent",children:R?.popupTip})}),(0,o.jsx)(se,{open:e,setOpen:x})]})},children:(0,o.jsx)(q.CopilotAction,{start:l,history:k,commonRender:H,shulexRender:I,pointsExchangeCouponRender:U,gotocartRender:G,gotocheckoutRender:N,addtocartRender:A,signupRender:L,productRender:F,addtocartHandler:z,productRenderTipMessage:R?.productRenderTipMessage})})})})};var ge=le;
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, { useMemo } 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 shopifyDomain: string\n /** GA \u7684 client id\n */\n userId: 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 /** \u5F00\u573A\u767D\n */\n prologue?: 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 /** messages \u7684\u56DE\u8C03\u4E8B\u4EF6\n * \u6BCF\u6B21\u751F\u6210/\u63A5\u53D7\u65B0\u7684messages\uFF0C\u4F1A\u5C06 \u6574\u4E2A messages list \u4F20\u9012\u7ED9\u5916\u90E8\n */\n messagesCallback?: (_messages: any) => void\n /** \u901A\u7528 action \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n commonRender?: string | ((_props: any) => React.ReactElement)\n /** \u901A\u7528 \u79EF\u5206 \u6362 Coupon \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement)\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 /** \u6253\u5F00\u8D2D\u7269\u8F66 action \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n addtocartHandler?: (_args: any) => Promise<any>\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 /** \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 /** \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 /** CopilotPopup \u81EA\u5B9A\u4E49\u53C2\u6570\uFF0C\u53C2\u8003\uFF1Ahttps://docs.copilotkit.ai/reference/components/CopilotPopup */\n popup?: any\n /** \u6587\u6848\uFF0C{\"productRenderTipMessage\": \"\",\"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 shopifyDomain,\n userId = '',\n account = '',\n prologue = '',\n locale = '',\n query = '',\n messagesCallback,\n showResponseButton,\n gotocheckoutRender,\n commonRender,\n pointsExchangeCouponRender,\n gotocartRender,\n addtocartRender,\n productRender,\n signupRender,\n addtocartHandler,\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(prologue)\n const [currentSuggestions, setCurrentSuggestions] = useState([])\n const [history, sethistory] = useState<[{ content: string; role: string }] | []>([])\n\n const headers = useMemo(\n () => ({\n 'x-user-id': userId || '',\n 'x-shopify-domain': shopifyDomain,\n 'x-member-ship': account,\n 'x-user-locale': locale,\n }),\n [userId, shopifyDomain, account, locale]\n )\n\n const getStart = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/start${query}`,\n method: 'GET',\n headers,\n })\n\n setCurrentSuggestions(result?.suggested_questions?.map((item: string) => ({ message: item, title: item })) || [])\n setstart(result?.opening_statement || '')\n sethistory(result?.history || [])\n }, [userId, shopifyDomain, account, locale, query])\n\n const getSuggestions = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/suggested_questions${query}`,\n method: 'GET',\n headers,\n })\n\n setCurrentSuggestions(\n result?.suggested_questions?.data?.map((item: string) => ({ message: item, title: item })) || []\n )\n }, [userId, shopifyDomain, account, locale, query])\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 return (\n <div className={className} style={style || {}}>\n {userId && runtimeUrl && (\n <CopilotKit runtimeUrl={`${runtimeUrl}/copilotkit/chat${query}`} showDevConsole={false} headers={headers}>\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 messagesCallback={messagesCallback}\n ResponseButton={showResponseButton === 'follow' ? <ResponseButton /> : undefined}\n >\n <Suggestions currentSuggestions={currentSuggestions} />\n </Messages>\n )}\n Button={({ open, setOpen: setOpenDefault }) => {\n const Button = popup?.Button || DefaultButton\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setOpenPopup(open)\n }, [open])\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const setOpen = useCallback(() => {\n setOpenDefault(!open)\n setOpenTip(false)\n if (!start || !history?.length) getStart()\n }, [start])\n\n return (\n <>\n {lang?.popupTip && openTip && !openPopup && (\n <div className=\"copilotKitPopup copilotKitPopupTip\">\n <button onClick={setOpen} aria-label=\"Open Chat\" className=\"copilotKitPopupTipContent\">\n {lang?.popupTip}\n </button>\n </div>\n )}\n <Button open={open} setOpen={setOpen} />\n </>\n )\n }}\n >\n <CopilotAction\n start={start}\n history={history}\n commonRender={commonRender}\n pointsExchangeCouponRender={pointsExchangeCouponRender}\n gotocartRender={gotocartRender}\n gotocheckoutRender={gotocheckoutRender}\n addtocartRender={addtocartRender}\n signupRender={signupRender}\n productRender={productRender}\n addtocartHandler={addtocartHandler}\n productRenderTipMessage={lang?.productRenderTipMessage}\n />\n </CopilotPopup>\n </CopilotKit>\n )}\n </div>\n )\n}\n\nexport default Chat\n"],
5
- "mappings": "skBAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,aAAAE,KAAA,eAAAC,GAAAH,IAuLkE,IAAAI,EAAA,6BAtLlEC,EAA+B,iBAC/BA,EAAiD,iBACjDC,EAA2B,kCAC3BC,EAA6B,gCAC7BC,EAA0B,0BAC1BC,EAAqB,4BACrBC,EAA2B,4BAC3BC,EAAwB,+BACxBC,EAA8B,uBAC9BC,EAAoB,uCAoEpB,MAAMC,GAAQC,GAAqB,CACjC,KAAM,CACJ,MAAAC,EACA,WAAAC,EACA,MAAAC,EACA,cAAAC,EACA,OAAAC,EAAS,GACT,QAAAC,EAAU,GACV,SAAAC,EAAW,GACX,OAAAC,EAAS,GACT,MAAAC,EAAQ,GACR,iBAAAC,EACA,mBAAAC,EACA,mBAAAC,EACA,aAAAC,EACA,2BAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,MAAAC,EACA,UAAAC,EAAY,GACZ,KAAAC,CACF,EAAItB,EACE,CAACuB,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,YAASvB,CAAQ,EACrC,CAACwB,EAAoBC,CAAqB,KAAI,YAAS,CAAC,CAAC,EACzD,CAACC,EAASC,CAAU,KAAI,YAAmD,CAAC,CAAC,EAE7EC,KAAU,WACd,KAAO,CACL,YAAa9B,GAAU,GACvB,mBAAoBD,EACpB,gBAAiBE,EACjB,gBAAiBE,CACnB,GACA,CAACH,EAAQD,EAAeE,EAASE,CAAM,CACzC,EAEM4B,KAAW,eAAY,SAAY,CACvC,MAAMC,EAAS,QAAM,EAAAC,SAAQ,CAC3B,IAAK,GAAGpC,CAAU,oBAAoBO,CAAK,GAC3C,OAAQ,MACR,QAAA0B,CACF,CAAC,EAEDH,EAAsBK,GAAQ,qBAAqB,IAAKE,IAAkB,CAAE,QAASA,EAAM,MAAOA,CAAK,EAAE,GAAK,CAAC,CAAC,EAChHT,EAASO,GAAQ,mBAAqB,EAAE,EACxCH,EAAWG,GAAQ,SAAW,CAAC,CAAC,CAClC,EAAG,CAAChC,EAAQD,EAAeE,EAASE,EAAQC,CAAK,CAAC,EAE5C+B,MAAiB,eAAY,SAAY,CAC7C,MAAMH,EAAS,QAAM,EAAAC,SAAQ,CAC3B,IAAK,GAAGpC,CAAU,kCAAkCO,CAAK,GACzD,OAAQ,MACR,QAAA0B,CACF,CAAC,EAEDH,EACEK,GAAQ,qBAAqB,MAAM,IAAKE,IAAkB,CAAE,QAASA,EAAM,MAAOA,CAAK,EAAE,GAAK,CAAC,CACjG,CACF,EAAG,CAAClC,EAAQD,EAAeE,EAASE,EAAQC,CAAK,CAAC,EAE5CgC,GAAe,IAAM,CACpBhB,GAASC,EAAW,EAAI,EAC7B,WAAW,IAAM,CACfA,EAAW,EAAK,CAClB,EAAGF,CAAY,CACjB,EAEA,sBAAU,IAAM,CACd,MAAMkB,EAAQ,WAAW,IAAM,CAC7BD,GAAa,CACf,EAAGlB,CAAW,EAEd,MAAO,IAAM,CACX,aAAamB,CAAK,CACpB,CACF,EAAG,CAAC,CAAC,KAGH,OAAC,OAAI,UAAWrB,EAAW,MAAOD,GAAS,CAAC,EACzC,SAAAf,GAAUH,MACT,OAAC,cAAW,WAAY,GAAGA,CAAU,mBAAmBO,CAAK,GAAI,eAAgB,GAAO,QAAS0B,EAC/F,mBAAC,gBACE,GAAGhC,EACJ,mBAAoBQ,IAAuB,SAC3C,OAAQ,CACN,MAAOV,GAAS,gBAChB,QAAS4B,GAAS,EACpB,EACA,aAAcA,GAAS,GACvB,aAAcc,GAAQ,CAChBhB,GAAagB,GAAMX,EAAsB,CAAC,CAAC,EAC3CL,GAAa,CAACgB,GAAMH,GAAe,CACzC,EACA,SAAU,CAAC,CAAE,SAAAI,EAAU,WAAAC,CAAW,OAChC,OAAC,EAAAC,QAAA,CACC,SAAUF,EACV,WAAYC,EACZ,iBAAkBnC,EAClB,eAAgBC,IAAuB,YAAW,OAAC,EAAAoC,QAAA,EAAe,EAAK,OAEvE,mBAAC,EAAAC,QAAA,CAAY,mBAAoBjB,EAAoB,EACvD,EAEF,OAAQ,CAAC,CAAE,KAAAkB,EAAM,QAASC,CAAe,IAAM,CAC7C,MAAMC,GAAShD,GAAO,QAAU,EAAAiD,WAEhC,aAAU,IAAM,CACdxB,EAAaqB,CAAI,CACnB,EAAG,CAACA,CAAI,CAAC,EAGT,MAAMI,KAAU,eAAY,IAAM,CAChCH,EAAe,CAACD,CAAI,EACpBvB,EAAW,EAAK,GACZ,CAACG,GAAS,CAACI,GAAS,SAAQG,EAAS,CAC3C,EAAG,CAACP,CAAK,CAAC,EAEV,SACE,oBACG,UAAAP,GAAM,UAAYG,GAAW,CAACE,MAC7B,OAAC,OAAI,UAAU,qCACb,mBAAC,UAAO,QAAS0B,EAAS,aAAW,YAAY,UAAU,4BACxD,SAAA/B,GAAM,SACT,EACF,KAEF,OAAC6B,GAAA,CAAO,KAAMF,EAAM,QAASI,EAAS,GACxC,CAEJ,EAEA,mBAAC,iBACC,MAAOxB,EACP,QAASI,EACT,aAAcpB,EACd,2BAA4BC,EAC5B,eAAgBC,EAChB,mBAAoBH,EACpB,gBAAiBI,EACjB,aAAcE,EACd,cAAeD,EACf,iBAAkBE,EAClB,wBAAyBG,GAAM,wBACjC,EACF,EACF,EAEJ,CAEJ,EAEA,IAAOnC,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", "shopifyDomain", "userId", "account", "prologue", "locale", "query", "messagesCallback", "showResponseButton", "gotocheckoutRender", "commonRender", "pointsExchangeCouponRender", "gotocartRender", "addtocartRender", "productRender", "signupRender", "addtocartHandler", "style", "className", "lang", "autoTipOpen", "autoTipClose", "openTip", "setOpenTip", "openPopup", "setOpenPopup", "start", "setstart", "currentSuggestions", "setCurrentSuggestions", "history", "sethistory", "headers", "getStart", "result", "fetcher", "item", "getSuggestions", "setOpenTipFn", "timer", "load", "messages", "inProgress", "Messages", "ResponseButton", "Suggestions", "open", "setOpenDefault", "Button", "DefaultButton", "setOpen"]
4
+ "sourcesContent": ["/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useMemo } 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 shopifyDomain: string\n /** GA \u7684 client id\n */\n userId: 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 /** \u5F00\u573A\u767D\n */\n prologue?: 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 /** messages \u7684\u56DE\u8C03\u4E8B\u4EF6\n * \u6BCF\u6B21\u751F\u6210/\u63A5\u53D7\u65B0\u7684messages\uFF0C\u4F1A\u5C06 \u6574\u4E2A messages list \u4F20\u9012\u7ED9\u5916\u90E8\n */\n messagesCallback?: (_messages: any) => void\n /** \u901A\u7528 action \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n commonRender?: string | ((_props: any) => React.ReactElement)\n /** shulex\u7684 action \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n shulexRender?: string | ((_props: any) => React.ReactElement)\n /** \u901A\u7528 \u79EF\u5206 \u6362 Coupon \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement)\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 /** \u6253\u5F00\u8D2D\u7269\u8F66 action \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n addtocartHandler?: (_args: any) => Promise<any>\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 /** \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 /** \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 /** CopilotPopup \u81EA\u5B9A\u4E49\u53C2\u6570\uFF0C\u53C2\u8003\uFF1Ahttps://docs.copilotkit.ai/reference/components/CopilotPopup */\n popup?: any\n /** \u6587\u6848\uFF0C{\"productRenderTipMessage\": \"\",\"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 shopifyDomain,\n userId = '',\n account = '',\n prologue = '',\n locale = '',\n query = '',\n messagesCallback,\n showResponseButton,\n gotocheckoutRender,\n commonRender,\n shulexRender,\n pointsExchangeCouponRender,\n gotocartRender,\n addtocartRender,\n productRender,\n signupRender,\n addtocartHandler,\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(prologue)\n const [currentSuggestions, setCurrentSuggestions] = useState([])\n const [history, sethistory] = useState<[{ content: string; role: string }] | []>([])\n\n const headers = useMemo(\n () => ({\n 'x-user-id': userId || '',\n 'x-shopify-domain': shopifyDomain,\n 'x-member-ship': account,\n 'x-user-locale': locale,\n }),\n [userId, shopifyDomain, account, locale]\n )\n\n const getStart = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/start${query}`,\n method: 'GET',\n headers,\n })\n\n setCurrentSuggestions(result?.suggested_questions?.map((item: string) => ({ message: item, title: item })) || [])\n setstart(result?.opening_statement || '')\n sethistory(result?.history || [])\n }, [userId, shopifyDomain, account, locale, query])\n\n const getSuggestions = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/suggested_questions${query}`,\n method: 'GET',\n headers,\n })\n\n setCurrentSuggestions(\n result?.suggested_questions?.data?.map((item: string) => ({ message: item, title: item })) || []\n )\n }, [userId, shopifyDomain, account, locale, query])\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 return (\n <div className={className} style={style || {}}>\n {userId && runtimeUrl && (\n <CopilotKit runtimeUrl={`${runtimeUrl}/copilotkit/chat${query}`} showDevConsole={false} headers={headers}>\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 messagesCallback={messagesCallback}\n ResponseButton={showResponseButton === 'follow' ? <ResponseButton /> : undefined}\n >\n <Suggestions currentSuggestions={currentSuggestions} />\n </Messages>\n )}\n Button={({ open, setOpen: setOpenDefault }) => {\n const Button = popup?.Button || DefaultButton\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setOpenPopup(open)\n }, [open])\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const setOpen = useCallback(() => {\n setOpenDefault(!open)\n setOpenTip(false)\n if (!start || !history?.length) getStart()\n }, [start])\n\n return (\n <>\n {lang?.popupTip && openTip && !openPopup && (\n <div className=\"copilotKitPopup copilotKitPopupTip\">\n <button onClick={setOpen} aria-label=\"Open Chat\" className=\"copilotKitPopupTipContent\">\n {lang?.popupTip}\n </button>\n </div>\n )}\n <Button open={open} setOpen={setOpen} />\n </>\n )\n }}\n >\n <CopilotAction\n start={start}\n history={history}\n commonRender={commonRender}\n shulexRender={shulexRender}\n pointsExchangeCouponRender={pointsExchangeCouponRender}\n gotocartRender={gotocartRender}\n gotocheckoutRender={gotocheckoutRender}\n addtocartRender={addtocartRender}\n signupRender={signupRender}\n productRender={productRender}\n addtocartHandler={addtocartHandler}\n productRenderTipMessage={lang?.productRenderTipMessage}\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", "shopifyDomain", "userId", "account", "prologue", "locale", "query", "messagesCallback", "showResponseButton", "gotocheckoutRender", "commonRender", "shulexRender", "pointsExchangeCouponRender", "gotocartRender", "addtocartRender", "productRender", "signupRender", "addtocartHandler", "style", "className", "lang", "autoTipOpen", "autoTipClose", "openTip", "setOpenTip", "openPopup", "setOpenPopup", "start", "setstart", "currentSuggestions", "setCurrentSuggestions", "history", "sethistory", "headers", "getStart", "result", "fetcher", "item", "getSuggestions", "setOpenTipFn", "timer", "load", "messages", "inProgress", "Messages", "ResponseButton", "Suggestions", "open", "setOpenDefault", "Button", "DefaultButton", "setOpen"]
7
7
  }
@@ -1,2 +1,3 @@
1
1
  import { useCopilotChat, useCopilotAction, useCopilotReadable } from '@copilotkit/react-core';
2
- export { useCopilotChat, useCopilotAction, useCopilotReadable };
2
+ import { Role, ActionExecutionMessage, TextMessage } from '@copilotkit/runtime-client-gql';
3
+ export { useCopilotChat, useCopilotAction, useCopilotReadable, Role, ActionExecutionMessage, TextMessage };
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var u=(e,o)=>{for(var p in o)l(e,p,{get:o[p],enumerable:!0})},m=(e,o,p,C)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of r(o))!s.call(e,i)&&i!==p&&l(e,i,{get:()=>o[i],enumerable:!(C=a(o,i))||C.enumerable});return e};var b=e=>m(l({},"__esModule",{value:!0}),e);var c={};u(c,{useCopilotAction:()=>t.useCopilotAction,useCopilotChat:()=>t.useCopilotChat,useCopilotReadable:()=>t.useCopilotReadable});module.exports=b(c);var t=require("@copilotkit/react-core");
1
+ "use strict";var a=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var C=(i,o)=>{for(var p in o)a(i,p,{get:o[p],enumerable:!0})},c=(i,o,p,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of m(o))!u.call(i,s)&&s!==p&&a(i,s,{get:()=>o[s],enumerable:!(l=r(o,s))||l.enumerable});return i};var n=i=>c(a({},"__esModule",{value:!0}),i);var x={};C(x,{ActionExecutionMessage:()=>t.ActionExecutionMessage,Role:()=>t.Role,TextMessage:()=>t.TextMessage,useCopilotAction:()=>e.useCopilotAction,useCopilotChat:()=>e.useCopilotChat,useCopilotReadable:()=>e.useCopilotReadable});module.exports=n(x);var e=require("@copilotkit/react-core"),t=require("@copilotkit/runtime-client-gql");
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/chat/utils.ts"],
4
- "sourcesContent": ["import { useCopilotChat, useCopilotAction, useCopilotReadable } from '@copilotkit/react-core'\n\nexport { useCopilotChat, useCopilotAction, useCopilotReadable }\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0IAAAE,EAAAF,GAAA,IAAAG,EAAqE",
6
- "names": ["utils_exports", "__export", "__toCommonJS", "import_react_core"]
4
+ "sourcesContent": ["import { useCopilotChat, useCopilotAction, useCopilotReadable } from '@copilotkit/react-core'\nimport { Role, ActionExecutionMessage, TextMessage } from '@copilotkit/runtime-client-gql'\n\nexport { useCopilotChat, useCopilotAction, useCopilotReadable, Role, ActionExecutionMessage, TextMessage }\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4OAAAE,EAAAF,GAAA,IAAAG,EAAqE,kCACrEC,EAA0D",
6
+ "names": ["utils_exports", "__export", "__toCommonJS", "import_react_core", "import_runtime_client_gql"]
7
7
  }
@@ -1,2 +1,2 @@
1
1
  export { default as Chat } from './chat/index.js';
2
- export { useCopilotChat, useCopilotAction, useCopilotReadable } from './chat/utils.js';
2
+ export { Role, ActionExecutionMessage, TextMessage, useCopilotChat, useCopilotAction, useCopilotReadable, } from './chat/utils.js';
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.create;var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var m=(o,t)=>{for(var e in t)p(o,e,{get:t[e],enumerable:!0})},i=(o,t,e,C)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of f(t))!h.call(o,l)&&l!==e&&p(o,l,{get:()=>t[l],enumerable:!(C=u(t,l))||C.enumerable});return o};var x=(o,t,e)=>(e=o!=null?s(d(o)):{},i(t||!o||!o.__esModule?p(e,"default",{value:o,enumerable:!0}):e,o)),b=o=>i(p({},"__esModule",{value:!0}),o);var c={};m(c,{Chat:()=>r.default,useCopilotAction:()=>a.useCopilotAction,useCopilotChat:()=>a.useCopilotChat,useCopilotReadable:()=>a.useCopilotReadable});module.exports=b(c);var r=x(require("./chat/index.js")),a=require("./chat/utils.js");
1
+ "use strict";var C=Object.create;var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var n=(e,t)=>{for(var a in t)i(e,a,{get:t[a],enumerable:!0})},p=(e,t,a,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of x(t))!f.call(e,s)&&s!==a&&i(e,s,{get:()=>t[s],enumerable:!(l=r(t,s))||l.enumerable});return e};var d=(e,t,a)=>(a=e!=null?C(c(e)):{},p(t||!e||!e.__esModule?i(a,"default",{value:e,enumerable:!0}):a,e)),g=e=>p(i({},"__esModule",{value:!0}),e);var h={};n(h,{ActionExecutionMessage:()=>o.ActionExecutionMessage,Chat:()=>u.default,Role:()=>o.Role,TextMessage:()=>o.TextMessage,useCopilotAction:()=>o.useCopilotAction,useCopilotChat:()=>o.useCopilotChat,useCopilotReadable:()=>o.useCopilotReadable});module.exports=g(h);var u=d(require("./chat/index.js")),o=require("./chat/utils.js");
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/index.ts"],
4
- "sourcesContent": ["// eslint-disable-next-line import/extensions\n\nexport { default as Chat } from './chat/index.js'\n\nexport { useCopilotChat, useCopilotAction, useCopilotReadable } from './chat/utils.js'\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6JAAAE,EAAAF,GAEA,IAAAG,EAAgC,8BAEhCC,EAAqE",
4
+ "sourcesContent": ["// eslint-disable-next-line import/extensions\n\nexport { default as Chat } from './chat/index.js'\n\nexport {\n Role,\n ActionExecutionMessage,\n TextMessage,\n useCopilotChat,\n useCopilotAction,\n useCopilotReadable,\n} from './chat/utils.js'\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+PAAAE,EAAAF,GAEA,IAAAG,EAAgC,8BAEhCC,EAOO",
6
6
  "names": ["components_exports", "__export", "__toCommonJS", "import_chat", "import_utils"]
7
7
  }
@@ -16,9 +16,10 @@ export interface ActionProps {
16
16
  gotocartRender?: string | ((_props: any) => React.ReactElement);
17
17
  addtocartRender?: string | ((_props: any) => React.ReactElement);
18
18
  signupRender?: string | ((_props: any) => React.ReactElement);
19
+ shulexRender?: string | ((_props: any) => React.ReactElement);
19
20
  productRender?: string | ((_props: any) => React.ReactElement);
20
21
  productRenderTipMessage?: string;
21
22
  children?: React.ReactNode;
22
23
  }
23
- export declare const CopilotAction: ({ start, history, addtocartHandler, commonRender, pointsExchangeCouponRender, gotocheckoutRender, gotocartRender, addtocartRender, productRender, signupRender, children, }: ActionProps) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const CopilotAction: ({ start, history, addtocartHandler, commonRender, pointsExchangeCouponRender, gotocheckoutRender, gotocartRender, addtocartRender, productRender, signupRender, shulexRender, children, }: ActionProps) => import("react/jsx-runtime").JSX.Element;
24
25
  export {};
@@ -1,2 +1,2 @@
1
- import{jsx as n}from"react/jsx-runtime";import"react";import{useEffect as _}from"react";import{useCopilotChat as N,useCopilotAction as a,useCopilotReadable as v}from"@copilotkit/react-core";import{Role as c,ActionExecutionMessage as E,TextMessage as S}from"@copilotkit/runtime-client-gql";const P=({start:J,history:s,addtocartHandler:o,commonRender:d,pointsExchangeCouponRender:p,gotocheckoutRender:m,gotocartRender:g,addtocartRender:l,productRender:u,signupRender:h,children:y})=>{const{setMessages:R,appendMessage:M,isLoading:O}=N();return _(()=>{const e=s?.filter(r=>r?.content||r?.arguments);if(e?.length>0){const r=e?.map(t=>{if(t?.name&&t?.arguments){const f=t?.arguments?.map(i=>i?{...i,ishistory:!0}:{});return new E({name:t?.name,arguments:f,scope:t?.scope})}return new S({...t,role:t?.role==="user"?c.User:c.Assistant})});R(r)}},[s]),a({name:"go_to_checkout",description:"go to cart",parameters:[{sku:"",handle:""}],render:m||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),a({name:"common_action",description:"common action",parameters:[{act:""}],render:d||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),a({name:"points_exchange_coupon",description:"points exchange coupon",parameters:[{act:""}],render:p||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),a({name:"go_to_cart",description:"go to cart",parameters:[{sku:"",handle:""}],render:g||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),a({name:"add_to_cart",description:"add to cart",parameters:[{sku:"",handle:""}],render:l||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(e){o&&o(e)}}),a({name:"show_product_card",description:"product card",parameters:[{sku:"",handle:""}],render:u||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(e){console.log("show_product_card-props",e)}}),a({name:"signup",description:"signup",parameters:[{name:"signup"}],render:h||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),v({description:"Today's date",value:new Date().toLocaleDateString()}),n("div",{children:y})};export{P as CopilotAction};
1
+ import{jsx as n}from"react/jsx-runtime";import"react";import{useEffect as N}from"react";import{useCopilotChat as v,useCopilotAction as t,useCopilotReadable as E}from"@copilotkit/react-core";import{Role as c,ActionExecutionMessage as x,TextMessage as S}from"@copilotkit/runtime-client-gql";const T=({start:J,history:s,addtocartHandler:i,commonRender:d,pointsExchangeCouponRender:p,gotocheckoutRender:m,gotocartRender:g,addtocartRender:l,productRender:u,signupRender:h,shulexRender:y,children:R})=>{const{setMessages:f,appendMessage:O,isLoading:M}=v();return N(()=>{const e=s?.filter(r=>r?.content||r?.arguments);if(e?.length>0){const r=e?.map(a=>{if(a?.name&&a?.arguments){const _=a?.arguments?.map(o=>o?{...o,ishistory:!0}:{});return new x({name:a?.name,arguments:_,scope:a?.scope})}return new S({...a,role:a?.role==="user"?c.User:c.Assistant})});f(r)}},[s]),t({name:"go_to_checkout",description:"go to cart",parameters:[{sku:"",handle:""}],render:m||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),t({name:"common_action",description:"common action",parameters:[{act:""}],render:d||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),t({name:"points_exchange_coupon",description:"points exchange coupon",parameters:[{act:""}],render:p||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),t({name:"go_to_cart",description:"go to cart",parameters:[{sku:"",handle:""}],render:g||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),t({name:"add_to_cart",description:"add to cart",parameters:[{sku:"",handle:""}],render:l||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(e){i&&i(e)}}),t({name:"show_product_card",description:"product card",parameters:[{sku:"",handle:""}],render:u||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(e){}}),t({name:"signup",description:"signup",parameters:[{name:"signup"}],render:h||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),t({name:"shulex",description:"shulex",parameters:[{name:"shulex"}],render:y||(e=>n("div",{className:"hidden",children:JSON.stringify(e)})),handler:function(){}}),E({description:"Today's date",value:new Date().toLocaleDateString()}),n("div",{children:R})};export{T as CopilotAction};
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 addtocartHandler?: (_args: any) => Promise<any>\n commonRender?: string | ((_props: any) => React.ReactElement)\n pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement)\n gotocheckoutRender?: string | ((_props: any) => React.ReactElement)\n gotocartRender?: string | ((_props: any) => React.ReactElement)\n addtocartRender?: string | ((_props: any) => React.ReactElement)\n signupRender?: string | ((_props: any) => React.ReactElement)\n productRender?: string | ((_props: any) => React.ReactElement)\n productRenderTipMessage?: string\n children?: React.ReactNode\n}\n\nexport const CopilotAction = ({\n start,\n history,\n addtocartHandler,\n commonRender,\n pointsExchangeCouponRender,\n gotocheckoutRender,\n gotocartRender,\n addtocartRender,\n productRender,\n signupRender,\n children,\n}: ActionProps) => {\n const { setMessages, appendMessage, isLoading } = 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 const args = value?.arguments?.map((item: any) => (item ? { ...item, ishistory: true } : {}))\n return new ActionExecutionMessage({\n name: value?.name,\n arguments: args,\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: 'common_action',\n description: 'common action',\n parameters: [{ act: '' }] as any,\n render: commonRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('common_action', props)\n },\n })\n\n useCopilotAction({\n name: 'points_exchange_coupon',\n description: 'points exchange coupon',\n parameters: [{ act: '' }] as any,\n render: pointsExchangeCouponRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('points_exchange_coupon', 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 (props) {\n addtocartHandler && addtocartHandler(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 (props) {\n console.log('show_product_card-props', props)\n // const ishistory = props?.find((item: { ishistory: any }) => item?.ishistory)\n // if (!ishistory) {\n // const content = new TextMessage({\n // content: 'show product card',\n // role: Role.Assistant,\n // })\n // appendMessage(content)\n // }\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": "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",
6
- "names": ["jsx", "useEffect", "useCopilotChat", "useCopilotAction", "useCopilotReadable", "Role", "ActionExecutionMessage", "TextMessage", "CopilotAction", "start", "history", "addtocartHandler", "commonRender", "pointsExchangeCouponRender", "gotocheckoutRender", "gotocartRender", "addtocartRender", "productRender", "signupRender", "children", "setMessages", "appendMessage", "isLoading", "originhistory", "value", "content", "args", "item", "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 addtocartHandler?: (_args: any) => Promise<any>\n commonRender?: string | ((_props: any) => React.ReactElement)\n pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement)\n gotocheckoutRender?: string | ((_props: any) => React.ReactElement)\n gotocartRender?: string | ((_props: any) => React.ReactElement)\n addtocartRender?: string | ((_props: any) => React.ReactElement)\n signupRender?: string | ((_props: any) => React.ReactElement)\n shulexRender?: string | ((_props: any) => React.ReactElement)\n productRender?: string | ((_props: any) => React.ReactElement)\n productRenderTipMessage?: string\n children?: React.ReactNode\n}\n\nexport const CopilotAction = ({\n start,\n history,\n addtocartHandler,\n commonRender,\n pointsExchangeCouponRender,\n gotocheckoutRender,\n gotocartRender,\n addtocartRender,\n productRender,\n signupRender,\n shulexRender,\n children,\n}: ActionProps) => {\n const { setMessages, appendMessage, isLoading } = 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 const args = value?.arguments?.map((item: any) => (item ? { ...item, ishistory: true } : {}))\n return new ActionExecutionMessage({\n name: value?.name,\n arguments: args,\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: 'common_action',\n description: 'common action',\n parameters: [{ act: '' }] as any,\n render: commonRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('common_action', props)\n },\n })\n\n useCopilotAction({\n name: 'points_exchange_coupon',\n description: 'points exchange coupon',\n parameters: [{ act: '' }] as any,\n render: pointsExchangeCouponRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('points_exchange_coupon', 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 (props) {\n addtocartHandler && addtocartHandler(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 (props) {\n // console.log('show_product_card-props', props)\n // const ishistory = props?.find((item: { ishistory: any }) => item?.ishistory)\n // if (!ishistory) {\n // const content = new TextMessage({\n // content: 'show product card',\n // role: Role.Assistant,\n // })\n // appendMessage(content)\n // }\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 useCopilotAction({\n name: 'shulex',\n description: 'shulex',\n parameters: [\n {\n name: 'shulex',\n },\n ] as any,\n render: shulexRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('shulex-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": "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",
6
+ "names": ["jsx", "useEffect", "useCopilotChat", "useCopilotAction", "useCopilotReadable", "Role", "ActionExecutionMessage", "TextMessage", "CopilotAction", "start", "history", "addtocartHandler", "commonRender", "pointsExchangeCouponRender", "gotocheckoutRender", "gotocartRender", "addtocartRender", "productRender", "signupRender", "shulexRender", "children", "setMessages", "appendMessage", "isLoading", "originhistory", "value", "content", "args", "item", "props"]
7
7
  }
@@ -30,6 +30,9 @@ export interface ChatProps {
30
30
  /** 通用 action 的触发事件
31
31
  */
32
32
  commonRender?: string | ((_props: any) => React.ReactElement);
33
+ /** shulex的 action 的触发事件
34
+ */
35
+ shulexRender?: string | ((_props: any) => React.ReactElement);
33
36
  /** 通用 积分 换 Coupon 的触发事件
34
37
  */
35
38
  pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement);
@@ -1,2 +1,2 @@
1
- import{Fragment as st,jsx as e,jsxs as nt}from"react/jsx-runtime";import{useMemo as V}from"react";import{useCallback as f,useState as a,useEffect as _}from"react";import{CopilotKit as W}from"@copilotkit/react-core";import{CopilotPopup as X}from"@copilotkit/react-ui";import Y from"./button.js";import Z from"./messages.js";import j from"./response.js";import tt from"./suggestions.js";import{CopilotAction as et}from"./action.js";import P from"../../helpers/fetcher.js";const ot=k=>{const{title:b,runtimeUrl:i,popup:h,shopifyDomain:p,userId:s="",account:c="",prologue:B="",locale:u="",query:n="",messagesCallback:w,showResponseButton:y,gotocheckoutRender:x,commonRender:O,pointsExchangeCouponRender:v,gotocartRender:S,addtocartRender:M,productRender:$,signupRender:q,addtocartHandler:D,style:K,className:N="",lang:l}=k,[H,I]=l?.popupTipTimeout||[3e3,6e3],[C,g]=a(!1),[d,U]=a(!1),[r,G]=a(B),[A,m]=a([]),[T,F]=a([]),R=V(()=>({"x-user-id":s||"","x-shopify-domain":p,"x-member-ship":c,"x-user-locale":u}),[s,p,c,u]),L=f(async()=>{const t=await P({url:`${i}/copilotkit/start${n}`,method:"GET",headers:R});m(t?.suggested_questions?.map(o=>({message:o,title:o}))||[]),G(t?.opening_statement||""),F(t?.history||[])},[s,p,c,u,n]),z=f(async()=>{const t=await P({url:`${i}/copilotkit/suggested_questions${n}`,method:"GET",headers:R});m(t?.suggested_questions?.data?.map(o=>({message:o,title:o}))||[])},[s,p,c,u,n]),J=()=>{C||g(!0),setTimeout(()=>{g(!1)},I)};return _(()=>{const t=setTimeout(()=>{J()},H);return()=>{clearTimeout(t)}},[]),e("div",{className:N,style:K||{},children:s&&i&&e(W,{runtimeUrl:`${i}/copilotkit/chat${n}`,showDevConsole:!1,headers:R,children:e(X,{...h,showResponseButton:y!=="follow",labels:{title:b||"DTC Live Chat",initial:r||""},instructions:r||"",onInProgress:t=>{d&&t&&m([]),d&&!t&&z()},Messages:({messages:t,inProgress:o})=>e(Z,{messages:t,inProgress:o,messagesCallback:w,ResponseButton:y==="follow"?e(j,{}):void 0,children:e(tt,{currentSuggestions:A})}),Button:({open:t,setOpen:o})=>{const Q=h?.Button||Y;_(()=>{U(t)},[t]);const E=f(()=>{o(!t),g(!1),(!r||!T?.length)&&L()},[r]);return nt(st,{children:[l?.popupTip&&C&&!d&&e("div",{className:"copilotKitPopup copilotKitPopupTip",children:e("button",{onClick:E,"aria-label":"Open Chat",className:"copilotKitPopupTipContent",children:l?.popupTip})}),e(Q,{open:t,setOpen:E})]})},children:e(et,{start:r,history:T,commonRender:O,pointsExchangeCouponRender:v,gotocartRender:S,gotocheckoutRender:x,addtocartRender:M,signupRender:q,productRender:$,addtocartHandler:D,productRenderTipMessage:l?.productRenderTipMessage})})})})};var ft=ot;export{ft as default};
1
+ import{Fragment as ne,jsx as t,jsxs as re}from"react/jsx-runtime";import{useMemo as W}from"react";import{useCallback as h,useState as a,useEffect as _}from"react";import{CopilotKit as X}from"@copilotkit/react-core";import{CopilotPopup as Y}from"@copilotkit/react-ui";import Z from"./button.js";import j from"./messages.js";import ee from"./response.js";import te from"./suggestions.js";import{CopilotAction as oe}from"./action.js";import P from"../../helpers/fetcher.js";const se=k=>{const{title:x,runtimeUrl:i,popup:f,shopifyDomain:p,userId:s="",account:c="",prologue:b="",locale:u="",query:n="",messagesCallback:B,showResponseButton:y,gotocheckoutRender:w,commonRender:O,shulexRender:v,pointsExchangeCouponRender:S,gotocartRender:M,addtocartRender:$,productRender:q,signupRender:D,addtocartHandler:K,style:N,className:H="",lang:l}=k,[I,U]=l?.popupTipTimeout||[3e3,6e3],[C,g]=a(!1),[d,G]=a(!1),[r,A]=a(b),[F,m]=a([]),[T,L]=a([]),R=W(()=>({"x-user-id":s||"","x-shopify-domain":p,"x-member-ship":c,"x-user-locale":u}),[s,p,c,u]),z=h(async()=>{const e=await P({url:`${i}/copilotkit/start${n}`,method:"GET",headers:R});m(e?.suggested_questions?.map(o=>({message:o,title:o}))||[]),A(e?.opening_statement||""),L(e?.history||[])},[s,p,c,u,n]),J=h(async()=>{const e=await P({url:`${i}/copilotkit/suggested_questions${n}`,method:"GET",headers:R});m(e?.suggested_questions?.data?.map(o=>({message:o,title:o}))||[])},[s,p,c,u,n]),Q=()=>{C||g(!0),setTimeout(()=>{g(!1)},U)};return _(()=>{const e=setTimeout(()=>{Q()},I);return()=>{clearTimeout(e)}},[]),t("div",{className:H,style:N||{},children:s&&i&&t(X,{runtimeUrl:`${i}/copilotkit/chat${n}`,showDevConsole:!1,headers:R,children:t(Y,{...f,showResponseButton:y!=="follow",labels:{title:x||"DTC Live Chat",initial:r||""},instructions:r||"",onInProgress:e=>{d&&e&&m([]),d&&!e&&J()},Messages:({messages:e,inProgress:o})=>t(j,{messages:e,inProgress:o,messagesCallback:B,ResponseButton:y==="follow"?t(ee,{}):void 0,children:t(te,{currentSuggestions:F})}),Button:({open:e,setOpen:o})=>{const V=f?.Button||Z;_(()=>{G(e)},[e]);const E=h(()=>{o(!e),g(!1),(!r||!T?.length)&&z()},[r]);return re(ne,{children:[l?.popupTip&&C&&!d&&t("div",{className:"copilotKitPopup copilotKitPopupTip",children:t("button",{onClick:E,"aria-label":"Open Chat",className:"copilotKitPopupTipContent",children:l?.popupTip})}),t(V,{open:e,setOpen:E})]})},children:t(oe,{start:r,history:T,commonRender:O,shulexRender:v,pointsExchangeCouponRender:S,gotocartRender:M,gotocheckoutRender:w,addtocartRender:$,signupRender:D,productRender:q,addtocartHandler:K,productRenderTipMessage:l?.productRenderTipMessage})})})})};var fe=se;export{fe as default};
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, { useMemo } 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 shopifyDomain: string\n /** GA \u7684 client id\n */\n userId: 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 /** \u5F00\u573A\u767D\n */\n prologue?: 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 /** messages \u7684\u56DE\u8C03\u4E8B\u4EF6\n * \u6BCF\u6B21\u751F\u6210/\u63A5\u53D7\u65B0\u7684messages\uFF0C\u4F1A\u5C06 \u6574\u4E2A messages list \u4F20\u9012\u7ED9\u5916\u90E8\n */\n messagesCallback?: (_messages: any) => void\n /** \u901A\u7528 action \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n commonRender?: string | ((_props: any) => React.ReactElement)\n /** \u901A\u7528 \u79EF\u5206 \u6362 Coupon \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement)\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 /** \u6253\u5F00\u8D2D\u7269\u8F66 action \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n addtocartHandler?: (_args: any) => Promise<any>\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 /** \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 /** \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 /** CopilotPopup \u81EA\u5B9A\u4E49\u53C2\u6570\uFF0C\u53C2\u8003\uFF1Ahttps://docs.copilotkit.ai/reference/components/CopilotPopup */\n popup?: any\n /** \u6587\u6848\uFF0C{\"productRenderTipMessage\": \"\",\"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 shopifyDomain,\n userId = '',\n account = '',\n prologue = '',\n locale = '',\n query = '',\n messagesCallback,\n showResponseButton,\n gotocheckoutRender,\n commonRender,\n pointsExchangeCouponRender,\n gotocartRender,\n addtocartRender,\n productRender,\n signupRender,\n addtocartHandler,\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(prologue)\n const [currentSuggestions, setCurrentSuggestions] = useState([])\n const [history, sethistory] = useState<[{ content: string; role: string }] | []>([])\n\n const headers = useMemo(\n () => ({\n 'x-user-id': userId || '',\n 'x-shopify-domain': shopifyDomain,\n 'x-member-ship': account,\n 'x-user-locale': locale,\n }),\n [userId, shopifyDomain, account, locale]\n )\n\n const getStart = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/start${query}`,\n method: 'GET',\n headers,\n })\n\n setCurrentSuggestions(result?.suggested_questions?.map((item: string) => ({ message: item, title: item })) || [])\n setstart(result?.opening_statement || '')\n sethistory(result?.history || [])\n }, [userId, shopifyDomain, account, locale, query])\n\n const getSuggestions = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/suggested_questions${query}`,\n method: 'GET',\n headers,\n })\n\n setCurrentSuggestions(\n result?.suggested_questions?.data?.map((item: string) => ({ message: item, title: item })) || []\n )\n }, [userId, shopifyDomain, account, locale, query])\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 return (\n <div className={className} style={style || {}}>\n {userId && runtimeUrl && (\n <CopilotKit runtimeUrl={`${runtimeUrl}/copilotkit/chat${query}`} showDevConsole={false} headers={headers}>\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 messagesCallback={messagesCallback}\n ResponseButton={showResponseButton === 'follow' ? <ResponseButton /> : undefined}\n >\n <Suggestions currentSuggestions={currentSuggestions} />\n </Messages>\n )}\n Button={({ open, setOpen: setOpenDefault }) => {\n const Button = popup?.Button || DefaultButton\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setOpenPopup(open)\n }, [open])\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const setOpen = useCallback(() => {\n setOpenDefault(!open)\n setOpenTip(false)\n if (!start || !history?.length) getStart()\n }, [start])\n\n return (\n <>\n {lang?.popupTip && openTip && !openPopup && (\n <div className=\"copilotKitPopup copilotKitPopupTip\">\n <button onClick={setOpen} aria-label=\"Open Chat\" className=\"copilotKitPopupTipContent\">\n {lang?.popupTip}\n </button>\n </div>\n )}\n <Button open={open} setOpen={setOpen} />\n </>\n )\n }}\n >\n <CopilotAction\n start={start}\n history={history}\n commonRender={commonRender}\n pointsExchangeCouponRender={pointsExchangeCouponRender}\n gotocartRender={gotocartRender}\n gotocheckoutRender={gotocheckoutRender}\n addtocartRender={addtocartRender}\n signupRender={signupRender}\n productRender={productRender}\n addtocartHandler={addtocartHandler}\n productRenderTipMessage={lang?.productRenderTipMessage}\n />\n </CopilotPopup>\n </CopilotKit>\n )}\n </div>\n )\n}\n\nexport default Chat\n"],
5
- "mappings": "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",
6
- "names": ["Fragment", "jsx", "jsxs", "useMemo", "useCallback", "useState", "useEffect", "CopilotKit", "CopilotPopup", "DefaultButton", "Messages", "ResponseButton", "Suggestions", "CopilotAction", "fetcher", "Chat", "props", "title", "runtimeUrl", "popup", "shopifyDomain", "userId", "account", "prologue", "locale", "query", "messagesCallback", "showResponseButton", "gotocheckoutRender", "commonRender", "pointsExchangeCouponRender", "gotocartRender", "addtocartRender", "productRender", "signupRender", "addtocartHandler", "style", "className", "lang", "autoTipOpen", "autoTipClose", "openTip", "setOpenTip", "openPopup", "setOpenPopup", "start", "setstart", "currentSuggestions", "setCurrentSuggestions", "history", "sethistory", "headers", "getStart", "result", "item", "getSuggestions", "setOpenTipFn", "timer", "load", "messages", "inProgress", "open", "setOpenDefault", "Button", "setOpen", "chat_default"]
4
+ "sourcesContent": ["/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useMemo } 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 shopifyDomain: string\n /** GA \u7684 client id\n */\n userId: 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 /** \u5F00\u573A\u767D\n */\n prologue?: 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 /** messages \u7684\u56DE\u8C03\u4E8B\u4EF6\n * \u6BCF\u6B21\u751F\u6210/\u63A5\u53D7\u65B0\u7684messages\uFF0C\u4F1A\u5C06 \u6574\u4E2A messages list \u4F20\u9012\u7ED9\u5916\u90E8\n */\n messagesCallback?: (_messages: any) => void\n /** \u901A\u7528 action \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n commonRender?: string | ((_props: any) => React.ReactElement)\n /** shulex\u7684 action \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n shulexRender?: string | ((_props: any) => React.ReactElement)\n /** \u901A\u7528 \u79EF\u5206 \u6362 Coupon \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement)\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 /** \u6253\u5F00\u8D2D\u7269\u8F66 action \u7684\u89E6\u53D1\u4E8B\u4EF6\n */\n addtocartHandler?: (_args: any) => Promise<any>\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 /** \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 /** \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 /** CopilotPopup \u81EA\u5B9A\u4E49\u53C2\u6570\uFF0C\u53C2\u8003\uFF1Ahttps://docs.copilotkit.ai/reference/components/CopilotPopup */\n popup?: any\n /** \u6587\u6848\uFF0C{\"productRenderTipMessage\": \"\",\"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 shopifyDomain,\n userId = '',\n account = '',\n prologue = '',\n locale = '',\n query = '',\n messagesCallback,\n showResponseButton,\n gotocheckoutRender,\n commonRender,\n shulexRender,\n pointsExchangeCouponRender,\n gotocartRender,\n addtocartRender,\n productRender,\n signupRender,\n addtocartHandler,\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(prologue)\n const [currentSuggestions, setCurrentSuggestions] = useState([])\n const [history, sethistory] = useState<[{ content: string; role: string }] | []>([])\n\n const headers = useMemo(\n () => ({\n 'x-user-id': userId || '',\n 'x-shopify-domain': shopifyDomain,\n 'x-member-ship': account,\n 'x-user-locale': locale,\n }),\n [userId, shopifyDomain, account, locale]\n )\n\n const getStart = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/start${query}`,\n method: 'GET',\n headers,\n })\n\n setCurrentSuggestions(result?.suggested_questions?.map((item: string) => ({ message: item, title: item })) || [])\n setstart(result?.opening_statement || '')\n sethistory(result?.history || [])\n }, [userId, shopifyDomain, account, locale, query])\n\n const getSuggestions = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/suggested_questions${query}`,\n method: 'GET',\n headers,\n })\n\n setCurrentSuggestions(\n result?.suggested_questions?.data?.map((item: string) => ({ message: item, title: item })) || []\n )\n }, [userId, shopifyDomain, account, locale, query])\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 return (\n <div className={className} style={style || {}}>\n {userId && runtimeUrl && (\n <CopilotKit runtimeUrl={`${runtimeUrl}/copilotkit/chat${query}`} showDevConsole={false} headers={headers}>\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 messagesCallback={messagesCallback}\n ResponseButton={showResponseButton === 'follow' ? <ResponseButton /> : undefined}\n >\n <Suggestions currentSuggestions={currentSuggestions} />\n </Messages>\n )}\n Button={({ open, setOpen: setOpenDefault }) => {\n const Button = popup?.Button || DefaultButton\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setOpenPopup(open)\n }, [open])\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const setOpen = useCallback(() => {\n setOpenDefault(!open)\n setOpenTip(false)\n if (!start || !history?.length) getStart()\n }, [start])\n\n return (\n <>\n {lang?.popupTip && openTip && !openPopup && (\n <div className=\"copilotKitPopup copilotKitPopupTip\">\n <button onClick={setOpen} aria-label=\"Open Chat\" className=\"copilotKitPopupTipContent\">\n {lang?.popupTip}\n </button>\n </div>\n )}\n <Button open={open} setOpen={setOpen} />\n </>\n )\n }}\n >\n <CopilotAction\n start={start}\n history={history}\n commonRender={commonRender}\n shulexRender={shulexRender}\n pointsExchangeCouponRender={pointsExchangeCouponRender}\n gotocartRender={gotocartRender}\n gotocheckoutRender={gotocheckoutRender}\n addtocartRender={addtocartRender}\n signupRender={signupRender}\n productRender={productRender}\n addtocartHandler={addtocartHandler}\n productRenderTipMessage={lang?.productRenderTipMessage}\n />\n </CopilotPopup>\n </CopilotKit>\n )}\n </div>\n )\n}\n\nexport default Chat\n"],
5
+ "mappings": "AA2LkE,OAoBlD,YAAAA,GApBkD,OAAAC,EAoBlD,QAAAC,OApBkD,oBA1LlE,OAAgB,WAAAC,MAAe,QAC/B,OAAS,eAAAC,EAAa,YAAAC,EAAU,aAAAC,MAAiB,QACjD,OAAS,cAAAC,MAAkB,yBAC3B,OAAS,gBAAAC,MAAoB,uBAC7B,OAAOC,MAAmB,cAC1B,OAAOC,MAAc,gBACrB,OAAOC,OAAoB,gBAC3B,OAAOC,OAAiB,mBACxB,OAAS,iBAAAC,OAAqB,cAC9B,OAAOC,MAAa,2BAuEpB,MAAMC,GAAQC,GAAqB,CACjC,KAAM,CACJ,MAAAC,EACA,WAAAC,EACA,MAAAC,EACA,cAAAC,EACA,OAAAC,EAAS,GACT,QAAAC,EAAU,GACV,SAAAC,EAAW,GACX,OAAAC,EAAS,GACT,MAAAC,EAAQ,GACR,iBAAAC,EACA,mBAAAC,EACA,mBAAAC,EACA,aAAAC,EACA,aAAAC,EACA,2BAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,MAAAC,EACA,UAAAC,EAAY,GACZ,KAAAC,CACF,EAAIvB,EACE,CAACwB,EAAaC,CAAY,EAAIF,GAAM,iBAAmB,CAAC,IAAM,GAAI,EAElE,CAACG,EAASC,CAAU,EAAItC,EAAS,EAAK,EACtC,CAACuC,EAAWC,CAAY,EAAIxC,EAAS,EAAK,EAC1C,CAACyC,EAAOC,CAAQ,EAAI1C,EAASkB,CAAQ,EACrC,CAACyB,EAAoBC,CAAqB,EAAI5C,EAAS,CAAC,CAAC,EACzD,CAAC6C,EAASC,CAAU,EAAI9C,EAAmD,CAAC,CAAC,EAE7E+C,EAAUjD,EACd,KAAO,CACL,YAAakB,GAAU,GACvB,mBAAoBD,EACpB,gBAAiBE,EACjB,gBAAiBE,CACnB,GACA,CAACH,EAAQD,EAAeE,EAASE,CAAM,CACzC,EAEM6B,EAAWjD,EAAY,SAAY,CACvC,MAAMkD,EAAS,MAAMxC,EAAQ,CAC3B,IAAK,GAAGI,CAAU,oBAAoBO,CAAK,GAC3C,OAAQ,MACR,QAAA2B,CACF,CAAC,EAEDH,EAAsBK,GAAQ,qBAAqB,IAAKC,IAAkB,CAAE,QAASA,EAAM,MAAOA,CAAK,EAAE,GAAK,CAAC,CAAC,EAChHR,EAASO,GAAQ,mBAAqB,EAAE,EACxCH,EAAWG,GAAQ,SAAW,CAAC,CAAC,CAClC,EAAG,CAACjC,EAAQD,EAAeE,EAASE,EAAQC,CAAK,CAAC,EAE5C+B,EAAiBpD,EAAY,SAAY,CAC7C,MAAMkD,EAAS,MAAMxC,EAAQ,CAC3B,IAAK,GAAGI,CAAU,kCAAkCO,CAAK,GACzD,OAAQ,MACR,QAAA2B,CACF,CAAC,EAEDH,EACEK,GAAQ,qBAAqB,MAAM,IAAKC,IAAkB,CAAE,QAASA,EAAM,MAAOA,CAAK,EAAE,GAAK,CAAC,CACjG,CACF,EAAG,CAAClC,EAAQD,EAAeE,EAASE,EAAQC,CAAK,CAAC,EAE5CgC,EAAe,IAAM,CACpBf,GAASC,EAAW,EAAI,EAC7B,WAAW,IAAM,CACfA,EAAW,EAAK,CAClB,EAAGF,CAAY,CACjB,EAEA,OAAAnC,EAAU,IAAM,CACd,MAAMoD,EAAQ,WAAW,IAAM,CAC7BD,EAAa,CACf,EAAGjB,CAAW,EAEd,MAAO,IAAM,CACX,aAAakB,CAAK,CACpB,CACF,EAAG,CAAC,CAAC,EAGHzD,EAAC,OAAI,UAAWqC,EAAW,MAAOD,GAAS,CAAC,EACzC,SAAAhB,GAAUH,GACTjB,EAACM,EAAA,CAAW,WAAY,GAAGW,CAAU,mBAAmBO,CAAK,GAAI,eAAgB,GAAO,QAAS2B,EAC/F,SAAAnD,EAACO,EAAA,CACE,GAAGW,EACJ,mBAAoBQ,IAAuB,SAC3C,OAAQ,CACN,MAAOV,GAAS,gBAChB,QAAS6B,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,IAChC5D,EAACS,EAAA,CACC,SAAUkD,EACV,WAAYC,EACZ,iBAAkBnC,EAClB,eAAgBC,IAAuB,SAAW1B,EAACU,GAAA,EAAe,EAAK,OAEvE,SAAAV,EAACW,GAAA,CAAY,mBAAoBoC,EAAoB,EACvD,EAEF,OAAQ,CAAC,CAAE,KAAAc,EAAM,QAASC,CAAe,IAAM,CAC7C,MAAMC,EAAS7C,GAAO,QAAUV,EAEhCH,EAAU,IAAM,CACduC,EAAaiB,CAAI,CACnB,EAAG,CAACA,CAAI,CAAC,EAGT,MAAMG,EAAU7D,EAAY,IAAM,CAChC2D,EAAe,CAACD,CAAI,EACpBnB,EAAW,EAAK,GACZ,CAACG,GAAS,CAACI,GAAS,SAAQG,EAAS,CAC3C,EAAG,CAACP,CAAK,CAAC,EAEV,OACE5C,GAAAF,GAAA,CACG,UAAAuC,GAAM,UAAYG,GAAW,CAACE,GAC7B3C,EAAC,OAAI,UAAU,qCACb,SAAAA,EAAC,UAAO,QAASgE,EAAS,aAAW,YAAY,UAAU,4BACxD,SAAA1B,GAAM,SACT,EACF,EAEFtC,EAAC+D,EAAA,CAAO,KAAMF,EAAM,QAASG,EAAS,GACxC,CAEJ,EAEA,SAAAhE,EAACY,GAAA,CACC,MAAOiC,EACP,QAASI,EACT,aAAcrB,EACd,aAAcC,EACd,2BAA4BC,EAC5B,eAAgBC,EAChB,mBAAoBJ,EACpB,gBAAiBK,EACjB,aAAcE,EACd,cAAeD,EACf,iBAAkBE,EAClB,wBAAyBG,GAAM,wBACjC,EACF,EACF,EAEJ,CAEJ,EAEA,IAAO2B,GAAQnD",
6
+ "names": ["Fragment", "jsx", "jsxs", "useMemo", "useCallback", "useState", "useEffect", "CopilotKit", "CopilotPopup", "DefaultButton", "Messages", "ResponseButton", "Suggestions", "CopilotAction", "fetcher", "Chat", "props", "title", "runtimeUrl", "popup", "shopifyDomain", "userId", "account", "prologue", "locale", "query", "messagesCallback", "showResponseButton", "gotocheckoutRender", "commonRender", "shulexRender", "pointsExchangeCouponRender", "gotocartRender", "addtocartRender", "productRender", "signupRender", "addtocartHandler", "style", "className", "lang", "autoTipOpen", "autoTipClose", "openTip", "setOpenTip", "openPopup", "setOpenPopup", "start", "setstart", "currentSuggestions", "setCurrentSuggestions", "history", "sethistory", "headers", "getStart", "result", "item", "getSuggestions", "setOpenTipFn", "timer", "load", "messages", "inProgress", "open", "setOpenDefault", "Button", "setOpen", "chat_default"]
7
7
  }
@@ -1,2 +1,3 @@
1
1
  import { useCopilotChat, useCopilotAction, useCopilotReadable } from '@copilotkit/react-core';
2
- export { useCopilotChat, useCopilotAction, useCopilotReadable };
2
+ import { Role, ActionExecutionMessage, TextMessage } from '@copilotkit/runtime-client-gql';
3
+ export { useCopilotChat, useCopilotAction, useCopilotReadable, Role, ActionExecutionMessage, TextMessage };
@@ -1,2 +1,2 @@
1
- import{useCopilotChat as o,useCopilotAction as t,useCopilotReadable as e}from"@copilotkit/react-core";export{t as useCopilotAction,o as useCopilotChat,e as useCopilotReadable};
1
+ import{useCopilotChat as o,useCopilotAction as e,useCopilotReadable as t}from"@copilotkit/react-core";import{Role as i,ActionExecutionMessage as s,TextMessage as p}from"@copilotkit/runtime-client-gql";export{s as ActionExecutionMessage,i as Role,p as TextMessage,e as useCopilotAction,o as useCopilotChat,t as useCopilotReadable};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/chat/utils.ts"],
4
- "sourcesContent": ["import { useCopilotChat, useCopilotAction, useCopilotReadable } from '@copilotkit/react-core'\n\nexport { useCopilotChat, useCopilotAction, useCopilotReadable }\n"],
5
- "mappings": "AAAA,OAAS,kBAAAA,EAAgB,oBAAAC,EAAkB,sBAAAC,MAA0B",
6
- "names": ["useCopilotChat", "useCopilotAction", "useCopilotReadable"]
4
+ "sourcesContent": ["import { useCopilotChat, useCopilotAction, useCopilotReadable } from '@copilotkit/react-core'\nimport { Role, ActionExecutionMessage, TextMessage } from '@copilotkit/runtime-client-gql'\n\nexport { useCopilotChat, useCopilotAction, useCopilotReadable, Role, ActionExecutionMessage, TextMessage }\n"],
5
+ "mappings": "AAAA,OAAS,kBAAAA,EAAgB,oBAAAC,EAAkB,sBAAAC,MAA0B,yBACrE,OAAS,QAAAC,EAAM,0BAAAC,EAAwB,eAAAC,MAAmB",
6
+ "names": ["useCopilotChat", "useCopilotAction", "useCopilotReadable", "Role", "ActionExecutionMessage", "TextMessage"]
7
7
  }
@@ -1,2 +1,2 @@
1
1
  export { default as Chat } from './chat/index.js';
2
- export { useCopilotChat, useCopilotAction, useCopilotReadable } from './chat/utils.js';
2
+ export { Role, ActionExecutionMessage, TextMessage, useCopilotChat, useCopilotAction, useCopilotReadable, } from './chat/utils.js';
@@ -1,2 +1,2 @@
1
- import{default as e}from"./chat/index.js";import{useCopilotChat as l,useCopilotAction as p,useCopilotReadable as C}from"./chat/utils.js";export{e as Chat,p as useCopilotAction,l as useCopilotChat,C as useCopilotReadable};
1
+ import{default as t}from"./chat/index.js";import{Role as s,ActionExecutionMessage as i,TextMessage as l,useCopilotChat as p,useCopilotAction as u,useCopilotReadable as C}from"./chat/utils.js";export{i as ActionExecutionMessage,t as Chat,s as Role,l as TextMessage,u as useCopilotAction,p as useCopilotChat,C as useCopilotReadable};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/index.ts"],
4
- "sourcesContent": ["// eslint-disable-next-line import/extensions\n\nexport { default as Chat } from './chat/index.js'\n\nexport { useCopilotChat, useCopilotAction, useCopilotReadable } from './chat/utils.js'\n"],
5
- "mappings": "AAEA,OAAoB,WAAXA,MAAuB,kBAEhC,OAAS,kBAAAC,EAAgB,oBAAAC,EAAkB,sBAAAC,MAA0B",
6
- "names": ["default", "useCopilotChat", "useCopilotAction", "useCopilotReadable"]
4
+ "sourcesContent": ["// eslint-disable-next-line import/extensions\n\nexport { default as Chat } from './chat/index.js'\n\nexport {\n Role,\n ActionExecutionMessage,\n TextMessage,\n useCopilotChat,\n useCopilotAction,\n useCopilotReadable,\n} from './chat/utils.js'\n"],
5
+ "mappings": "AAEA,OAAoB,WAAXA,MAAuB,kBAEhC,OACE,QAAAC,EACA,0BAAAC,EACA,eAAAC,EACA,kBAAAC,EACA,oBAAAC,EACA,sBAAAC,MACK",
6
+ "names": ["default", "Role", "ActionExecutionMessage", "TextMessage", "useCopilotChat", "useCopilotAction", "useCopilotReadable"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anker-in/campaign-ui",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "type": "commonjs",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/cjs/index.d.ts",
@@ -21,6 +21,7 @@ export interface ActionProps {
21
21
  gotocartRender?: string | ((_props: any) => React.ReactElement)
22
22
  addtocartRender?: string | ((_props: any) => React.ReactElement)
23
23
  signupRender?: string | ((_props: any) => React.ReactElement)
24
+ shulexRender?: string | ((_props: any) => React.ReactElement)
24
25
  productRender?: string | ((_props: any) => React.ReactElement)
25
26
  productRenderTipMessage?: string
26
27
  children?: React.ReactNode
@@ -37,6 +38,7 @@ export const CopilotAction = ({
37
38
  addtocartRender,
38
39
  productRender,
39
40
  signupRender,
41
+ shulexRender,
40
42
  children,
41
43
  }: ActionProps) => {
42
44
  const { setMessages, appendMessage, isLoading } = useCopilotChat()
@@ -118,7 +120,7 @@ export const CopilotAction = ({
118
120
  parameters: [{ sku: '', handle: '' }] as any,
119
121
  render: productRender || (props => <div className="hidden">{JSON.stringify(props)}</div>),
120
122
  handler: function (props) {
121
- console.log('show_product_card-props', props)
123
+ // console.log('show_product_card-props', props)
122
124
  // const ishistory = props?.find((item: { ishistory: any }) => item?.ishistory)
123
125
  // if (!ishistory) {
124
126
  // const content = new TextMessage({
@@ -144,6 +146,20 @@ export const CopilotAction = ({
144
146
  },
145
147
  })
146
148
 
149
+ useCopilotAction({
150
+ name: 'shulex',
151
+ description: 'shulex',
152
+ parameters: [
153
+ {
154
+ name: 'shulex',
155
+ },
156
+ ] as any,
157
+ render: shulexRender || (props => <div className="hidden">{JSON.stringify(props)}</div>),
158
+ handler: function () {
159
+ // console.log('shulex-props', props)
160
+ },
161
+ })
162
+
147
163
  useCopilotReadable({
148
164
  description: "Today's date",
149
165
  value: new Date().toLocaleDateString(),
@@ -41,6 +41,9 @@ export interface ChatProps {
41
41
  /** 通用 action 的触发事件
42
42
  */
43
43
  commonRender?: string | ((_props: any) => React.ReactElement)
44
+ /** shulex的 action 的触发事件
45
+ */
46
+ shulexRender?: string | ((_props: any) => React.ReactElement)
44
47
  /** 通用 积分 换 Coupon 的触发事件
45
48
  */
46
49
  pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement)
@@ -91,6 +94,7 @@ const Chat = (props: ChatProps) => {
91
94
  showResponseButton,
92
95
  gotocheckoutRender,
93
96
  commonRender,
97
+ shulexRender,
94
98
  pointsExchangeCouponRender,
95
99
  gotocartRender,
96
100
  addtocartRender,
@@ -218,6 +222,7 @@ const Chat = (props: ChatProps) => {
218
222
  start={start}
219
223
  history={history}
220
224
  commonRender={commonRender}
225
+ shulexRender={shulexRender}
221
226
  pointsExchangeCouponRender={pointsExchangeCouponRender}
222
227
  gotocartRender={gotocartRender}
223
228
  gotocheckoutRender={gotocheckoutRender}
@@ -1,3 +1,4 @@
1
1
  import { useCopilotChat, useCopilotAction, useCopilotReadable } from '@copilotkit/react-core'
2
+ import { Role, ActionExecutionMessage, TextMessage } from '@copilotkit/runtime-client-gql'
2
3
 
3
- export { useCopilotChat, useCopilotAction, useCopilotReadable }
4
+ export { useCopilotChat, useCopilotAction, useCopilotReadable, Role, ActionExecutionMessage, TextMessage }
@@ -2,4 +2,11 @@
2
2
 
3
3
  export { default as Chat } from './chat/index.js'
4
4
 
5
- export { useCopilotChat, useCopilotAction, useCopilotReadable } from './chat/utils.js'
5
+ export {
6
+ Role,
7
+ ActionExecutionMessage,
8
+ TextMessage,
9
+ useCopilotChat,
10
+ useCopilotAction,
11
+ useCopilotReadable,
12
+ } from './chat/utils.js'