@next-bricks/ai-portal 0.39.6 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/bricks.json +29 -16
  2. package/dist/chunks/3506.da6e43af.js +2 -0
  3. package/dist/chunks/3506.da6e43af.js.map +1 -0
  4. package/dist/chunks/3554.65e56ba5.js +2 -0
  5. package/dist/chunks/3554.65e56ba5.js.map +1 -0
  6. package/dist/chunks/{382.673901e0.js → 382.d2e3f46f.js} +2 -2
  7. package/dist/chunks/382.d2e3f46f.js.map +1 -0
  8. package/dist/chunks/453.e0c39d75.js +2 -0
  9. package/dist/chunks/453.e0c39d75.js.map +1 -0
  10. package/dist/chunks/{4837.ef36f6e2.js → 4837.e8c87fc9.js} +2 -2
  11. package/dist/chunks/{4837.ef36f6e2.js.map → 4837.e8c87fc9.js.map} +1 -1
  12. package/dist/chunks/6862.32630cc8.js +3 -0
  13. package/dist/chunks/6862.32630cc8.js.map +1 -0
  14. package/dist/chunks/7493.b181babb.js +2 -0
  15. package/dist/chunks/7493.b181babb.js.map +1 -0
  16. package/dist/chunks/7774.505f9191.js +2 -0
  17. package/dist/chunks/7774.505f9191.js.map +1 -0
  18. package/dist/chunks/8176.2a3975e1.js +2 -0
  19. package/dist/chunks/8176.2a3975e1.js.map +1 -0
  20. package/dist/chunks/9535.ff0f82a1.js +3 -0
  21. package/dist/chunks/9535.ff0f82a1.js.map +1 -0
  22. package/dist/chunks/{7218.13c19b72.js → 9599.ffd509c6.js} +2 -2
  23. package/dist/chunks/{7218.13c19b72.js.map → 9599.ffd509c6.js.map} +1 -1
  24. package/dist/chunks/activity-timeline.a7da73e9.js +2 -0
  25. package/dist/chunks/activity-timeline.a7da73e9.js.map +1 -0
  26. package/dist/chunks/chat-box.37df7bc1.js +2 -0
  27. package/dist/chunks/chat-box.37df7bc1.js.map +1 -0
  28. package/dist/chunks/chat-input.2bd1c748.js +3 -0
  29. package/dist/chunks/chat-input.2bd1c748.js.map +1 -0
  30. package/dist/chunks/goal-card-list.9866674c.js +3 -0
  31. package/dist/chunks/goal-card-list.9866674c.js.map +1 -0
  32. package/dist/chunks/main.1b2393f2.js +2 -0
  33. package/dist/chunks/{main.70faece8.js.map → main.1b2393f2.js.map} +1 -1
  34. package/dist/chunks/preview-container.fa54ae91.js +2 -0
  35. package/dist/chunks/preview-container.fa54ae91.js.map +1 -0
  36. package/dist/chunks/project-conversations.d4771579.js +3 -0
  37. package/dist/chunks/project-conversations.d4771579.js.map +1 -0
  38. package/dist/chunks/project-knowledges.e5845df3.js +3 -0
  39. package/dist/chunks/project-knowledges.e5845df3.js.LICENSE.txt +5 -0
  40. package/dist/chunks/project-knowledges.e5845df3.js.map +1 -0
  41. package/dist/examples.json +9 -3
  42. package/dist/index.890818f5.js +2 -0
  43. package/dist/index.890818f5.js.map +1 -0
  44. package/dist/manifest.json +208 -135
  45. package/dist/types.json +1112 -37
  46. package/dist-types/activity-timeline/i18n.d.ts +25 -0
  47. package/dist-types/activity-timeline/index.d.ts +16 -0
  48. package/dist-types/activity-timeline/index.spec.d.ts +1 -0
  49. package/dist-types/activity-timeline/interfaces.d.ts +85 -0
  50. package/dist-types/bootstrap.d.ts +2 -0
  51. package/dist-types/chat-box/index.d.ts +1 -5
  52. package/dist-types/chat-input/i18n.d.ts +15 -0
  53. package/dist-types/chat-input/index.d.ts +30 -0
  54. package/dist-types/chat-input/index.spec.d.ts +1 -0
  55. package/dist-types/chat-stream/useConversationStream.d.ts +0 -2
  56. package/dist-types/chat-stream/useTaskStream.d.ts +0 -1
  57. package/dist-types/cruise-canvas/NodeJob/NodeJob.d.ts +2 -1
  58. package/dist-types/cruise-canvas/interfaces.d.ts +3 -1
  59. package/dist-types/cruise-canvas/useConversationDetail.d.ts +1 -1
  60. package/dist-types/cruise-canvas/useTaskDetail.d.ts +1 -1
  61. package/dist-types/goal-card-list/CardItem/CardItem.d.ts +1 -1
  62. package/dist-types/project-conversations/index.d.ts +7 -1
  63. package/dist-types/project-knowledges/index.d.ts +4 -3
  64. package/dist-types/shared/ChatBox/ChatBox.d.ts +1 -2
  65. package/dist-types/shared/ChatBox/i18n.d.ts +2 -6
  66. package/dist-types/shared/RequestHumanAction/RequestHumanAction.d.ts +4 -0
  67. package/dist-types/shared/TaskContext.d.ts +1 -1
  68. package/dist-types/shared/bricks.d.ts +2 -0
  69. package/dist-types/shared/interfaces.d.ts +3 -3
  70. package/docs/activity-timeline.md +54 -0
  71. package/docs/chat-input.md +9 -0
  72. package/package.json +2 -2
  73. package/dist/chunks/1967.118ab1ff.js +0 -2
  74. package/dist/chunks/1967.118ab1ff.js.map +0 -1
  75. package/dist/chunks/3554.d27ba6a7.js +0 -2
  76. package/dist/chunks/3554.d27ba6a7.js.map +0 -1
  77. package/dist/chunks/382.673901e0.js.map +0 -1
  78. package/dist/chunks/453.bb828a7c.js +0 -2
  79. package/dist/chunks/453.bb828a7c.js.map +0 -1
  80. package/dist/chunks/4994.58c51a7a.js +0 -2
  81. package/dist/chunks/4994.58c51a7a.js.map +0 -1
  82. package/dist/chunks/6977.3f6d97bc.js +0 -3
  83. package/dist/chunks/6977.3f6d97bc.js.map +0 -1
  84. package/dist/chunks/71.d73556e8.js +0 -2
  85. package/dist/chunks/71.d73556e8.js.map +0 -1
  86. package/dist/chunks/7774.4418c30b.js +0 -2
  87. package/dist/chunks/7774.4418c30b.js.map +0 -1
  88. package/dist/chunks/8794.dc43f083.js +0 -3
  89. package/dist/chunks/8794.dc43f083.js.map +0 -1
  90. package/dist/chunks/chat-box.95d5030b.js +0 -2
  91. package/dist/chunks/chat-box.95d5030b.js.map +0 -1
  92. package/dist/chunks/goal-card-list.3808c3ae.js +0 -3
  93. package/dist/chunks/goal-card-list.3808c3ae.js.map +0 -1
  94. package/dist/chunks/main.70faece8.js +0 -2
  95. package/dist/chunks/preview-container.260a045a.js +0 -2
  96. package/dist/chunks/preview-container.260a045a.js.map +0 -1
  97. package/dist/chunks/project-conversations.972403a2.js +0 -3
  98. package/dist/chunks/project-conversations.972403a2.js.map +0 -1
  99. package/dist/chunks/project-knowledges.a65a0602.js +0 -3
  100. package/dist/chunks/project-knowledges.a65a0602.js.map +0 -1
  101. package/dist/index.910aa848.js +0 -2
  102. package/dist/index.910aa848.js.map +0 -1
  103. /package/dist/chunks/{6977.3f6d97bc.js.LICENSE.txt → 6862.32630cc8.js.LICENSE.txt} +0 -0
  104. /package/dist/chunks/{8794.dc43f083.js.LICENSE.txt → 9535.ff0f82a1.js.LICENSE.txt} +0 -0
  105. /package/dist/chunks/{goal-card-list.3808c3ae.js.LICENSE.txt → chat-input.2bd1c748.js.LICENSE.txt} +0 -0
  106. /package/dist/chunks/{project-conversations.972403a2.js.LICENSE.txt → goal-card-list.9866674c.js.LICENSE.txt} +0 -0
  107. /package/dist/chunks/{project-knowledges.a65a0602.js.LICENSE.txt → project-conversations.d4771579.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[4837,7218],{64837:(e,r,t)=>{t.r(r),t.d(r,{ReactUseBrick:()=>s,ReactUseMultipleBricks:()=>u,asyncWrapBrick:()=>k,useCurrentApp:()=>l,useCurrentTheme:()=>o,useLazyWrapBrick:()=>h,useNavConfig:()=>_,useProvider:()=>m,useRecentApps:()=>i,useRouteRender:()=>d});var n=t(18769),c=t(29475);let s=function(e){let{useBrick:r,data:t,errorBoundary:s,refCallback:u,ignoredCallback:a}=e;const[o,i]=(0,n.useState)(null),l=(0,n.useRef)(),[d,f]=(0,n.useState)(),p=(0,n.useRef)(0),g=(0,n.useMemo)((()=>{var e;return null===(e=c.__secret_internals.getRenderId)||void 0===e?void 0:e.call(c.__secret_internals)}),[]);(0,n.useEffect)((()=>{let e=!1;return async function(){try{const n=await c.__secret_internals.renderUseBrick(r,t,s);if(e)return;i(n),f(++p.current)}catch(n){!e&&function(e){var r;const t=null===(r=c.__secret_internals.getRenderId)||void 0===r?void 0:r.call(c.__secret_internals);return!e||!t||e===t}(g)&&(console.error("Render useBrick failed:",r,"with data:",t),(0,c.handleHttpError)(n))}}(),()=>{e=!0}}),[t,r,g,s]);const y=(0,n.useCallback)((e=>{e?l.current=c.__secret_internals.mountUseBrick(o,e):(c.__secret_internals.unmountUseBrick(o,l.current),l.current=void 0),null==u||u(e)}),[u,o]);if(!o)return null;const{tagName:m}=o;if(null===m)return null==a||a(),null;const v=m;return n.createElement(v,{key:d,ref:y})},u=function(e){let{useBrick:r,data:t,errorBoundary:c}=e;return Array.isArray(r)?n.createElement(n.Fragment,null,r.map(((e,r)=>n.createElement(s,{key:r,useBrick:e,data:t,errorBoundary:c})))):n.createElement(s,{useBrick:r,data:t,errorBoundary:c})};const a=(0,c.getV2RuntimeFromDll)();if(a){const{SingleBrickAsComponentFactory:e,BrickAsComponentFactory:r}=a;e&&r&&(s=e(n),u=r(n))}function o(){const[e,r]=(0,n.useState)(c.getCurrentTheme);return(0,n.useEffect)((()=>{const e=e=>{r(e.detail)};return window.addEventListener("theme.change",e),()=>{window.removeEventListener("theme.change",e)}}),[]),e}function i(){const[e,r]=n.useState((()=>(0,c.getRuntime)().getRecentApps()));return n.useEffect((()=>{const e=e=>{r(e.detail)};return window.addEventListener("app.change",e),()=>window.removeEventListener("app.change",e)}),[]),e}function l(){return i().currentApp}function d(){const[e,r]=n.useState(null);return n.useEffect((()=>{const e=e=>{r(e.detail)};return window.addEventListener("route.render",e),()=>window.removeEventListener("route.render",e)}),[]),e}const f={provider:"",customOptions:{onError:()=>{},transform:(e,r)=>r,data:void 0,loading:!1,suspense:!1,cache:!0},dependencies:void 0},p=Object.entries(f).reduce(((e,r)=>{let[t,n]=r;return"[object Object]"===Object.prototype.toString.call(n)?{...e,...n}:{...e,[t]:n}}),{});var g=t(41030);const y=new Map;function m(){const{provider:e,customOptions:r,dependencies:t,requestInit:s}=function(e,r,t){const c=(0,n.useMemo)((()=>"string"==typeof e?e:f.provider),[e,r]),s=(0,n.useMemo)((()=>{let t={};return(0,g.isObject)(e)?t=e:(0,g.isObject)(r)&&(t=r),{...p,...t}}),[e,r]),u=(0,n.useMemo)((()=>{const e=[...Object.keys(f),...Object.keys(f.customOptions)],{args:r=null,...t}=Object.keys(s).reduce(((r,t)=>(e.includes(t)||(r[t]=s[t]),r)),{});return{options:{...t},args:r}}),[s]),a=(0,n.useMemo)((()=>Array.isArray(r)?r:Array.isArray(t)?t:p.dependencies),[r,t]),o=s.loading||Array.isArray(a);return{provider:c,customOptions:(0,n.useMemo)((()=>({...Object.keys(f.customOptions).reduce(((e,r)=>(e[r]=s[r],e)),{}),loading:o})),[s]),requestInit:u,dependencies:a}}(...arguments),{onError:u,transform:a,suspense:o,cache:i,...l}=r,[d,m]=(0,n.useState)(l.loading),v=(0,n.useRef)("pending"),k=(0,n.useRef)(),_=(0,n.useRef)(!1),h=(0,n.useRef)(),w=(0,n.useRef)(),b=(0,n.useRef)(l.data),B=(0,n.useReducer)((()=>({})),[])[1],E=(0,n.useCallback)((async(e,r)=>{try{h.current=void 0,o||m(!0);const t=await async function(e,r,t){let n;const s=function(e){const r=e=>Object.keys(e).sort().map((r=>({[r]:e[r]})));for(var t=arguments.length,n=new Array(t>1?t-1:0),c=1;c<t;c++)n[c-1]=arguments[c];try{const t="object"!=typeof(s=n)||null===s||Array.isArray(s)?n.map((e=>function(e){return"string"==typeof e}(e)?e:r(e))):r(n);return JSON.stringify({provider:e,args:t})}catch(r){return JSON.stringify({provider:e,args:n})}var s}(e,...t);return!r&&y.has(s)&&y.delete(s),y.has(s)?n=y.get(s):(n=(0,c.fetchByProvider)(e,t,{cache:r?"default":"reload"}),r&&y.set(s,n)),n}(e,i,r);w.current=t,b.current=a(b.current,t)}catch(e){h.current=e,b.current=void 0}return o||m(!1),h.current&&u(h.current),b.current}),[e,r,t,s,o,a,l.data,u,i]),O=(0,n.useCallback)((async(r,t)=>{let n=e,c=[];return(0,g.isString)(r)&&(n=r),(0,g.isObject)(r)?c=r:(0,g.isObject)(t)&&(c=t),o?(async()=>(k.current=E(n,c).then((e=>(v.current="success",e)),(e=>(v.current="error",e.current=e,e))),B(),await k.current))():E(n,c)}),[E]),R=(0,n.useMemo)((()=>Object.defineProperties({query:O},{loading:{get:()=>d},data:{get:()=>b.current},error:{get:()=>h.current}})),[O]);if((0,n.useEffect)((()=>(_.current=!0,Array.isArray(t)&&e&&R.query(e,s.args),()=>_.current=!1)),t),o&&k.current)switch(v.current){case"pending":throw k.current;case"error":throw h.current}return Object.assign([R,w.current,d,h.current],{request:R,...R,response:w.current,data:b.current,loading:d,error:h.current})}var v=t(11280);async function k(e,r){return await c.__secret_internals.loadBricks([e]),(0,v.wrapBrick)(e,r)}function _(){const[e,r]=(0,n.useState)((()=>(0,c.getRuntime)().getNavConfig()));return(0,n.useEffect)((()=>{const e=e=>{r(e.detail)};return window.addEventListener("navConfig.change",e),()=>window.removeEventListener("navConfig.change",e)}),[]),e}function h(e,r){return(0,n.useMemo)((()=>null!=e?(0,n.lazy)((async()=>({default:await k(e,r)}))):null),[e,r])}}}]);
2
- //# sourceMappingURL=7218.13c19b72.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[4837,9599],{64837:(e,r,t)=>{t.r(r),t.d(r,{ReactUseBrick:()=>s,ReactUseMultipleBricks:()=>u,asyncWrapBrick:()=>k,useCurrentApp:()=>l,useCurrentTheme:()=>o,useLazyWrapBrick:()=>h,useNavConfig:()=>_,useProvider:()=>m,useRecentApps:()=>i,useRouteRender:()=>d});var n=t(18769),c=t(29475);let s=function(e){let{useBrick:r,data:t,errorBoundary:s,refCallback:u,ignoredCallback:a}=e;const[o,i]=(0,n.useState)(null),l=(0,n.useRef)(),[d,f]=(0,n.useState)(),p=(0,n.useRef)(0),g=(0,n.useMemo)((()=>{var e;return null===(e=c.__secret_internals.getRenderId)||void 0===e?void 0:e.call(c.__secret_internals)}),[]);(0,n.useEffect)((()=>{let e=!1;return async function(){try{const n=await c.__secret_internals.renderUseBrick(r,t,s);if(e)return;i(n),f(++p.current)}catch(n){!e&&function(e){var r;const t=null===(r=c.__secret_internals.getRenderId)||void 0===r?void 0:r.call(c.__secret_internals);return!e||!t||e===t}(g)&&(console.error("Render useBrick failed:",r,"with data:",t),(0,c.handleHttpError)(n))}}(),()=>{e=!0}}),[t,r,g,s]);const y=(0,n.useCallback)((e=>{e?l.current=c.__secret_internals.mountUseBrick(o,e):(c.__secret_internals.unmountUseBrick(o,l.current),l.current=void 0),null==u||u(e)}),[u,o]);if(!o)return null;const{tagName:m}=o;if(null===m)return null==a||a(),null;const v=m;return n.createElement(v,{key:d,ref:y})},u=function(e){let{useBrick:r,data:t,errorBoundary:c}=e;return Array.isArray(r)?n.createElement(n.Fragment,null,r.map(((e,r)=>n.createElement(s,{key:r,useBrick:e,data:t,errorBoundary:c})))):n.createElement(s,{useBrick:r,data:t,errorBoundary:c})};const a=(0,c.getV2RuntimeFromDll)();if(a){const{SingleBrickAsComponentFactory:e,BrickAsComponentFactory:r}=a;e&&r&&(s=e(n),u=r(n))}function o(){const[e,r]=(0,n.useState)(c.getCurrentTheme);return(0,n.useEffect)((()=>{const e=e=>{r(e.detail)};return window.addEventListener("theme.change",e),()=>{window.removeEventListener("theme.change",e)}}),[]),e}function i(){const[e,r]=n.useState((()=>(0,c.getRuntime)().getRecentApps()));return n.useEffect((()=>{const e=e=>{r(e.detail)};return window.addEventListener("app.change",e),()=>window.removeEventListener("app.change",e)}),[]),e}function l(){return i().currentApp}function d(){const[e,r]=n.useState(null);return n.useEffect((()=>{const e=e=>{r(e.detail)};return window.addEventListener("route.render",e),()=>window.removeEventListener("route.render",e)}),[]),e}const f={provider:"",customOptions:{onError:()=>{},transform:(e,r)=>r,data:void 0,loading:!1,suspense:!1,cache:!0},dependencies:void 0},p=Object.entries(f).reduce(((e,r)=>{let[t,n]=r;return"[object Object]"===Object.prototype.toString.call(n)?{...e,...n}:{...e,[t]:n}}),{});var g=t(41030);const y=new Map;function m(){const{provider:e,customOptions:r,dependencies:t,requestInit:s}=function(e,r,t){const c=(0,n.useMemo)((()=>"string"==typeof e?e:f.provider),[e,r]),s=(0,n.useMemo)((()=>{let t={};return(0,g.isObject)(e)?t=e:(0,g.isObject)(r)&&(t=r),{...p,...t}}),[e,r]),u=(0,n.useMemo)((()=>{const e=[...Object.keys(f),...Object.keys(f.customOptions)],{args:r=null,...t}=Object.keys(s).reduce(((r,t)=>(e.includes(t)||(r[t]=s[t]),r)),{});return{options:{...t},args:r}}),[s]),a=(0,n.useMemo)((()=>Array.isArray(r)?r:Array.isArray(t)?t:p.dependencies),[r,t]),o=s.loading||Array.isArray(a);return{provider:c,customOptions:(0,n.useMemo)((()=>({...Object.keys(f.customOptions).reduce(((e,r)=>(e[r]=s[r],e)),{}),loading:o})),[s]),requestInit:u,dependencies:a}}(...arguments),{onError:u,transform:a,suspense:o,cache:i,...l}=r,[d,m]=(0,n.useState)(l.loading),v=(0,n.useRef)("pending"),k=(0,n.useRef)(),_=(0,n.useRef)(!1),h=(0,n.useRef)(),w=(0,n.useRef)(),b=(0,n.useRef)(l.data),B=(0,n.useReducer)((()=>({})),[])[1],E=(0,n.useCallback)((async(e,r)=>{try{h.current=void 0,o||m(!0);const t=await async function(e,r,t){let n;const s=function(e){const r=e=>Object.keys(e).sort().map((r=>({[r]:e[r]})));for(var t=arguments.length,n=new Array(t>1?t-1:0),c=1;c<t;c++)n[c-1]=arguments[c];try{const t="object"!=typeof(s=n)||null===s||Array.isArray(s)?n.map((e=>function(e){return"string"==typeof e}(e)?e:r(e))):r(n);return JSON.stringify({provider:e,args:t})}catch(r){return JSON.stringify({provider:e,args:n})}var s}(e,...t);return!r&&y.has(s)&&y.delete(s),y.has(s)?n=y.get(s):(n=(0,c.fetchByProvider)(e,t,{cache:r?"default":"reload"}),r&&y.set(s,n)),n}(e,i,r);w.current=t,b.current=a(b.current,t)}catch(e){h.current=e,b.current=void 0}return o||m(!1),h.current&&u(h.current),b.current}),[e,r,t,s,o,a,l.data,u,i]),O=(0,n.useCallback)((async(r,t)=>{let n=e,c=[];return(0,g.isString)(r)&&(n=r),(0,g.isObject)(r)?c=r:(0,g.isObject)(t)&&(c=t),o?(async()=>(k.current=E(n,c).then((e=>(v.current="success",e)),(e=>(v.current="error",e.current=e,e))),B(),await k.current))():E(n,c)}),[E]),R=(0,n.useMemo)((()=>Object.defineProperties({query:O},{loading:{get:()=>d},data:{get:()=>b.current},error:{get:()=>h.current}})),[O]);if((0,n.useEffect)((()=>(_.current=!0,Array.isArray(t)&&e&&R.query(e,s.args),()=>_.current=!1)),t),o&&k.current)switch(v.current){case"pending":throw k.current;case"error":throw h.current}return Object.assign([R,w.current,d,h.current],{request:R,...R,response:w.current,data:b.current,loading:d,error:h.current})}var v=t(11280);async function k(e,r){return await c.__secret_internals.loadBricks([e]),(0,v.wrapBrick)(e,r)}function _(){const[e,r]=(0,n.useState)((()=>(0,c.getRuntime)().getNavConfig()));return(0,n.useEffect)((()=>{const e=e=>{r(e.detail)};return window.addEventListener("navConfig.change",e),()=>window.removeEventListener("navConfig.change",e)}),[]),e}function h(e,r){return(0,n.useMemo)((()=>null!=e?(0,n.lazy)((async()=>({default:await k(e,r)}))):null),[e,r])}}}]);
2
+ //# sourceMappingURL=9599.ffd509c6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/7218.13c19b72.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/react-runtime/dist/esm/ReactUseBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentTheme.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRecentApps.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentApp.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRouteRender.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgsDefaults.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/fetch.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProvider.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgs.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/asyncWrapBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useNavConfig.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useLazyWrapBrick.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { __secret_internals, handleHttpError, getV2RuntimeFromDll } from \"@next-core/runtime\";\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nlet ReactUseBrick = function ReactUseBrick(_ref) {\n let {\n useBrick,\n data,\n errorBoundary,\n refCallback,\n ignoredCallback\n } = _ref;\n const [renderResult, setRenderResult] = useState(null);\n const mountResult = useRef();\n const [renderKey, setRenderKey] = useState();\n const IdCounterRef = useRef(0);\n const initialRenderId = useMemo(() => {\n var _secret_internals$ge;\n return (_secret_internals$ge = __secret_internals.getRenderId) === null || _secret_internals$ge === void 0 ? void 0 : _secret_internals$ge.call(__secret_internals);\n }, []);\n useEffect(() => {\n let ignore = false;\n async function init() {\n try {\n const newRender = await __secret_internals.renderUseBrick(useBrick, data, errorBoundary);\n if (ignore) {\n return;\n }\n setRenderResult(newRender);\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (!ignore && isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n }\n init();\n return () => {\n ignore = true;\n };\n }, [data, useBrick, initialRenderId, errorBoundary]);\n const _refCallback = useCallback(element => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(renderResult, element);\n } else {\n __secret_internals.unmountUseBrick(renderResult, mountResult.current);\n mountResult.current = undefined;\n }\n refCallback === null || refCallback === void 0 || refCallback(element);\n }, [refCallback, renderResult]);\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n const {\n tagName\n } = renderResult;\n if (tagName === null) {\n ignoredCallback === null || ignoredCallback === void 0 || ignoredCallback();\n return null;\n }\n const WebComponent = tagName;\n return /*#__PURE__*/React.createElement(WebComponent, {\n key: renderKey,\n ref: _refCallback\n });\n};\nfunction getUniqueId(ref) {\n return ++ref.current;\n}\nfunction isTheSameRender(initialRenderId) {\n var _secret_internals$ge2;\n const newRenderId = (_secret_internals$ge2 = __secret_internals.getRenderId) === null || _secret_internals$ge2 === void 0 ? void 0 : _secret_internals$ge2.call(__secret_internals);\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\n}\nlet ReactUseMultipleBricks = function ReactUseMultipleBricks(_ref2) {\n let {\n useBrick,\n data,\n errorBoundary\n } = _ref2;\n if (Array.isArray(useBrick)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(ReactUseBrick, {\n key: index,\n useBrick: item,\n data: data,\n errorBoundary: errorBoundary\n })));\n }\n return /*#__PURE__*/React.createElement(ReactUseBrick, {\n useBrick: useBrick,\n data: data,\n errorBoundary: errorBoundary\n });\n};\n\n// Make v3 bricks compatible with Brick Next v2.\n// istanbul ignore next\nconst v2Kit = getV2RuntimeFromDll();\n// istanbul ignore next\nif (v2Kit) {\n const {\n SingleBrickAsComponentFactory,\n BrickAsComponentFactory\n } = v2Kit;\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\nexport { ReactUseBrick, ReactUseMultipleBricks };\n//# sourceMappingURL=ReactUseBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getCurrentTheme } from \"@next-core/runtime\";\nexport function useCurrentTheme() {\n const [currentTheme, setCurrentTheme] = useState(getCurrentTheme);\n useEffect(() => {\n const listenToThemeChange = event => {\n setCurrentTheme(event.detail);\n };\n window.addEventListener(\"theme.change\", listenToThemeChange);\n return () => {\n window.removeEventListener(\"theme.change\", listenToThemeChange);\n };\n }, []);\n return currentTheme;\n}\n//# sourceMappingURL=useCurrentTheme.js.map","import React from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useRecentApps() {\n const [recentApps, setRecentApps] = React.useState(() => getRuntime().getRecentApps());\n React.useEffect(() => {\n const listener = event => {\n setRecentApps(event.detail);\n };\n window.addEventListener(\"app.change\", listener);\n return () => window.removeEventListener(\"app.change\", listener);\n }, []);\n return recentApps;\n}\n//# sourceMappingURL=useRecentApps.js.map","import { useRecentApps } from \"./useRecentApps.js\";\n\n/**\n * 获取当前所在微应用信息的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const app = useCurrentApp();\n * return <div>{app.id}</div>;\n * }\n * ```\n *\n * @returns 当前所在微应用的信息。\n */\nexport function useCurrentApp() {\n return useRecentApps().currentApp;\n}\n//# sourceMappingURL=useCurrentApp.js.map","import React from \"react\";\nexport function useRouteRender() {\n const [routeRender, setRouteRender] = React.useState(null);\n React.useEffect(() => {\n const listener = event => {\n setRouteRender(event.detail);\n };\n window.addEventListener(\"route.render\", listener);\n return () => window.removeEventListener(\"route.render\", listener);\n }, []);\n return routeRender;\n}\n//# sourceMappingURL=useRouteRender.js.map","export const useProviderArgsDefaults = {\n provider: \"\",\n customOptions: {\n onError: () => {\n /* Do nothing.. */\n },\n transform: (oldData, newData) => newData,\n data: undefined,\n loading: false,\n suspense: false,\n cache: true\n },\n dependencies: undefined\n};\nexport default Object.entries(useProviderArgsDefaults).reduce((acc, _ref) => {\n let [key, value] = _ref;\n if (Object.prototype.toString.call(value) === \"[object Object]\") return {\n ...acc,\n ...value\n };\n return {\n ...acc,\n [key]: value\n };\n}, {});\n//# sourceMappingURL=useProviderArgsDefaults.js.map","import { fetchByProvider } from \"@next-core/runtime\";\nconst cacheMap = new Map();\nfunction isObj(v) {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\nfunction isString(v) {\n return typeof v === \"string\";\n}\nfunction buildSortedCacheKey(provider) {\n const sortObj = obj => Object.keys(obj).sort().map(k => ({\n [k]: obj[k]\n }));\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n try {\n const sortedArgs = isObj(args) ? sortObj(args) : args.map(arg => isString(arg) ? arg : sortObj(arg));\n return JSON.stringify({\n provider,\n args: sortedArgs\n });\n } catch (e) {\n return JSON.stringify({\n provider,\n args\n });\n }\n}\nexport default async function fetch(provider, cache, args) {\n let promise;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const cacheKey = buildSortedCacheKey(provider, ...args);\n !cache && cacheMap.has(cacheKey) && cacheMap.delete(cacheKey);\n if (cacheMap.has(cacheKey)) {\n promise = cacheMap.get(cacheKey);\n } else {\n promise = (() => {\n return fetchByProvider(provider, args, {\n cache: cache ? \"default\" : \"reload\"\n });\n })();\n cache && cacheMap.set(cacheKey, promise);\n }\n return promise;\n}\n//# sourceMappingURL=fetch.js.map","import { useCallback, useEffect, useMemo, useReducer, useRef, useState } from \"react\";\nimport useProviderArgs from \"./useProviderArgs.js\";\nimport { isObject, isString } from \"lodash\";\nimport fetch from \"./fetch.js\";\nexport function useProvider() {\n const {\n provider,\n customOptions,\n dependencies,\n requestInit\n } = useProviderArgs(...arguments);\n const {\n onError,\n transform,\n suspense,\n cache,\n ...defaults\n } = customOptions;\n const [loading, setLoading] = useState(defaults.loading);\n const suspenseStatus = useRef(\"pending\");\n const suspender = useRef();\n const mounted = useRef(false);\n const error = useRef();\n const response = useRef();\n const data = useRef(defaults.data);\n const forceUpdate = useReducer(() => ({}), [])[1];\n const doFetch = useCallback(async (provider, providerArgs) => {\n try {\n error.current = undefined;\n if (!suspense) setLoading(true);\n const newRes = await fetch(provider, cache, providerArgs);\n response.current = newRes;\n data.current = transform(data.current, newRes);\n } catch (e) {\n error.current = e;\n data.current = undefined;\n }\n if (!suspense) setLoading(false);\n if (error.current) onError(error.current);\n return data.current;\n }, [provider, customOptions, dependencies, requestInit, suspense, transform, defaults.data, onError, cache]);\n const makeFetch = useCallback(async (providerOrBody, args) => {\n let providerStr = provider;\n let providerArgs = [];\n if (isString(providerOrBody)) {\n providerStr = providerOrBody;\n }\n if (isObject(providerOrBody)) {\n providerArgs = providerOrBody;\n } else if (isObject(args)) {\n providerArgs = args;\n }\n if (suspense) {\n return (async () => {\n suspender.current = doFetch(providerStr, providerArgs).then(newData => {\n suspenseStatus.current = \"success\";\n return newData;\n }, error => {\n /* istanbul ignore next */\n suspenseStatus.current = \"error\";\n error.current = error;\n return error;\n });\n forceUpdate();\n return await suspender.current;\n })();\n }\n return doFetch(providerStr, providerArgs);\n }, [doFetch]);\n const request = useMemo(() => Object.defineProperties({\n query: makeFetch\n }, {\n loading: {\n get() {\n return loading;\n }\n },\n data: {\n get() {\n return data.current;\n }\n },\n error: {\n get() {\n return error.current;\n }\n }\n }), [makeFetch]);\n\n // onMount/onUpdate\n useEffect(() => {\n mounted.current = true;\n if (Array.isArray(dependencies) && provider) {\n request.query(provider, requestInit.args);\n }\n return () => mounted.current = false;\n }, dependencies);\n if (suspense && suspender.current) {\n switch (suspenseStatus.current) {\n case \"pending\":\n throw suspender.current;\n /* istanbul ignore next */\n case \"error\":\n throw error.current;\n }\n }\n return Object.assign([request, response.current, loading, error.current], {\n request,\n ...request,\n response: response.current,\n data: data.current,\n loading,\n error: error.current\n });\n}\n//# sourceMappingURL=useProvider.js.map","import { useMemo } from \"react\";\nimport defaults, { useProviderArgsDefaults } from \"./useProviderArgsDefaults.js\";\nimport { isObject } from \"lodash\";\nexport default function useProviderArgs(providerOrParamsOrGlobalOptions, globalOptionsOrDeps, deps) {\n const provider = useMemo(() => {\n if (typeof providerOrParamsOrGlobalOptions === \"string\") {\n return providerOrParamsOrGlobalOptions;\n }\n return useProviderArgsDefaults.provider;\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const options = useMemo(() => {\n let localOptions = {};\n if (isObject(providerOrParamsOrGlobalOptions)) {\n localOptions = providerOrParamsOrGlobalOptions;\n } else if (isObject(globalOptionsOrDeps)) {\n localOptions = globalOptionsOrDeps;\n }\n return {\n ...defaults,\n ...localOptions\n };\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const requestInit = useMemo(() => {\n const customOptionKeys = [...Object.keys(useProviderArgsDefaults), ...Object.keys(useProviderArgsDefaults.customOptions)];\n const {\n args = null,\n ...restOptions\n } = Object.keys(options).reduce((acc, key) => {\n if (!customOptionKeys.includes(key)) acc[key] = options[key];\n return acc;\n }, {});\n return {\n options: {\n ...restOptions\n },\n args\n };\n }, [options]);\n const dependencies = useMemo(() => {\n if (Array.isArray(globalOptionsOrDeps)) return globalOptionsOrDeps;\n if (Array.isArray(deps)) return deps;\n return defaults.dependencies;\n }, [globalOptionsOrDeps, deps]);\n const loading = options.loading || Array.isArray(dependencies);\n const customOptions = useMemo(() => {\n const customOptionKeys = Object.keys(useProviderArgsDefaults.customOptions);\n const customOptions = customOptionKeys.reduce((opts, key) => {\n opts[key] = options[key];\n return opts;\n }, {});\n return {\n ...customOptions,\n loading\n };\n }, [options]);\n return {\n provider,\n customOptions,\n requestInit,\n dependencies\n };\n}\n//# sourceMappingURL=useProviderArgs.js.map","import { __secret_internals } from \"@next-core/runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\nexport async function asyncWrapBrick(brickName, eventsMapping) {\n await __secret_internals.loadBricks([brickName]);\n return wrapBrick(brickName, eventsMapping);\n}\n//# sourceMappingURL=asyncWrapBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useNavConfig() {\n const [navConfig, setNavConfig] = useState(() => getRuntime().getNavConfig());\n useEffect(() => {\n const listener = event => {\n setNavConfig(event.detail);\n };\n window.addEventListener(\"navConfig.change\", listener);\n return () => window.removeEventListener(\"navConfig.change\", listener);\n }, []);\n return navConfig;\n}\n//# sourceMappingURL=useNavConfig.js.map","import { lazy, useMemo } from \"react\";\nimport { asyncWrapBrick } from \"./asyncWrapBrick.js\";\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\nexport function useLazyWrapBrick(brickName, eventsMapping) {\n return useMemo(() => {\n if (brickName != null) {\n return /*#__PURE__*/lazy(async () => ({\n default: await asyncWrapBrick(brickName, eventsMapping)\n }));\n }\n return null;\n }, [brickName, eventsMapping]);\n}\n//# sourceMappingURL=useLazyWrapBrick.js.map"],"names":["ReactUseBrick","_ref","useBrick","data","errorBoundary","refCallback","ignoredCallback","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","initialRenderId","useMemo","_secret_internals$ge","__secret_internals","getRenderId","call","useEffect","ignore","async","newRender","renderUseBrick","current","error","_secret_internals$ge2","newRenderId","isTheSameRender","console","handleHttpError","init","_refCallback","useCallback","element","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","key","ref","ReactUseMultipleBricks","_ref2","Array","isArray","map","item","index","v2Kit","getV2RuntimeFromDll","SingleBrickAsComponentFactory","BrickAsComponentFactory","useCurrentTheme","currentTheme","setCurrentTheme","getCurrentTheme","listenToThemeChange","event","detail","window","addEventListener","removeEventListener","useRecentApps","recentApps","setRecentApps","getRuntime","getRecentApps","listener","useCurrentApp","currentApp","useRouteRender","routeRender","setRouteRender","useProviderArgsDefaults","provider","customOptions","onError","transform","oldData","newData","loading","suspense","cache","dependencies","Object","entries","reduce","acc","value","prototype","toString","cacheMap","Map","useProvider","requestInit","providerOrParamsOrGlobalOptions","globalOptionsOrDeps","deps","options","localOptions","isObject","customOptionKeys","keys","args","restOptions","includes","opts","useProviderArgs","arguments","defaults","setLoading","suspenseStatus","suspender","mounted","response","forceUpdate","useReducer","doFetch","providerArgs","newRes","promise","cacheKey","sortObj","obj","sort","k","_len","length","_key","sortedArgs","v","arg","isString","JSON","stringify","e","buildSortedCacheKey","has","delete","get","fetchByProvider","set","fetch","makeFetch","providerOrBody","providerStr","then","request","defineProperties","query","assign","asyncWrapBrick","brickName","eventsMapping","loadBricks","wrapBrick","useNavConfig","navConfig","setNavConfig","getNavConfig","useLazyWrapBrick","lazy","default"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/9599.ffd509c6.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/react-runtime/dist/esm/ReactUseBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentTheme.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRecentApps.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentApp.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRouteRender.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgsDefaults.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/fetch.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProvider.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgs.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/asyncWrapBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useNavConfig.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useLazyWrapBrick.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { __secret_internals, handleHttpError, getV2RuntimeFromDll } from \"@next-core/runtime\";\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nlet ReactUseBrick = function ReactUseBrick(_ref) {\n let {\n useBrick,\n data,\n errorBoundary,\n refCallback,\n ignoredCallback\n } = _ref;\n const [renderResult, setRenderResult] = useState(null);\n const mountResult = useRef();\n const [renderKey, setRenderKey] = useState();\n const IdCounterRef = useRef(0);\n const initialRenderId = useMemo(() => {\n var _secret_internals$ge;\n return (_secret_internals$ge = __secret_internals.getRenderId) === null || _secret_internals$ge === void 0 ? void 0 : _secret_internals$ge.call(__secret_internals);\n }, []);\n useEffect(() => {\n let ignore = false;\n async function init() {\n try {\n const newRender = await __secret_internals.renderUseBrick(useBrick, data, errorBoundary);\n if (ignore) {\n return;\n }\n setRenderResult(newRender);\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (!ignore && isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n }\n init();\n return () => {\n ignore = true;\n };\n }, [data, useBrick, initialRenderId, errorBoundary]);\n const _refCallback = useCallback(element => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(renderResult, element);\n } else {\n __secret_internals.unmountUseBrick(renderResult, mountResult.current);\n mountResult.current = undefined;\n }\n refCallback === null || refCallback === void 0 || refCallback(element);\n }, [refCallback, renderResult]);\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n const {\n tagName\n } = renderResult;\n if (tagName === null) {\n ignoredCallback === null || ignoredCallback === void 0 || ignoredCallback();\n return null;\n }\n const WebComponent = tagName;\n return /*#__PURE__*/React.createElement(WebComponent, {\n key: renderKey,\n ref: _refCallback\n });\n};\nfunction getUniqueId(ref) {\n return ++ref.current;\n}\nfunction isTheSameRender(initialRenderId) {\n var _secret_internals$ge2;\n const newRenderId = (_secret_internals$ge2 = __secret_internals.getRenderId) === null || _secret_internals$ge2 === void 0 ? void 0 : _secret_internals$ge2.call(__secret_internals);\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\n}\nlet ReactUseMultipleBricks = function ReactUseMultipleBricks(_ref2) {\n let {\n useBrick,\n data,\n errorBoundary\n } = _ref2;\n if (Array.isArray(useBrick)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(ReactUseBrick, {\n key: index,\n useBrick: item,\n data: data,\n errorBoundary: errorBoundary\n })));\n }\n return /*#__PURE__*/React.createElement(ReactUseBrick, {\n useBrick: useBrick,\n data: data,\n errorBoundary: errorBoundary\n });\n};\n\n// Make v3 bricks compatible with Brick Next v2.\n// istanbul ignore next\nconst v2Kit = getV2RuntimeFromDll();\n// istanbul ignore next\nif (v2Kit) {\n const {\n SingleBrickAsComponentFactory,\n BrickAsComponentFactory\n } = v2Kit;\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\nexport { ReactUseBrick, ReactUseMultipleBricks };\n//# sourceMappingURL=ReactUseBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getCurrentTheme } from \"@next-core/runtime\";\nexport function useCurrentTheme() {\n const [currentTheme, setCurrentTheme] = useState(getCurrentTheme);\n useEffect(() => {\n const listenToThemeChange = event => {\n setCurrentTheme(event.detail);\n };\n window.addEventListener(\"theme.change\", listenToThemeChange);\n return () => {\n window.removeEventListener(\"theme.change\", listenToThemeChange);\n };\n }, []);\n return currentTheme;\n}\n//# sourceMappingURL=useCurrentTheme.js.map","import React from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useRecentApps() {\n const [recentApps, setRecentApps] = React.useState(() => getRuntime().getRecentApps());\n React.useEffect(() => {\n const listener = event => {\n setRecentApps(event.detail);\n };\n window.addEventListener(\"app.change\", listener);\n return () => window.removeEventListener(\"app.change\", listener);\n }, []);\n return recentApps;\n}\n//# sourceMappingURL=useRecentApps.js.map","import { useRecentApps } from \"./useRecentApps.js\";\n\n/**\n * 获取当前所在微应用信息的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const app = useCurrentApp();\n * return <div>{app.id}</div>;\n * }\n * ```\n *\n * @returns 当前所在微应用的信息。\n */\nexport function useCurrentApp() {\n return useRecentApps().currentApp;\n}\n//# sourceMappingURL=useCurrentApp.js.map","import React from \"react\";\nexport function useRouteRender() {\n const [routeRender, setRouteRender] = React.useState(null);\n React.useEffect(() => {\n const listener = event => {\n setRouteRender(event.detail);\n };\n window.addEventListener(\"route.render\", listener);\n return () => window.removeEventListener(\"route.render\", listener);\n }, []);\n return routeRender;\n}\n//# sourceMappingURL=useRouteRender.js.map","export const useProviderArgsDefaults = {\n provider: \"\",\n customOptions: {\n onError: () => {\n /* Do nothing.. */\n },\n transform: (oldData, newData) => newData,\n data: undefined,\n loading: false,\n suspense: false,\n cache: true\n },\n dependencies: undefined\n};\nexport default Object.entries(useProviderArgsDefaults).reduce((acc, _ref) => {\n let [key, value] = _ref;\n if (Object.prototype.toString.call(value) === \"[object Object]\") return {\n ...acc,\n ...value\n };\n return {\n ...acc,\n [key]: value\n };\n}, {});\n//# sourceMappingURL=useProviderArgsDefaults.js.map","import { fetchByProvider } from \"@next-core/runtime\";\nconst cacheMap = new Map();\nfunction isObj(v) {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\nfunction isString(v) {\n return typeof v === \"string\";\n}\nfunction buildSortedCacheKey(provider) {\n const sortObj = obj => Object.keys(obj).sort().map(k => ({\n [k]: obj[k]\n }));\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n try {\n const sortedArgs = isObj(args) ? sortObj(args) : args.map(arg => isString(arg) ? arg : sortObj(arg));\n return JSON.stringify({\n provider,\n args: sortedArgs\n });\n } catch (e) {\n return JSON.stringify({\n provider,\n args\n });\n }\n}\nexport default async function fetch(provider, cache, args) {\n let promise;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const cacheKey = buildSortedCacheKey(provider, ...args);\n !cache && cacheMap.has(cacheKey) && cacheMap.delete(cacheKey);\n if (cacheMap.has(cacheKey)) {\n promise = cacheMap.get(cacheKey);\n } else {\n promise = (() => {\n return fetchByProvider(provider, args, {\n cache: cache ? \"default\" : \"reload\"\n });\n })();\n cache && cacheMap.set(cacheKey, promise);\n }\n return promise;\n}\n//# sourceMappingURL=fetch.js.map","import { useCallback, useEffect, useMemo, useReducer, useRef, useState } from \"react\";\nimport useProviderArgs from \"./useProviderArgs.js\";\nimport { isObject, isString } from \"lodash\";\nimport fetch from \"./fetch.js\";\nexport function useProvider() {\n const {\n provider,\n customOptions,\n dependencies,\n requestInit\n } = useProviderArgs(...arguments);\n const {\n onError,\n transform,\n suspense,\n cache,\n ...defaults\n } = customOptions;\n const [loading, setLoading] = useState(defaults.loading);\n const suspenseStatus = useRef(\"pending\");\n const suspender = useRef();\n const mounted = useRef(false);\n const error = useRef();\n const response = useRef();\n const data = useRef(defaults.data);\n const forceUpdate = useReducer(() => ({}), [])[1];\n const doFetch = useCallback(async (provider, providerArgs) => {\n try {\n error.current = undefined;\n if (!suspense) setLoading(true);\n const newRes = await fetch(provider, cache, providerArgs);\n response.current = newRes;\n data.current = transform(data.current, newRes);\n } catch (e) {\n error.current = e;\n data.current = undefined;\n }\n if (!suspense) setLoading(false);\n if (error.current) onError(error.current);\n return data.current;\n }, [provider, customOptions, dependencies, requestInit, suspense, transform, defaults.data, onError, cache]);\n const makeFetch = useCallback(async (providerOrBody, args) => {\n let providerStr = provider;\n let providerArgs = [];\n if (isString(providerOrBody)) {\n providerStr = providerOrBody;\n }\n if (isObject(providerOrBody)) {\n providerArgs = providerOrBody;\n } else if (isObject(args)) {\n providerArgs = args;\n }\n if (suspense) {\n return (async () => {\n suspender.current = doFetch(providerStr, providerArgs).then(newData => {\n suspenseStatus.current = \"success\";\n return newData;\n }, error => {\n /* istanbul ignore next */\n suspenseStatus.current = \"error\";\n error.current = error;\n return error;\n });\n forceUpdate();\n return await suspender.current;\n })();\n }\n return doFetch(providerStr, providerArgs);\n }, [doFetch]);\n const request = useMemo(() => Object.defineProperties({\n query: makeFetch\n }, {\n loading: {\n get() {\n return loading;\n }\n },\n data: {\n get() {\n return data.current;\n }\n },\n error: {\n get() {\n return error.current;\n }\n }\n }), [makeFetch]);\n\n // onMount/onUpdate\n useEffect(() => {\n mounted.current = true;\n if (Array.isArray(dependencies) && provider) {\n request.query(provider, requestInit.args);\n }\n return () => mounted.current = false;\n }, dependencies);\n if (suspense && suspender.current) {\n switch (suspenseStatus.current) {\n case \"pending\":\n throw suspender.current;\n /* istanbul ignore next */\n case \"error\":\n throw error.current;\n }\n }\n return Object.assign([request, response.current, loading, error.current], {\n request,\n ...request,\n response: response.current,\n data: data.current,\n loading,\n error: error.current\n });\n}\n//# sourceMappingURL=useProvider.js.map","import { useMemo } from \"react\";\nimport defaults, { useProviderArgsDefaults } from \"./useProviderArgsDefaults.js\";\nimport { isObject } from \"lodash\";\nexport default function useProviderArgs(providerOrParamsOrGlobalOptions, globalOptionsOrDeps, deps) {\n const provider = useMemo(() => {\n if (typeof providerOrParamsOrGlobalOptions === \"string\") {\n return providerOrParamsOrGlobalOptions;\n }\n return useProviderArgsDefaults.provider;\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const options = useMemo(() => {\n let localOptions = {};\n if (isObject(providerOrParamsOrGlobalOptions)) {\n localOptions = providerOrParamsOrGlobalOptions;\n } else if (isObject(globalOptionsOrDeps)) {\n localOptions = globalOptionsOrDeps;\n }\n return {\n ...defaults,\n ...localOptions\n };\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const requestInit = useMemo(() => {\n const customOptionKeys = [...Object.keys(useProviderArgsDefaults), ...Object.keys(useProviderArgsDefaults.customOptions)];\n const {\n args = null,\n ...restOptions\n } = Object.keys(options).reduce((acc, key) => {\n if (!customOptionKeys.includes(key)) acc[key] = options[key];\n return acc;\n }, {});\n return {\n options: {\n ...restOptions\n },\n args\n };\n }, [options]);\n const dependencies = useMemo(() => {\n if (Array.isArray(globalOptionsOrDeps)) return globalOptionsOrDeps;\n if (Array.isArray(deps)) return deps;\n return defaults.dependencies;\n }, [globalOptionsOrDeps, deps]);\n const loading = options.loading || Array.isArray(dependencies);\n const customOptions = useMemo(() => {\n const customOptionKeys = Object.keys(useProviderArgsDefaults.customOptions);\n const customOptions = customOptionKeys.reduce((opts, key) => {\n opts[key] = options[key];\n return opts;\n }, {});\n return {\n ...customOptions,\n loading\n };\n }, [options]);\n return {\n provider,\n customOptions,\n requestInit,\n dependencies\n };\n}\n//# sourceMappingURL=useProviderArgs.js.map","import { __secret_internals } from \"@next-core/runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\nexport async function asyncWrapBrick(brickName, eventsMapping) {\n await __secret_internals.loadBricks([brickName]);\n return wrapBrick(brickName, eventsMapping);\n}\n//# sourceMappingURL=asyncWrapBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useNavConfig() {\n const [navConfig, setNavConfig] = useState(() => getRuntime().getNavConfig());\n useEffect(() => {\n const listener = event => {\n setNavConfig(event.detail);\n };\n window.addEventListener(\"navConfig.change\", listener);\n return () => window.removeEventListener(\"navConfig.change\", listener);\n }, []);\n return navConfig;\n}\n//# sourceMappingURL=useNavConfig.js.map","import { lazy, useMemo } from \"react\";\nimport { asyncWrapBrick } from \"./asyncWrapBrick.js\";\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\nexport function useLazyWrapBrick(brickName, eventsMapping) {\n return useMemo(() => {\n if (brickName != null) {\n return /*#__PURE__*/lazy(async () => ({\n default: await asyncWrapBrick(brickName, eventsMapping)\n }));\n }\n return null;\n }, [brickName, eventsMapping]);\n}\n//# sourceMappingURL=useLazyWrapBrick.js.map"],"names":["ReactUseBrick","_ref","useBrick","data","errorBoundary","refCallback","ignoredCallback","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","initialRenderId","useMemo","_secret_internals$ge","__secret_internals","getRenderId","call","useEffect","ignore","async","newRender","renderUseBrick","current","error","_secret_internals$ge2","newRenderId","isTheSameRender","console","handleHttpError","init","_refCallback","useCallback","element","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","key","ref","ReactUseMultipleBricks","_ref2","Array","isArray","map","item","index","v2Kit","getV2RuntimeFromDll","SingleBrickAsComponentFactory","BrickAsComponentFactory","useCurrentTheme","currentTheme","setCurrentTheme","getCurrentTheme","listenToThemeChange","event","detail","window","addEventListener","removeEventListener","useRecentApps","recentApps","setRecentApps","getRuntime","getRecentApps","listener","useCurrentApp","currentApp","useRouteRender","routeRender","setRouteRender","useProviderArgsDefaults","provider","customOptions","onError","transform","oldData","newData","loading","suspense","cache","dependencies","Object","entries","reduce","acc","value","prototype","toString","cacheMap","Map","useProvider","requestInit","providerOrParamsOrGlobalOptions","globalOptionsOrDeps","deps","options","localOptions","isObject","customOptionKeys","keys","args","restOptions","includes","opts","useProviderArgs","arguments","defaults","setLoading","suspenseStatus","suspender","mounted","response","forceUpdate","useReducer","doFetch","providerArgs","newRes","promise","cacheKey","sortObj","obj","sort","k","_len","length","_key","sortedArgs","v","arg","isString","JSON","stringify","e","buildSortedCacheKey","has","delete","get","fetchByProvider","set","fetch","makeFetch","providerOrBody","providerStr","then","request","defineProperties","query","assign","asyncWrapBrick","brickName","eventsMapping","loadBricks","wrapBrick","useNavConfig","navConfig","setNavConfig","getNavConfig","useLazyWrapBrick","lazy","default"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[2052,9576],{465:(t,e,n)=>{n.d(e,{c:()=>s,P:()=>E});var a=n(21302),r=n(87117);const o="libs-datetime";let i=function(t){return t.TODAY="TODAY",t.YESTERDAY="YESTERDAY",t.FUTURE_AFTER="FUTURE_AFTER",t.FORMAT_MEDIUM_DATETIME="FORMAT_MEDIUM_DATETIME",t.FORMAT_MEDIUM_DATE="FORMAT_MEDIUM_DATE",t.FORMAT_SHORT_DATETIME="FORMAT_SHORT_DATETIME",t.FORMAT_SHORT_DATE="FORMAT_SHORT_DATE",t.FORMAT_SHORT_DAY_DATETIME="FORMAT_SHORT_DAY_DATETIME",t.FORMAT_SHORT_DAY_DATE="FORMAT_SHORT_DAY_DATE",t.SECONDS="SECONDS",t.MILL_SECONDS="MILL_SECONDS",t.MINUTES="MINUTES",t.HOURS="HOURS",t.DAYS="DARS",t.MONTHS="MONTHS",t}({});const c={[i.YESTERDAY]:"Yesterday",[i.TODAY]:"Today",[i.FUTURE_AFTER]:"After {{time}}",[i.FORMAT_MEDIUM_DATETIME]:"LLL",[i.FORMAT_MEDIUM_DATE]:"LL",[i.FORMAT_SHORT_DATETIME]:"MMM D ah:mm",[i.FORMAT_SHORT_DATE]:"MMM D",[i.FORMAT_SHORT_DAY_DATETIME]:"MMM D HH:mm",[i.FORMAT_SHORT_DAY_DATE]:"MMM D",[i.MONTHS]:"months",[i.HOURS]:"hours",[i.SECONDS]:"seconds",[i.MILL_SECONDS]:"millseconds",[i.DAYS]:"days",[i.MINUTES]:"minutes"},l={[i.YESTERDAY]:"昨天",[i.TODAY]:"今天",[i.FUTURE_AFTER]:"{{time}}后",[i.FORMAT_MEDIUM_DATETIME]:"LL ah:mm",[i.FORMAT_MEDIUM_DATE]:"LL",[i.FORMAT_SHORT_DATETIME]:"MMMD日 ah:mm",[i.FORMAT_SHORT_DATE]:"MMMD日",[i.FORMAT_SHORT_DAY_DATETIME]:"MMMD日 HH:mm",[i.FORMAT_SHORT_DAY_DATE]:"MMMD日",[i.MONTHS]:"个月",[i.HOURS]:"小时",[i.SECONDS]:"秒",[i.MILL_SECONDS]:"毫秒",[i.DAYS]:"天",[i.MINUTES]:"分钟"};(0,r.initializeI18n)(o,{en:c,zh:l});let s=function(t){return t.full="full",t.default="default",t.relative="relative",t.past="past",t.future="future",t.accurate="accurate",t.auto="auto",t}({});const E=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s.auto,n=arguments.length>2?arguments[2]:void 0;if(null==t||t===-1/0||t===1/0)return null;const c=a(t),l=a().add(0),E="date"===n?"LL":"LL HH:mm",u=r.i18n.t(`${o}:${"date"===n?i.FORMAT_MEDIUM_DATE:i.FORMAT_MEDIUM_DATETIME}`),d=r.i18n.t(`${o}:${"date"===n?i.FORMAT_SHORT_DATE:i.FORMAT_SHORT_DATETIME}`),_=r.i18n.t(`${o}:${"date"===n?i.FORMAT_SHORT_DAY_DATE:i.FORMAT_SHORT_DAY_DATETIME}`),T="date"===n?"LL":"LL HH:mm:ss";let A;switch(e){case s.full:A=c.format(E);break;case s.default:A=c.format(T);break;case s.relative:{const t=+c-+l;A=t<=0?a.duration(t).humanize(!0):r.i18n.t(`${o}:${i.FUTURE_AFTER}`,{time:a.duration(t).humanize()});break}case s.past:A=a.duration(Math.min(+c-+l,0)).humanize(!0);break;case s.future:A=r.i18n.t(`${o}:${i.FUTURE_AFTER}`,{time:a.duration(Math.max(+c-+l,0)).humanize()});break;case s.accurate:A=(()=>{const t=+c.diff(l,"days",!0).toFixed(1);let e="";const a=c.year()<l.year()?"lastYear":t<-2||c.isBefore(l.clone().add(-1,"day"),"day")?"twoDaysBefore":c.isSame(l.clone().add(-1,"day"),"day")?"yesterday":c.isSame(l,"day")?"sameDay":t<2&&c.isSame(l.clone().add(1,"day"),"day")?"nextDay":t<7?"nextWeek":"default";switch(a){case"sameDay":case"yesterday":e=`${r.i18n.t(`${o}:${"yesterday"===a?i.YESTERDAY:i.TODAY}`)}${"date"===n?"":` ${c.format("HH:mm")}`}`;break;case"lastYear":default:e=c.format(E);break;case"twoDaysBefore":e=c.format(_)}return e})();break;default:A=c.format(c.year()===l.year()?d:u)}return A}},8020:(t,e,n)=>{n.d(e,{I:()=>i,K:()=>r,NS:()=>o,t:()=>c});var a=n(87117);let r=function(t){return t.STARTED_A_CHAT="STARTED_A_CHAT",t.CREATED_THIS_GOAL="CREATED_THIS_GOAL",t.CHANGED_THE_GOAL_TITLE="CHANGED_THE_GOAL_TITLE",t.DELETED_THIS_GOAL="DELETED_THIS_GOAL",t.DECOMPOSED_THIS_GOAL="DECOMPOSED_THIS_GOAL",t.SET_OWNER="SET_OWNER",t.REMOVED_GOAL_MEMBERS="REMOVED_GOAL_MEMBERS",t.ADDED_GOAL_MEMBERS="ADDED_GOAL_MEMBERS",t.COMMENTED="COMMENTED",t.COMMA="COMMA",t.SEMICOLON="SEMICOLON",t}({});const o="bricks/ai-portal/activity-timeline",i={en:{STARTED_A_CHAT:"started a chat",CREATED_THIS_GOAL:"created this goal",CHANGED_THE_GOAL_TITLE:"changed the goal title",DELETED_THIS_GOAL:"deleted this goal",DECOMPOSED_THIS_GOAL:"decomposed this goal to {{ count }} sub-goal: ",DECOMPOSED_THIS_GOAL_plural:"decomposed this goal to {{ count }} sub-goals: ",SET_OWNER:"set {{ user }} as the owner",REMOVED_GOAL_MEMBERS:"removed a goal member: ",REMOVED_GOAL_MEMBERS_plural:"removed {{ count }} goal members: ",ADDED_GOAL_MEMBERS:"added a goal member: ",ADDED_GOAL_MEMBERS_plural:"added {{ count }} goal members: ",COMMENTED:"commented",COMMA:", ",SEMICOLON:"; "},zh:{STARTED_A_CHAT:"发起了对话",CREATED_THIS_GOAL:"创建了此目标",CHANGED_THE_GOAL_TITLE:"修改了目标标题",DELETED_THIS_GOAL:"删除了此目标",DECOMPOSED_THIS_GOAL:"将此目标分解为 {{ count }} 个子目标:",DECOMPOSED_THIS_GOAL_plural:"将此目标分解为 {{ count }} 个子目标:",SET_OWNER:"设定负责人为 {{ user }}",REMOVED_GOAL_MEMBERS:"移除了目标参与成员:",ADDED_GOAL_MEMBERS:"添加了目标参与成员:",COMMENTED:"评论",COMMA:",",SEMICOLON:";"}},c=a.i18n.getFixedT(null,o)},11369:(t,e,n)=>{n.d(e,{A:()=>r});var a=n(17545);function r(t){var e=function(t){if("object"!=(0,a.A)(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=(0,a.A)(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==(0,a.A)(e)?e:e+""}},12559:(t,e,n)=>{function a(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}n.d(e,{A:()=>a})},14763:(t,e,n)=>{n.d(e,{A:()=>c});var a=n(36758),r=n.n(a),o=n(40935),i=n.n(o)()(r());i.push([t.id,':host{display:block;color:#262626}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.activity{position:relative;padding-left:27px}.activity + .activity{margin-top:20px}.main{display:flex;align-items:center}.action{flex:1;min-width:0;display:flex;align-items:center}.time{color:#8c8c8c;margin-left:12px}.guide-line{position:absolute;left:8px;top:0;bottom:-20px;width:0;background-color:#d8d8d8}.guide-line::before{content:"";position:absolute;top:0;bottom:0;left:3.5px;width:1px;background-color:#d8d8d8}.guide-line::after{content:"";position:absolute;top:8px;left:0;width:8px;height:8px;border-radius:8px;background-color:#d8d8d8}.activity:first-child .guide-line::before{top:12px}.activity:last-child .guide-line::before{height:12px;bottom:auto}.user{margin-left:6px}.comment{position:relative;font-size:13px;color:#595959;background-color:#f3f3f3;border-radius:8px;padding:8px 12px;margin-top:10px}.comment::before{content:"";position:absolute;top:-6px;left:36px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #f3f3f3}.conversation{margin:0 7px 0 10px}.conversation::part(link){background:#f9f0ff;border-radius:3px;font-weight:500;font-size:12px;color:#aa64f5;display:flex;align-items:center;height:24px;padding:0 8px}.external-link-icon{color:#8c8c8c}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}',""]);const c=i.toString()},17545:(t,e,n)=>{function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}n.d(e,{A:()=>a})},26902:(t,e,n)=>{n.d(e,{A:()=>r});var a=n(17545);function r(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?(0,a.A)(t):"null"));return t}},36758:t=>{t.exports=function(t){return t[1]}},40935:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",a=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),a&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),a&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,a,r,o){"string"==typeof t&&(t=[[null,t,void 0]]);var i={};if(a)for(var c=0;c<this.length;c++){var l=this[c][0];null!=l&&(i[l]=!0)}for(var s=0;s<t.length;s++){var E=[].concat(t[s]);a&&i[E[0]]||(void 0!==o&&(void 0===E[5]||(E[1]="@layer".concat(E[5].length>0?" ".concat(E[5]):""," {").concat(E[1],"}")),E[5]=o),n&&(E[2]?(E[1]="@media ".concat(E[2]," {").concat(E[1],"}"),E[2]=n):E[2]=n),r&&(E[4]?(E[1]="@supports (".concat(E[4],") {").concat(E[1],"}"),E[4]=r):E[4]="".concat(r)),e.push(E))}},e}},62740:(t,e,n)=>{n.d(e,{A:()=>c});var a=n(17545),r=n(26902);function o(t,e,n){"symbol"==(0,a.A)(e)&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}var i=n(11369);function c(t,e,n,c,l,s){var E,u,d,_,T,A,m,M=Symbol.metadata||Symbol.for("Symbol.metadata"),p=Object.defineProperty,f=Object.create,O=[f(null),f(null)],D=e.length;function S(e,n,a){return function(r,o){n&&(o=r,r=t);for(var i=0;i<e.length;i++)o=e[i].apply(r,a?[o]:[]);return a?o:r}}function h(t,e,n,a){if("function"!=typeof t&&(a||void 0!==t))throw new TypeError(e+" must "+(n||"be")+" a function"+(a?"":" or undefined"));return t}function R(t,e,n,r,i,c,l,s,d,_,T){function A(t){if(!T(t))throw new TypeError("Attempted to access private element on non-instance")}var m=[].concat(e[0]),M=e[3],f=!l,D=1===i,R=3===i,g=4===i,y=2===i;function v(e,n,a){return function(r,o){return n&&(o=r,r=t),a&&a(r),b[e].call(r,o)}}if(!f){var b={},L=[],H=R?"get":g||D?"set":"value";if(d?(_||D?b={get:o((function(){return M(this)}),r,"get"),set:function(t){e[4](this,t)}}:b[H]=M,_||o(b[H],r,y?"":H)):_||(b=Object.getOwnPropertyDescriptor(t,r)),!_&&!d){if((u=O[+s][r])&&7!=(u^i))throw Error("Decorating two elements with the same name ("+b[H].name+") is not supported yet");O[+s][r]=i<3?1:i}}for(var I=t,x=m.length-1;x>=0;x-=n?2:1){var N=h(m[x],"A decorator","be",!0),C=n?m[x-1]:void 0,F={},w={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:E,addInitializer:function(t,e){if(t.v)throw Error("attempted to call addInitializer after decoration was finished");h(e,"An initializer","be",!0),c.push(e)}.bind(null,F)};if(f)u=N.call(C,I,w),F.v=1,h(u,"class decorators","return")&&(I=u);else if(w.static=s,w.private=d,u=w.access={has:d?T.bind():function(t){return r in t}},g||(u.get=d?y?function(t){return A(t),b.value}:v("get",0,A):function(t){return t[r]}),y||R||(u.set=d?v("set",0,A):function(t,e){t[r]=e}),I=N.call(C,D?{get:b.get,set:b.set}:b[H],w),F.v=1,D){if("object"==(0,a.A)(I)&&I)(u=h(I.get,"accessor.get"))&&(b.get=u),(u=h(I.set,"accessor.set"))&&(b.set=u),(u=h(I.init,"accessor.init"))&&L.unshift(u);else if(void 0!==I)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else h(I,(_?"field":"method")+" decorators","return")&&(_?L.unshift(I):b[H]=I)}return i<2&&l.push(S(L,s,1),S(c,s,0)),_||f||(d?D?l.splice(-1,0,v("get",s),v("set",s)):l.push(y?b[H]:h.call.bind(b[H])):p(t,r,b)),I}function g(t){return p(t,M,{configurable:!0,enumerable:!0,value:E})}return void 0!==s&&(E=s[M]),E=f(null==E?null:E),T=[],A=function(t){t&&T.push(S(t))},m=function(e,a){for(var o=0;o<n.length;o++){var c=n[o],s=c[1],E=7&s;if((8&s)==e&&!E==a){var u=c[2],A=!!c[3],m=16&s;R(e?t:t.prototype,c,m,A?"#"+u:(0,i.A)(u),E,E<2?[]:e?_=_||[]:d=d||[],T,!!e,A,a,e&&A?function(e){return(0,r.A)(e)===t}:l)}}},m(8,0),m(0,0),m(8,1),m(0,1),A(d),A(_),u=T,D||g(t),{e:u,get c(){var n=[];return D&&[g(t=R(t,[e],c,t.name,5,n)),S(n,1)]}}}},70829:(t,e,n)=>{n.d(e,{A:()=>r});var a=n(12559);function r(t,e){return t.get((0,a.A)(t,e))}},70918:(t,e,n)=>{n.d(e,{A:()=>r});var a=n(72016);function r(t,e,n){(0,a.A)(t,e),e.set(t,n)}},72016:(t,e,n)=>{function a(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(e,{A:()=>a})},86121:(t,e,n)=>{n.d(e,{A:()=>r});var a=n(12559);function r(t,e,n){return t.set((0,a.A)(t,e),n),n}},88954:(t,e,n)=>{n.r(e),n.d(e,{ActivityTimeline:()=>v});var a,r=n(70918),o=n(86121),i=n(70829),c=n(62740),l=n(18769),s=n.n(l),E=n(7921),u=n(11280),d=(n(65168),n(87117)),_=n(465),T=n(8020),A=n(14763),m=n(98343);let M,p,f,O,D;(0,d.initializeI18n)(T.NS,T.I);const S=(0,u.wrapBrick)("eo-link"),h=(0,u.wrapBrick)("eo-icon"),R=(0,u.wrapBrick)("eo-easyops-avatar"),{defineElement:g,property:y}=(0,E.createDecorators)();let v;var b=new WeakMap,L=new WeakMap;class H extends u.ReactNextElement{constructor(){super(...arguments),(0,r.A)(this,b,p(this)),(0,r.A)(this,L,(f(this),O(this))),D(this)}get list(){return(0,i.A)(b,this)}set list(t){(0,o.A)(b,this,t)}get chatUrlTemplate(){return(0,i.A)(L,this)}set chatUrlTemplate(t){(0,o.A)(L,this,t)}render(){return s().createElement(I,{list:this.list,chatUrlTemplate:this.chatUrlTemplate})}}function I(t){let{list:e,chatUrlTemplate:n}=t;return e?s().createElement("ul",null,e.map(((t,e)=>{var a,r;return s().createElement("li",{className:"activity",key:e},s().createElement("div",{className:"guide-line"}),s().createElement("div",{className:"main"},s().createElement(R,{className:"avatar",nameOrInstanceId:t.user_id,size:"xs"}),s().createElement("span",{className:"user"},t.user_name)," ",s().createElement("span",{className:"action"},"start_conversation"===t.action_type?s().createElement(s().Fragment,null,s().createElement("span",null,(0,T.t)(T.K.STARTED_A_CHAT)),s().createElement(S,{className:"conversation",url:(0,m.Q)(n,t),target:"_blank"},null===(a=t.metadata)||void 0===a?void 0:a.conversation_title),s().createElement(h,{className:"external-link-icon",lib:"lucide",icon:"external-link"})):"create_goal"===t.action_type?(0,T.t)(T.K.CREATED_THIS_GOAL):"edit_goal"===t.action_type?(0,T.t)(T.K.CHANGED_THE_GOAL_TITLE):"delete_goal"===t.action_type?(0,T.t)(T.K.DELETED_THIS_GOAL):"decompose_goals"===t.action_type?`${(0,T.t)(T.K.DECOMPOSED_THIS_GOAL,{count:t.metadata.sub_goals_count})}${t.metadata.sub_goals.map((t=>t.title)).join((0,T.t)(T.K.COMMA))}`:"alter_owner"===t.action_type?(0,T.t)(T.K.SET_OWNER,{user:t.metadata.after.user_name}):"alter_user"===t.action_type?function(t){const e=[],n=[],a=new Set(t.metadata.before.map((t=>t.user_name)));for(const e of t.metadata.after)a.has(e.user_name)||n.push(e.user_name);const r=new Set(t.metadata.after.map((t=>t.user_name)));for(const n of t.metadata.before)r.has(n.user_name)||e.push(n.user_name);const o=[];return e.length>0&&o.push((0,T.t)(T.K.REMOVED_GOAL_MEMBERS,{count:e.length})+e.join((0,T.t)(T.K.COMMA))),n.length>0&&o.push((0,T.t)(T.K.ADDED_GOAL_MEMBERS,{count:n.length})+n.join((0,T.t)(T.K.COMMA))),o.join((0,T.t)(T.K.SEMICOLON))}(t):"add_comment"===t.action_type?(0,T.t)(T.K.COMMENTED):t.action_type),s().createElement("span",{className:"time",title:(0,_.P)(1e3*t.time,_.c.full)},(0,_.P)(1e3*t.time,_.c.relative))),"add_comment"===t.action_type&&s().createElement("div",{className:"comment"},null===(r=t.metadata)||void 0===r?void 0:r.comment_content))}))):s().createElement("div",{className:"loading"},s().createElement(h,{lib:"antd",icon:"loading-3-quarters",spinning:!0}))}a=H,({e:[p,f,O,D],c:[v,M]}=(0,c.A)(a,[g("ai-portal.activity-timeline",{styleTexts:[A.A]})],[[y({attribute:!1}),1,"list"],[y(),1,"chatUrlTemplate"]],0,void 0,u.ReactNextElement)),M()},98343:(t,e,n)=>{n.d(e,{Q:()=>r});var a=n(41030);function r(t,e){return null==t?void 0:t.replace(/{{(.*?)}}/g,((t,n)=>(0,a.get)(e,n.trim())))}}}]);
2
+ //# sourceMappingURL=activity-timeline.a7da73e9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/activity-timeline.a7da73e9.js","mappings":"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","sources":["webpack:///../../../src/i18n/constants.ts","webpack:///../../../../src/i18n/locales/en.ts","webpack:///../../../../src/i18n/locales/zh.ts","webpack:///../../../src/i18n/index.ts","webpack:///../../src/humanizeTime.ts","webpack:///./src/activity-timeline/i18n.ts","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack:///./src/activity-timeline/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2311.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js","webpack:///./src/activity-timeline/index.tsx","webpack:///./src/shared/parseTemplate.ts"],"sourcesContent":["export const NS_LIBS_DATETIME = \"libs-datetime\";\n\nexport enum K {\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n FUTURE_AFTER = \"FUTURE_AFTER\",\n FORMAT_MEDIUM_DATETIME = \"FORMAT_MEDIUM_DATETIME\",\n FORMAT_MEDIUM_DATE = \"FORMAT_MEDIUM_DATE\",\n FORMAT_SHORT_DATETIME = \"FORMAT_SHORT_DATETIME\",\n FORMAT_SHORT_DATE = \"FORMAT_SHORT_DATE\",\n FORMAT_SHORT_DAY_DATETIME = \"FORMAT_SHORT_DAY_DATETIME\",\n FORMAT_SHORT_DAY_DATE = \"FORMAT_SHORT_DAY_DATE\",\n SECONDS = \"SECONDS\",\n MILL_SECONDS = \"MILL_SECONDS\",\n MINUTES = \"MINUTES\",\n HOURS = \"HOURS\",\n DAYS = \"DARS\",\n MONTHS = \"MONTHS\",\n}\n\nexport type Locale = { [key in K]: string };\n","import { Locale, K } from \"../constants.js\";\n\nconst locale: Locale = {\n [K.YESTERDAY]: \"Yesterday\",\n [K.TODAY]: \"Today\",\n [K.FUTURE_AFTER]: \"After {{time}}\",\n [K.FORMAT_MEDIUM_DATETIME]: \"LLL\",\n [K.FORMAT_MEDIUM_DATE]: \"LL\",\n [K.FORMAT_SHORT_DATETIME]: \"MMM D ah:mm\",\n [K.FORMAT_SHORT_DATE]: \"MMM D\",\n [K.FORMAT_SHORT_DAY_DATETIME]: \"MMM D HH:mm\",\n [K.FORMAT_SHORT_DAY_DATE]: \"MMM D\",\n [K.MONTHS]: \"months\",\n [K.HOURS]: \"hours\",\n [K.SECONDS]: \"seconds\",\n [K.MILL_SECONDS]: \"millseconds\",\n [K.DAYS]: \"days\",\n [K.MINUTES]: \"minutes\",\n};\n\nexport default locale;\n","import { Locale, K } from \"../constants.js\";\n\nconst locale: Locale = {\n [K.YESTERDAY]: \"昨天\",\n [K.TODAY]: \"今天\",\n [K.FUTURE_AFTER]: \"{{time}}后\",\n [K.FORMAT_MEDIUM_DATETIME]: \"LL ah:mm\",\n [K.FORMAT_MEDIUM_DATE]: \"LL\",\n [K.FORMAT_SHORT_DATETIME]: \"MMMD日 ah:mm\",\n [K.FORMAT_SHORT_DATE]: \"MMMD日\",\n [K.FORMAT_SHORT_DAY_DATETIME]: \"MMMD日 HH:mm\",\n [K.FORMAT_SHORT_DAY_DATE]: \"MMMD日\",\n [K.MONTHS]: \"个月\",\n [K.HOURS]: \"小时\",\n [K.SECONDS]: \"秒\",\n [K.MILL_SECONDS]: \"毫秒\",\n [K.DAYS]: \"天\",\n [K.MINUTES]: \"分钟\",\n};\n\nexport default locale;\n","import { initializeI18n } from \"@next-core/i18n\";\nimport { NS_LIBS_DATETIME } from \"./constants.js\";\nimport en from \"./locales/en.js\";\nimport zh from \"./locales/zh.js\";\n\nexport function addResourceBundle(): void {\n initializeI18n(NS_LIBS_DATETIME, { en, zh });\n}\n","import moment from \"moment\";\nimport { i18n } from \"@next-core/i18n\";\nimport { NS_LIBS_DATETIME, K } from \"./i18n/constants.js\";\nimport { addResourceBundle } from \"./i18n/index.js\";\n\naddResourceBundle();\n\nconst TIME_OFFSET = 0;\n\nexport enum HumanizeTimeFormat {\n full = \"full\",\n default = \"default\",\n relative = \"relative\",\n past = \"past\",\n future = \"future\",\n accurate = \"accurate\",\n auto = \"auto\",\n}\n\nexport const humanizeTime = (\n time: moment.MomentInput,\n format: HumanizeTimeFormat = HumanizeTimeFormat.auto,\n /** 默认为 \"datetime\" */\n type?: \"datetime\" | \"date\"\n): string | null => {\n if (\n time === undefined ||\n time === null ||\n time === -Infinity ||\n time === Infinity\n ) {\n return null;\n }\n const m = moment(time);\n const now = moment().add(TIME_OFFSET);\n const fFull = type === \"date\" ? \"LL\" : \"LL HH:mm\";\n const fMedium = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_MEDIUM_DATE : K.FORMAT_MEDIUM_DATETIME}`\n );\n const fShort = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_SHORT_DATE : K.FORMAT_SHORT_DATETIME}`\n );\n const fShort24 = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_SHORT_DAY_DATE : K.FORMAT_SHORT_DAY_DATETIME}`\n );\n const fDefault = type === \"date\" ? \"LL\" : \"LL HH:mm:ss\";\n const fHourMinute = \"HH:mm\";\n let text;\n\n /* 用于精确显示时间的参数\n * 今天与昨天,显示:今天(昨天)x:x的格式,如:今天12:21、昨天16:33\n * 昨天以前的时间,显示:x月x日x时:x分,如:11月23日11:22\n * 今年以前的时间,显示:x年x月x日x时:x分,如:2016年11月11日11:11\n */\n const getAccurateTime = () => {\n const diff = +m.diff(now, \"days\", true).toFixed(1);\n let _text = \"\";\n const retVal =\n m.year() < now.year()\n ? \"lastYear\"\n : diff < -2 || m.isBefore(now.clone().add(-1, \"day\"), \"day\")\n ? \"twoDaysBefore\"\n : m.isSame(now.clone().add(-1, \"day\"), \"day\")\n ? \"yesterday\"\n : m.isSame(now, \"day\")\n ? \"sameDay\"\n : diff < 2 && m.isSame(now.clone().add(1, \"day\"), \"day\")\n ? \"nextDay\"\n : diff < 7\n ? \"nextWeek\"\n : \"default\";\n switch (retVal) {\n case \"sameDay\":\n case \"yesterday\":\n _text = `${i18n.t(`${NS_LIBS_DATETIME}:${retVal === \"yesterday\" ? K.YESTERDAY : K.TODAY}`)}${\n type === \"date\" ? \"\" : ` ${m.format(fHourMinute)}`\n }`;\n break;\n case \"lastYear\":\n _text = m.format(fFull);\n break;\n case \"twoDaysBefore\":\n _text = m.format(fShort24);\n break;\n default:\n _text = m.format(fFull);\n }\n\n return _text;\n };\n\n switch (format) {\n case HumanizeTimeFormat.full:\n text = m.format(fFull);\n break;\n case HumanizeTimeFormat.default:\n text = m.format(fDefault);\n break;\n case HumanizeTimeFormat.relative: {\n const diff = +m - +now;\n text =\n diff <= 0\n ? moment.duration(diff).humanize(true)\n : i18n.t(`${NS_LIBS_DATETIME}:${K.FUTURE_AFTER}`, {\n time: moment.duration(diff).humanize(),\n });\n break;\n }\n case HumanizeTimeFormat.past:\n text = moment.duration(Math.min(+m - +now, 0)).humanize(true);\n break;\n case HumanizeTimeFormat.future:\n text = i18n.t(`${NS_LIBS_DATETIME}:${K.FUTURE_AFTER}`, {\n time: moment.duration(Math.max(+m - +now, 0)).humanize(),\n });\n break;\n case HumanizeTimeFormat.accurate:\n text = getAccurateTime();\n break;\n default:\n text = m.format(m.year() === now.year() ? fShort : fMedium);\n }\n return text;\n};\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n STARTED_A_CHAT = \"STARTED_A_CHAT\",\n CREATED_THIS_GOAL = \"CREATED_THIS_GOAL\",\n CHANGED_THE_GOAL_TITLE = \"CHANGED_THE_GOAL_TITLE\",\n DELETED_THIS_GOAL = \"DELETED_THIS_GOAL\",\n DECOMPOSED_THIS_GOAL = \"DECOMPOSED_THIS_GOAL\",\n SET_OWNER = \"SET_OWNER\",\n REMOVED_GOAL_MEMBERS = \"REMOVED_GOAL_MEMBERS\",\n ADDED_GOAL_MEMBERS = \"ADDED_GOAL_MEMBERS\",\n COMMENTED = \"COMMENTED\",\n COMMA = \"COMMA\",\n SEMICOLON = \"SEMICOLON\",\n}\n\nconst en: Locale = {\n STARTED_A_CHAT: \"started a chat\",\n CREATED_THIS_GOAL: \"created this goal\",\n CHANGED_THE_GOAL_TITLE: \"changed the goal title\",\n DELETED_THIS_GOAL: \"deleted this goal\",\n DECOMPOSED_THIS_GOAL: \"decomposed this goal to {{ count }} sub-goal: \",\n DECOMPOSED_THIS_GOAL_plural:\n \"decomposed this goal to {{ count }} sub-goals: \",\n SET_OWNER: \"set {{ user }} as the owner\",\n REMOVED_GOAL_MEMBERS: \"removed a goal member: \",\n REMOVED_GOAL_MEMBERS_plural: \"removed {{ count }} goal members: \",\n ADDED_GOAL_MEMBERS: \"added a goal member: \",\n ADDED_GOAL_MEMBERS_plural: \"added {{ count }} goal members: \",\n COMMENTED: \"commented\",\n COMMA: \", \",\n SEMICOLON: \"; \",\n};\n\nconst zh: Locale = {\n STARTED_A_CHAT: \"发起了对话\",\n CREATED_THIS_GOAL: \"创建了此目标\",\n CHANGED_THE_GOAL_TITLE: \"修改了目标标题\",\n DELETED_THIS_GOAL: \"删除了此目标\",\n DECOMPOSED_THIS_GOAL: \"将此目标分解为 {{ count }} 个子目标:\",\n DECOMPOSED_THIS_GOAL_plural: \"将此目标分解为 {{ count }} 个子目标:\",\n SET_OWNER: \"设定负责人为 {{ user }}\",\n REMOVED_GOAL_MEMBERS: \"移除了目标参与成员:\",\n ADDED_GOAL_MEMBERS: \"添加了目标参与成员:\",\n COMMENTED: \"评论\",\n COMMA: \",\",\n SEMICOLON: \";\",\n};\n\nexport const NS = \"bricks/ai-portal/activity-timeline\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;color:#262626}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.activity{position:relative;padding-left:27px}.activity + .activity{margin-top:20px}.main{display:flex;align-items:center}.action{flex:1;min-width:0;display:flex;align-items:center}.time{color:#8c8c8c;margin-left:12px}.guide-line{position:absolute;left:8px;top:0;bottom:-20px;width:0;background-color:#d8d8d8}.guide-line::before{content:\"\";position:absolute;top:0;bottom:0;left:3.5px;width:1px;background-color:#d8d8d8}.guide-line::after{content:\"\";position:absolute;top:8px;left:0;width:8px;height:8px;border-radius:8px;background-color:#d8d8d8}.activity:first-child .guide-line::before{top:12px}.activity:last-child .guide-line::before{height:12px;bottom:auto}.user{margin-left:6px}.comment{position:relative;font-size:13px;color:#595959;background-color:#f3f3f3;border-radius:8px;padding:8px 12px;margin-top:10px}.comment::before{content:\"\";position:absolute;top:-6px;left:36px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #f3f3f3}.conversation{margin:0 7px 0 10px}.conversation::part(link){background:#f9f0ff;border-radius:3px;font-weight:500;font-size:12px;color:#aa64f5;display:flex;align-items:center;height:24px;padding:0 8px}.external-link-icon{color:#8c8c8c}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2311(e, t, n, r, o, i) {\n var a,\n c,\n u,\n s,\n f,\n l,\n p,\n d = Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"),\n m = Object.defineProperty,\n h = Object.create,\n y = [h(null), h(null)],\n v = t.length;\n function g(t, n, r) {\n return function (o, i) {\n n && (i = o, o = e);\n for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);\n return r ? i : o;\n };\n }\n function b(e, t, n, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, n, r, o, i, u, s, f, l, p) {\n function d(e) {\n if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var h = [].concat(t[0]),\n v = t[3],\n w = !u,\n D = 1 === o,\n S = 3 === o,\n j = 4 === o,\n E = 2 === o;\n function I(t, n, r) {\n return function (o, i) {\n return n && (i = o, o = e), r && r(o), P[t].call(o, i);\n };\n }\n if (!w) {\n var P = {},\n k = [],\n F = S ? \"get\" : j || D ? \"set\" : \"value\";\n if (f ? (l || D ? P = {\n get: setFunctionName(function () {\n return v(this);\n }, r, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : P[F] = v, l || setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {\n if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\");\n y[+s][r] = o < 3 ? 1 : o;\n }\n }\n for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {\n var z = b(h[O], \"A decorator\", \"be\", !0),\n A = n ? h[O - 1] : void 0,\n H = {},\n K = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: r,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw Error(\"attempted to call addInitializer after decoration was finished\");\n b(t, \"An initializer\", \"be\", !0), i.push(t);\n }.bind(null, H)\n };\n if (w) c = z.call(A, N, K), H.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (K[\"static\"] = s, K[\"private\"] = f, c = K.access = {\n has: f ? p.bind() : function (e) {\n return r in e;\n }\n }, j || (c.get = f ? E ? function (e) {\n return d(e), P.value;\n } : I(\"get\", 0, d) : function (e) {\n return e[r];\n }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) {\n e[r] = t;\n }), N = z.call(A, D ? {\n get: P.get,\n set: P.set\n } : P[F], K), H.v = 1, D) {\n if (\"object\" == _typeof(N) && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\");\n } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N);\n }\n return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;\n }\n function w(e) {\n return m(e, d, {\n configurable: !0,\n enumerable: !0,\n value: a\n });\n }\n return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {\n e && f.push(g(e));\n }, p = function p(t, r) {\n for (var i = 0; i < n.length; i++) {\n var a = n[i],\n c = a[1],\n l = 7 & c;\n if ((8 & c) == t && !l == r) {\n var p = a[2],\n d = !!a[3],\n m = 16 & c;\n applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {\n return checkInRHS(t) === e;\n } : o);\n }\n }\n }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {\n e: c,\n get c() {\n var n = [];\n return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];\n }\n };\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type { Activity, ActivityOfAlterUser } from \"./interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst { defineElement, property } = createDecorators();\n\nexport interface ActivityTimelineProps {\n list?: Activity[];\n chatUrlTemplate?: string;\n}\n\n/**\n * 构件 `ai-portal.activity-timeline`\n */\nexport\n@defineElement(\"ai-portal.activity-timeline\", {\n styleTexts: [styleText],\n})\nclass ActivityTimeline\n extends ReactNextElement\n implements ActivityTimelineProps\n{\n @property({ attribute: false })\n accessor list: Activity[] | undefined;\n\n @property()\n accessor chatUrlTemplate: string | undefined;\n\n render() {\n return (\n <ActivityTimelineComponent\n list={this.list}\n chatUrlTemplate={this.chatUrlTemplate}\n />\n );\n }\n}\n\nfunction ActivityTimelineComponent({\n list,\n chatUrlTemplate,\n}: ActivityTimelineProps) {\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <ul>\n {list.map((activity, index) => (\n <li className=\"activity\" key={index}>\n <div className=\"guide-line\" />\n <div className=\"main\">\n <WrappedAvatar\n className=\"avatar\"\n nameOrInstanceId={activity.user_id}\n size=\"xs\"\n />\n <span className=\"user\">{activity.user_name}</span>\n &nbsp;\n <span className=\"action\">\n {activity.action_type === \"start_conversation\" ? (\n <>\n <span>{t(K.STARTED_A_CHAT)}</span>\n <WrappedLink\n className=\"conversation\"\n url={parseTemplate(chatUrlTemplate, activity)}\n target=\"_blank\"\n >\n {activity.metadata?.conversation_title}\n </WrappedLink>\n <WrappedIcon\n className=\"external-link-icon\"\n lib=\"lucide\"\n icon=\"external-link\"\n />\n </>\n ) : activity.action_type === \"create_goal\" ? (\n t(K.CREATED_THIS_GOAL)\n ) : activity.action_type === \"edit_goal\" ? (\n t(K.CHANGED_THE_GOAL_TITLE)\n ) : activity.action_type === \"delete_goal\" ? (\n t(K.DELETED_THIS_GOAL)\n ) : activity.action_type === \"decompose_goals\" ? (\n `${t(K.DECOMPOSED_THIS_GOAL, {\n count: activity.metadata.sub_goals_count,\n })}${activity.metadata.sub_goals\n .map((g) => g.title)\n .join(t(K.COMMA))}`\n ) : activity.action_type === \"alter_owner\" ? (\n t(K.SET_OWNER, { user: activity.metadata.after.user_name })\n ) : activity.action_type === \"alter_user\" ? (\n getAlterMembersActivityDescription(activity)\n ) : activity.action_type === \"add_comment\" ? (\n t(K.COMMENTED)\n ) : (\n // Defense for future action types\n (activity as { action_type: string }).action_type\n )}\n </span>\n <span\n className=\"time\"\n title={\n humanizeTime(activity.time * 1000, HumanizeTimeFormat.full)!\n }\n >\n {humanizeTime(activity.time * 1000, HumanizeTimeFormat.relative)}\n </span>\n </div>\n {activity.action_type === \"add_comment\" && (\n <div className=\"comment\">{activity.metadata?.comment_content}</div>\n )}\n </li>\n ))}\n </ul>\n );\n}\n\nfunction getAlterMembersActivityDescription(activity: ActivityOfAlterUser) {\n const removed: string[] = [];\n const added: string[] = [];\n const beforeUserIds = new Set(\n activity.metadata.before.map((user) => user.user_name)\n );\n for (const user of activity.metadata.after) {\n if (!beforeUserIds.has(user.user_name)) {\n added.push(user.user_name);\n }\n }\n const afterUserIds = new Set(\n activity.metadata.after.map((user) => user.user_name)\n );\n for (const user of activity.metadata.before) {\n if (!afterUserIds.has(user.user_name)) {\n removed.push(user.user_name);\n }\n }\n\n const descriptions: string[] = [];\n if (removed.length > 0) {\n descriptions.push(\n t(K.REMOVED_GOAL_MEMBERS, { count: removed.length }) +\n removed.join(t(K.COMMA))\n );\n }\n if (added.length > 0) {\n descriptions.push(\n t(K.ADDED_GOAL_MEMBERS, { count: added.length }) + added.join(t(K.COMMA))\n );\n }\n\n return descriptions.join(t(K.SEMICOLON));\n}\n","import { get } from \"lodash\";\n\nexport function parseTemplate(\n template: string | undefined,\n context: Record<string, any>\n) {\n return template?.replace(/{{(.*?)}}/g, (_match: string, key: string) => {\n const value = get(context, key.trim());\n return value;\n });\n}\n"],"names":["NS_LIBS_DATETIME","K","YESTERDAY","TODAY","FUTURE_AFTER","FORMAT_MEDIUM_DATETIME","FORMAT_MEDIUM_DATE","FORMAT_SHORT_DATETIME","FORMAT_SHORT_DATE","FORMAT_SHORT_DAY_DATETIME","FORMAT_SHORT_DAY_DATE","MONTHS","HOURS","SECONDS","MILL_SECONDS","DAYS","MINUTES","initializeI18n","en","zh","HumanizeTimeFormat","humanizeTime","time","format","arguments","length","undefined","auto","type","Infinity","m","moment","now","add","fFull","fMedium","i18n","t","fShort","fShort24","fDefault","text","full","default","relative","diff","humanize","past","Math","min","future","max","accurate","getAccurateTime","toFixed","_text","retVal","year","isBefore","clone","isSame","NS","locales","STARTED_A_CHAT","CREATED_THIS_GOAL","CHANGED_THE_GOAL_TITLE","DELETED_THIS_GOAL","DECOMPOSED_THIS_GOAL","DECOMPOSED_THIS_GOAL_plural","SET_OWNER","REMOVED_GOAL_MEMBERS","REMOVED_GOAL_MEMBERS_plural","ADDED_GOAL_MEMBERS","ADDED_GOAL_MEMBERS_plural","COMMENTED","COMMA","SEMICOLON","getFixedT","toPropertyKey","i","e","Symbol","toPrimitive","call","r","TypeError","String","_assertClassBrand","n","has","___CSS_LOADER_EXPORT___","push","module","id","toString","_typeof","o","iterator","constructor","prototype","_checkInRHS","Object","exports","cssWithMappingToString","list","this","map","item","content","needLayer","concat","join","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","setFunctionName","description","defineProperty","configurable","value","applyDecs2311","a","c","u","s","f","l","p","d","metadata","h","create","y","v","g","apply","b","applyDec","w","D","S","j","E","I","P","F","get","set","getOwnPropertyDescriptor","Error","name","N","O","z","A","H","kind","addInitializer","bind","access","init","unshift","splice","enumerable","checkInRHS","_classPrivateFieldGet2","_classPrivateFieldInitSpec","obj","privateMap","_checkPrivateRedeclaration","privateCollection","_classPrivateFieldSet2","WrappedLink","wrapBrick","WrappedIcon","WrappedAvatar","defineElement","property","createDecorators","_ActivityTimeline","_A","WeakMap","_B","ActivityTimeline","ReactNextElement","_init_list","_init_extra_list","_init_chatUrlTemplate","_init_extra_chatUrlTemplate","_classPrivateFieldGet","_classPrivateFieldSet","chatUrlTemplate","render","React","ActivityTimelineComponent","_ref","activity","index","_activity$metadata","_activity$metadata2","className","key","nameOrInstanceId","user_id","size","user_name","action_type","url","parseTemplate","target","conversation_title","lib","icon","count","sub_goals_count","sub_goals","title","user","after","removed","added","beforeUserIds","Set","before","afterUserIds","descriptions","getAlterMembersActivityDescription","comment_content","spinning","_ActivityTimeline2","_initClass","_applyDecs","styleTexts","styleText","attribute","template","context","replace","_match","trim"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[6573],{433:(e,t,n)=>{n.d(t,{I:()=>s,K:()=>a,NS:()=>l,t:()=>u});var o=n(87117);let a=function(e){return e.ASK_ANY_THING="ASK_ANYTHING",e.COMMON_TASKS="COMMON_TASKS",e}({});const i={[a.ASK_ANY_THING]:"Ask anything",[a.COMMON_TASKS]:"Common tasks"},r={[a.ASK_ANY_THING]:"询问任何问题",[a.COMMON_TASKS]:"常用任务"},l="bricks/ai-portal/chat-box",s={en:i,zh:r},u=o.i18n.getFixedT(null,l)},20062:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},24586:(e,t,n)=>{n.d(t,{A:()=>a});var o=n(11369);function a(e,t,n){return(t=(0,o.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},47008:(e,t,n)=>{n.d(t,{A:()=>p});var o=n(36758),a=n.n(o),i=n(40935),r=n.n(i),l=n(20062),s=n.n(l),u=new URL(n(47336),n.b),c=r()(a()),d=s()(u);c.push([e.id,`:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background:url(${d}) no-repeat center bottom;background-size:100% 104px;padding:12px 12px 29px}.container{position:relative;background:#ffffff;box-shadow:0px 2px 4px 0px rgba(38,45,65,0.1);border-radius:16px;border:1px solid #dadfe8}.container:has(textarea:focus){border-color:#b7c3d8}textarea{display:block;width:100%;padding:10px 16px 50px;color:var(--antd-input-color);border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font-size:14px;line-height:22px;height:120px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.actions-bar{position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:flex-end;justify-content:space-between}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff;flex-shrink:0}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}`,""]);const p=c.toString()},47336:(e,t,n)=>{e.exports=n.p+"images/25c20165.png"},67707:(e,t,n)=>{n.r(t),n.d(t,{ChatBox:()=>F,ChatBoxComponent:()=>V,LegacyChatBoxComponent:()=>D});var o,a=n(74635),i=n(70918),r=n(24586),l=n(26902),s=n(5536),u=n(86121),c=n(70829),d=n(62740),p=n(18769),h=n.n(p),b=n(7921),f=n(11280),m=n(71451),g=(n(65168),n(87117)),x=n(433),v=n(47008);let S,w,A,k,y,C,z,R,_,N,E,M;(0,g.initializeI18n)(x.NS,x.I);const K=(0,f.wrapBrick)("eo-icon"),{defineElement:T,property:B,event:H,method:I}=(0,b.createDecorators)(),V=(0,p.forwardRef)(D);let F;var O=new WeakMap,P=new WeakMap,W=new WeakMap,Y=new WeakMap,G=new WeakSet,$=new WeakMap;class j extends f.ReactNextElement{constructor(){super(...arguments),(0,a.A)(this,G),(0,r.A)(this,"ref",(S(this),(0,p.createRef)())),(0,i.A)(this,O,A(this)),(0,i.A)(this,P,(k(this),y(this))),(0,i.A)(this,W,(C(this),z(this))),(0,i.A)(this,Y,(R(this),_(this))),(0,i.A)(this,$,(M(this),e=>{(0,s.A)(G,this,N).emit(e)}))}get disabled(){return(0,c.A)(O,this)}set disabled(e){(0,u.A)(O,this,e)}get placeholder(){return(0,c.A)(P,this)}set placeholder(e){(0,u.A)(P,this,e)}get autoFocus(){return(0,c.A)(W,this)}set autoFocus(e){(0,u.A)(W,this,e)}setValue(e){var t;null===(t=this.ref.current)||void 0===t||t.setValue(e)}getValue(){var e;return null===(e=this.ref.current)||void 0===e?void 0:e.getValue()}render(){return h().createElement(V,{disabled:this.disabled,placeholder:this.placeholder,autoFocus:this.autoFocus,onSubmit:(0,c.A)($,this),ref:this.ref})}}function D(e,t){let{disabled:n,placeholder:o,autoFocus:a,onSubmit:i}=e;const r=(0,p.useRef)(null),l=(0,p.useRef)(null),[s,u]=(0,p.useState)(""),c=(0,p.useRef)("");(0,p.useImperativeHandle)(t,(()=>({setValue:e=>{c.current=e,u(e)},getValue:()=>c.current})));const d=(0,p.useCallback)((e=>{e.currentTarget.value&&i(e.currentTarget.value)}),[i]),b=(0,p.useCallback)((e=>{c.current=e.target.value,u(e.target.value)}),[]),f=(0,p.useCallback)((()=>{i(c.current)}),[i]);return(0,p.useEffect)((()=>{a&&Promise.resolve().then((()=>{var e;null===(e=l.current)||void 0===e||e.focus()}))}),[]),h().createElement("div",{className:"root"},h().createElement("div",{className:"container",ref:r},h().createElement(m.e,{containerRef:r,ref:l,value:s,minRows:58/22,paddingSize:60,autoResize:!0,disabled:n,placeholder:null!=o?o:(0,x.t)(x.K.ASK_ANY_THING),submitWhen:"enter-without-shift",onSubmit:d,onChange:b}),h().createElement("div",{className:"actions-bar"},h().createElement("div",null,h().createElement("slot",{name:"actions"})),h().createElement("button",{className:"btn-send",disabled:!s,onClick:f},h().createElement(K,{lib:"fa",prefix:"fas",icon:"arrow-up"})))))}o=j,({e:[A,k,y,C,z,R,_,N,E,M,S],c:[F,w]}=(0,d.A)(o,[T("ai-portal.chat-box",{styleTexts:[v.A]})],[[B({type:Boolean}),1,"disabled"],[B(),1,"placeholder"],[B({type:Boolean}),1,"autoFocus"],[H({type:"message.submit"}),1,"messageSubmit",e=>(0,c.A)(Y,e),(e,t)=>(0,u.A)(Y,e,t)],[I(),2,"setValue"],[I(),2,"getValue"]],0,(e=>$.has((0,l.A)(e))),f.ReactNextElement)),w()},71451:(e,t,n)=>{n.d(t,{e:()=>c});var o=n(89575),a=n(18769),i=n(59435),r=n(99126);const l=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break","white-space"];let s;const u=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey",c=a.forwardRef(d);function d(e,t){let{autoResize:n,minRows:c,maxRows:d,borderSize:p,paddingSize:h,containerRef:b,value:f,style:m,submitWhen:g,onChange:x,onSubmit:v,onKeyDown:S,onCompositionStart:w,onCompositionEnd:A,...k}=e;const y=null==n||n,[C,z]=(0,a.useState)(null!=f?f:""),R=(0,a.useRef)(null),[_,N]=(0,a.useState)(null);(0,a.useImperativeHandle)(t,(()=>({focus:()=>{const e=R.current;if(e){var t;const n=null===(t=e.value)||void 0===t?void 0:t.length;e.focus(),n&&e.setSelectionRange(n,n)}}})),[]);const E=(0,a.useCallback)((()=>{const e=R.current;if(e&&y){const t=function(e,t){const{minRows:n=null,maxRows:o=null,borderSize:a=2,paddingSize:i=8}=null!=t?t:{};s||(s=document.createElement("textarea"),s.setAttribute("tab-index","-1"),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));const r=window.getComputedStyle(e),u=l.map((e=>`${e}:${r.getPropertyValue(e)}`)).join(";");let c,d,p;s.setAttribute("style",`${u};\n min-height: 0!important;\n max-height: none!important;\n height: 0!important;\n visibility: hidden!important;\n overflow: hidden!important;\n position: absolute!important;\n z-index: -1000!important;\n top: 0!important;\n right: 0!important;\n pointer-events: none!important;\n`),s.value=e.value||e.placeholder||"";let h=s.scrollHeight+a;if(null!==n||null!==o){const e=parseFloat(window.getComputedStyle(s).getPropertyValue("line-height"));null!==n&&(c=e*n+i+a,h=Math.max(c,h)),null!==o&&(d=e*o+i+a,h<=d&&(p="hidden"),h=Math.min(d,h))}const b={height:h,overflowY:p,resize:"none"};return c&&(b.minHeight=c),d&&(b.maxHeight=d),b}(e,{minRows:c,maxRows:d,borderSize:p,paddingSize:h});(0,i.flushSync)((()=>{N(t)}))}}),[y,d,c,p,h]);(0,a.useEffect)((()=>{z(null!=f?f:"")}),[f]),(0,a.useEffect)((()=>{E()}),[E,C]);const M=(0,a.useRef)(!1),K=(0,a.useCallback)((e=>{M.current=!0,null==w||w(e)}),[w]),T=(0,a.useCallback)((e=>{M.current=!1,null==A||A(e)}),[A]),B=(0,a.useCallback)((e=>{M.current||("Enter"===e.key&&("enter-without-shift"===g?!e.shiftKey:"enter-with-mod"===g&&e[u])&&(e.preventDefault(),e.stopPropagation(),null==v||v(e)),null==S||S(e))}),[S,v,g]);return(0,a.useEffect)((()=>{const e=null==b?void 0:b.current;if(!e||!y)return;let t;const n=new r.A((n=>{for(const o of n)if(o.target===e){const e=o.contentBoxSize?o.contentBoxSize[0]?o.contentBoxSize[0].inlineSize:o.contentBoxSize.inlineSize:o.contentRect.width;if(void 0!==e&&e!==t){const n=!t;t=e,n||requestAnimationFrame(E)}}}));return n.observe(e),()=>{n.disconnect()}}),[y,b,E]),a.createElement("textarea",(0,o.A)({},k,{ref:R,value:C,style:{...m,..._},onChange:e=>{z(e.target.value),null==x||x(e)},onCompositionStart:K,onCompositionEnd:T,onKeyDown:B}))}}}]);
2
+ //# sourceMappingURL=chat-box.37df7bc1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/chat-box.37df7bc1.js","mappings":"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","sources":["webpack:///./src/chat-box/i18n.ts","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/chat-box/index.tsx","webpack:///../../../src/utils/calculateAutoSizeStyle.ts","webpack:///../../src/TextareaAutoResize.tsx"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-box\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/bg.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat center bottom;background-size:100% 104px;padding:12px 12px 29px}.container{position:relative;background:#ffffff;box-shadow:0px 2px 4px 0px rgba(38,45,65,0.1);border-radius:16px;border:1px solid #dadfe8}.container:has(textarea:focus){border-color:#b7c3d8}textarea{display:block;width:100%;padding:10px 16px 50px;color:var(--antd-input-color);border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font-size:14px;line-height:22px;height:120px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.actions-bar{position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:flex-end;justify-content:space-between}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff;flex-shrink:0}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n useImperativeHandle,\n createRef,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport const ChatBoxComponent = forwardRef(LegacyChatBoxComponent);\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n}\n\nexport interface ChatBoxRef {\n setValue: (value: string) => void;\n getValue: () => string;\n}\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText],\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\n ref = createRef<ChatBoxRef>();\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @method()\n setValue(value: string) {\n this.ref.current?.setValue(value);\n }\n\n @method()\n getValue() {\n return this.ref.current?.getValue();\n }\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n onSubmit={this.#handleMessageSubmit}\n ref={this.ref}\n />\n );\n }\n}\n\nexport interface ChatBoxComponentProps extends ChatBoxProps {\n // Define react event handlers here.\n onSubmit: (value: string) => void;\n ref?: React.Ref<ChatBoxRef>;\n}\n\nexport function LegacyChatBoxComponent(\n { disabled, placeholder, autoFocus, onSubmit }: ChatBoxComponentProps,\n ref: React.Ref<ChatBoxRef>\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n\n useImperativeHandle(ref, () => ({\n setValue: (value: string) => {\n valueRef.current = value;\n setValue(value);\n },\n getValue: () => {\n return valueRef.current;\n },\n }));\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n onSubmit(e.currentTarget.value);\n }\n },\n [onSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onSubmit(valueRef.current);\n }, [onSubmit]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n return (\n <div className=\"root\">\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={58 / 22}\n paddingSize={60}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n <div className=\"actions-bar\">\n <div>\n <slot name=\"actions\"></slot>\n </div>\n <button\n className=\"btn-send\"\n disabled={!value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n </div>\n </div>\n );\n}\n","// istanbul ignore file\nimport type React from \"react\";\n\nconst HIDDEN_TEXTAREA_STYLE = `\n min-height: 0!important;\n max-height: none!important;\n height: 0!important;\n visibility: hidden!important;\n overflow: hidden!important;\n position: absolute!important;\n z-index: -1000!important;\n top: 0!important;\n right: 0!important;\n pointer-events: none!important;\n`;\n\nconst SIZING_STYLE = [\n \"letter-spacing\",\n \"line-height\",\n \"padding-top\",\n \"padding-bottom\",\n \"font-family\",\n \"font-weight\",\n \"font-size\",\n \"font-variant\",\n \"text-rendering\",\n \"text-transform\",\n \"width\",\n \"text-indent\",\n \"padding-left\",\n \"padding-right\",\n \"border-width\",\n \"box-sizing\",\n \"word-break\",\n \"white-space\",\n];\n\nlet hiddenTextarea: HTMLTextAreaElement | undefined;\n\nexport interface AutoSizeOptions {\n minRows?: number | null;\n maxRows?: number | null;\n borderSize?: number;\n paddingSize?: number;\n}\n\n/**\n * 计算 textarea 高度\n * https://github.com/react-component/textarea/blob/1c0026fbe30e5f7dff1fca695b2cf262246381ca/src/calculateNodeHeight.tsx\n */\nexport default function calculateAutoSizeStyle(\n uiTextNode: HTMLTextAreaElement,\n options?: AutoSizeOptions\n): React.CSSProperties {\n const {\n minRows = null,\n maxRows = null,\n borderSize = 2,\n paddingSize = 8,\n } = options ?? {};\n\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement(\"textarea\");\n hiddenTextarea.setAttribute(\"tab-index\", \"-1\");\n hiddenTextarea.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenTextarea);\n }\n\n const uiTextNodeStyle = window.getComputedStyle(uiTextNode);\n const sizingStyle = SIZING_STYLE.map(\n (name) => `${name}:${uiTextNodeStyle.getPropertyValue(name)}`\n ).join(\";\");\n\n // equal style\n hiddenTextarea.setAttribute(\n \"style\",\n `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`\n );\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || \"\";\n\n let minHeight: number | undefined;\n let maxHeight: number | undefined;\n let overflowY: React.CSSProperties[\"overflowY\"];\n\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n if (minRows !== null || maxRows !== null) {\n const singleRowHeight =\n process.env.NODE_ENV === \"test\"\n ? 22\n : parseFloat(\n window\n .getComputedStyle(hiddenTextarea)\n .getPropertyValue(\"line-height\")\n );\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n if (height <= maxHeight) {\n overflowY = \"hidden\";\n }\n height = Math.min(maxHeight, height);\n }\n }\n\n const style: React.CSSProperties = {\n height,\n overflowY,\n resize: \"none\",\n };\n\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n\n return style;\n}\n","import React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { flushSync } from \"react-dom\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport calculateAutoSizeStyle from \"./utils/calculateAutoSizeStyle.js\";\n\n// istanbul ignore next\nconst modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n\nexport interface TextareaAutoResizeProps\n extends React.DetailedHTMLProps<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n > {\n /** @default true */\n autoResize?: boolean;\n minRows?: number | null;\n maxRows?: number | null;\n /** @default 2 */\n borderSize?: number;\n /** @default 8 */\n paddingSize?: number;\n containerRef?: React.RefObject<HTMLElement>;\n submitWhen?: \"enter-without-shift\" | \"enter-with-mod\";\n}\n\nexport interface TextareaAutoResizeRef {\n focus(): void;\n}\n\nexport const TextareaAutoResize = React.forwardRef<\n TextareaAutoResizeRef,\n TextareaAutoResizeProps\n>(LegacyTextareaAutoResize);\n\nfunction LegacyTextareaAutoResize(\n {\n autoResize: _autoResize,\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n containerRef,\n value: propValue,\n style,\n submitWhen,\n onChange,\n onSubmit,\n onKeyDown,\n onCompositionStart,\n onCompositionEnd,\n ...props\n }: TextareaAutoResizeProps,\n ref: React.ForwardedRef<TextareaAutoResizeRef>\n): React.JSX.Element {\n const autoResize = _autoResize ?? true;\n const [value, setValue] = useState(propValue ?? \"\");\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const [autoStyle, setAutoStyle] = useState<React.CSSProperties | null>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n focus: () => {\n const textarea = textareaRef.current;\n // istanbul ignore else: defensive check\n if (textarea) {\n const valueLength = textarea.value?.length;\n textarea.focus();\n valueLength && textarea.setSelectionRange(valueLength, valueLength);\n }\n },\n }),\n []\n );\n\n const doAutoResize = useCallback(() => {\n const textarea = textareaRef.current;\n if (textarea && autoResize) {\n const style = calculateAutoSizeStyle(textarea, {\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n });\n // istanbul ignore next\n if (process.env.NODE_ENV === \"test\") {\n setAutoStyle(style);\n } else {\n flushSync(() => {\n setAutoStyle(style);\n });\n }\n }\n }, [autoResize, maxRows, minRows, borderSize, paddingSize]);\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLTextAreaElement>\n ): void => {\n setValue(e.target.value);\n onChange?.(e);\n };\n\n useEffect(() => {\n setValue(propValue ?? \"\");\n }, [propValue]);\n\n useEffect(() => {\n doAutoResize();\n }, [doAutoResize, value]);\n\n const compositionRef = useRef(false);\n\n const handleCompositionStart = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = true;\n onCompositionStart?.(e);\n },\n [onCompositionStart]\n );\n\n const handleCompositionEnd = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = false;\n onCompositionEnd?.(e);\n },\n [onCompositionEnd]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n\n if (\n e.key === \"Enter\" &&\n (submitWhen === \"enter-without-shift\"\n ? !e.shiftKey\n : submitWhen === \"enter-with-mod\" && e[modKey])\n ) {\n e.preventDefault();\n e.stopPropagation();\n onSubmit?.(e);\n }\n\n onKeyDown?.(e);\n },\n [onKeyDown, onSubmit, submitWhen]\n );\n\n // istanbul ignore next\n useEffect(() => {\n const container = containerRef?.current;\n if (!container || !autoResize) {\n return;\n }\n let previousInlineSize: number | undefined;\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === container) {\n // istanbul ignore next: compatibility\n const currentInlineSize = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].inlineSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .inlineSize\n : entry.contentRect.width;\n if (\n currentInlineSize !== undefined &&\n currentInlineSize !== previousInlineSize\n ) {\n const isInitial = !previousInlineSize;\n previousInlineSize = currentInlineSize;\n if (!isInitial) {\n requestAnimationFrame(doAutoResize);\n }\n }\n }\n }\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, [autoResize, containerRef, doAutoResize]);\n\n return (\n <textarea\n {...props}\n ref={textareaRef}\n value={value}\n style={{\n ...style,\n ...autoStyle,\n }}\n onChange={handleInputChange}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n onKeyDown={handleKeyDown}\n />\n );\n}\n"],"names":["K","en","ASK_ANY_THING","COMMON_TASKS","zh","NS","locales","t","i18n","getFixedT","module","exports","url","options","String","__esModule","default","test","slice","hash","needQuotes","concat","replace","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","push","id","toString","initializeI18n","WrappedIcon","wrapBrick","defineElement","property","event","method","createDecorators","ChatBoxComponent","forwardRef","LegacyChatBoxComponent","_ChatBox","_A","WeakMap","_B","_C","_D","_ChatBox_brand","WeakSet","_handleMessageSubmit","ChatBox","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_initProto","createRef","_classPrivateFieldInitSpec","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_messageSubmit","_init_extra_messageSubmit","_classPrivateGetter","this","_get_messageSubmit","emit","disabled","_classPrivateFieldGet","v","_classPrivateFieldSet","placeholder","autoFocus","setValue","_this$ref$current","ref","current","getValue","_this$ref$current2","render","React","onSubmit","_ref","containerRef","useRef","textareaRef","useState","valueRef","useImperativeHandle","handleSubmit","useCallback","e","currentTarget","handleChange","target","handleSubmitClick","useEffect","Promise","resolve","then","_textareaRef$current","focus","className","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","onChange","name","onClick","lib","prefix","icon","_ChatBox2","_set_messageSubmit","c","_initClass","_applyDecs","styleTexts","styleText","type","Boolean","o","_","has","_checkInRHS","SIZING_STYLE","hiddenTextarea","modKey","navigator","platform","LegacyTextareaAutoResize","_autoResize","maxRows","borderSize","propValue","style","onKeyDown","onCompositionStart","onCompositionEnd","props","autoStyle","setAutoStyle","textarea","_textarea$value","valueLength","length","setSelectionRange","doAutoResize","uiTextNode","document","createElement","setAttribute","body","appendChild","uiTextNodeStyle","window","getComputedStyle","sizingStyle","map","getPropertyValue","join","minHeight","maxHeight","overflowY","height","scrollHeight","singleRowHeight","parseFloat","Math","max","min","resize","calculateAutoSizeStyle","flushSync","compositionRef","handleCompositionStart","handleCompositionEnd","handleKeyDown","shiftKey","preventDefault","stopPropagation","container","previousInlineSize","observer","ResizeObserver","entries","entry","currentInlineSize","contentBoxSize","inlineSize","contentRect","width","undefined","isInitial","requestAnimationFrame","observe","disconnect","_extends"],"sourceRoot":""}
@@ -0,0 +1,3 @@
1
+ /*! For license information please see chat-input.2bd1c748.js.LICENSE.txt */
2
+ (globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[7218],{6798:(e,t,n)=>{"use strict";n.d(t,{I:()=>a,K:()=>o,NS:()=>r,t:()=>s});var i=n(87117);let o=function(e){return e.TERMINATE_THE_TASK="TERMINATE_THE_TASK",e}({});const r="bricks/ai-portal/chat-input",a={en:{TERMINATE_THE_TASK:"Terminate the task"},zh:{TERMINATE_THE_TASK:"终止任务"}},s=i.i18n.getFixedT(null,r)},6988:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ChatInput:()=>G});var i,o=n(74635),r=n(70918),a=n(26902),s=n(5536),l=n(86121),c=n(70829),u=n(62740),p=n(18769),d=n.n(p),h=n(7921),b=n(11280),f=n(71451),m=(n(65168),n(87117)),g=n(99126),x=n(53373),v=n.n(x),w=n(6798),A=n(84479);let S,k,E,y,T,z,R,C,M,_,B,N,K,W,H,D,F,I,P;(0,m.initializeI18n)(w.NS,w.I);const j={lib:"antd",icon:"loading-3-quarters",spinning:!0},$={lib:"fa",prefix:"far",icon:"circle-stop"},q=(0,b.wrapBrick)("eo-icon"),L=(0,b.wrapBrick)("ai-portal.icon-button"),{defineElement:O,property:V,event:Y}=(0,h.createDecorators)();let G;var J=new WeakMap,Q=new WeakMap,U=new WeakMap,X=new WeakMap,Z=new WeakMap,ee=new WeakMap,te=new WeakSet,ne=new WeakMap,ie=new WeakMap,oe=new WeakMap;class re extends b.ReactNextElement{constructor(){super(...arguments),(0,o.A)(this,te),(0,r.A)(this,J,k(this)),(0,r.A)(this,Q,(E(this),y(this))),(0,r.A)(this,U,(T(this),z(this))),(0,r.A)(this,X,(R(this),C(this))),(0,r.A)(this,Z,(M(this),_(this))),(0,r.A)(this,ee,(B(this),N(this))),(0,r.A)(this,ne,(H(this),e=>{(0,s.A)(te,this,K).emit(e)})),(0,r.A)(this,ie,D(this)),(0,r.A)(this,oe,(P(this),()=>{(0,s.A)(te,this,F).emit()}))}get placeholder(){return(0,c.A)(J,this)}set placeholder(e){(0,l.A)(J,this,e)}get autoFocus(){return(0,c.A)(Q,this)}set autoFocus(e){(0,l.A)(Q,this,e)}get submitDisabled(){return(0,c.A)(U,this)}set submitDisabled(e){(0,l.A)(U,this,e)}get supportsTerminate(){return(0,c.A)(X,this)}set supportsTerminate(e){(0,l.A)(X,this,e)}get terminating(){return(0,c.A)(Z,this)}set terminating(e){(0,l.A)(Z,this,e)}render(){return d().createElement(ae,{placeholder:this.placeholder,autoFocus:this.autoFocus,submitDisabled:this.submitDisabled,supportsTerminate:this.supportsTerminate,terminating:this.terminating,onSubmit:(0,c.A)(ne,this),onTerminate:(0,c.A)(oe,this)})}}function ae(e){let{placeholder:t,autoFocus:n,submitDisabled:i,supportsTerminate:o,terminating:r,onSubmit:a,onTerminate:s}=e;const l=(0,p.useRef)(null),c=(0,p.useRef)(null),[u,h]=(0,p.useState)(""),b=(0,p.useRef)(""),[m,x]=(0,p.useState)(!1);(0,p.useEffect)((()=>{var e;n&&!i&&(null===(e=c.current)||void 0===e||e.focus())}),[n,i]);const A=(0,p.useCallback)((e=>{!i&&e&&(a(e),b.current="",h(""))}),[i,a]),S=(0,p.useCallback)((e=>{A(e.currentTarget.value)}),[A]),k=(0,p.useCallback)((e=>{b.current=e.target.value,h(e.target.value)}),[]),E=(0,p.useCallback)((()=>{A(b.current)}),[A]);(0,p.useEffect)((()=>{const e=null==l?void 0:l.current;if(!e)return;const t=new g.A((t=>{for(const n of t)n.target===e&&(n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height)>52&&x(!0)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,p.useEffect)((()=>{u||x(!1)}),[u]);const y=(0,p.useCallback)((e=>{var t;for(const t of e.nativeEvent.composedPath())if(t instanceof HTMLTextAreaElement||t instanceof HTMLButtonElement)return;null===(t=c.current)||void 0===t||t.focus()}),[]);return d().createElement("div",{className:"container",onClick:y},d().createElement("div",{className:v()("box",{wrap:m})},d().createElement("div",{className:"input",ref:l},d().createElement(f.e,{containerRef:l,ref:c,value:u,minRows:1,maxRows:4,borderSize:0,paddingSize:16,autoResize:!0,placeholder:t,submitWhen:"enter-without-shift",onSubmit:S,onChange:k})),d().createElement("div",{className:"toolbar"},i&&o?d().createElement(d().Fragment,null,r?d().createElement(L,{icon:j,disabled:!0}):d().createElement(L,{icon:$,tooltip:(0,w.t)(w.K.TERMINATE_THE_TASK),onClick:s})):d().createElement("button",{className:"btn-send",disabled:i||!u,onClick:E},d().createElement(q,{lib:"fa",icon:"arrow-up"})))))}i=re,({e:[k,E,y,T,z,R,C,M,_,B,N,K,W,H,D,F,I,P],c:[G,S]}=(0,u.A)(i,[O("ai-portal.chat-input",{styleTexts:[A.A]})],[[V(),1,"placeholder"],[V({type:Boolean}),1,"autoFocus"],[V({type:Boolean}),1,"submitDisabled"],[V({type:Boolean}),1,"supportsTerminate"],[V({type:Boolean}),1,"terminating"],[Y({type:"message.submit"}),1,"messageSubmit",e=>(0,c.A)(ee,e),(e,t)=>(0,l.A)(ee,e,t)],[Y({type:"terminate"}),1,"terminate",e=>(0,c.A)(ie,e),(e,t)=>(0,l.A)(ie,e,t)]],0,(e=>oe.has((0,a.A)(e))),b.ReactNextElement)),S()},53373:(e,t)=>{var n;!function(){"use strict";var i={}.hasOwnProperty;function o(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];n&&(e=a(e,r(n)))}return e}function r(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return o.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var n in e)i.call(e,n)&&e[n]&&(t=a(t,n));return t}function a(e,t){return t?e?e+" "+t:e+t:e}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},71451:(e,t,n)=>{"use strict";n.d(t,{e:()=>u});var i=n(89575),o=n(18769),r=n(59435),a=n(99126);const s=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break","white-space"];let l;const c=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey",u=o.forwardRef(p);function p(e,t){let{autoResize:n,minRows:u,maxRows:p,borderSize:d,paddingSize:h,containerRef:b,value:f,style:m,submitWhen:g,onChange:x,onSubmit:v,onKeyDown:w,onCompositionStart:A,onCompositionEnd:S,...k}=e;const E=null==n||n,[y,T]=(0,o.useState)(null!=f?f:""),z=(0,o.useRef)(null),[R,C]=(0,o.useState)(null);(0,o.useImperativeHandle)(t,(()=>({focus:()=>{const e=z.current;if(e){var t;const n=null===(t=e.value)||void 0===t?void 0:t.length;e.focus(),n&&e.setSelectionRange(n,n)}}})),[]);const M=(0,o.useCallback)((()=>{const e=z.current;if(e&&E){const t=function(e,t){const{minRows:n=null,maxRows:i=null,borderSize:o=2,paddingSize:r=8}=null!=t?t:{};l||(l=document.createElement("textarea"),l.setAttribute("tab-index","-1"),l.setAttribute("aria-hidden","true"),document.body.appendChild(l));const a=window.getComputedStyle(e),c=s.map((e=>`${e}:${a.getPropertyValue(e)}`)).join(";");let u,p,d;l.setAttribute("style",`${c};\n min-height: 0!important;\n max-height: none!important;\n height: 0!important;\n visibility: hidden!important;\n overflow: hidden!important;\n position: absolute!important;\n z-index: -1000!important;\n top: 0!important;\n right: 0!important;\n pointer-events: none!important;\n`),l.value=e.value||e.placeholder||"";let h=l.scrollHeight+o;if(null!==n||null!==i){const e=parseFloat(window.getComputedStyle(l).getPropertyValue("line-height"));null!==n&&(u=e*n+r+o,h=Math.max(u,h)),null!==i&&(p=e*i+r+o,h<=p&&(d="hidden"),h=Math.min(p,h))}const b={height:h,overflowY:d,resize:"none"};return u&&(b.minHeight=u),p&&(b.maxHeight=p),b}(e,{minRows:u,maxRows:p,borderSize:d,paddingSize:h});(0,r.flushSync)((()=>{C(t)}))}}),[E,p,u,d,h]);(0,o.useEffect)((()=>{T(null!=f?f:"")}),[f]),(0,o.useEffect)((()=>{M()}),[M,y]);const _=(0,o.useRef)(!1),B=(0,o.useCallback)((e=>{_.current=!0,null==A||A(e)}),[A]),N=(0,o.useCallback)((e=>{_.current=!1,null==S||S(e)}),[S]),K=(0,o.useCallback)((e=>{_.current||("Enter"===e.key&&("enter-without-shift"===g?!e.shiftKey:"enter-with-mod"===g&&e[c])&&(e.preventDefault(),e.stopPropagation(),null==v||v(e)),null==w||w(e))}),[w,v,g]);return(0,o.useEffect)((()=>{const e=null==b?void 0:b.current;if(!e||!E)return;let t;const n=new a.A((n=>{for(const i of n)if(i.target===e){const e=i.contentBoxSize?i.contentBoxSize[0]?i.contentBoxSize[0].inlineSize:i.contentBoxSize.inlineSize:i.contentRect.width;if(void 0!==e&&e!==t){const n=!t;t=e,n||requestAnimationFrame(M)}}}));return n.observe(e),()=>{n.disconnect()}}),[E,b,M]),o.createElement("textarea",(0,i.A)({},k,{ref:z,value:y,style:{...m,...R},onChange:e=>{T(e.target.value),null==x||x(e)},onCompositionStart:B,onCompositionEnd:N,onKeyDown:K}))}},84479:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var i=n(36758),o=n.n(i),r=n(40935),a=n.n(r)()(o());a.push([e.id,":host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.container{background-color:#fff;border:2px solid #7891ff;border-radius:12px;box-shadow:0px 9px 28px 8px rgba(0,0,0,0.05),0px 6px 16px 0px rgba(0,0,0,0.08),0px 3px 6px -4px rgba(0,0,0,0.12);cursor:text}.container:not(:has(textarea:focus)){background-color:rgba(255,255,255,0.5);border-color:#99c4ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.box{display:flex;flex-wrap:wrap;border-radius:10px;padding:8px}.input{min-width:0;flex:1}.wrap .input{flex-basis:100%}.input textarea{display:block;width:100%;padding:8px;font-size:16px;line-height:24px;color:var(--antd-input-color);border:none;background:none;height:24px;color:#262626}.input textarea::placeholder{color:#bfbfbf}.toolbar{padding:5px 0 5px 8px;margin-left:auto;display:flex;align-items:center;gap:2px}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff}.btn-send:disabled{background:rgba(0,0,0,0.15)}.btn-send:not(:disabled){cursor:pointer}.btn-send:not(:disabled):hover{background:#5166ff}.btn-send:not(:disabled):active{background:#1e33cc}",""]);const s=a.toString()}}]);
3
+ //# sourceMappingURL=chat-input.2bd1c748.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/chat-input.2bd1c748.js","mappings":";qMAEO,IAAKA,EAAC,SAADA,GAAC,OAADA,EAAC,wCAADA,CAAC,MAIb,MAQaC,EAAK,8BAELC,EAAU,CAAEC,GAVN,CACjBC,mBAAoB,sBASOC,GANV,CACjBD,mBAAoB,SAOTE,EAAIC,EAAAA,KAAKC,UAAU,KAAMP,2TCCtCQ,EAAAA,EAAAA,gBAAeR,EAAAA,GAAIC,EAAAA,GAEnB,MAAMQ,EAAiC,CACrCC,IAAK,OACLC,KAAM,qBACNC,UAAU,GAGNC,EAA8B,CAClCH,IAAK,KACLI,OAAQ,MACRH,KAAM,eAGFI,GAAcC,EAAAA,EAAAA,WAAyC,WACvDC,GAAoBD,EAAAA,EAAAA,WACxB,0BAGI,cAAEE,EAAa,SAAEC,EAAQ,MAAEC,IAAUC,EAAAA,EAAAA,oBAAmB,IAAAC,EAAA,IAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,EAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAC,QAAAC,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAwB9D,MAAAW,WAGwBC,EAAAA,iBAA2CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAT,KAAAU,EAAAA,EAAAA,GAAA,KAAAjB,EAAAkB,EAAA,QAAAD,EAAAA,EAAAA,GAAA,KAAAf,GAAAiB,EAAA,MAAAC,EAAA,SAAAH,EAAAA,EAAAA,GAAA,KAAAd,GAAAkB,EAAA,MAAAC,EAAA,SAAAL,EAAAA,EAAAA,GAAA,KAAAb,GAAAmB,EAAA,MAAAC,EAAA,SAAAP,EAAAA,EAAAA,GAAA,KAAAZ,GAAAoB,EAAA,MAAAC,EAAA,SAAAT,EAAAA,EAAAA,GAAA,KAAAX,IAAAqB,EAAA,MAAAC,EAAA,SAmBjEX,EAAAA,EAAAA,GAAA,KAAAR,IAAoBoB,EAAA,MAAIC,KACtBC,EAAAA,EAAAA,GAAAxB,GAAAyB,KAAKC,GAAeC,KAAKJ,EAAM,KAC/Bb,EAAAA,EAAAA,GAAA,KAAAP,GAAAyB,EAAA,QAKFlB,EAAAA,EAAAA,GAAA,KAAAN,IAAgByB,EAAA,MAAG,MACjBL,EAAAA,EAAAA,GAAAxB,GAAAyB,KAAKK,GAAWH,MAAM,GACtB,gBA1BOI,GAAW,OAAAC,EAAAA,EAAAA,GAAAvC,EAAA,qBAAXsC,CAAWE,IAAAC,EAAAA,EAAAA,GAAAzC,EAAA,KAAAwC,EAAA,cAGXE,GAAS,OAAAH,EAAAA,EAAAA,GAAArC,EAAA,mBAATwC,CAASF,IAAAC,EAAAA,EAAAA,GAAAvC,EAAA,KAAAsC,EAAA,mBAGTG,GAAc,OAAAJ,EAAAA,EAAAA,GAAApC,EAAA,wBAAdwC,CAAcH,IAAAC,EAAAA,EAAAA,GAAAtC,EAAA,KAAAqC,EAAA,sBAGdI,GAAiB,OAAAL,EAAAA,EAAAA,GAAAnC,EAAA,2BAAjBwC,CAAiBJ,IAAAC,EAAAA,EAAAA,GAAArC,EAAA,KAAAoC,EAAA,gBAGjBK,GAAW,OAAAN,EAAAA,EAAAA,GAAAlC,EAAA,qBAAXwC,CAAWL,IAAAC,EAAAA,EAAAA,GAAApC,EAAA,KAAAmC,EAAA,CAgBpBM,MAAAA,GACE,OACEC,IAAAA,cAACC,GAAkB,CACjBV,YAAaN,KAAKM,YAClBI,UAAWV,KAAKU,UAChBC,eAAgBX,KAAKW,eACrBC,kBAAmBZ,KAAKY,kBACxBC,YAAab,KAAKa,YAClBI,UAAUV,EAAAA,EAAAA,GAAK9B,GAALuB,MACVkB,aAAaX,EAAAA,EAAAA,GAAK5B,GAALqB,OAGnB,EAQF,SAASgB,GAAkBG,GAQC,IARA,YAC1Bb,EAAW,UACXI,EAAS,eACTC,EAAc,kBACdC,EAAiB,YACjBC,EAAW,SACXI,EAAQ,YACRC,GACwBC,EACxB,MAAMC,GAAeC,EAAAA,EAAAA,QAAuB,MACtCC,GAAcD,EAAAA,EAAAA,QAA8B,OAC3CvB,EAAOyB,IAAYC,EAAAA,EAAAA,UAAS,IAC7BC,GAAWJ,EAAAA,EAAAA,QAAO,KACjBK,EAAMC,IAAWH,EAAAA,EAAAA,WAAS,IAEjCI,EAAAA,EAAAA,YAAU,KAC0B,IAAAC,EAA9BnB,IAAcC,IACG,QAAnBkB,EAAAP,EAAYQ,eAAO,IAAAD,GAAnBA,EAAqBE,QACvB,GACC,CAACrB,EAAWC,IAEf,MAAMqB,GAAiBC,EAAAA,EAAAA,cACpBnC,KACKa,GAAmBb,IAIvBmB,EAASnB,GACT2B,EAASK,QAAU,GACnBP,EAAS,IAAG,GAEd,CAACZ,EAAgBM,IAGbiB,GAAeD,EAAAA,EAAAA,cAClBE,IACCH,EAAeG,EAAEC,cAActC,MAAM,GAEvC,CAACkC,IAGGK,GAAeJ,EAAAA,EAAAA,cAClBE,IACCV,EAASK,QAAUK,EAAEG,OAAOxC,MAC5ByB,EAASY,EAAEG,OAAOxC,MAAM,GAE1B,IAGIyC,GAAoBN,EAAAA,EAAAA,cAAY,KACpCD,EAAeP,EAASK,QAAQ,GAC/B,CAACE,KAGJJ,EAAAA,EAAAA,YAAU,KACR,MAAMY,EAAYpB,aAAY,EAAZA,EAAcU,QAChC,IAAKU,EACH,OAEF,MAAMC,EAAW,IAAIC,EAAAA,GAAgBC,IACnC,IAAK,MAAMC,KAASD,EACdC,EAAMN,SAAWE,IACMI,EAAMC,eAC3BD,EAAMC,eAAe,GACnBD,EAAMC,eAAe,GAAGC,UACvBF,EAAMC,eACJC,UACLF,EAAMG,YAAYC,QACC,IACrBrB,GAAQ,EAGd,IAGF,OADAc,EAASQ,QAAQT,GACV,KACLC,EAASS,YAAY,CACtB,GACA,KAEHtB,EAAAA,EAAAA,YAAU,KACH9B,GACH6B,GAAQ,EACV,GACC,CAAC7B,IAEJ,MAAMqD,GAAuBlB,EAAAA,EAAAA,cAAaE,IAAwB,IAAAiB,EAChE,IAAK,MAAMC,KAAQlB,EAAEmB,YAAYC,eAC/B,GACEF,aAAgBG,qBAChBH,aAAgBI,kBAEhB,OAGe,QAAnBL,EAAA9B,EAAYQ,eAAO,IAAAsB,GAAnBA,EAAqBrB,OAAO,GAC3B,IAEH,OACEhB,IAAAA,cAAA,OAAK2C,UAAU,YAAYC,QAASR,GAClCpC,IAAAA,cAAA,OAAK2C,UAAWE,IAAW,MAAO,CAAElC,UAClCX,IAAAA,cAAA,OAAK2C,UAAU,QAAQG,IAAKzC,GAC1BL,IAAAA,cAAC+C,EAAAA,EAAkB,CACjB1C,aAAcA,EACdyC,IAAKvC,EACLxB,MAAOA,EACPiE,QAAS,EACTC,QAAS,EACTC,WAAY,EACZC,YAAa,GACbC,YAAU,EACV7D,YAAaA,EACb8D,WAAW,sBACXnD,SAAUiB,EACVmC,SAAUhC,KAGdtB,IAAAA,cAAA,OAAK2C,UAAU,WACX/C,GAAmBC,EASnBG,IAAAA,cAAAA,IAAAA,SAAA,KACGF,EACCE,IAAAA,cAACrD,EAAiB,CAACN,KAAMF,EAAcoH,UAAQ,IAE/CvD,IAAAA,cAACrD,EAAiB,CAChBN,KAAME,EACNiH,SAASzH,EAAAA,EAAAA,GAAEN,EAAAA,EAAEI,oBACb+G,QAASzC,KAffH,IAAAA,cAAA,UACE2C,UAAU,WACVY,SAAU3D,IAAmBb,EAC7B6D,QAASpB,GAETxB,IAAAA,cAACvD,EAAW,CAACL,IAAI,KAAKC,KAAK,gBAmBzC,CAtJCoH,EAAA5F,KAAAuD,GAAAjD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAK,EAAAwE,EAAA5E,EAAAM,EAAAE,EAAAqE,EAAAtE,GAAAuE,GAAA5G,EAAA6G,KAAAC,EAAAA,EAAAA,GAAAL,EAAA,CA9CA7G,EAAc,uBAAwB,CACrCmH,WAAY,CAACC,EAAAA,MACb,EAECnH,IAAU,kBAGVA,EAAS,CAAEoH,KAAMC,UAAU,gBAG3BrH,EAAS,CAAEoH,KAAMC,UAAU,qBAG3BrH,EAAS,CAAEoH,KAAMC,UAAU,wBAG3BrH,EAAS,CAAEoH,KAAMC,UAAU,kBAG3BpH,EAAM,CAAEmH,KAAM,mBAAmB,kBAAAE,IAAA3E,EAAAA,EAAAA,GAAAjC,GAAA4G,GAAA,CAAAA,EAAA1E,KAAAC,EAAAA,EAAAA,GAAAnC,GAAA4G,EAAA1E,IAAA,CAOjC3C,EAAM,CAAEmH,KAAM,cAAc,cAAAE,IAAA3E,EAAAA,EAAAA,GAAA7B,GAAAwG,GAAA,CAAAA,EAAA1E,KAAAC,EAAAA,EAAAA,GAAA/B,GAAAwG,EAAA1E,KAAA,GAAA2E,GAAAxG,GAAAyG,KAAAC,EAAAA,EAAAA,GAAAF,KAvBPtG,EAAAA,mBAAgB+F,mBCjExC,OAOC,WACA,aAEA,IAAIU,EAAS,CAAC,EAAEC,eAEhB,SAAS3B,IAGR,IAFA,IAAI4B,EAAU,GAELC,EAAI,EAAGA,EAAI1G,UAAU2G,OAAQD,IAAK,CAC1C,IAAIE,EAAM5G,UAAU0G,GAChBE,IACHH,EAAUI,EAAYJ,EAASK,EAAWF,IAE5C,CAEA,OAAOH,CACR,CAEA,SAASK,EAAYF,GACpB,GAAmB,iBAARA,GAAmC,iBAARA,EACrC,OAAOA,EAGR,GAAmB,iBAARA,EACV,MAAO,GAGR,GAAIG,MAAMC,QAAQJ,GACjB,OAAO/B,EAAWoC,MAAM,KAAML,GAG/B,GAAIA,EAAIM,WAAaC,OAAOC,UAAUF,WAAaN,EAAIM,SAASA,WAAWG,SAAS,iBACnF,OAAOT,EAAIM,WAGZ,IAAIT,EAAU,GAEd,IAAK,IAAIa,KAAOV,EACXL,EAAOgB,KAAKX,EAAKU,IAAQV,EAAIU,KAChCb,EAAUI,EAAYJ,EAASa,IAIjC,OAAOb,CACR,CAEA,SAASI,EAAa9F,EAAOyG,GAC5B,OAAKA,EAIDzG,EACIA,EAAQ,IAAMyG,EAGfzG,EAAQyG,EAPPzG,CAQT,CAEqC0G,EAAOC,SAC3C7C,EAAW8C,QAAU9C,EACrB4C,EAAOC,QAAU7C,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIH,CArEA,kGCJA,MAaM+C,EAAe,CACnB,iBACA,cACA,cACA,iBACA,cACA,cACA,YACA,eACA,iBACA,iBACA,QACA,cACA,eACA,gBACA,eACA,aACA,aACA,eAGF,IAAIC,ECzBJ,MAAMC,EAAS,uBAAuBC,KAAKC,UAAUC,UACjD,UACA,UAuBSlD,EAAqB/C,EAAAA,WAGhCkG,GAEF,SAASA,EAAwB9F,EAkB/B0C,GACmB,IAjBjBM,WAAY+C,EAAW,QACvBnD,EAAO,QACPC,EAAO,WACPC,EAAU,YACVC,EAAW,aACX9C,EACAtB,MAAOqH,EAAS,MAChBC,EAAK,WACLhD,EAAU,SACVC,EAAQ,SACRpD,EAAQ,UACRoG,EAAS,mBACTC,EAAkB,iBAClBC,KACGC,GACqBrG,EAG1B,MAAMgD,EAAa+C,SAAAA,GACZpH,EAAOyB,IAAYC,EAAAA,EAAAA,UAAS2F,QAAAA,EAAa,IAC1C7F,GAAcD,EAAAA,EAAAA,QAA4B,OACzCoG,EAAWC,IAAgBlG,EAAAA,EAAAA,UAAqC,OAEvEmG,EAAAA,EAAAA,qBACE9D,GACA,KAAM,CACJ9B,MAAOA,KACL,MAAM6F,EAAWtG,EAAYQ,QAE7B,GAAI8F,EAAU,KAAAC,EACZ,MAAMC,EAA4B,QAAjBD,EAAGD,EAAS9H,aAAK,IAAA+H,OAAA,EAAdA,EAAgBnC,OACpCkC,EAAS7F,QACT+F,GAAeF,EAASG,kBAAkBD,EAAaA,EACzD,MAGJ,IAGF,MAAME,GAAe/F,EAAAA,EAAAA,cAAY,KAC/B,MAAM2F,EAAWtG,EAAYQ,QAC7B,GAAI8F,GAAYzD,EAAY,CAC1B,MAAMiD,EDpCG,SACba,EACAC,GAEA,MAAM,QACJnE,EAAU,KAAI,QACdC,EAAU,KAAI,WACdC,EAAa,EAAC,YACdC,EAAc,GACZgE,QAAAA,EAAW,CAAC,EAEXtB,IACHA,EAAiBuB,SAASC,cAAc,YACxCxB,EAAeyB,aAAa,YAAa,MACzCzB,EAAeyB,aAAa,cAAe,QAC3CF,SAASG,KAAKC,YAAY3B,IAG5B,MAAM4B,EAAkBC,OAAOC,iBAAiBT,GAC1CU,EAAchC,EAAaiC,KAC9BC,GAAS,GAAGA,KAAQL,EAAgBM,iBAAiBD,OACtDE,KAAK,KASP,IAAIC,EACAC,EACAC,EARJtC,EAAeyB,aACb,QACA,GAAGM,wSAEL/B,EAAe9G,MAAQmI,EAAWnI,OAASmI,EAAW3H,aAAe,GAMrE,IAAI0C,EAAS4D,EAAeuC,aAAelF,EAE3C,GAAgB,OAAZF,GAAgC,OAAZC,EAAkB,CACxC,MAAMoF,EAGAC,WACEZ,OACGC,iBAAiB9B,GACjBkC,iBAAiB,gBAEZ,OAAZ/E,IACFiF,EAAYI,EAAkBrF,EAAUG,EAAcD,EACtDjB,EAASsG,KAAKC,IAAIP,EAAWhG,IAEf,OAAZgB,IACFiF,EAAYG,EAAkBpF,EAAUE,EAAcD,EAClDjB,GAAUiG,IACZC,EAAY,UAEdlG,EAASsG,KAAKE,IAAIP,EAAWjG,GAEjC,CAEA,MAAMoE,EAA6B,CACjCpE,SACAkG,YACAO,OAAQ,QAUV,OAPIT,IACF5B,EAAM4B,UAAYA,GAEhBC,IACF7B,EAAM6B,UAAYA,GAGb7B,CACT,CCpCoBsC,CAAuB9B,EAAU,CAC7C7D,UACAC,UACAC,aACAC,iBAMAyF,EAAAA,EAAAA,YAAU,KACRjC,EAAaN,EAAM,GAGzB,IACC,CAACjD,EAAYH,EAASD,EAASE,EAAYC,KAS9CtC,EAAAA,EAAAA,YAAU,KACRL,EAAS4F,QAAAA,EAAa,GAAG,GACxB,CAACA,KAEJvF,EAAAA,EAAAA,YAAU,KACRoG,GAAc,GACb,CAACA,EAAclI,IAElB,MAAM8J,GAAiBvI,EAAAA,EAAAA,SAAO,GAExBwI,GAAyB5H,EAAAA,EAAAA,cAC5BE,IACCyH,EAAe9H,SAAU,EACzBwF,SAAAA,EAAqBnF,EAAE,GAEzB,CAACmF,IAGGwC,GAAuB7H,EAAAA,EAAAA,cAC1BE,IACCyH,EAAe9H,SAAU,EACzByF,SAAAA,EAAmBpF,EAAE,GAEvB,CAACoF,IAGGwC,GAAgB9H,EAAAA,EAAAA,cACnBE,IACKyH,EAAe9H,UAMP,UAAVK,EAAEkE,MACc,wBAAfjC,GACIjC,EAAE6H,SACY,mBAAf5F,GAAmCjC,EAAE0E,MAEzC1E,EAAE8H,iBACF9H,EAAE+H,kBACFjJ,SAAAA,EAAWkB,IAGbkF,SAAAA,EAAYlF,GAAE,GAEhB,CAACkF,EAAWpG,EAAUmD,IAuCxB,OAnCAxC,EAAAA,EAAAA,YAAU,KACR,MAAMY,EAAYpB,aAAY,EAAZA,EAAcU,QAChC,IAAKU,IAAc2B,EACjB,OAEF,IAAIgG,EACJ,MAAM1H,EAAW,IAAIC,EAAAA,GAAgBC,IACnC,IAAK,MAAMC,KAASD,EAClB,GAAIC,EAAMN,SAAWE,EAAW,CAE9B,MAAM4H,EAAoBxH,EAAMC,eAC5BD,EAAMC,eAAe,GACnBD,EAAMC,eAAe,GAAGwH,WACvBzH,EAAMC,eACJwH,WACLzH,EAAMG,YAAYuH,MACtB,QACwBC,IAAtBH,GACAA,IAAsBD,EACtB,CACA,MAAMK,GAAaL,EACnBA,EAAqBC,EAChBI,GACHC,sBAAsBzC,EAE1B,CACF,CACF,IAGF,OADAvF,EAASQ,QAAQT,GACV,KACLC,EAASS,YAAY,CACtB,GACA,CAACiB,EAAY/C,EAAc4G,IAG5BjH,EAAAA,cAAA,YAAA2J,EAAAA,EAAAA,GAAA,GACMlD,EAAK,CACT3D,IAAKvC,EACLxB,MAAOA,EACPsH,MAAO,IACFA,KACAK,GAELpD,SApGFlC,IAEAZ,EAASY,EAAEG,OAAOxC,OAClBuE,SAAAA,EAAWlC,EAAE,EAkGXmF,mBAAoBuC,EACpBtC,iBAAkBuC,EAClBzC,UAAW0C,IAGjB,oFC/MIY,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACpE,EAAOqE,GAAI,uuCACuV,KAEhY,QAAeF,EAAwB1E","sources":["webpack:///./src/chat-input/i18n.ts","webpack:///./src/chat-input/index.tsx","webpack:///../../node_modules/classnames/index.js","webpack:///../../../src/utils/calculateAutoSizeStyle.ts","webpack:///../../src/TextareaAutoResize.tsx","webpack:///./src/chat-input/styles.shadow.css"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n TERMINATE_THE_TASK = \"TERMINATE_THE_TASK\",\n}\n\nconst en: Locale = {\n TERMINATE_THE_TASK: \"Terminate the task\",\n};\n\nconst zh: Locale = {\n TERMINATE_THE_TASK: \"终止任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-input\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport type { IconButton, IconButtonProps } from \"../icon-button\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst ICON_LOADING: GeneralIconProps = {\n lib: \"antd\",\n icon: \"loading-3-quarters\",\n spinning: true,\n};\n\nconst ICON_STOP: GeneralIconProps = {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"circle-stop\",\n};\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatInputProps {\n placeholder?: string;\n autoFocus?: boolean;\n submitDisabled?: boolean;\n supportsTerminate?: boolean;\n terminating?: boolean;\n}\n\nexport interface ChatInputEvents {\n \"message.submit\": CustomEvent<string>;\n terminate: Event;\n}\n\nexport interface ChatInputMapEvents {\n onMessageSubmit: \"message.submit\";\n onTerminate: \"terminate\";\n}\n\n/**\n * 构件 `ai-portal.chat-input`\n */\nexport\n@defineElement(\"ai-portal.chat-input\", {\n styleTexts: [styleText],\n})\nclass ChatInput extends ReactNextElement implements ChatInputProps {\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ type: Boolean })\n accessor submitDisabled: boolean | undefined;\n\n @property({ type: Boolean })\n accessor supportsTerminate: boolean | undefined;\n\n @property({ type: Boolean })\n accessor terminating: boolean | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @event({ type: \"terminate\" })\n accessor #terminate!: EventEmitter<void>;\n\n #handleTerminate = () => {\n this.#terminate.emit();\n };\n\n render() {\n return (\n <ChatInputComponent\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n submitDisabled={this.submitDisabled}\n supportsTerminate={this.supportsTerminate}\n terminating={this.terminating}\n onSubmit={this.#handleMessageSubmit}\n onTerminate={this.#handleTerminate}\n />\n );\n }\n}\n\ninterface ChatInputComponentProps extends ChatInputProps {\n onSubmit: (value: string) => void;\n onTerminate: () => void;\n}\n\nfunction ChatInputComponent({\n placeholder,\n autoFocus,\n submitDisabled,\n supportsTerminate,\n terminating,\n onSubmit,\n onTerminate,\n}: ChatInputComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n const [wrap, setWrap] = useState(false);\n\n useEffect(() => {\n if (autoFocus && !submitDisabled) {\n textareaRef.current?.focus();\n }\n }, [autoFocus, submitDisabled]);\n\n const onBeforeSubmit = useCallback(\n (value: string) => {\n if (submitDisabled || !value) {\n return;\n }\n\n onSubmit(value);\n valueRef.current = \"\";\n setValue(\"\");\n },\n [submitDisabled, onSubmit]\n );\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n onBeforeSubmit(e.currentTarget.value);\n },\n [onBeforeSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onBeforeSubmit(valueRef.current);\n }, [onBeforeSubmit]);\n\n // istanbul ignore next\n useEffect(() => {\n const container = containerRef?.current;\n if (!container) {\n return;\n }\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === container) {\n const currentBlockSize = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].blockSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .blockSize\n : entry.contentRect.height;\n if (currentBlockSize > 52) {\n setWrap(true);\n }\n }\n }\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (!value) {\n setWrap(false);\n }\n }, [value]);\n\n const handleContainerClick = useCallback((e: React.MouseEvent) => {\n for (const item of e.nativeEvent.composedPath()) {\n if (\n item instanceof HTMLTextAreaElement ||\n item instanceof HTMLButtonElement\n ) {\n return;\n }\n }\n textareaRef.current?.focus();\n }, []);\n\n return (\n <div className=\"container\" onClick={handleContainerClick}>\n <div className={classNames(\"box\", { wrap })}>\n <div className=\"input\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={1}\n maxRows={4}\n borderSize={0}\n paddingSize={16}\n autoResize\n placeholder={placeholder}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n </div>\n <div className=\"toolbar\">\n {!submitDisabled || !supportsTerminate ? (\n <button\n className=\"btn-send\"\n disabled={submitDisabled || !value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" icon=\"arrow-up\" />\n </button>\n ) : (\n <>\n {terminating ? (\n <WrappedIconButton icon={ICON_LOADING} disabled />\n ) : (\n <WrappedIconButton\n icon={ICON_STOP}\n tooltip={t(K.TERMINATE_THE_TASK)}\n onClick={onTerminate}\n />\n )}\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// istanbul ignore file\nimport type React from \"react\";\n\nconst HIDDEN_TEXTAREA_STYLE = `\n min-height: 0!important;\n max-height: none!important;\n height: 0!important;\n visibility: hidden!important;\n overflow: hidden!important;\n position: absolute!important;\n z-index: -1000!important;\n top: 0!important;\n right: 0!important;\n pointer-events: none!important;\n`;\n\nconst SIZING_STYLE = [\n \"letter-spacing\",\n \"line-height\",\n \"padding-top\",\n \"padding-bottom\",\n \"font-family\",\n \"font-weight\",\n \"font-size\",\n \"font-variant\",\n \"text-rendering\",\n \"text-transform\",\n \"width\",\n \"text-indent\",\n \"padding-left\",\n \"padding-right\",\n \"border-width\",\n \"box-sizing\",\n \"word-break\",\n \"white-space\",\n];\n\nlet hiddenTextarea: HTMLTextAreaElement | undefined;\n\nexport interface AutoSizeOptions {\n minRows?: number | null;\n maxRows?: number | null;\n borderSize?: number;\n paddingSize?: number;\n}\n\n/**\n * 计算 textarea 高度\n * https://github.com/react-component/textarea/blob/1c0026fbe30e5f7dff1fca695b2cf262246381ca/src/calculateNodeHeight.tsx\n */\nexport default function calculateAutoSizeStyle(\n uiTextNode: HTMLTextAreaElement,\n options?: AutoSizeOptions\n): React.CSSProperties {\n const {\n minRows = null,\n maxRows = null,\n borderSize = 2,\n paddingSize = 8,\n } = options ?? {};\n\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement(\"textarea\");\n hiddenTextarea.setAttribute(\"tab-index\", \"-1\");\n hiddenTextarea.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenTextarea);\n }\n\n const uiTextNodeStyle = window.getComputedStyle(uiTextNode);\n const sizingStyle = SIZING_STYLE.map(\n (name) => `${name}:${uiTextNodeStyle.getPropertyValue(name)}`\n ).join(\";\");\n\n // equal style\n hiddenTextarea.setAttribute(\n \"style\",\n `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`\n );\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || \"\";\n\n let minHeight: number | undefined;\n let maxHeight: number | undefined;\n let overflowY: React.CSSProperties[\"overflowY\"];\n\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n if (minRows !== null || maxRows !== null) {\n const singleRowHeight =\n process.env.NODE_ENV === \"test\"\n ? 22\n : parseFloat(\n window\n .getComputedStyle(hiddenTextarea)\n .getPropertyValue(\"line-height\")\n );\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n if (height <= maxHeight) {\n overflowY = \"hidden\";\n }\n height = Math.min(maxHeight, height);\n }\n }\n\n const style: React.CSSProperties = {\n height,\n overflowY,\n resize: \"none\",\n };\n\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n\n return style;\n}\n","import React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { flushSync } from \"react-dom\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport calculateAutoSizeStyle from \"./utils/calculateAutoSizeStyle.js\";\n\n// istanbul ignore next\nconst modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n\nexport interface TextareaAutoResizeProps\n extends React.DetailedHTMLProps<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n > {\n /** @default true */\n autoResize?: boolean;\n minRows?: number | null;\n maxRows?: number | null;\n /** @default 2 */\n borderSize?: number;\n /** @default 8 */\n paddingSize?: number;\n containerRef?: React.RefObject<HTMLElement>;\n submitWhen?: \"enter-without-shift\" | \"enter-with-mod\";\n}\n\nexport interface TextareaAutoResizeRef {\n focus(): void;\n}\n\nexport const TextareaAutoResize = React.forwardRef<\n TextareaAutoResizeRef,\n TextareaAutoResizeProps\n>(LegacyTextareaAutoResize);\n\nfunction LegacyTextareaAutoResize(\n {\n autoResize: _autoResize,\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n containerRef,\n value: propValue,\n style,\n submitWhen,\n onChange,\n onSubmit,\n onKeyDown,\n onCompositionStart,\n onCompositionEnd,\n ...props\n }: TextareaAutoResizeProps,\n ref: React.ForwardedRef<TextareaAutoResizeRef>\n): React.JSX.Element {\n const autoResize = _autoResize ?? true;\n const [value, setValue] = useState(propValue ?? \"\");\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const [autoStyle, setAutoStyle] = useState<React.CSSProperties | null>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n focus: () => {\n const textarea = textareaRef.current;\n // istanbul ignore else: defensive check\n if (textarea) {\n const valueLength = textarea.value?.length;\n textarea.focus();\n valueLength && textarea.setSelectionRange(valueLength, valueLength);\n }\n },\n }),\n []\n );\n\n const doAutoResize = useCallback(() => {\n const textarea = textareaRef.current;\n if (textarea && autoResize) {\n const style = calculateAutoSizeStyle(textarea, {\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n });\n // istanbul ignore next\n if (process.env.NODE_ENV === \"test\") {\n setAutoStyle(style);\n } else {\n flushSync(() => {\n setAutoStyle(style);\n });\n }\n }\n }, [autoResize, maxRows, minRows, borderSize, paddingSize]);\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLTextAreaElement>\n ): void => {\n setValue(e.target.value);\n onChange?.(e);\n };\n\n useEffect(() => {\n setValue(propValue ?? \"\");\n }, [propValue]);\n\n useEffect(() => {\n doAutoResize();\n }, [doAutoResize, value]);\n\n const compositionRef = useRef(false);\n\n const handleCompositionStart = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = true;\n onCompositionStart?.(e);\n },\n [onCompositionStart]\n );\n\n const handleCompositionEnd = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = false;\n onCompositionEnd?.(e);\n },\n [onCompositionEnd]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n\n if (\n e.key === \"Enter\" &&\n (submitWhen === \"enter-without-shift\"\n ? !e.shiftKey\n : submitWhen === \"enter-with-mod\" && e[modKey])\n ) {\n e.preventDefault();\n e.stopPropagation();\n onSubmit?.(e);\n }\n\n onKeyDown?.(e);\n },\n [onKeyDown, onSubmit, submitWhen]\n );\n\n // istanbul ignore next\n useEffect(() => {\n const container = containerRef?.current;\n if (!container || !autoResize) {\n return;\n }\n let previousInlineSize: number | undefined;\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === container) {\n // istanbul ignore next: compatibility\n const currentInlineSize = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].inlineSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .inlineSize\n : entry.contentRect.width;\n if (\n currentInlineSize !== undefined &&\n currentInlineSize !== previousInlineSize\n ) {\n const isInitial = !previousInlineSize;\n previousInlineSize = currentInlineSize;\n if (!isInitial) {\n requestAnimationFrame(doAutoResize);\n }\n }\n }\n }\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, [autoResize, containerRef, doAutoResize]);\n\n return (\n <textarea\n {...props}\n ref={textareaRef}\n value={value}\n style={{\n ...style,\n ...autoStyle,\n }}\n onChange={handleInputChange}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n onKeyDown={handleKeyDown}\n />\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.container{background-color:#fff;border:2px solid #7891ff;border-radius:12px;box-shadow:0px 9px 28px 8px rgba(0,0,0,0.05),0px 6px 16px 0px rgba(0,0,0,0.08),0px 3px 6px -4px rgba(0,0,0,0.12);cursor:text}.container:not(:has(textarea:focus)){background-color:rgba(255,255,255,0.5);border-color:#99c4ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.box{display:flex;flex-wrap:wrap;border-radius:10px;padding:8px}.input{min-width:0;flex:1}.wrap .input{flex-basis:100%}.input textarea{display:block;width:100%;padding:8px;font-size:16px;line-height:24px;color:var(--antd-input-color);border:none;background:none;height:24px;color:#262626}.input textarea::placeholder{color:#bfbfbf}.toolbar{padding:5px 0 5px 8px;margin-left:auto;display:flex;align-items:center;gap:2px}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff}.btn-send:disabled{background:rgba(0,0,0,0.15)}.btn-send:not(:disabled){cursor:pointer}.btn-send:not(:disabled):hover{background:#5166ff}.btn-send:not(:disabled):active{background:#1e33cc}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["K","NS","locales","en","TERMINATE_THE_TASK","zh","t","i18n","getFixedT","initializeI18n","ICON_LOADING","lib","icon","spinning","ICON_STOP","prefix","WrappedIcon","wrapBrick","WrappedIconButton","defineElement","property","event","createDecorators","_ChatInput","_A","WeakMap","_B","_C","_D","_E","_F","_ChatInput_brand","WeakSet","_handleMessageSubmit","_G","_handleTerminate","ChatInput","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_submitDisabled","_init_extra_submitDisabled","_init_supportsTerminate","_init_extra_supportsTerminate","_init_terminating","_init_extra_terminating","_init_messageSubmit","_init_extra_messageSubmit","value","_classPrivateGetter","this","_get_messageSubmit","emit","_init_terminate","_init_extra_terminate","_get_terminate","placeholder","_classPrivateFieldGet","v","_classPrivateFieldSet","autoFocus","submitDisabled","supportsTerminate","terminating","render","React","ChatInputComponent","onSubmit","onTerminate","_ref","containerRef","useRef","textareaRef","setValue","useState","valueRef","wrap","setWrap","useEffect","_textareaRef$current","current","focus","onBeforeSubmit","useCallback","handleSubmit","e","currentTarget","handleChange","target","handleSubmitClick","container","observer","ResizeObserver","entries","entry","contentBoxSize","blockSize","contentRect","height","observe","disconnect","handleContainerClick","_textareaRef$current2","item","nativeEvent","composedPath","HTMLTextAreaElement","HTMLButtonElement","className","onClick","classNames","ref","TextareaAutoResize","minRows","maxRows","borderSize","paddingSize","autoResize","submitWhen","onChange","disabled","tooltip","_ChatInput2","_set_messageSubmit","_set_terminate","c","_initClass","_applyDecs","styleTexts","styleText","type","Boolean","o","_","has","_checkInRHS","hasOwn","hasOwnProperty","classes","i","length","arg","appendClass","parseValue","Array","isArray","apply","toString","Object","prototype","includes","key","call","newClass","module","exports","default","SIZING_STYLE","hiddenTextarea","modKey","test","navigator","platform","LegacyTextareaAutoResize","_autoResize","propValue","style","onKeyDown","onCompositionStart","onCompositionEnd","props","autoStyle","setAutoStyle","useImperativeHandle","textarea","_textarea$value","valueLength","setSelectionRange","doAutoResize","uiTextNode","options","document","createElement","setAttribute","body","appendChild","uiTextNodeStyle","window","getComputedStyle","sizingStyle","map","name","getPropertyValue","join","minHeight","maxHeight","overflowY","scrollHeight","singleRowHeight","parseFloat","Math","max","min","resize","calculateAutoSizeStyle","flushSync","compositionRef","handleCompositionStart","handleCompositionEnd","handleKeyDown","shiftKey","preventDefault","stopPropagation","previousInlineSize","currentInlineSize","inlineSize","width","undefined","isInitial","requestAnimationFrame","_extends","___CSS_LOADER_EXPORT___","push","id"],"sourceRoot":""}