@epam/statgpt-conversation-list 0.8.0-dev.8 → 0.8.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.
- package/components/ActionMenu/ActionMenu.d.ts +9 -0
- package/components/ConversationDelete/ConversationDelete.d.ts +8 -0
- package/components/ConversationItem/ConversationItem.d.ts +11 -0
- package/components/ConversationList/ConversationList.d.ts +22 -0
- package/components/ConversationRename/ConversationRename.d.ts +10 -0
- package/components/ConversationsGroup/ConversationsGroup.d.ts +13 -0
- package/components/ConversationsSearch/ConversationsSearchField.d.ts +9 -0
- package/components/ConversationsSearch/ConversationsSearchResult.d.ts +11 -0
- package/components/NoConversations/NoConversations.d.ts +3 -0
- package/context/ConversationListActionsContext.d.ts +16 -0
- package/index.js +1 -1
- package/index.mjs +230 -225
- package/package.json +9 -4
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
|
+
import { ConversationInfo } from '@epam/ai-dial-shared';
|
|
3
|
+
interface Props {
|
|
4
|
+
conversation: ConversationInfo;
|
|
5
|
+
triggerButton?: ReactNode;
|
|
6
|
+
isDisabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const ActionMenu: FC<Props>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { ConversationInfo } from '@epam/ai-dial-shared';
|
|
3
|
+
interface Props {
|
|
4
|
+
conversation: ConversationInfo;
|
|
5
|
+
selectedConversationId?: string;
|
|
6
|
+
searchQuery?: string;
|
|
7
|
+
isDisabled?: boolean;
|
|
8
|
+
onConversationClick: (folder: string, conversationId: string) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const ConversationItem: FC<Props>;
|
|
11
|
+
export default ConversationItem;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
|
+
import { ConversationListActions, ConversationStyles } from '../../models/conversation-list';
|
|
3
|
+
import { ConversationInfo } from '@epam/ai-dial-shared';
|
|
4
|
+
import { ShareConversationProps } from '../../../../share-conversation/src/models/share-conversation';
|
|
5
|
+
interface Props {
|
|
6
|
+
selectedConversationId?: string;
|
|
7
|
+
actions: ConversationListActions;
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
isCollapsed: boolean;
|
|
10
|
+
isStreaming?: boolean;
|
|
11
|
+
locale: string;
|
|
12
|
+
conversationStyles: ConversationStyles;
|
|
13
|
+
conversations: ConversationInfo[];
|
|
14
|
+
sharedConversations: ConversationInfo[];
|
|
15
|
+
shareConversationProps?: ShareConversationProps;
|
|
16
|
+
setConversations: (conversations: ConversationInfo[]) => void;
|
|
17
|
+
setSharedConversations: (sharedConversations: ConversationInfo[]) => void;
|
|
18
|
+
handleConversationClick: (folder: string, conversationKey: string) => void;
|
|
19
|
+
handleSelectedConversationRemove: () => void;
|
|
20
|
+
}
|
|
21
|
+
export declare const ConversationList: FC<Props>;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ConversationInfo } from '@epam/ai-dial-shared';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
interface Props {
|
|
4
|
+
conversation: ConversationInfo;
|
|
5
|
+
locale: string;
|
|
6
|
+
onCloseModal: () => void;
|
|
7
|
+
renameConversation: (conversationId: string, name: string) => void;
|
|
8
|
+
}
|
|
9
|
+
declare const ConversationRename: FC<Props>;
|
|
10
|
+
export default ConversationRename;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ConversationInfo } from '@epam/ai-dial-shared';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
interface Props {
|
|
4
|
+
groupLabel: string;
|
|
5
|
+
groupedConversations: ConversationInfo[];
|
|
6
|
+
selectedConversationId?: string;
|
|
7
|
+
isDisabled?: boolean;
|
|
8
|
+
isCollapsed: boolean;
|
|
9
|
+
onToggleCollapse: () => void;
|
|
10
|
+
handleConversationClick: (folder: string, conversationId: string) => void;
|
|
11
|
+
}
|
|
12
|
+
declare const ConversationsGroup: FC<Props>;
|
|
13
|
+
export default ConversationsGroup;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
interface Props {
|
|
3
|
+
searchQuery?: string;
|
|
4
|
+
isExpandedSearch?: boolean;
|
|
5
|
+
onSearchConversations?: (search: string) => void;
|
|
6
|
+
toggleSearchField?: () => void;
|
|
7
|
+
}
|
|
8
|
+
declare const ConversationsSearchField: FC<Props>;
|
|
9
|
+
export default ConversationsSearchField;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ConversationInfo } from '@epam/ai-dial-shared';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
interface Props {
|
|
4
|
+
conversations: ConversationInfo[];
|
|
5
|
+
selectedConversationId?: string;
|
|
6
|
+
searchQuery?: string;
|
|
7
|
+
handleConversationClick: (folder: string, conversationId: string) => void;
|
|
8
|
+
isDisabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare const ConversationsSearchResult: FC<Props>;
|
|
11
|
+
export default ConversationsSearchResult;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ConversationInfo, Conversation } from '@epam/ai-dial-shared';
|
|
3
|
+
import { ShareConversationProps } from '../../../share-conversation/src/models/share-conversation';
|
|
4
|
+
export interface ConversationListActionsContextValue {
|
|
5
|
+
locale: string;
|
|
6
|
+
deleteConversation: (conversation: ConversationInfo) => Promise<void>;
|
|
7
|
+
renameConversation: (conversationId: string, updatedId: string) => Promise<unknown>;
|
|
8
|
+
getConversation: (conversationId: string) => Promise<Conversation>;
|
|
9
|
+
getFileBlob: (path: string) => Promise<Blob>;
|
|
10
|
+
shareConversationProps?: ShareConversationProps;
|
|
11
|
+
}
|
|
12
|
+
export declare function ConversationListActionsProvider({ children, value, }: {
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
value: ConversationListActionsContextValue;
|
|
15
|
+
}): import("react").JSX.Element;
|
|
16
|
+
export declare function useConversationListActions(): ConversationListActionsContextValue;
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require("classnames");c=s(c);let l=require("react");l=s(l);let u=require("lodash"),d=require("@epam/statgpt-ui-components"),f=require("@tabler/icons-react"),p=require("react/jsx-runtime"),m=require("jszip");m=s(m);let h=require("@epam/statgpt-shared-toolkit"),g=require("@epam/statgpt-dial-toolkit");var _=function(e){return e.DELETE=`delete`,e.EXPORT=`export`,e.SHARE=`share`,e.RENAME=`rename`,e}({}),v=function(e){return e.SHARED=`shared`,e.TODAY=`today`,e.YESTERDAY=`yesterday`,e.WEEK=`week`,e.EARLIER=`earlier`,e}({}),y=(e,t)=>e?.resources?.filter(e=>e?.parentPath===t)?.map(e=>{let n=`${e?.bucket}/${t}`,r=e?.url?.split(`/`)?.slice(1)?.join(`/`);return{...e,folderId:n,id:r,isShared:!0}})||[],b=e=>({[v.SHARED]:e}),x={[v.TODAY]:[],[v.YESTERDAY]:[],[v.WEEK]:[],[v.EARLIER]:[]},S=(e,t)=>e.toDateString()===t.toDateString(),C=(e,t)=>S(t,new Date(e.getFullYear(),e.getMonth(),e.getDate()-1)),w=(e,t)=>{let n=e.getTime()-t.getTime();return Math.floor(n/(1e3*60*60*24))},T=e=>e.updatedAt||Number(e.id?.split(`-`).pop()),E=e=>{let t=new Date,n=(0,u.cloneDeep)(x);for(let r of e)if(r.updatedAt){let e=new Date(r.updatedAt),i;i=S(t,e)?n[v.TODAY]:C(t,e)?n[v.YESTERDAY]:w(t,e)<=7?n[v.WEEK]:n[v.EARLIER],i?.some(e=>e.id===r.id)||i.push(r)}return n},D=e=>e?.sort((e,t)=>(T(t)||0)-(T(e)||0)),O=(e,t)=>e===v.SHARED?t?.shared||`Shared`:e===v.TODAY?t?.today||`Today`:e===v.YESTERDAY?t?.yesterday||`Yesterday`:e===v.WEEK?t?.lastWeek||`Last week`:t?.earlier||`Earlier`,k=(0,l.createContext)(null);function A(){let e=(0,l.useContext)(k);if(!e)throw Error(`useConversationStyles must be used within ConversationStylesContext.Provider`);return e}var j=({onCloseModal:e,deleteConversation:t,locale:n})=>{let{titles:r,disableModalDividers:i,isSmallModalButton:a}=A();return(0,p.jsxs)(d.Popup,{heading:r?.deleteTitle??`Delete conversation`,portalId:`delete-conversation`,containerClassName:`delete-conversation-popup`,size:d.PopUpSize.SM,dividers:!i,onClose:e,closeButtonTitle:r?.close??`Cancel`,children:[(0,p.jsx)(`div`,{className:`px-6 py-4 sm:px-0`,lang:n,children:r?.deleteMessage??`Are you sure you want to delete this conversation? This action cannot be undone.`}),(0,p.jsxs)(`div`,{className:`delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3`,children:[(0,p.jsx)(d.Button,{buttonClassName:`cancel-button`,title:r?.cancel??`Cancel`,isSmallButton:a,onClick:t=>{t.stopPropagation(),e()}}),(0,p.jsx)(d.Button,{buttonClassName:`text-button-primary text-button-primary-error`,title:r?.delete??`Delete`,isSmallButton:a,onClick:e=>{e.stopPropagation(),t()}})]})]})},M=e=>(0,u.uniqBy)(I((0,h.getConversationAttachments)(e)).map(e=>({...e,relativePath:``,contentLength:0})),e=>B(e.relativePath,e.name)),N=e=>e.endsWith(`/`),P=e=>{let t=e.toLowerCase();return[`data:`,`//`,`http://`,`https://`,`file://`,`ftp://`,`mailto:`,`telnet://`,`api/files`].some(e=>t.startsWith(e))},F=e=>{let t=B(...e.split(`/`).map(e=>decodeURIComponent(e))),n=t.lastIndexOf(`/`);return{absolutePath:t.slice(0,n),name:t.slice(n+1)}},I=e=>e?e.map(e=>{if(!e.url||P(e.url)||N(e.url))return null;let{absolutePath:t,name:n}=F(e.url);return{id:e.url,name:n,contentType:e.type,folderId:t,absolutePath:t}}).filter(Boolean):[];async function L(e,t){let n=M(e),r=new m.default;n.forEach(e=>{let n=t(`${encodeURI(B(e.absolutePath,e.name))}`.replace(`files/`,``)),i=B(`res`,R(e.folderId),e.name);r.file(i,n)});let i={version:5,history:[e].map(z)||[],folders:[]},a=JSON.stringify(i,null,2);return r.file(`conversations/conversations_history.json`,a),await r.generateAsync({type:`base64`})}var R=e=>{let t=e.split(`/`);return t.length>2?B(...t.slice(2)):void 0},z=e=>(0,u.omit)(e,[`publicationInfo`]),B=(...e)=>e.filter(Boolean).join(`/`);function V(e,t){let n=document.createElement(`a`);n.download=t,n.href=e,n.style.display=`none`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(e)}var H=Object.defineProperty,U=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,K=(e,t,n)=>t in e?H(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,q=(e,t)=>{for(var n in t||={})W.call(t,n)&&K(e,n,t[n]);if(U)for(var n of U(t))G.call(t,n)&&K(e,n,t[n]);return e},J=(e,t)=>{var n={};for(var r in e)W.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&U)for(var r of U(e))t.indexOf(r)<0&&G.call(e,r)&&(n[r]=e[r]);return n},Y;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(Y||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(Y||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(Y||={});var X=Y,ee={L:X.QrCode.Ecc.LOW,M:X.QrCode.Ecc.MEDIUM,Q:X.QrCode.Ecc.QUARTILE,H:X.QrCode.Ecc.HIGH},te=128,Z=`L`,Q=`#FFFFFF`,ne=`#000000`,re=!1,ie=1,ae=4,oe=0,se=.1;function ce(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function le(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function ue(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*se),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function de(e,t){return t==null?e?ae:oe:Math.max(Math.floor(t),0)}function fe({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=l.default.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...X.QrSegment.makeSegments(t)),e),[]);return X.QrCode.encodeSegments(r,ee[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:u,margin:d,numCells:f,calculatedImageSettings:p}=l.default.useMemo(()=>{let e=c.getModules(),t=de(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:ue(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:d,cells:u,numCells:f,calculatedImageSettings:p}}var pe=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),me=l.default.forwardRef(function(e,t){let n=e,{value:r,size:i=te,level:a=Z,bgColor:o=Q,fgColor:s=ne,includeMargin:c=re,minVersion:u=ie,boostLevel:d,marginSize:f,imageSettings:p}=n,m=J(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:h}=m,g=J(m,[`style`]),_=p?.src,v=l.default.useRef(null),y=l.default.useRef(null),b=l.default.useCallback(e=>{v.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[x,S]=l.default.useState(!1),{margin:C,cells:w,numCells:T,calculatedImageSettings:E}=fe({value:r,level:a,minVersion:u,boostLevel:d,includeMargin:c,marginSize:f,imageSettings:p,size:i});l.default.useEffect(()=>{if(v.current!=null){let e=v.current,t=e.getContext(`2d`);if(!t)return;let n=w,r=y.current,a=E!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&E.excavation!=null&&(n=le(w,E.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/T*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,T,T),t.fillStyle=s,pe?t.fill(new Path2D(ce(n,C))):w.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+C,n+C,1,1)})}),E&&(t.globalAlpha=E.opacity),a&&t.drawImage(r,E.x+C,E.y+C,E.w,E.h)}}),l.default.useEffect(()=>{S(!1)},[_]);let D=q({height:i,width:i},h),O=null;return _!=null&&(O=l.default.createElement(`img`,{src:_,key:_,style:{display:`none`},onLoad:()=>{S(!0)},ref:y,crossOrigin:E?.crossOrigin})),l.default.createElement(l.default.Fragment,null,l.default.createElement(`canvas`,q({style:D,height:i,width:i,ref:b,role:`img`},g)),O)});me.displayName=`QRCodeCanvas`;var $=l.default.forwardRef(function(e,t){let n=e,{value:r,size:i=te,level:a=Z,bgColor:o=Q,fgColor:s=ne,includeMargin:c=re,minVersion:u=ie,boostLevel:d,title:f,marginSize:p,imageSettings:m}=n,h=J(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:g,cells:_,numCells:v,calculatedImageSettings:y}=fe({value:r,level:a,minVersion:u,boostLevel:d,includeMargin:c,marginSize:p,imageSettings:m,size:i}),b=_,x=null;m!=null&&y!=null&&(y.excavation!=null&&(b=le(_,y.excavation)),x=l.default.createElement(`image`,{href:m.src,height:y.h,width:y.w,x:y.x+g,y:y.y+g,preserveAspectRatio:`none`,opacity:y.opacity,crossOrigin:y.crossOrigin}));let S=ce(b,g);return l.default.createElement(`svg`,q({height:i,width:i,viewBox:`0 0 ${v} ${v}`,ref:t,role:`img`},h),!!f&&l.default.createElement(`title`,null,f),l.default.createElement(`path`,{fill:o,d:`M0,0 h${v}v${v}H0z`,shapeRendering:`crispEdges`}),l.default.createElement(`path`,{fill:s,d:S,shapeRendering:`crispEdges`}),x)});$.displayName=`QRCodeSVG`;var he=(e,t)=>({invitationType:g.InvitationType.LINK,resources:[{url:`conversations/${encodeURI(e)}`},...t]}),ge=e=>`/${h.SHARE_CONVERSATION_ROUTE}/${e?.invitationLink?.split(`/`).at(-1)||``}`,_e=(e,t)=>t?.find(t=>{let n=e?.id?.split(`/`)?.pop(),r=t?.url?.split(`/`)?.pop()||``;return r===n||decodeURI(r)===n}),ve=e=>(e?.messages?.filter(e=>!!e?.custom_content?.attachments))?.flatMap(e=>e?.custom_content?.attachments?.map(e=>({url:e?.url||``}))||[])?.filter(e=>!!e?.url)||[],ye=({conversation:e,locale:t,onCloseModal:n,modalDividers:r,getConversation:i,generateConversationLink:a,chatExpiration:o,chatExpirationDays:s,close:c,chatWarning:u,shareLink:m,shareCopyLink:_,shareCopiedLink:v,shareDescription:y,shareRemoveAccessToUsers:b,chatName:x,getSharedConversations:S,revokeSharedConversations:C,baseUrl:w,id:T,clientSharedPage:E,clientSharedProp:D,shareAlertMessage:O})=>{let[k,A]=(0,l.useState)(null),[j,M]=(0,l.useState)(),[N,P]=(0,l.useState)(!1),[F,I]=(0,l.useState)(!1),[L,R]=(0,l.useState)(),z=(0,l.useRef)(null),B=(0,l.useRef)(null),V=(0,l.useMemo)(()=>e?.id?decodeURI(e.id):T?.[0]&&T?.[1]&&t?decodeURI(`${T[0]}/${t}/${T[1]}`):null,[e?.id,T,t]),H=(0,l.useMemo)(()=>{if(!k)return``;let e=w||window.location.origin;return w&&w!==window.location.origin&&E&&D?`${e}/${E}?${D}=${k.split(`/${h.SHARE_CONVERSATION_ROUTE}/`)?.[1]}`:`${e}/${t}${k}`},[w,k,t,E,D]),U=(0,l.useCallback)(async e=>{let t=await S?.((0,g.getSharedConversationsRequest)(g.ShareTarget.OTHERS));if(t)return _e({id:e},t.resources)},[S]);(0,l.useEffect)(()=>{if(!V||z.current===V)return;z.current=V,P(!1),B.current?.abort();let e=new AbortController;return B.current=e,(async()=>{try{let t=he(V,ve(await i?.(V))),n=await a?.(t),r=await U(V);if(e.signal.aborted||!n)return;A(ge(n)),M(r),P(!0)}catch(t){if(e.signal.aborted)return;P(!1),console.error(`Error sharing conversation`,t)}})(),()=>{e.abort(),z.current=null}},[V,a,i,U]);let W=(0,l.useCallback)(()=>{B.current?.abort(),z.current=null,n(),A(null),P(!1),I(!1)},[n]),G=(0,l.useCallback)(()=>{I(!0),navigator.clipboard.writeText(H||``)},[H]),K=async()=>{try{if(R(!0),j&&await C?.({resources:[j]}),V){let e=await U(V);B.current?.signal.aborted||M(e)}}catch(e){console.error(`Error revoking shared conversation`,e)}finally{B.current?.signal.aborted||R(!1)}},q=(0,l.useCallback)(()=>(0,p.jsx)(d.Button,{buttonClassName:F?`text-button-secondary`:`text-button-primary`,iconBefore:F?(0,p.jsx)(f.IconCheck,{width:20,height:20}):(0,p.jsx)(f.IconCopy,{width:20,height:20}),title:F?v??`Copied`:_??`Copy link`,disabled:F,onClick:G}),[F,G,v,_]);return(0,p.jsxs)(d.Popup,{heading:m??`Share link`,portalId:`share`,size:d.PopUpSize.SM,dividers:r,onClose:W,closeButtonTitle:c??`Close`,children:[N?(0,p.jsxs)(`div`,{className:`share flex flex-col gap-y-4 overflow-auto px-6 pb-6 sm:p-0`,children:[O?(0,p.jsx)(d.InlineAlert,{type:d.InlineAlertType.Note,icon:(0,p.jsx)(f.IconInfoCircle,{width:16,height:16}),children:O}):null,e?.name?(0,p.jsxs)(`div`,{className:`share-info flex w-full`,children:[(0,p.jsx)(`p`,{className:`share-info-title body-1 mr-1 text-neutrals-800`,children:x??`Chat name:`}),(0,p.jsx)(`h3`,{className:`min-w-0 flex-1 truncate`,title:e?.name,children:e?.name})]}):null,(0,p.jsxs)(`div`,{className:`share-info flex`,children:[(0,p.jsx)(`p`,{className:`share-info-title body-1 mr-1 text-neutrals-800`,children:o??`Link expiration date:`}),(0,p.jsxs)(`h3`,{children:[`3 `,s??`days`]})]}),(0,p.jsx)($,{className:`min-h-[200px] self-center rounded border border-neutrals-600 p-2`,value:H,size:200}),(0,p.jsx)(`p`,{className:`body-2 text-neutrals-1000`,children:y??`Your name, special instructions, and any messages you add after sharing remain confidential.`}),(0,p.jsx)(d.InputWithIcon,{containerClasses:`share-input-container`,cssClass:`share-input`,readonly:!0,placeholder:H,value:H,inputId:`conversationLink`,iconAfterInput:q()})]}):(0,p.jsx)(`div`,{className:`flex items-center justify-center p-6`,children:(0,p.jsx)(d.Loader,{})}),N?e&&j?(0,p.jsx)(`div`,{className:`remove-access`,children:(0,p.jsx)(d.Button,{title:b??`Remove access to all users`,buttonClassName:`remove-access-button py-3 px-4`,isSmallButton:!0,disabled:L,onClick:K})}):(0,p.jsx)(`p`,{className:`body-2 share-footer text-neutrals-800`,children:u??`This chat has not been shared with anyone yet.`}):(0,p.jsx)(`div`,{})]})},be=({conversation:e,onCloseModal:t,renameConversation:n,locale:r})=>{let{titles:i,disableModalDividers:a,isSmallModalButton:o}=A(),[s,c]=(0,l.useState)(e?.name||``),u=e=>{c(e)},f=()=>{let t=`${e?.folderId}/${encodeURIComponent((0,h.getClearedConversationName)(s))}-${new Date().getTime()}`;n(`conversations/${e.id}`,`conversations/${t}`)};return(0,p.jsxs)(d.Popup,{heading:i?.renameTitle??`Rename conversation`,portalId:`rename-conversation`,containerClassName:`rename-conversation-popup`,size:d.PopUpSize.SM,dividers:!a,onClose:t,closeButtonTitle:i?.close??`Cancel`,children:[(0,p.jsx)(`div`,{className:`px-6 py-4 sm:px-0`,lang:r,children:(0,p.jsx)(d.Input,{inputId:`rename`,value:s,onChange:u,cssClass:`w-full`})}),(0,p.jsxs)(`div`,{className:`delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3`,children:[(0,p.jsx)(d.Button,{buttonClassName:`cancel-button`,title:i?.cancel??`Cancel`,isSmallButton:o,onClick:e=>{e.stopPropagation(),t()}}),(0,p.jsx)(d.Button,{buttonClassName:`text-button-primary text-button-primary`,title:i?.save??`Rename`,isSmallButton:o,disabled:!s,onClick:e=>{e.stopPropagation(),f()}})]})]})},xe=(0,l.createContext)(null);function Se({children:e,value:t}){return(0,p.jsx)(xe.Provider,{value:t,children:e})}function Ce(){let e=(0,l.useContext)(xe);if(!e)throw Error(`useConversationListActions must be used within ConversationListActionsProvider`);return e}var we=({conversation:e,triggerButton:t,isDisabled:n})=>{let r=A(),{locale:i,deleteConversation:a,renameConversation:o,getConversation:s,getFileBlob:c,shareConversationProps:u}=Ce(),f=(0,l.useMemo)(()=>{let t=[{key:_.DELETE,title:r?.titles?.delete??`Delete`,icon:r.actionsIcons?.[_.DELETE]}];return e?.model?.id?.endsWith(h.ONBOARDING_MODEL_POSTFIX)?t:[...e.isShared?[]:[{key:_.SHARE,title:r?.titles?.share??`Share`,icon:r.actionsIcons?.[_.SHARE]},{key:_.RENAME,title:r?.titles?.rename??`Rename`,icon:r.actionsIcons?.[_.RENAME]}],{key:_.EXPORT,title:r?.titles?.export??`Export`,icon:r.actionsIcons?.[_.EXPORT]},...t]},[e.isShared,e?.model?.id,r.titles,r.actionsIcons]),[m,g]=(0,l.useState)(d.PopUpState.Closed),[v,y]=(0,l.useState)(d.PopUpState.Closed),[b,x]=(0,l.useState)(d.PopUpState.Closed),S=(0,l.useCallback)(()=>{g(d.PopUpState.Closed)},[g]),C=(0,l.useCallback)(()=>{y(d.PopUpState.Closed)},[y]),w=(0,l.useCallback)(()=>{x(d.PopUpState.Closed)},[x]),T=(0,l.useCallback)(()=>{a(e),S()},[e,a,S]),E=(0,l.useCallback)((e,t)=>{o(e,t),w()},[o,w]);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(d.Dropdown,{containerClassName:`ml-3 hidden group-hover:flex`,triggerButton:t??(0,p.jsx)(Te,{disabled:n}),options:f,openedClassName:`!flex action-menu-opened`,onOptionSelect:t=>{t===_.DELETE&&g(d.PopUpState.Opened),t===_.SHARE&&y(d.PopUpState.Opened),t===_.RENAME&&x(d.PopUpState.Opened),t===_.EXPORT&&s(decodeURI(e.id)).then(e=>{L(e,c).then(e=>{V(`data:application/zip;base64,${e}`,`chat_with_attachments_${new Date().toLocaleDateString()}.dial`)})})},disabled:n}),m===d.PopUpState.Opened&&(0,p.jsx)(j,{locale:i,deleteConversation:T,onCloseModal:S}),v===d.PopUpState.Opened&&(0,p.jsx)(ye,{conversation:e,locale:i,onCloseModal:C,...u}),b===d.PopUpState.Opened&&(0,p.jsx)(be,{conversation:e,locale:i,renameConversation:E,onCloseModal:w})]})},Te=({disabled:e})=>(0,p.jsx)(`div`,{className:(0,c.default)(`flex items-center justify-center w-[24px]`,e?`cursor-not-allowed`:`cursor-pointer`),children:(0,p.jsx)(f.IconDotsVertical,{width:20,height:20,stroke:2,className:`text-primary`})}),Ee=({conversation:e,selectedConversationId:t,searchQuery:n,onConversationClick:r,isDisabled:i})=>{let{titles:a,conversationItemIcon:o}=A(),s=(0,l.useRef)(null),u=(0,h.getClearedConversationName)(e?.name);return(0,l.useEffect)(()=>{if(e?.id===t&&s?.current){let e=s.current.parentElement?.parentElement?.parentElement;if(e){let t=s.current.getBoundingClientRect(),n=e.getBoundingClientRect(),r=t.height,i=n.height,a=t.top-n.top+e.scrollTop-(i/2-r/2);e.scrollTo({top:a,behavior:`smooth`})}}},[e,t]),(0,p.jsxs)(`div`,{ref:s,className:(0,c.default)(`flex justify-between items-center py-2 px-3 border-transparent relative group border`,`conversation-item`,t===e?.id&&`bg-hues-100 conversation-item-active`,i?`cursor-not-allowed`:`cursor-pointer hover:border-hues-600`),onClick:()=>!i&&r(e.folderId,e?.id),title:i?a?.noActionsAllowed:u,children:[(0,p.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center`,children:[o||null,(0,p.jsx)(`h3`,{className:(0,c.default)(`truncate pb-px -mb-px font-semibold text-neutrals-1000 sm:body-2`,`conversation-item-text`,t===e?.id?`conversation-item-text-active`:``),title:i?a?.noActionsAllowed:u,children:n?.length?(0,p.jsx)(d.HighlightText,{text:u,highlightText:n}):u})]}),(0,p.jsx)(we,{conversation:e,isDisabled:i})]})},De=({handleConversationClick:e,selectedConversationId:t,groupLabel:n,groupedConversations:r,isDisabled:i})=>{let{titles:a}=A(),[o,s]=(0,l.useState)(!1);return(0,p.jsxs)(`div`,{children:[(0,p.jsxs)(`div`,{className:`conversation-group-items-title mb-3 inline-flex cursor-pointer items-center gap-1 text-neutrals-700`,onClick:(0,l.useCallback)(()=>{s(e=>!e)},[s]),children:[(0,p.jsx)(f.IconCaretRightFilled,{className:(0,c.default)(`w-3 h-3 conversation-group-items-arrow`,o?`rotate-[90deg]`:`rotate-0`)}),(0,p.jsx)(`span`,{className:`body-3 conversation-group-items-title-text`,children:O(n,a)})]}),!o&&(0,p.jsx)(`div`,{className:(0,c.default)(`flex flex-col gap-y-3`,`conversation-group-items`),children:D(r).map(n=>(0,p.jsx)(Ee,{isDisabled:i,conversation:n,selectedConversationId:t,onConversationClick:e},n.id||n.name))})]},n)},Oe=({searchQuery:e,isExpandedSearch:t,onSearchConversations:n,toggleSearchField:r})=>{let{titles:i,searchIcon:a}=A();return(0,p.jsx)(p.Fragment,{children:t?(0,p.jsx)(d.InputWithIcon,{inputId:`conversations-search`,placeholder:i?.searchPlaceholder??`Search`,containerClasses:`conversation-list-search-input h-[40px] bg-transparent px-4 py-2 rounded-full border-neutrals-400 shadow-none`,cssClass:`h-auto`,value:e,iconAfterInput:(0,p.jsx)(d.IconButton,{buttonClassName:`text-button-tertiary items-center p-0 ml-4 border-0 w-5 h-5`,onClick:r,icon:(0,p.jsx)(f.IconX,{})}),onChange:n}):(0,p.jsx)(d.Button,{buttonClassName:`text-button-tertiary p-0 search-button`,iconBefore:a||(0,p.jsx)(f.IconSearch,{className:`size-5`}),onClick:r})})},ke=({conversations:e,selectedConversationId:t,searchQuery:n,handleConversationClick:r,isDisabled:i})=>{let{titles:a}=A(),[o,s]=(0,l.useState)([]);return(0,l.useEffect)(()=>{s(D(e?.filter(e=>(0,h.getClearedConversationName)(e?.name)?.includes(n||``))))},[e,n]),(0,p.jsx)(p.Fragment,{children:o?.length?o.map(e=>(0,p.jsx)(Ee,{conversation:e,searchQuery:n,selectedConversationId:t,onConversationClick:r,isDisabled:i},e.id)):(0,p.jsx)(`h3`,{className:`text-neutrals-800`,children:a?.noConversation??`No conversations yet`})})},Ae=()=>{let{titles:e}=A();return(0,p.jsxs)(`div`,{className:`flex flex-col p-8 text-center`,children:[(0,p.jsx)(`p`,{className:`text-neutrals-800`,children:e?.noConversation??`No conversations yet`}),(0,p.jsx)(`p`,{className:`mt-2 text-sm text-neutrals-800`,children:e?.clickNewChat??`Click "New Chat" to start a conversation`})]})},je=({handleConversationClick:e,selectedConversationId:t,actions:n,children:r,isCollapsed:i,isStreaming:a,conversationStyles:o,conversations:s,locale:u,sharedConversations:f,setConversations:m,setSharedConversations:_,shareConversationProps:v,handleSelectedConversationRemove:x})=>{let[S,C]=(0,l.useState)({}),[w,T]=(0,l.useState)(!0),[D,O]=(0,l.useState)(``),[A,j]=(0,l.useState)(!1),{getConversations:M,getSharedConversations:N,deleteConversation:P,renameConversation:F}=n,I=(0,l.useMemo)(()=>!!D?.length,[D]);(0,l.useEffect)(()=>{C({...b(f),...E(s)})},[s,f]),(0,l.useEffect)(()=>{async function e(){try{T(!0);let e=await M(u),t=await N((0,g.getSharedConversationsRequest)(g.ShareTarget.ME));m((0,h.cleanConversationNames)(e)),_((0,h.cleanConversationNames)(y(t,u)))}catch(e){console.error(`Error loading conversation`,e)}finally{T(!1)}}e()},[M,m,u,N,_]);let L=(0,l.useCallback)(async e=>{try{await P(e);let n=await M(u),r=await N((0,g.getSharedConversationsRequest)(g.ShareTarget.ME));m((0,h.cleanConversationNames)(n)),_((0,h.cleanConversationNames)(y(r,u))),t===e?.id&&x()}catch(e){console.error(`Error deleting conversation`,e)}},[P,M,u,N,m,_,t,x]),R=(0,l.useCallback)(async(e,t)=>{try{T(!0),await F(e,t);let n=await M(u),r=await N((0,g.getSharedConversationsRequest)(g.ShareTarget.ME));m((0,h.cleanConversationNames)(n)),_((0,h.cleanConversationNames)(y(r,u)))}catch(e){console.error(`Error renaming conversation`,e)}finally{T(!1)}},[M,u,N,m,_,F]),z=(0,l.useCallback)(e=>{O(e)},[O]),B=(0,l.useCallback)(()=>{j(e=>!e),O(``)},[j]);return w?(0,p.jsx)(d.Loader,{}):(0,p.jsx)(Se,{value:{locale:u,deleteConversation:L,renameConversation:R,getConversation:n.getConversation,getFileBlob:n.getFileBlob,shareConversationProps:v},children:(0,p.jsxs)(k.Provider,{value:o,children:[!i&&(0,p.jsxs)(`div`,{className:(0,c.default)(`flex justify-between items-center pr-6`,A?` pt-4 pb-0 sm:pt-10`:` pt-6 pb-2 sm:pt-10`),children:[!A&&(0,p.jsx)(`h3`,{className:`sm:body-2 text-neutrals-700`,children:o?.titles?.allChats??`All Chats`}),(0,p.jsx)(Oe,{searchQuery:D,isExpandedSearch:A,onSearchConversations:z,toggleSearchField:B})]}),(0,p.jsx)(`div`,{className:`scroll-hidden-container mt-4 flex min-h-0 flex-1 flex-col`,children:i?null:(0,p.jsx)(`div`,{className:(0,c.default)(`flex flex-col pr-4`,I?`gap-y-1`:`gap-y-6`),children:s?.length===0&&f?.length===0?(0,p.jsx)(Ae,{}):I?(0,p.jsx)(ke,{conversations:[...f,...s],searchQuery:D,selectedConversationId:t,handleConversationClick:e,isDisabled:a}):Object.entries(S).map(([n,r])=>r?.length>0&&(0,p.jsx)(De,{isDisabled:a,groupLabel:n,groupedConversations:r,handleConversationClick:e,selectedConversationId:t},n))})}),r]})})},Me=({onCloseModal:e,disableModalDividers:t,signOut:n,isSmallButton:r,locale:i,titles:a})=>(0,p.jsxs)(d.Popup,{heading:a?.popupTitle||`Log out?`,portalId:`sign-out`,containerClassName:`sign-out-popup`,size:d.PopUpSize.SM,dividers:!t,onClose:e,closeButtonTitle:`Cancel`,children:[(0,p.jsx)(`div`,{className:`px-6 py-4 sm:px-0`,lang:i,children:a?.popupText}),(0,p.jsxs)(`div`,{className:`delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3`,children:[(0,p.jsx)(d.Button,{buttonClassName:`cancel-button`,title:a?.popupCancel||`Cancel`,isSmallButton:r,onClick:t=>{t.stopPropagation(),e()}}),(0,p.jsx)(d.Button,{buttonClassName:`text-button-primary`,title:a?.popupApply||`Sign Out`,isSmallButton:r,onClick:e=>{e.stopPropagation(),n?.()}})]})]}),Ne=({userInfo:e,signOutAction:t,contactSupportUrl:n,styles:r,locale:i,titles:a})=>{let o=e=>e?.split(` `)?.map((e,t)=>t<2?e[0].toUpperCase():``)?.join(``)??``,s=(0,l.useMemo)(()=>e?.name?o(e?.name):e?.email?.[0].toUpperCase()??``,[e]),[u,f]=(0,l.useState)(!1),m=e?.name?.split(` `),h=m?`${m?.[0]??``} ${m?.[1]?.[0]?m?.[1]?.[0]+`.`:``}`:e?.email??``,g=(0,l.useCallback)(()=>{f(!0)},[]),_=(0,l.useCallback)(()=>{f(!1)},[]),v=(0,l.useCallback)(()=>{window.open(n||`#`,`_blank`,`noopener,noreferrer`)},[n]),y=(0,l.useMemo)(()=>(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(`div`,{className:(0,c.default)(`cursor-pointer flex items-center justify-center size-11 rounded-[100px] p-[10px] sm:h-[32px] sm:w-[32px] flex-shrink-0`,r?.initialStyles),children:s}),(0,p.jsx)(`p`,{className:(0,c.default)(`h3 cursor-pointer overflow-hidden text-ellipsis`,r?.userNameStyles),children:(r?.showShortName?h:e?.name)??e?.email??``})]}),[s,h,r,e]),b=(0,l.useMemo)(()=>(0,p.jsxs)(`div`,{className:(0,c.default)(`py-1`,r?.dropDownStyles),children:[r?.settingsIcon&&(0,p.jsxs)(`button`,{className:(0,c.default)(`p-2 items-center flex gap-1 text-primary fill-primary`,r?.dropdownButtonTypographyStyles||`body-1`,r?.dropdownButtonStyles),title:a?.settings,children:[(0,p.jsx)(`span`,{className:`shrink-0`,children:r?.settingsIcon}),(0,p.jsx)(`span`,{className:`min-w-0 break-words`,children:a?.settings||`Settings`})]}),r?.contactSupportIcon&&(0,p.jsxs)(`button`,{className:(0,c.default)(`p-2 items-center flex gap-1 text-primary fill-primary`,r?.dropdownButtonTypographyStyles||`body-1`,r?.dropdownButtonStyles),title:a?.contactSupport,onClick:v,children:[(0,p.jsx)(`span`,{className:`shrink-0`,children:r?.contactSupportIcon}),(0,p.jsx)(`span`,{className:`min-w-0 break-words`,children:a?.contactSupport||`Contact support`})]}),(0,p.jsx)(`div`,{className:(0,c.default)(`h-0 border-t border-neutrals-600 my-2`,r?.showSeparator?`block`:`hidden`)}),(0,p.jsxs)(`button`,{className:(0,c.default)(`p-2 items-center flex gap-1 text-primary fill-primary`,r?.dropdownButtonTypographyStyles||`body-1`,r?.dropdownButtonStyles),title:a?.signOut,onClick:g,children:[(0,p.jsx)(`span`,{className:`shrink-0`,children:r?.signOutIcon}),(0,p.jsx)(`span`,{className:`min-w-0 break-words`,children:a?.signOut||`Sign out`}),u&&(0,p.jsx)(Me,{onCloseModal:_,signOut:()=>t?.(),locale:i,disableModalDividers:r?.disableModalDividers,titles:a})]})]}),[r,a,g,v,u,_,i,t]);if(e)return(0,p.jsx)(d.Dropdown,{containerClassName:(0,c.default)(`transition-opacity group-hover:opacity-100 shrink w-full`,r?.dropdownContainerClassName),triggerButton:y,content:b,openedClassName:`action-menu-opened`})};exports.ActionMenu=we,exports.ActionMenuItem=_,exports.ConversationList=je,exports.User=Ne,exports.getSharedConversationsGroup=b,exports.transformSharedConversations=y;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require("classnames");c=s(c);let l=require("react");l=s(l);let u=require("lodash"),d=require("@epam/statgpt-ui-components"),f=require("@tabler/icons-react"),p=require("react/jsx-runtime"),m=require("jszip");m=s(m);let h=require("@epam/statgpt-shared-toolkit"),g=require("@epam/statgpt-dial-toolkit");var _=function(e){return e.DELETE=`delete`,e.EXPORT=`export`,e.SHARE=`share`,e.RENAME=`rename`,e}({}),v=function(e){return e.SHARED=`shared`,e.TODAY=`today`,e.YESTERDAY=`yesterday`,e.WEEK=`week`,e.EARLIER=`earlier`,e}({}),y=(e,t)=>e?.resources?.filter(e=>e?.parentPath===t)?.map(e=>{let n=`${e?.bucket}/${t}`,r=e?.url?.split(`/`)?.slice(1)?.join(`/`);return{...e,folderId:n,id:r,isShared:!0}})||[],b=e=>({[v.SHARED]:e}),x={[v.TODAY]:[],[v.YESTERDAY]:[],[v.WEEK]:[],[v.EARLIER]:[]},S=(e,t)=>e.toDateString()===t.toDateString(),C=(e,t)=>S(t,new Date(e.getFullYear(),e.getMonth(),e.getDate()-1)),w=(e,t)=>{let n=e.getTime()-t.getTime();return Math.floor(n/(1e3*60*60*24))},T=e=>e.updatedAt||Number(e.id?.split(`-`).pop()),E=e=>{let t=new Date,n=(0,u.cloneDeep)(x);for(let r of e)if(r.updatedAt){let e=new Date(r.updatedAt),i;i=S(t,e)?n[v.TODAY]:C(t,e)?n[v.YESTERDAY]:w(t,e)<=7?n[v.WEEK]:n[v.EARLIER],i?.some(e=>e.id===r.id)||i.push(r)}return n},D=e=>e?.sort((e,t)=>(T(t)||0)-(T(e)||0)),O=(e,t)=>e===v.SHARED?t?.shared||`Shared`:e===v.TODAY?t?.today||`Today`:e===v.YESTERDAY?t?.yesterday||`Yesterday`:e===v.WEEK?t?.lastWeek||`Last week`:t?.earlier||`Earlier`,k=(0,l.createContext)(null);function A(){let e=(0,l.useContext)(k);if(!e)throw Error(`useConversationStyles must be used within ConversationStylesContext.Provider`);return e}var j=({onCloseModal:e,deleteConversation:t,locale:n})=>{let{titles:r,disableModalDividers:i,isSmallModalButton:a}=A();return(0,p.jsxs)(d.Popup,{heading:r?.deleteTitle??`Delete conversation`,portalId:`delete-conversation`,containerClassName:`delete-conversation-popup`,size:d.PopUpSize.SM,dividers:!i,onClose:e,closeButtonTitle:r?.close??`Cancel`,children:[(0,p.jsx)(`div`,{className:`px-6 py-4 sm:px-0`,lang:n,children:r?.deleteMessage??`Are you sure you want to delete this conversation? This action cannot be undone.`}),(0,p.jsxs)(`div`,{className:`delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3`,children:[(0,p.jsx)(d.Button,{buttonClassName:`cancel-button`,title:r?.cancel??`Cancel`,isSmallButton:a,onClick:t=>{t.stopPropagation(),e()}}),(0,p.jsx)(d.Button,{buttonClassName:`text-button-primary text-button-primary-error`,title:r?.delete??`Delete`,isSmallButton:a,onClick:e=>{e.stopPropagation(),t()}})]})]})},M=e=>(0,u.uniqBy)(I((0,h.getConversationAttachments)(e)).map(e=>({...e,relativePath:``,contentLength:0})),e=>B(e.relativePath,e.name)),N=e=>e.endsWith(`/`),P=e=>{let t=e.toLowerCase();return[`data:`,`//`,`http://`,`https://`,`file://`,`ftp://`,`mailto:`,`telnet://`,`api/files`].some(e=>t.startsWith(e))},F=e=>{let t=B(...e.split(`/`).map(e=>decodeURIComponent(e))),n=t.lastIndexOf(`/`);return{absolutePath:t.slice(0,n),name:t.slice(n+1)}},I=e=>e?e.map(e=>{if(!e.url||P(e.url)||N(e.url))return null;let{absolutePath:t,name:n}=F(e.url);return{id:e.url,name:n,contentType:e.type,folderId:t,absolutePath:t}}).filter(Boolean):[];async function L(e,t){let n=M(e),r=new m.default;n.forEach(e=>{let n=t(`${encodeURI(B(e.absolutePath,e.name))}`.replace(`files/`,``)),i=B(`res`,R(e.folderId),e.name);r.file(i,n)});let i={version:5,history:[e].map(z)||[],folders:[]},a=JSON.stringify(i,null,2);return r.file(`conversations/conversations_history.json`,a),await r.generateAsync({type:`base64`})}var R=e=>{let t=e.split(`/`);return t.length>2?B(...t.slice(2)):void 0},z=e=>(0,u.omit)(e,[`publicationInfo`]),B=(...e)=>e.filter(Boolean).join(`/`);function V(e,t){let n=document.createElement(`a`);n.download=t,n.href=e,n.style.display=`none`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(e)}var H=Object.defineProperty,U=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,K=(e,t,n)=>t in e?H(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,q=(e,t)=>{for(var n in t||={})W.call(t,n)&&K(e,n,t[n]);if(U)for(var n of U(t))G.call(t,n)&&K(e,n,t[n]);return e},J=(e,t)=>{var n={};for(var r in e)W.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&U)for(var r of U(e))t.indexOf(r)<0&&G.call(e,r)&&(n[r]=e[r]);return n},Y;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(Y||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(Y||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(Y||={});var X=Y,ee={L:X.QrCode.Ecc.LOW,M:X.QrCode.Ecc.MEDIUM,Q:X.QrCode.Ecc.QUARTILE,H:X.QrCode.Ecc.HIGH},te=128,Z=`L`,Q=`#FFFFFF`,ne=`#000000`,re=!1,ie=1,ae=4,oe=0,se=.1;function ce(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function le(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function ue(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*se),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function de(e,t){return t==null?e?ae:oe:Math.max(Math.floor(t),0)}function fe({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=l.default.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...X.QrSegment.makeSegments(t)),e),[]);return X.QrCode.encodeSegments(r,ee[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:u,margin:d,numCells:f,calculatedImageSettings:p}=l.default.useMemo(()=>{let e=c.getModules(),t=de(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:ue(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:d,cells:u,numCells:f,calculatedImageSettings:p}}var pe=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),me=l.default.forwardRef(function(e,t){let n=e,{value:r,size:i=te,level:a=Z,bgColor:o=Q,fgColor:s=ne,includeMargin:c=re,minVersion:u=ie,boostLevel:d,marginSize:f,imageSettings:p}=n,m=J(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:h}=m,g=J(m,[`style`]),_=p?.src,v=l.default.useRef(null),y=l.default.useRef(null),b=l.default.useCallback(e=>{v.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[x,S]=l.default.useState(!1),{margin:C,cells:w,numCells:T,calculatedImageSettings:E}=fe({value:r,level:a,minVersion:u,boostLevel:d,includeMargin:c,marginSize:f,imageSettings:p,size:i});l.default.useEffect(()=>{if(v.current!=null){let e=v.current,t=e.getContext(`2d`);if(!t)return;let n=w,r=y.current,a=E!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&E.excavation!=null&&(n=le(w,E.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/T*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,T,T),t.fillStyle=s,pe?t.fill(new Path2D(ce(n,C))):w.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+C,n+C,1,1)})}),E&&(t.globalAlpha=E.opacity),a&&t.drawImage(r,E.x+C,E.y+C,E.w,E.h)}}),l.default.useEffect(()=>{S(!1)},[_]);let D=q({height:i,width:i},h),O=null;return _!=null&&(O=l.default.createElement(`img`,{src:_,key:_,style:{display:`none`},onLoad:()=>{S(!0)},ref:y,crossOrigin:E?.crossOrigin})),l.default.createElement(l.default.Fragment,null,l.default.createElement(`canvas`,q({style:D,height:i,width:i,ref:b,role:`img`},g)),O)});me.displayName=`QRCodeCanvas`;var he=l.default.forwardRef(function(e,t){let n=e,{value:r,size:i=te,level:a=Z,bgColor:o=Q,fgColor:s=ne,includeMargin:c=re,minVersion:u=ie,boostLevel:d,title:f,marginSize:p,imageSettings:m}=n,h=J(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:g,cells:_,numCells:v,calculatedImageSettings:y}=fe({value:r,level:a,minVersion:u,boostLevel:d,includeMargin:c,marginSize:p,imageSettings:m,size:i}),b=_,x=null;m!=null&&y!=null&&(y.excavation!=null&&(b=le(_,y.excavation)),x=l.default.createElement(`image`,{href:m.src,height:y.h,width:y.w,x:y.x+g,y:y.y+g,preserveAspectRatio:`none`,opacity:y.opacity,crossOrigin:y.crossOrigin}));let S=ce(b,g);return l.default.createElement(`svg`,q({height:i,width:i,viewBox:`0 0 ${v} ${v}`,ref:t,role:`img`},h),!!f&&l.default.createElement(`title`,null,f),l.default.createElement(`path`,{fill:o,d:`M0,0 h${v}v${v}H0z`,shapeRendering:`crispEdges`}),l.default.createElement(`path`,{fill:s,d:S,shapeRendering:`crispEdges`}),x)});he.displayName=`QRCodeSVG`;var ge=(e,t)=>({invitationType:g.InvitationType.LINK,resources:[{url:`conversations/${encodeURI(e)}`},...t]}),_e=e=>`/${h.SHARE_CONVERSATION_ROUTE}/${e?.invitationLink?.split(`/`).at(-1)||``}`,ve=(e,t)=>t?.find(t=>{let n=e?.id?.split(`/`)?.pop(),r=t?.url?.split(`/`)?.pop()||``;return r===n||decodeURI(r)===n}),ye=e=>(e?.messages?.filter(e=>!!e?.custom_content?.attachments))?.flatMap(e=>e?.custom_content?.attachments?.map(e=>({url:e?.url||``}))||[])?.filter(e=>!!e?.url)||[],be=({conversation:e,locale:t,onCloseModal:n,modalDividers:r,getConversation:i,generateConversationLink:a,chatExpiration:o,chatExpirationDays:s,close:c,chatWarning:u,shareLink:m,shareCopyLink:_,shareCopiedLink:v,shareDescription:y,shareRemoveAccessToUsers:b,chatName:x,getSharedConversations:S,revokeSharedConversations:C,baseUrl:w,id:T,clientSharedPage:E,clientSharedProp:D,shareAlertMessage:O})=>{let[k,A]=(0,l.useState)(null),[j,M]=(0,l.useState)(),[N,P]=(0,l.useState)(!1),[F,I]=(0,l.useState)(!1),[L,R]=(0,l.useState)(),z=(0,l.useRef)(null),B=(0,l.useRef)(null),V=(0,l.useMemo)(()=>e?.id?decodeURI(e.id):T?.[0]&&T?.[1]&&t?decodeURI(`${T[0]}/${t}/${T[1]}`):null,[e?.id,T,t]),H=(0,l.useMemo)(()=>{if(!k)return``;let e=w||window.location.origin;return w&&w!==window.location.origin&&E&&D?`${e}/${E}?${D}=${k.split(`/${h.SHARE_CONVERSATION_ROUTE}/`)?.[1]}`:`${e}/${t}${k}`},[w,k,t,E,D]),U=(0,l.useCallback)(async e=>{let t=await S?.((0,g.getSharedConversationsRequest)(g.ShareTarget.OTHERS));if(t)return ve({id:e},t.resources)},[S]);(0,l.useEffect)(()=>{if(!V||z.current===V)return;z.current=V,P(!1),B.current?.abort();let e=new AbortController;return B.current=e,(async()=>{try{let t=ge(V,ye(await i?.(V))),n=await a?.(t),r=await U(V);if(e.signal.aborted||!n)return;A(_e(n)),M(r),P(!0)}catch(t){if(e.signal.aborted)return;P(!1),console.error(`Error sharing conversation`,t)}})(),()=>{e.abort(),z.current=null}},[V,a,i,U]);let W=(0,l.useCallback)(()=>{B.current?.abort(),z.current=null,n(),A(null),P(!1),I(!1)},[n]),G=(0,l.useCallback)(()=>{I(!0),navigator.clipboard.writeText(H||``)},[H]),K=async()=>{try{if(R(!0),j&&await C?.({resources:[j]}),V){let e=await U(V);B.current?.signal.aborted||M(e)}}catch(e){console.error(`Error revoking shared conversation`,e)}finally{B.current?.signal.aborted||R(!1)}},q=(0,l.useCallback)(()=>(0,p.jsx)(d.Button,{buttonClassName:F?`text-button-secondary`:`text-button-primary`,iconBefore:F?(0,p.jsx)(f.IconCheck,{width:20,height:20}):(0,p.jsx)(f.IconCopy,{width:20,height:20}),title:F?v??`Copied`:_??`Copy link`,disabled:F,onClick:G}),[F,G,v,_]);return(0,p.jsxs)(d.Popup,{heading:m??`Share link`,portalId:`share`,size:d.PopUpSize.SM,dividers:r,onClose:W,closeButtonTitle:c??`Close`,children:[N?(0,p.jsxs)(`div`,{className:`share flex flex-col gap-y-4 overflow-auto px-6 pb-6 sm:p-0`,children:[O?(0,p.jsx)(d.InlineAlert,{type:d.InlineAlertType.Note,icon:(0,p.jsx)(f.IconInfoCircle,{width:16,height:16}),children:O}):null,e?.name?(0,p.jsxs)(`div`,{className:`share-info flex w-full`,children:[(0,p.jsx)(`p`,{className:`share-info-title body-1 mr-1 text-neutrals-800`,children:x??`Chat name:`}),(0,p.jsx)(`h3`,{className:`min-w-0 flex-1 truncate`,title:e?.name,children:e?.name})]}):null,(0,p.jsxs)(`div`,{className:`share-info flex`,children:[(0,p.jsx)(`p`,{className:`share-info-title body-1 mr-1 text-neutrals-800`,children:o??`Link expiration date:`}),(0,p.jsxs)(`h3`,{children:[`3 `,s??`days`]})]}),(0,p.jsx)(he,{className:`min-h-[200px] self-center rounded border border-neutrals-600 p-2`,value:H,size:200}),(0,p.jsx)(`p`,{className:`body-2 text-neutrals-1000`,children:y??`Your name, special instructions, and any messages you add after sharing remain confidential.`}),(0,p.jsx)(d.InputWithIcon,{containerClasses:`share-input-container`,cssClass:`share-input`,readonly:!0,placeholder:H,value:H,inputId:`conversationLink`,iconAfterInput:q()})]}):(0,p.jsx)(`div`,{className:`flex items-center justify-center p-6`,children:(0,p.jsx)(d.Loader,{})}),N?e&&j?(0,p.jsx)(`div`,{className:`remove-access`,children:(0,p.jsx)(d.Button,{title:b??`Remove access to all users`,buttonClassName:`remove-access-button py-3 px-4`,isSmallButton:!0,disabled:L,onClick:K})}):(0,p.jsx)(`p`,{className:`body-2 share-footer text-neutrals-800`,children:u??`This chat has not been shared with anyone yet.`}):(0,p.jsx)(`div`,{})]})},xe=({conversation:e,onCloseModal:t,renameConversation:n,locale:r})=>{let{titles:i,disableModalDividers:a,isSmallModalButton:o}=A(),[s,c]=(0,l.useState)(e?.name||``),u=e=>{c(e)},f=()=>{let t=`${e?.folderId}/${encodeURIComponent((0,h.getClearedConversationName)(s))}-${new Date().getTime()}`;n(`conversations/${e.id}`,`conversations/${t}`)};return(0,p.jsxs)(d.Popup,{heading:i?.renameTitle??`Rename conversation`,portalId:`rename-conversation`,containerClassName:`rename-conversation-popup`,size:d.PopUpSize.SM,dividers:!a,onClose:t,closeButtonTitle:i?.close??`Cancel`,children:[(0,p.jsx)(`div`,{className:`px-6 py-4 sm:px-0`,lang:r,children:(0,p.jsx)(d.Input,{inputId:`rename`,value:s,onChange:u,cssClass:`w-full`})}),(0,p.jsxs)(`div`,{className:`delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3`,children:[(0,p.jsx)(d.Button,{buttonClassName:`cancel-button`,title:i?.cancel??`Cancel`,isSmallButton:o,onClick:e=>{e.stopPropagation(),t()}}),(0,p.jsx)(d.Button,{buttonClassName:`text-button-primary text-button-primary`,title:i?.save??`Rename`,isSmallButton:o,disabled:!s,onClick:e=>{e.stopPropagation(),f()}})]})]})},Se=(0,l.createContext)(null);function Ce({children:e,value:t}){return(0,p.jsx)(Se.Provider,{value:t,children:e})}function we(){let e=(0,l.useContext)(Se);if(!e)throw Error(`useConversationListActions must be used within ConversationListActionsProvider`);return e}var $=({conversation:e,triggerButton:t,isDisabled:n})=>{let r=A(),{locale:i,deleteConversation:a,renameConversation:o,getConversation:s,getFileBlob:c,shareConversationProps:u}=we(),f=(0,l.useMemo)(()=>{let t=[{key:_.DELETE,title:r?.titles?.delete??`Delete`,icon:r.actionsIcons?.[_.DELETE]}];return e?.model?.id?.endsWith(h.ONBOARDING_MODEL_POSTFIX)?t:[...e.isShared?[]:[{key:_.SHARE,title:r?.titles?.share??`Share`,icon:r.actionsIcons?.[_.SHARE]},{key:_.RENAME,title:r?.titles?.rename??`Rename`,icon:r.actionsIcons?.[_.RENAME]}],{key:_.EXPORT,title:r?.titles?.export??`Export`,icon:r.actionsIcons?.[_.EXPORT]},...t]},[e.isShared,e?.model?.id,r.titles,r.actionsIcons]),[m,g]=(0,l.useState)(d.PopUpState.Closed),[v,y]=(0,l.useState)(d.PopUpState.Closed),[b,x]=(0,l.useState)(d.PopUpState.Closed),S=(0,l.useCallback)(()=>{g(d.PopUpState.Closed)},[g]),C=(0,l.useCallback)(()=>{y(d.PopUpState.Closed)},[y]),w=(0,l.useCallback)(()=>{x(d.PopUpState.Closed)},[x]),T=(0,l.useCallback)(()=>{a(e),S()},[e,a,S]),E=(0,l.useCallback)((e,t)=>{o(e,t),w()},[o,w]);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(d.Dropdown,{containerClassName:`ml-3 hidden group-hover:flex`,triggerButton:t??(0,p.jsx)(Te,{disabled:n}),options:f,openedClassName:`!flex action-menu-opened`,onOptionSelect:t=>{t===_.DELETE&&g(d.PopUpState.Opened),t===_.SHARE&&y(d.PopUpState.Opened),t===_.RENAME&&x(d.PopUpState.Opened),t===_.EXPORT&&s(decodeURI(e.id)).then(e=>{L(e,c).then(e=>{V(`data:application/zip;base64,${e}`,`chat_with_attachments_${new Date().toLocaleDateString()}.dial`)})})},disabled:n}),m===d.PopUpState.Opened&&(0,p.jsx)(j,{locale:i,deleteConversation:T,onCloseModal:S}),v===d.PopUpState.Opened&&(0,p.jsx)(be,{conversation:e,locale:i,onCloseModal:C,...u}),b===d.PopUpState.Opened&&(0,p.jsx)(xe,{conversation:e,locale:i,renameConversation:E,onCloseModal:w})]})},Te=({disabled:e})=>(0,p.jsx)(`div`,{className:(0,c.default)(`flex items-center justify-center w-[24px]`,e?`cursor-not-allowed`:`cursor-pointer`),children:(0,p.jsx)(f.IconDotsVertical,{width:20,height:20,stroke:2,className:`text-primary`})}),Ee=({conversation:e,selectedConversationId:t,searchQuery:n,onConversationClick:r,isDisabled:i})=>{let{titles:a,conversationItemIcon:o}=A(),s=(0,l.useRef)(null),u=(0,h.getClearedConversationName)(e?.name);return(0,l.useEffect)(()=>{if(e?.id===t&&s?.current){let e=s.current.parentElement?.parentElement?.parentElement;if(e){let t=s.current.getBoundingClientRect(),n=e.getBoundingClientRect(),r=t.height,i=n.height,a=t.top-n.top+e.scrollTop-(i/2-r/2);e.scrollTo({top:a,behavior:`smooth`})}}},[e,t]),(0,p.jsxs)(`div`,{ref:s,className:(0,c.default)(`flex justify-between items-center py-2 px-3 border-transparent relative group border`,`conversation-item`,t===e?.id&&`bg-hues-100 conversation-item-active`,i?`cursor-not-allowed`:`cursor-pointer hover:border-hues-600`),onClick:()=>!i&&r(e.folderId,e?.id),title:i?a?.noActionsAllowed:u,children:[(0,p.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center`,children:[o||null,(0,p.jsx)(`h3`,{className:(0,c.default)(`truncate pb-px -mb-px font-semibold text-neutrals-1000 sm:body-2`,`conversation-item-text`,t===e?.id?`conversation-item-text-active`:``),title:i?a?.noActionsAllowed:u,children:n?.length?(0,p.jsx)(d.HighlightText,{text:u,highlightText:n}):u})]}),(0,p.jsx)($,{conversation:e,isDisabled:i})]})},De=({handleConversationClick:e,selectedConversationId:t,groupLabel:n,groupedConversations:r,isDisabled:i,isCollapsed:a,onToggleCollapse:o})=>{let{titles:s}=A();return(0,p.jsxs)(`div`,{children:[(0,p.jsxs)(`div`,{className:`conversation-group-items-title mb-3 inline-flex cursor-pointer items-center gap-1 text-neutrals-700`,onClick:o,children:[(0,p.jsx)(f.IconCaretRightFilled,{className:(0,c.default)(`w-3 h-3 conversation-group-items-arrow`,a?`rotate-[90deg]`:`rotate-0`)}),(0,p.jsx)(`span`,{className:`body-3 conversation-group-items-title-text`,children:O(n,s)})]}),!a&&(0,p.jsx)(`div`,{className:(0,c.default)(`flex flex-col gap-y-3`,`conversation-group-items`),children:D(r).map(n=>(0,p.jsx)(Ee,{isDisabled:i,conversation:n,selectedConversationId:t,onConversationClick:e},n.id||n.name))})]},n)},Oe=({searchQuery:e,isExpandedSearch:t,onSearchConversations:n,toggleSearchField:r})=>{let{titles:i,searchIcon:a}=A();return(0,p.jsx)(p.Fragment,{children:t?(0,p.jsx)(d.InputWithIcon,{inputId:`conversations-search`,placeholder:i?.searchPlaceholder??`Search`,containerClasses:`conversation-list-search-input h-[40px] bg-transparent px-4 py-2 rounded-full border-neutrals-400 shadow-none`,cssClass:`h-auto`,value:e,iconAfterInput:(0,p.jsx)(d.IconButton,{buttonClassName:`text-button-tertiary items-center p-0 ml-4 border-0 w-5 h-5`,onClick:r,icon:(0,p.jsx)(f.IconX,{})}),onChange:n}):(0,p.jsx)(d.Button,{buttonClassName:`text-button-tertiary p-0 search-button`,iconBefore:a||(0,p.jsx)(f.IconSearch,{className:`size-5`}),onClick:r})})},ke=({conversations:e,selectedConversationId:t,searchQuery:n,handleConversationClick:r,isDisabled:i})=>{let{titles:a}=A(),[o,s]=(0,l.useState)([]);return(0,l.useEffect)(()=>{s(D(e?.filter(e=>(0,h.getClearedConversationName)(e?.name)?.includes(n||``))))},[e,n]),(0,p.jsx)(p.Fragment,{children:o?.length?o.map(e=>(0,p.jsx)(Ee,{conversation:e,searchQuery:n,selectedConversationId:t,onConversationClick:r,isDisabled:i},e.id)):(0,p.jsx)(`h3`,{className:`text-neutrals-800`,children:a?.noConversation??`No conversations yet`})})},Ae=()=>{let{titles:e}=A();return(0,p.jsxs)(`div`,{className:`flex flex-col p-8 text-center`,children:[(0,p.jsx)(`p`,{className:`text-neutrals-800`,children:e?.noConversation??`No conversations yet`}),(0,p.jsx)(`p`,{className:`mt-2 text-sm text-neutrals-800`,children:e?.clickNewChat??`Click "New Chat" to start a conversation`})]})},je=({handleConversationClick:e,selectedConversationId:t,actions:n,children:r,isCollapsed:i,isStreaming:a,conversationStyles:o,conversations:s,locale:u,sharedConversations:f,setConversations:m,setSharedConversations:_,shareConversationProps:v,handleSelectedConversationRemove:x})=>{let[S,C]=(0,l.useState)({}),[w,T]=(0,l.useState)(!0),[D,O]=(0,l.useState)(!1),[A,j]=(0,l.useState)(``),[M,N]=(0,l.useState)(!1),[P,F]=(0,l.useState)(new Set),I=(0,l.useCallback)(e=>{F(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),{getConversations:L,getSharedConversations:R,deleteConversation:z,renameConversation:B}=n,V=(0,l.useMemo)(()=>!!A?.length,[A]);(0,l.useEffect)(()=>{C({...b(f),...E(s)})},[s,f]),(0,l.useEffect)(()=>{async function e(){try{T(!0);let e=await L(u),t=await R((0,g.getSharedConversationsRequest)(g.ShareTarget.ME));m((0,h.cleanConversationNames)(e)),_((0,h.cleanConversationNames)(y(t,u)))}catch(e){console.error(`Error loading conversation`,e)}finally{T(!1),O(!0)}}e()},[L,m,u,R,_]);let H=(0,l.useCallback)(async e=>{try{await z(e);let n=await L(u),r=await R((0,g.getSharedConversationsRequest)(g.ShareTarget.ME));m((0,h.cleanConversationNames)(n)),_((0,h.cleanConversationNames)(y(r,u))),t===e?.id&&x()}catch(e){console.error(`Error deleting conversation`,e)}},[z,L,u,R,m,_,t,x]),U=(0,l.useCallback)(async(e,t)=>{try{T(!0),await B(e,t);let n=await L(u),r=await R((0,g.getSharedConversationsRequest)(g.ShareTarget.ME));m((0,h.cleanConversationNames)(n)),_((0,h.cleanConversationNames)(y(r,u)))}catch(e){console.error(`Error renaming conversation`,e)}finally{T(!1)}},[L,u,R,m,_,B]),W=(0,l.useCallback)(e=>{j(e)},[j]),G=(0,l.useCallback)(()=>{N(e=>!e),j(``)},[N]);return w&&!D?(0,p.jsx)(d.Loader,{}):(0,p.jsx)(Ce,{value:{locale:u,deleteConversation:H,renameConversation:U,getConversation:n.getConversation,getFileBlob:n.getFileBlob,shareConversationProps:v},children:(0,p.jsxs)(k.Provider,{value:o,children:[!i&&(0,p.jsxs)(`div`,{className:(0,c.default)(`flex justify-between items-center pr-6`,M?` pt-4 pb-0 sm:pt-10`:` pt-6 pb-2 sm:pt-10`),children:[!M&&(0,p.jsx)(`h3`,{className:`sm:body-2 text-neutrals-700`,children:o?.titles?.allChats??`All Chats`}),(0,p.jsx)(Oe,{searchQuery:A,isExpandedSearch:M,onSearchConversations:W,toggleSearchField:G})]}),(0,p.jsx)(`div`,{className:`scroll-hidden-container mt-4 flex min-h-0 flex-1 flex-col`,children:(0,p.jsx)(`div`,{className:(0,c.default)(`flex flex-col pr-4`,V?`gap-y-1`:`gap-y-6`,i&&`hidden`),children:s?.length===0&&f?.length===0?(0,p.jsx)(Ae,{}):V?(0,p.jsx)(ke,{conversations:[...f,...s],searchQuery:A,selectedConversationId:t,handleConversationClick:e,isDisabled:a}):Object.entries(S).map(([n,r])=>r?.length>0&&(0,p.jsx)(De,{isDisabled:a,groupLabel:n,groupedConversations:r,handleConversationClick:e,selectedConversationId:t,isCollapsed:P.has(n),onToggleCollapse:()=>I(n)},n))})}),r]})})},Me=({onCloseModal:e,disableModalDividers:t,signOut:n,isSmallButton:r,locale:i,titles:a})=>(0,p.jsxs)(d.Popup,{heading:a?.popupTitle||`Log out?`,portalId:`sign-out`,containerClassName:`sign-out-popup`,size:d.PopUpSize.SM,dividers:!t,onClose:e,closeButtonTitle:`Cancel`,children:[(0,p.jsx)(`div`,{className:`px-6 py-4 sm:px-0`,lang:i,children:a?.popupText}),(0,p.jsxs)(`div`,{className:`delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3`,children:[(0,p.jsx)(d.Button,{buttonClassName:`cancel-button`,title:a?.popupCancel||`Cancel`,isSmallButton:r,onClick:t=>{t.stopPropagation(),e()}}),(0,p.jsx)(d.Button,{buttonClassName:`text-button-primary`,title:a?.popupApply||`Sign Out`,isSmallButton:r,onClick:e=>{e.stopPropagation(),n?.()}})]})]}),Ne=({userInfo:e,signOutAction:t,contactSupportUrl:n,styles:r,locale:i,titles:a})=>{let o=e=>e?.split(` `)?.map((e,t)=>t<2?e[0].toUpperCase():``)?.join(``)??``,s=(0,l.useMemo)(()=>e?.name?o(e?.name):e?.email?.[0].toUpperCase()??``,[e]),[u,f]=(0,l.useState)(!1),m=e?.name?.split(` `),h=m?`${m?.[0]??``} ${m?.[1]?.[0]?m?.[1]?.[0]+`.`:``}`:e?.email??``,g=(0,l.useCallback)(()=>{f(!0)},[]),_=(0,l.useCallback)(()=>{f(!1)},[]),v=(0,l.useCallback)(()=>{window.open(n||`#`,`_blank`,`noopener,noreferrer`)},[n]),y=(0,l.useMemo)(()=>(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(`div`,{className:(0,c.default)(`cursor-pointer flex items-center justify-center size-11 rounded-[100px] p-[10px] sm:h-[32px] sm:w-[32px] flex-shrink-0`,r?.initialStyles),children:s}),(0,p.jsx)(`p`,{className:(0,c.default)(`h3 cursor-pointer overflow-hidden text-ellipsis`,r?.userNameStyles),children:(r?.showShortName?h:e?.name)??e?.email??``})]}),[s,h,r,e]),b=(0,l.useMemo)(()=>(0,p.jsxs)(`div`,{className:(0,c.default)(`py-1`,r?.dropDownStyles),children:[r?.settingsIcon&&(0,p.jsxs)(`button`,{className:(0,c.default)(`p-2 items-center flex gap-1 text-primary fill-primary`,r?.dropdownButtonTypographyStyles||`body-1`,r?.dropdownButtonStyles),title:a?.settings,children:[(0,p.jsx)(`span`,{className:`shrink-0`,children:r?.settingsIcon}),(0,p.jsx)(`span`,{className:`min-w-0 break-words`,children:a?.settings||`Settings`})]}),r?.contactSupportIcon&&(0,p.jsxs)(`button`,{className:(0,c.default)(`p-2 items-center flex gap-1 text-primary fill-primary`,r?.dropdownButtonTypographyStyles||`body-1`,r?.dropdownButtonStyles),title:a?.contactSupport,onClick:v,children:[(0,p.jsx)(`span`,{className:`shrink-0`,children:r?.contactSupportIcon}),(0,p.jsx)(`span`,{className:`min-w-0 break-words`,children:a?.contactSupport||`Contact support`})]}),(0,p.jsx)(`div`,{className:(0,c.default)(`h-0 border-t border-neutrals-600 my-2`,r?.showSeparator?`block`:`hidden`)}),(0,p.jsxs)(`button`,{className:(0,c.default)(`p-2 items-center flex gap-1 text-primary fill-primary`,r?.dropdownButtonTypographyStyles||`body-1`,r?.dropdownButtonStyles),title:a?.signOut,onClick:g,children:[(0,p.jsx)(`span`,{className:`shrink-0`,children:r?.signOutIcon}),(0,p.jsx)(`span`,{className:`min-w-0 break-words`,children:a?.signOut||`Sign out`}),u&&(0,p.jsx)(Me,{onCloseModal:_,signOut:()=>t?.(),locale:i,disableModalDividers:r?.disableModalDividers,titles:a})]})]}),[r,a,g,v,u,_,i,t]);if(e)return(0,p.jsx)(d.Dropdown,{containerClassName:(0,c.default)(`transition-opacity group-hover:opacity-100 shrink w-full`,r?.dropdownContainerClassName),triggerButton:y,content:b,openedClassName:`action-menu-opened`})};exports.ActionMenu=$,exports.ActionMenuItem=_,exports.ConversationList=je,exports.User=Ne,exports.getSharedConversationsGroup=b,exports.transformSharedConversations=y;
|
package/index.mjs
CHANGED
|
@@ -2,11 +2,11 @@ import e from "classnames";
|
|
|
2
2
|
import t, { createContext as n, useCallback as r, useContext as i, useEffect as a, useMemo as o, useRef as s, useState as c } from "react";
|
|
3
3
|
import { cloneDeep as l, omit as u, uniqBy as d } from "lodash";
|
|
4
4
|
import { Button as f, Dropdown as p, HighlightText as m, IconButton as h, InlineAlert as g, InlineAlertType as _, Input as v, InputWithIcon as y, Loader as b, PopUpSize as x, PopUpState as S, Popup as C } from "@epam/statgpt-ui-components";
|
|
5
|
-
import { IconCaretRightFilled as w, IconCheck as T, IconCopy as E, IconDotsVertical as D, IconInfoCircle as O, IconSearch as k, IconX as
|
|
6
|
-
import { Fragment as
|
|
7
|
-
import
|
|
8
|
-
import { ONBOARDING_MODEL_POSTFIX as
|
|
9
|
-
import { InvitationType as
|
|
5
|
+
import { IconCaretRightFilled as w, IconCheck as T, IconCopy as E, IconDotsVertical as D, IconInfoCircle as O, IconSearch as k, IconX as ee } from "@tabler/icons-react";
|
|
6
|
+
import { Fragment as A, jsx as j, jsxs as M } from "react/jsx-runtime";
|
|
7
|
+
import te from "jszip";
|
|
8
|
+
import { ONBOARDING_MODEL_POSTFIX as N, SHARE_CONVERSATION_ROUTE as P, cleanConversationNames as F, getClearedConversationName as I, getConversationAttachments as L } from "@epam/statgpt-shared-toolkit";
|
|
9
|
+
import { InvitationType as R, ShareTarget as ne, getSharedConversationsRequest as z } from "@epam/statgpt-dial-toolkit";
|
|
10
10
|
//#region libs/conversation-list/src/types/action-menu-item.ts
|
|
11
11
|
var B = /* @__PURE__ */ function(e) {
|
|
12
12
|
return e.DELETE = "delete", e.EXPORT = "export", e.SHARE = "share", e.RENAME = "rename", e;
|
|
@@ -20,32 +20,32 @@ var B = /* @__PURE__ */ function(e) {
|
|
|
20
20
|
id: r,
|
|
21
21
|
isShared: !0
|
|
22
22
|
};
|
|
23
|
-
}) || [], U = (e) => ({ [V.SHARED]: e }),
|
|
23
|
+
}) || [], U = (e) => ({ [V.SHARED]: e }), W = {
|
|
24
24
|
[V.TODAY]: [],
|
|
25
25
|
[V.YESTERDAY]: [],
|
|
26
26
|
[V.WEEK]: [],
|
|
27
27
|
[V.EARLIER]: []
|
|
28
|
-
},
|
|
28
|
+
}, G = (e, t) => e.toDateString() === t.toDateString(), K = (e, t) => G(t, new Date(e.getFullYear(), e.getMonth(), e.getDate() - 1)), re = (e, t) => {
|
|
29
29
|
let n = e.getTime() - t.getTime();
|
|
30
30
|
return Math.floor(n / (1e3 * 60 * 60 * 24));
|
|
31
|
-
},
|
|
32
|
-
let t = /* @__PURE__ */ new Date(), n = l(
|
|
31
|
+
}, ie = (e) => e.updatedAt || Number(e.id?.split("-").pop()), ae = (e) => {
|
|
32
|
+
let t = /* @__PURE__ */ new Date(), n = l(W);
|
|
33
33
|
for (let r of e) if (r.updatedAt) {
|
|
34
34
|
let e = new Date(r.updatedAt), i;
|
|
35
|
-
i =
|
|
35
|
+
i = G(t, e) ? n[V.TODAY] : K(t, e) ? n[V.YESTERDAY] : re(t, e) <= 7 ? n[V.WEEK] : n[V.EARLIER], i?.some((e) => e.id === r.id) || i.push(r);
|
|
36
36
|
}
|
|
37
37
|
return n;
|
|
38
|
-
},
|
|
39
|
-
function
|
|
40
|
-
let e = i(
|
|
38
|
+
}, q = (e) => e?.sort((e, t) => (ie(t) || 0) - (ie(e) || 0)), J = (e, t) => e === V.SHARED ? t?.shared || "Shared" : e === V.TODAY ? t?.today || "Today" : e === V.YESTERDAY ? t?.yesterday || "Yesterday" : e === V.WEEK ? t?.lastWeek || "Last week" : t?.earlier || "Earlier", Y = n(null);
|
|
39
|
+
function X() {
|
|
40
|
+
let e = i(Y);
|
|
41
41
|
if (!e) throw Error("useConversationStyles must be used within ConversationStylesContext.Provider");
|
|
42
42
|
return e;
|
|
43
43
|
}
|
|
44
44
|
//#endregion
|
|
45
45
|
//#region libs/conversation-list/src/components/ConversationDelete/ConversationDelete.tsx
|
|
46
|
-
var
|
|
47
|
-
let { titles: r, disableModalDividers: i, isSmallModalButton: a } =
|
|
48
|
-
return /* @__PURE__ */
|
|
46
|
+
var Z = ({ onCloseModal: e, deleteConversation: t, locale: n }) => {
|
|
47
|
+
let { titles: r, disableModalDividers: i, isSmallModalButton: a } = X();
|
|
48
|
+
return /* @__PURE__ */ M(C, {
|
|
49
49
|
heading: r?.deleteTitle ?? "Delete conversation",
|
|
50
50
|
portalId: "delete-conversation",
|
|
51
51
|
containerClassName: "delete-conversation-popup",
|
|
@@ -53,20 +53,20 @@ var X = ({ onCloseModal: e, deleteConversation: t, locale: n }) => {
|
|
|
53
53
|
dividers: !i,
|
|
54
54
|
onClose: e,
|
|
55
55
|
closeButtonTitle: r?.close ?? "Cancel",
|
|
56
|
-
children: [/* @__PURE__ */
|
|
56
|
+
children: [/* @__PURE__ */ j("div", {
|
|
57
57
|
className: "px-6 py-4 sm:px-0",
|
|
58
58
|
lang: n,
|
|
59
59
|
children: r?.deleteMessage ?? "Are you sure you want to delete this conversation? This action cannot be undone."
|
|
60
|
-
}), /* @__PURE__ */
|
|
60
|
+
}), /* @__PURE__ */ M("div", {
|
|
61
61
|
className: "delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3",
|
|
62
|
-
children: [/* @__PURE__ */
|
|
62
|
+
children: [/* @__PURE__ */ j(f, {
|
|
63
63
|
buttonClassName: "cancel-button",
|
|
64
64
|
title: r?.cancel ?? "Cancel",
|
|
65
65
|
isSmallButton: a,
|
|
66
66
|
onClick: (t) => {
|
|
67
67
|
t.stopPropagation(), e();
|
|
68
68
|
}
|
|
69
|
-
}), /* @__PURE__ */
|
|
69
|
+
}), /* @__PURE__ */ j(f, {
|
|
70
70
|
buttonClassName: "text-button-primary text-button-primary-error",
|
|
71
71
|
title: r?.delete ?? "Delete",
|
|
72
72
|
isSmallButton: a,
|
|
@@ -76,11 +76,11 @@ var X = ({ onCloseModal: e, deleteConversation: t, locale: n }) => {
|
|
|
76
76
|
})]
|
|
77
77
|
})]
|
|
78
78
|
});
|
|
79
|
-
},
|
|
79
|
+
}, oe = (e) => d(ue(L(e)).map((e) => ({
|
|
80
80
|
...e,
|
|
81
81
|
relativePath: "",
|
|
82
82
|
contentLength: 0
|
|
83
|
-
})), (e) =>
|
|
83
|
+
})), (e) => Q(e.relativePath, e.name)), se = (e) => e.endsWith("/"), ce = (e) => {
|
|
84
84
|
let t = e.toLowerCase();
|
|
85
85
|
return [
|
|
86
86
|
"data:",
|
|
@@ -93,15 +93,15 @@ var X = ({ onCloseModal: e, deleteConversation: t, locale: n }) => {
|
|
|
93
93
|
"telnet://",
|
|
94
94
|
"api/files"
|
|
95
95
|
].some((e) => t.startsWith(e));
|
|
96
|
-
},
|
|
97
|
-
let t =
|
|
96
|
+
}, le = (e) => {
|
|
97
|
+
let t = Q(...e.split("/").map((e) => decodeURIComponent(e))), n = t.lastIndexOf("/");
|
|
98
98
|
return {
|
|
99
99
|
absolutePath: t.slice(0, n),
|
|
100
100
|
name: t.slice(n + 1)
|
|
101
101
|
};
|
|
102
|
-
},
|
|
103
|
-
if (!e.url ||
|
|
104
|
-
let { absolutePath: t, name: n } =
|
|
102
|
+
}, ue = (e) => e ? e.map((e) => {
|
|
103
|
+
if (!e.url || ce(e.url) || se(e.url)) return null;
|
|
104
|
+
let { absolutePath: t, name: n } = le(e.url);
|
|
105
105
|
return {
|
|
106
106
|
id: e.url,
|
|
107
107
|
name: n,
|
|
@@ -110,44 +110,44 @@ var X = ({ onCloseModal: e, deleteConversation: t, locale: n }) => {
|
|
|
110
110
|
absolutePath: t
|
|
111
111
|
};
|
|
112
112
|
}).filter(Boolean) : [];
|
|
113
|
-
async function
|
|
114
|
-
let n =
|
|
113
|
+
async function de(e, t) {
|
|
114
|
+
let n = oe(e), r = new te();
|
|
115
115
|
n.forEach((e) => {
|
|
116
|
-
let n = t(`${encodeURI(
|
|
116
|
+
let n = t(`${encodeURI(Q(e.absolutePath, e.name))}`.replace("files/", "")), i = Q("res", fe(e.folderId), e.name);
|
|
117
117
|
r.file(i, n);
|
|
118
118
|
});
|
|
119
119
|
let i = {
|
|
120
120
|
version: 5,
|
|
121
|
-
history: [e].map(
|
|
121
|
+
history: [e].map(pe) || [],
|
|
122
122
|
folders: []
|
|
123
123
|
}, a = JSON.stringify(i, null, 2);
|
|
124
124
|
return r.file("conversations/conversations_history.json", a), await r.generateAsync({ type: "base64" });
|
|
125
125
|
}
|
|
126
|
-
var
|
|
126
|
+
var fe = (e) => {
|
|
127
127
|
let t = e.split("/");
|
|
128
|
-
return t.length > 2 ?
|
|
129
|
-
},
|
|
128
|
+
return t.length > 2 ? Q(...t.slice(2)) : void 0;
|
|
129
|
+
}, pe = (e) => u(e, ["publicationInfo"]), Q = (...e) => e.filter(Boolean).join("/");
|
|
130
130
|
//#endregion
|
|
131
131
|
//#region libs/conversation-list/src/utils/download.ts
|
|
132
|
-
function
|
|
132
|
+
function me(e, t) {
|
|
133
133
|
let n = document.createElement("a");
|
|
134
134
|
n.download = t, n.href = e, n.style.display = "none", document.body.appendChild(n), n.click(), document.body.removeChild(n), URL.revokeObjectURL(e);
|
|
135
135
|
}
|
|
136
136
|
//#endregion
|
|
137
137
|
//#region node_modules/qrcode.react/lib/esm/index.js
|
|
138
|
-
var
|
|
138
|
+
var he = Object.defineProperty, ge = Object.getOwnPropertySymbols, _e = Object.prototype.hasOwnProperty, ve = Object.prototype.propertyIsEnumerable, ye = (e, t, n) => t in e ? he(e, t, {
|
|
139
139
|
enumerable: !0,
|
|
140
140
|
configurable: !0,
|
|
141
141
|
writable: !0,
|
|
142
142
|
value: n
|
|
143
143
|
}) : e[t] = n, be = (e, t) => {
|
|
144
144
|
for (var n in t ||= {}) _e.call(t, n) && ye(e, n, t[n]);
|
|
145
|
-
if (
|
|
145
|
+
if (ge) for (var n of ge(t)) ve.call(t, n) && ye(e, n, t[n]);
|
|
146
146
|
return e;
|
|
147
147
|
}, xe = (e, t) => {
|
|
148
148
|
var n = {};
|
|
149
149
|
for (var r in e) _e.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);
|
|
150
|
-
if (e != null &&
|
|
150
|
+
if (e != null && ge) for (var r of ge(e)) t.indexOf(r) < 0 && ve.call(e, r) && (n[r] = e[r]);
|
|
151
151
|
return n;
|
|
152
152
|
}, Se;
|
|
153
153
|
((e) => {
|
|
@@ -1091,162 +1091,162 @@ Be.displayName = "QRCodeSVG";
|
|
|
1091
1091
|
//#endregion
|
|
1092
1092
|
//#region libs/share-conversation/src/utils/shared-conversations.ts
|
|
1093
1093
|
var Ve = (e, t) => ({
|
|
1094
|
-
invitationType:
|
|
1094
|
+
invitationType: R.LINK,
|
|
1095
1095
|
resources: [{ url: `conversations/${encodeURI(e)}` }, ...t]
|
|
1096
|
-
}), He = (e) => `/${
|
|
1096
|
+
}), He = (e) => `/${P}/${e?.invitationLink?.split("/").at(-1) || ""}`, Ue = (e, t) => t?.find((t) => {
|
|
1097
1097
|
let n = e?.id?.split("/")?.pop(), r = t?.url?.split("/")?.pop() || "";
|
|
1098
1098
|
return r === n || decodeURI(r) === n;
|
|
1099
|
-
}), We = (e) => (e?.messages?.filter((e) => !!e?.custom_content?.attachments))?.flatMap((e) => e?.custom_content?.attachments?.map((e) => ({ url: e?.url || "" })) || [])?.filter((e) => !!e?.url) || [], Ge = ({ conversation: e, locale: t, onCloseModal: n, modalDividers: i, getConversation: l, generateConversationLink: u, chatExpiration: d, chatExpirationDays: p, close: m, chatWarning: h, shareLink: v, shareCopyLink: S, shareCopiedLink: w, shareDescription: D, shareRemoveAccessToUsers: k, chatName:
|
|
1100
|
-
let [B, V] = c(null), [H, U] = c(), [
|
|
1099
|
+
}), We = (e) => (e?.messages?.filter((e) => !!e?.custom_content?.attachments))?.flatMap((e) => e?.custom_content?.attachments?.map((e) => ({ url: e?.url || "" })) || [])?.filter((e) => !!e?.url) || [], Ge = ({ conversation: e, locale: t, onCloseModal: n, modalDividers: i, getConversation: l, generateConversationLink: u, chatExpiration: d, chatExpirationDays: p, close: m, chatWarning: h, shareLink: v, shareCopyLink: S, shareCopiedLink: w, shareDescription: D, shareRemoveAccessToUsers: k, chatName: ee, getSharedConversations: A, revokeSharedConversations: te, baseUrl: N, id: F, clientSharedPage: I, clientSharedProp: L, shareAlertMessage: R }) => {
|
|
1100
|
+
let [B, V] = c(null), [H, U] = c(), [W, G] = c(!1), [K, re] = c(!1), [ie, ae] = c(), q = s(null), J = s(null), Y = o(() => e?.id ? decodeURI(e.id) : F?.[0] && F?.[1] && t ? decodeURI(`${F[0]}/${t}/${F[1]}`) : null, [
|
|
1101
1101
|
e?.id,
|
|
1102
|
-
|
|
1102
|
+
F,
|
|
1103
1103
|
t
|
|
1104
|
-
]),
|
|
1104
|
+
]), X = o(() => {
|
|
1105
1105
|
if (!B) return "";
|
|
1106
|
-
let e =
|
|
1107
|
-
return
|
|
1106
|
+
let e = N || window.location.origin;
|
|
1107
|
+
return N && N !== window.location.origin && I && L ? `${e}/${I}?${L}=${B.split(`/${P}/`)?.[1]}` : `${e}/${t}${B}`;
|
|
1108
1108
|
}, [
|
|
1109
|
-
|
|
1109
|
+
N,
|
|
1110
1110
|
B,
|
|
1111
1111
|
t,
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
]),
|
|
1115
|
-
let t = await
|
|
1112
|
+
I,
|
|
1113
|
+
L
|
|
1114
|
+
]), Z = r(async (e) => {
|
|
1115
|
+
let t = await A?.(z(ne.OTHERS));
|
|
1116
1116
|
if (t) return Ue({ id: e }, t.resources);
|
|
1117
|
-
}, [
|
|
1117
|
+
}, [A]);
|
|
1118
1118
|
a(() => {
|
|
1119
|
-
if (!
|
|
1120
|
-
|
|
1119
|
+
if (!Y || q.current === Y) return;
|
|
1120
|
+
q.current = Y, G(!1), J.current?.abort();
|
|
1121
1121
|
let e = new AbortController();
|
|
1122
|
-
return
|
|
1122
|
+
return J.current = e, (async () => {
|
|
1123
1123
|
try {
|
|
1124
|
-
let t = Ve(
|
|
1124
|
+
let t = Ve(Y, We(await l?.(Y))), n = await u?.(t), r = await Z(Y);
|
|
1125
1125
|
if (e.signal.aborted || !n) return;
|
|
1126
|
-
V(He(n)), U(r),
|
|
1126
|
+
V(He(n)), U(r), G(!0);
|
|
1127
1127
|
} catch (t) {
|
|
1128
1128
|
if (e.signal.aborted) return;
|
|
1129
|
-
|
|
1129
|
+
G(!1), console.error("Error sharing conversation", t);
|
|
1130
1130
|
}
|
|
1131
1131
|
})(), () => {
|
|
1132
|
-
e.abort(),
|
|
1132
|
+
e.abort(), q.current = null;
|
|
1133
1133
|
};
|
|
1134
1134
|
}, [
|
|
1135
|
-
|
|
1135
|
+
Y,
|
|
1136
1136
|
u,
|
|
1137
1137
|
l,
|
|
1138
|
-
|
|
1138
|
+
Z
|
|
1139
1139
|
]);
|
|
1140
|
-
let
|
|
1141
|
-
|
|
1142
|
-
}, [n]),
|
|
1143
|
-
|
|
1144
|
-
}, [
|
|
1140
|
+
let oe = r(() => {
|
|
1141
|
+
J.current?.abort(), q.current = null, n(), V(null), G(!1), re(!1);
|
|
1142
|
+
}, [n]), se = r(() => {
|
|
1143
|
+
re(!0), navigator.clipboard.writeText(X || "");
|
|
1144
|
+
}, [X]), ce = async () => {
|
|
1145
1145
|
try {
|
|
1146
|
-
if (
|
|
1147
|
-
let e = await
|
|
1148
|
-
|
|
1146
|
+
if (ae(!0), H && await te?.({ resources: [H] }), Y) {
|
|
1147
|
+
let e = await Z(Y);
|
|
1148
|
+
J.current?.signal.aborted || U(e);
|
|
1149
1149
|
}
|
|
1150
1150
|
} catch (e) {
|
|
1151
1151
|
console.error("Error revoking shared conversation", e);
|
|
1152
1152
|
} finally {
|
|
1153
|
-
|
|
1153
|
+
J.current?.signal.aborted || ae(!1);
|
|
1154
1154
|
}
|
|
1155
|
-
},
|
|
1156
|
-
buttonClassName:
|
|
1157
|
-
iconBefore:
|
|
1155
|
+
}, le = r(() => /* @__PURE__ */ j(f, {
|
|
1156
|
+
buttonClassName: K ? "text-button-secondary" : "text-button-primary",
|
|
1157
|
+
iconBefore: j(K ? T : E, {
|
|
1158
1158
|
width: 20,
|
|
1159
1159
|
height: 20
|
|
1160
1160
|
}),
|
|
1161
|
-
title:
|
|
1162
|
-
disabled:
|
|
1163
|
-
onClick:
|
|
1161
|
+
title: K ? w ?? "Copied" : S ?? "Copy link",
|
|
1162
|
+
disabled: K,
|
|
1163
|
+
onClick: se
|
|
1164
1164
|
}), [
|
|
1165
|
-
|
|
1166
|
-
|
|
1165
|
+
K,
|
|
1166
|
+
se,
|
|
1167
1167
|
w,
|
|
1168
1168
|
S
|
|
1169
1169
|
]);
|
|
1170
|
-
return /* @__PURE__ */
|
|
1170
|
+
return /* @__PURE__ */ M(C, {
|
|
1171
1171
|
heading: v ?? "Share link",
|
|
1172
1172
|
portalId: "share",
|
|
1173
1173
|
size: x.SM,
|
|
1174
1174
|
dividers: i,
|
|
1175
|
-
onClose:
|
|
1175
|
+
onClose: oe,
|
|
1176
1176
|
closeButtonTitle: m ?? "Close",
|
|
1177
|
-
children: [
|
|
1177
|
+
children: [W ? /* @__PURE__ */ M("div", {
|
|
1178
1178
|
className: "share flex flex-col gap-y-4 overflow-auto px-6 pb-6 sm:p-0",
|
|
1179
1179
|
children: [
|
|
1180
|
-
|
|
1180
|
+
R ? /* @__PURE__ */ j(g, {
|
|
1181
1181
|
type: _.Note,
|
|
1182
|
-
icon: /* @__PURE__ */
|
|
1182
|
+
icon: /* @__PURE__ */ j(O, {
|
|
1183
1183
|
width: 16,
|
|
1184
1184
|
height: 16
|
|
1185
1185
|
}),
|
|
1186
|
-
children:
|
|
1186
|
+
children: R
|
|
1187
1187
|
}) : null,
|
|
1188
|
-
e?.name ? /* @__PURE__ */
|
|
1188
|
+
e?.name ? /* @__PURE__ */ M("div", {
|
|
1189
1189
|
className: "share-info flex w-full",
|
|
1190
|
-
children: [/* @__PURE__ */
|
|
1190
|
+
children: [/* @__PURE__ */ j("p", {
|
|
1191
1191
|
className: "share-info-title body-1 mr-1 text-neutrals-800",
|
|
1192
|
-
children:
|
|
1193
|
-
}), /* @__PURE__ */
|
|
1192
|
+
children: ee ?? "Chat name:"
|
|
1193
|
+
}), /* @__PURE__ */ j("h3", {
|
|
1194
1194
|
className: "min-w-0 flex-1 truncate",
|
|
1195
1195
|
title: e?.name,
|
|
1196
1196
|
children: e?.name
|
|
1197
1197
|
})]
|
|
1198
1198
|
}) : null,
|
|
1199
|
-
/* @__PURE__ */
|
|
1199
|
+
/* @__PURE__ */ M("div", {
|
|
1200
1200
|
className: "share-info flex",
|
|
1201
|
-
children: [/* @__PURE__ */
|
|
1201
|
+
children: [/* @__PURE__ */ j("p", {
|
|
1202
1202
|
className: "share-info-title body-1 mr-1 text-neutrals-800",
|
|
1203
1203
|
children: d ?? "Link expiration date:"
|
|
1204
|
-
}), /* @__PURE__ */
|
|
1204
|
+
}), /* @__PURE__ */ M("h3", { children: ["3 ", p ?? "days"] })]
|
|
1205
1205
|
}),
|
|
1206
|
-
/* @__PURE__ */
|
|
1206
|
+
/* @__PURE__ */ j(Be, {
|
|
1207
1207
|
className: "min-h-[200px] self-center rounded border border-neutrals-600 p-2",
|
|
1208
|
-
value:
|
|
1208
|
+
value: X,
|
|
1209
1209
|
size: 200
|
|
1210
1210
|
}),
|
|
1211
|
-
/* @__PURE__ */
|
|
1211
|
+
/* @__PURE__ */ j("p", {
|
|
1212
1212
|
className: "body-2 text-neutrals-1000",
|
|
1213
1213
|
children: D ?? "Your name, special instructions, and any messages you add after sharing remain confidential."
|
|
1214
1214
|
}),
|
|
1215
|
-
/* @__PURE__ */
|
|
1215
|
+
/* @__PURE__ */ j(y, {
|
|
1216
1216
|
containerClasses: "share-input-container",
|
|
1217
1217
|
cssClass: "share-input",
|
|
1218
1218
|
readonly: !0,
|
|
1219
|
-
placeholder:
|
|
1220
|
-
value:
|
|
1219
|
+
placeholder: X,
|
|
1220
|
+
value: X,
|
|
1221
1221
|
inputId: "conversationLink",
|
|
1222
|
-
iconAfterInput:
|
|
1222
|
+
iconAfterInput: le()
|
|
1223
1223
|
})
|
|
1224
1224
|
]
|
|
1225
|
-
}) : /* @__PURE__ */
|
|
1225
|
+
}) : /* @__PURE__ */ j("div", {
|
|
1226
1226
|
className: "flex items-center justify-center p-6",
|
|
1227
|
-
children: /* @__PURE__ */
|
|
1228
|
-
}),
|
|
1227
|
+
children: /* @__PURE__ */ j(b, {})
|
|
1228
|
+
}), W ? e && H ? /* @__PURE__ */ j("div", {
|
|
1229
1229
|
className: "remove-access",
|
|
1230
|
-
children: /* @__PURE__ */
|
|
1230
|
+
children: /* @__PURE__ */ j(f, {
|
|
1231
1231
|
title: k ?? "Remove access to all users",
|
|
1232
1232
|
buttonClassName: "remove-access-button py-3 px-4",
|
|
1233
1233
|
isSmallButton: !0,
|
|
1234
|
-
disabled:
|
|
1235
|
-
onClick:
|
|
1234
|
+
disabled: ie,
|
|
1235
|
+
onClick: ce
|
|
1236
1236
|
})
|
|
1237
|
-
}) : /* @__PURE__ */
|
|
1237
|
+
}) : /* @__PURE__ */ j("p", {
|
|
1238
1238
|
className: "body-2 share-footer text-neutrals-800",
|
|
1239
1239
|
children: h ?? "This chat has not been shared with anyone yet."
|
|
1240
|
-
}) : /* @__PURE__ */
|
|
1240
|
+
}) : /* @__PURE__ */ j("div", {})]
|
|
1241
1241
|
});
|
|
1242
1242
|
}, Ke = ({ conversation: e, onCloseModal: t, renameConversation: n, locale: r }) => {
|
|
1243
|
-
let { titles: i, disableModalDividers: a, isSmallModalButton: o } =
|
|
1243
|
+
let { titles: i, disableModalDividers: a, isSmallModalButton: o } = X(), [s, l] = c(e?.name || ""), u = (e) => {
|
|
1244
1244
|
l(e);
|
|
1245
1245
|
}, d = () => {
|
|
1246
|
-
let t = `${e?.folderId}/${encodeURIComponent(
|
|
1246
|
+
let t = `${e?.folderId}/${encodeURIComponent(I(s))}-${(/* @__PURE__ */ new Date()).getTime()}`;
|
|
1247
1247
|
n(`conversations/${e.id}`, `conversations/${t}`);
|
|
1248
1248
|
};
|
|
1249
|
-
return /* @__PURE__ */
|
|
1249
|
+
return /* @__PURE__ */ M(C, {
|
|
1250
1250
|
heading: i?.renameTitle ?? "Rename conversation",
|
|
1251
1251
|
portalId: "rename-conversation",
|
|
1252
1252
|
containerClassName: "rename-conversation-popup",
|
|
@@ -1254,25 +1254,25 @@ var Ve = (e, t) => ({
|
|
|
1254
1254
|
dividers: !a,
|
|
1255
1255
|
onClose: t,
|
|
1256
1256
|
closeButtonTitle: i?.close ?? "Cancel",
|
|
1257
|
-
children: [/* @__PURE__ */
|
|
1257
|
+
children: [/* @__PURE__ */ j("div", {
|
|
1258
1258
|
className: "px-6 py-4 sm:px-0",
|
|
1259
1259
|
lang: r,
|
|
1260
|
-
children: /* @__PURE__ */
|
|
1260
|
+
children: /* @__PURE__ */ j(v, {
|
|
1261
1261
|
inputId: "rename",
|
|
1262
1262
|
value: s,
|
|
1263
1263
|
onChange: u,
|
|
1264
1264
|
cssClass: "w-full"
|
|
1265
1265
|
})
|
|
1266
|
-
}), /* @__PURE__ */
|
|
1266
|
+
}), /* @__PURE__ */ M("div", {
|
|
1267
1267
|
className: "delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3",
|
|
1268
|
-
children: [/* @__PURE__ */
|
|
1268
|
+
children: [/* @__PURE__ */ j(f, {
|
|
1269
1269
|
buttonClassName: "cancel-button",
|
|
1270
1270
|
title: i?.cancel ?? "Cancel",
|
|
1271
1271
|
isSmallButton: o,
|
|
1272
1272
|
onClick: (e) => {
|
|
1273
1273
|
e.stopPropagation(), t();
|
|
1274
1274
|
}
|
|
1275
|
-
}), /* @__PURE__ */
|
|
1275
|
+
}), /* @__PURE__ */ j(f, {
|
|
1276
1276
|
buttonClassName: "text-button-primary text-button-primary",
|
|
1277
1277
|
title: i?.save ?? "Rename",
|
|
1278
1278
|
isSmallButton: o,
|
|
@@ -1285,7 +1285,7 @@ var Ve = (e, t) => ({
|
|
|
1285
1285
|
});
|
|
1286
1286
|
}, qe = n(null);
|
|
1287
1287
|
function Je({ children: e, value: t }) {
|
|
1288
|
-
return /* @__PURE__ */
|
|
1288
|
+
return /* @__PURE__ */ j(qe.Provider, {
|
|
1289
1289
|
value: t,
|
|
1290
1290
|
children: e
|
|
1291
1291
|
});
|
|
@@ -1298,13 +1298,13 @@ function Ye() {
|
|
|
1298
1298
|
//#endregion
|
|
1299
1299
|
//#region libs/conversation-list/src/components/ActionMenu/ActionMenu.tsx
|
|
1300
1300
|
var Xe = ({ conversation: e, triggerButton: t, isDisabled: n }) => {
|
|
1301
|
-
let i =
|
|
1301
|
+
let i = X(), { locale: a, deleteConversation: s, renameConversation: l, getConversation: u, getFileBlob: d, shareConversationProps: f } = Ye(), m = o(() => {
|
|
1302
1302
|
let t = [{
|
|
1303
1303
|
key: B.DELETE,
|
|
1304
1304
|
title: i?.titles?.delete ?? "Delete",
|
|
1305
1305
|
icon: i.actionsIcons?.[B.DELETE]
|
|
1306
1306
|
}];
|
|
1307
|
-
return e?.model?.id?.endsWith(
|
|
1307
|
+
return e?.model?.id?.endsWith(N) ? t : [
|
|
1308
1308
|
...e.isShared ? [] : [{
|
|
1309
1309
|
key: B.SHARE,
|
|
1310
1310
|
title: i?.titles?.share ?? "Share",
|
|
@@ -1341,49 +1341,49 @@ var Xe = ({ conversation: e, triggerButton: t, isDisabled: n }) => {
|
|
|
1341
1341
|
]), E = r((e, t) => {
|
|
1342
1342
|
l(e, t), w();
|
|
1343
1343
|
}, [l, w]);
|
|
1344
|
-
return /* @__PURE__ */
|
|
1345
|
-
/* @__PURE__ */
|
|
1344
|
+
return /* @__PURE__ */ M(A, { children: [
|
|
1345
|
+
/* @__PURE__ */ j(p, {
|
|
1346
1346
|
containerClassName: "ml-3 hidden group-hover:flex",
|
|
1347
|
-
triggerButton: t ?? /* @__PURE__ */
|
|
1347
|
+
triggerButton: t ?? /* @__PURE__ */ j(Ze, { disabled: n }),
|
|
1348
1348
|
options: m,
|
|
1349
1349
|
openedClassName: "!flex action-menu-opened",
|
|
1350
1350
|
onOptionSelect: (t) => {
|
|
1351
1351
|
t === B.DELETE && g(S.Opened), t === B.SHARE && v(S.Opened), t === B.RENAME && b(S.Opened), t === B.EXPORT && u(decodeURI(e.id)).then((e) => {
|
|
1352
|
-
|
|
1353
|
-
|
|
1352
|
+
de(e, d).then((e) => {
|
|
1353
|
+
me(`data:application/zip;base64,${e}`, `chat_with_attachments_${(/* @__PURE__ */ new Date()).toLocaleDateString()}.dial`);
|
|
1354
1354
|
});
|
|
1355
1355
|
});
|
|
1356
1356
|
},
|
|
1357
1357
|
disabled: n
|
|
1358
1358
|
}),
|
|
1359
|
-
h === S.Opened && /* @__PURE__ */
|
|
1359
|
+
h === S.Opened && /* @__PURE__ */ j(Z, {
|
|
1360
1360
|
locale: a,
|
|
1361
1361
|
deleteConversation: T,
|
|
1362
1362
|
onCloseModal: x
|
|
1363
1363
|
}),
|
|
1364
|
-
_ === S.Opened && /* @__PURE__ */
|
|
1364
|
+
_ === S.Opened && /* @__PURE__ */ j(Ge, {
|
|
1365
1365
|
conversation: e,
|
|
1366
1366
|
locale: a,
|
|
1367
1367
|
onCloseModal: C,
|
|
1368
1368
|
...f
|
|
1369
1369
|
}),
|
|
1370
|
-
y === S.Opened && /* @__PURE__ */
|
|
1370
|
+
y === S.Opened && /* @__PURE__ */ j(Ke, {
|
|
1371
1371
|
conversation: e,
|
|
1372
1372
|
locale: a,
|
|
1373
1373
|
renameConversation: E,
|
|
1374
1374
|
onCloseModal: w
|
|
1375
1375
|
})
|
|
1376
1376
|
] });
|
|
1377
|
-
}, Ze = ({ disabled: t }) => /* @__PURE__ */
|
|
1377
|
+
}, Ze = ({ disabled: t }) => /* @__PURE__ */ j("div", {
|
|
1378
1378
|
className: e("flex items-center justify-center w-[24px]", t ? "cursor-not-allowed" : "cursor-pointer"),
|
|
1379
|
-
children: /* @__PURE__ */
|
|
1379
|
+
children: /* @__PURE__ */ j(D, {
|
|
1380
1380
|
width: 20,
|
|
1381
1381
|
height: 20,
|
|
1382
1382
|
stroke: 2,
|
|
1383
1383
|
className: "text-primary"
|
|
1384
1384
|
})
|
|
1385
1385
|
}), Qe = ({ conversation: t, selectedConversationId: n, searchQuery: r, onConversationClick: i, isDisabled: o }) => {
|
|
1386
|
-
let { titles: c, conversationItemIcon: l } =
|
|
1386
|
+
let { titles: c, conversationItemIcon: l } = X(), u = s(null), d = I(t?.name);
|
|
1387
1387
|
return a(() => {
|
|
1388
1388
|
if (t?.id === n && u?.current) {
|
|
1389
1389
|
let e = u.current.parentElement?.parentElement?.parentElement;
|
|
@@ -1395,197 +1395,202 @@ var Xe = ({ conversation: e, triggerButton: t, isDisabled: n }) => {
|
|
|
1395
1395
|
});
|
|
1396
1396
|
}
|
|
1397
1397
|
}
|
|
1398
|
-
}, [t, n]), /* @__PURE__ */
|
|
1398
|
+
}, [t, n]), /* @__PURE__ */ M("div", {
|
|
1399
1399
|
ref: u,
|
|
1400
1400
|
className: e("flex justify-between items-center py-2 px-3 border-transparent relative group border", "conversation-item", n === t?.id && "bg-hues-100 conversation-item-active", o ? "cursor-not-allowed" : "cursor-pointer hover:border-hues-600"),
|
|
1401
1401
|
onClick: () => !o && i(t.folderId, t?.id),
|
|
1402
1402
|
title: o ? c?.noActionsAllowed : d,
|
|
1403
|
-
children: [/* @__PURE__ */
|
|
1403
|
+
children: [/* @__PURE__ */ M("div", {
|
|
1404
1404
|
className: "flex min-w-0 flex-1 items-center",
|
|
1405
|
-
children: [l || null, /* @__PURE__ */
|
|
1405
|
+
children: [l || null, /* @__PURE__ */ j("h3", {
|
|
1406
1406
|
className: e("truncate pb-px -mb-px font-semibold text-neutrals-1000 sm:body-2", "conversation-item-text", n === t?.id ? "conversation-item-text-active" : ""),
|
|
1407
1407
|
title: o ? c?.noActionsAllowed : d,
|
|
1408
|
-
children: r?.length ? /* @__PURE__ */
|
|
1408
|
+
children: r?.length ? /* @__PURE__ */ j(m, {
|
|
1409
1409
|
text: d,
|
|
1410
1410
|
highlightText: r
|
|
1411
1411
|
}) : d
|
|
1412
1412
|
})]
|
|
1413
|
-
}), /* @__PURE__ */
|
|
1413
|
+
}), /* @__PURE__ */ j(Xe, {
|
|
1414
1414
|
conversation: t,
|
|
1415
1415
|
isDisabled: o
|
|
1416
1416
|
})]
|
|
1417
1417
|
});
|
|
1418
|
-
}, $e = ({ handleConversationClick: t, selectedConversationId: n, groupLabel:
|
|
1419
|
-
let { titles:
|
|
1420
|
-
return /* @__PURE__ */
|
|
1418
|
+
}, $e = ({ handleConversationClick: t, selectedConversationId: n, groupLabel: r, groupedConversations: i, isDisabled: a, isCollapsed: o, onToggleCollapse: s }) => {
|
|
1419
|
+
let { titles: c } = X();
|
|
1420
|
+
return /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ M("div", {
|
|
1421
1421
|
className: "conversation-group-items-title mb-3 inline-flex cursor-pointer items-center gap-1 text-neutrals-700",
|
|
1422
|
-
onClick:
|
|
1423
|
-
|
|
1424
|
-
}, [u]),
|
|
1425
|
-
children: [/* @__PURE__ */ M(w, { className: e("w-3 h-3 conversation-group-items-arrow", l ? "rotate-[90deg]" : "rotate-0") }), /* @__PURE__ */ M("span", {
|
|
1422
|
+
onClick: s,
|
|
1423
|
+
children: [/* @__PURE__ */ j(w, { className: e("w-3 h-3 conversation-group-items-arrow", o ? "rotate-[90deg]" : "rotate-0") }), /* @__PURE__ */ j("span", {
|
|
1426
1424
|
className: "body-3 conversation-group-items-title-text",
|
|
1427
|
-
children:
|
|
1425
|
+
children: J(r, c)
|
|
1428
1426
|
})]
|
|
1429
|
-
}), !
|
|
1427
|
+
}), !o && /* @__PURE__ */ j("div", {
|
|
1430
1428
|
className: e("flex flex-col gap-y-3", "conversation-group-items"),
|
|
1431
|
-
children:
|
|
1432
|
-
isDisabled:
|
|
1429
|
+
children: q(i).map((e) => /* @__PURE__ */ j(Qe, {
|
|
1430
|
+
isDisabled: a,
|
|
1433
1431
|
conversation: e,
|
|
1434
1432
|
selectedConversationId: n,
|
|
1435
1433
|
onConversationClick: t
|
|
1436
1434
|
}, e.id || e.name))
|
|
1437
|
-
})] },
|
|
1435
|
+
})] }, r);
|
|
1438
1436
|
}, et = ({ searchQuery: e, isExpandedSearch: t, onSearchConversations: n, toggleSearchField: r }) => {
|
|
1439
|
-
let { titles: i, searchIcon: a } =
|
|
1440
|
-
return /* @__PURE__ */
|
|
1437
|
+
let { titles: i, searchIcon: a } = X();
|
|
1438
|
+
return /* @__PURE__ */ j(A, { children: t ? /* @__PURE__ */ j(y, {
|
|
1441
1439
|
inputId: "conversations-search",
|
|
1442
1440
|
placeholder: i?.searchPlaceholder ?? "Search",
|
|
1443
1441
|
containerClasses: "conversation-list-search-input h-[40px] bg-transparent px-4 py-2 rounded-full border-neutrals-400 shadow-none",
|
|
1444
1442
|
cssClass: "h-auto",
|
|
1445
1443
|
value: e,
|
|
1446
|
-
iconAfterInput: /* @__PURE__ */
|
|
1444
|
+
iconAfterInput: /* @__PURE__ */ j(h, {
|
|
1447
1445
|
buttonClassName: "text-button-tertiary items-center p-0 ml-4 border-0 w-5 h-5",
|
|
1448
1446
|
onClick: r,
|
|
1449
|
-
icon: /* @__PURE__ */
|
|
1447
|
+
icon: /* @__PURE__ */ j(ee, {})
|
|
1450
1448
|
}),
|
|
1451
1449
|
onChange: n
|
|
1452
|
-
}) : /* @__PURE__ */
|
|
1450
|
+
}) : /* @__PURE__ */ j(f, {
|
|
1453
1451
|
buttonClassName: "text-button-tertiary p-0 search-button",
|
|
1454
|
-
iconBefore: a || /* @__PURE__ */
|
|
1452
|
+
iconBefore: a || /* @__PURE__ */ j(k, { className: "size-5" }),
|
|
1455
1453
|
onClick: r
|
|
1456
1454
|
}) });
|
|
1457
1455
|
}, tt = ({ conversations: e, selectedConversationId: t, searchQuery: n, handleConversationClick: r, isDisabled: i }) => {
|
|
1458
|
-
let { titles: o } =
|
|
1456
|
+
let { titles: o } = X(), [s, l] = c([]);
|
|
1459
1457
|
return a(() => {
|
|
1460
|
-
l(
|
|
1461
|
-
}, [e, n]), /* @__PURE__ */
|
|
1458
|
+
l(q(e?.filter((e) => I(e?.name)?.includes(n || ""))));
|
|
1459
|
+
}, [e, n]), /* @__PURE__ */ j(A, { children: s?.length ? s.map((e) => /* @__PURE__ */ j(Qe, {
|
|
1462
1460
|
conversation: e,
|
|
1463
1461
|
searchQuery: n,
|
|
1464
1462
|
selectedConversationId: t,
|
|
1465
1463
|
onConversationClick: r,
|
|
1466
1464
|
isDisabled: i
|
|
1467
|
-
}, e.id)) : /* @__PURE__ */
|
|
1465
|
+
}, e.id)) : /* @__PURE__ */ j("h3", {
|
|
1468
1466
|
className: "text-neutrals-800",
|
|
1469
1467
|
children: o?.noConversation ?? "No conversations yet"
|
|
1470
1468
|
}) });
|
|
1471
1469
|
}, nt = () => {
|
|
1472
|
-
let { titles: e } =
|
|
1473
|
-
return /* @__PURE__ */
|
|
1470
|
+
let { titles: e } = X();
|
|
1471
|
+
return /* @__PURE__ */ M("div", {
|
|
1474
1472
|
className: "flex flex-col p-8 text-center",
|
|
1475
|
-
children: [/* @__PURE__ */
|
|
1473
|
+
children: [/* @__PURE__ */ j("p", {
|
|
1476
1474
|
className: "text-neutrals-800",
|
|
1477
1475
|
children: e?.noConversation ?? "No conversations yet"
|
|
1478
|
-
}), /* @__PURE__ */
|
|
1476
|
+
}), /* @__PURE__ */ j("p", {
|
|
1479
1477
|
className: "mt-2 text-sm text-neutrals-800",
|
|
1480
1478
|
children: e?.clickNewChat ?? "Click \"New Chat\" to start a conversation"
|
|
1481
1479
|
})]
|
|
1482
1480
|
});
|
|
1483
1481
|
}, rt = ({ handleConversationClick: t, selectedConversationId: n, actions: i, children: s, isCollapsed: l, isStreaming: u, conversationStyles: d, conversations: f, locale: p, sharedConversations: m, setConversations: h, setSharedConversations: g, shareConversationProps: _, handleSelectedConversationRemove: v }) => {
|
|
1484
|
-
let [y, x] = c({}), [S, C] = c(!0), [w, T] = c(
|
|
1482
|
+
let [y, x] = c({}), [S, C] = c(!0), [w, T] = c(!1), [E, D] = c(""), [O, k] = c(!1), [ee, A] = c(/* @__PURE__ */ new Set()), te = r((e) => {
|
|
1483
|
+
A((t) => {
|
|
1484
|
+
let n = new Set(t);
|
|
1485
|
+
return n.has(e) ? n.delete(e) : n.add(e), n;
|
|
1486
|
+
});
|
|
1487
|
+
}, []), { getConversations: N, getSharedConversations: P, deleteConversation: I, renameConversation: L } = i, R = o(() => !!E?.length, [E]);
|
|
1485
1488
|
a(() => {
|
|
1486
1489
|
x({
|
|
1487
1490
|
...U(m),
|
|
1488
|
-
...
|
|
1491
|
+
...ae(f)
|
|
1489
1492
|
});
|
|
1490
1493
|
}, [f, m]), a(() => {
|
|
1491
1494
|
async function e() {
|
|
1492
1495
|
try {
|
|
1493
1496
|
C(!0);
|
|
1494
|
-
let e = await
|
|
1495
|
-
h(
|
|
1497
|
+
let e = await N(p), t = await P(z(ne.ME));
|
|
1498
|
+
h(F(e)), g(F(H(t, p)));
|
|
1496
1499
|
} catch (e) {
|
|
1497
1500
|
console.error("Error loading conversation", e);
|
|
1498
1501
|
} finally {
|
|
1499
|
-
C(!1);
|
|
1502
|
+
C(!1), T(!0);
|
|
1500
1503
|
}
|
|
1501
1504
|
}
|
|
1502
1505
|
e();
|
|
1503
1506
|
}, [
|
|
1504
|
-
|
|
1507
|
+
N,
|
|
1505
1508
|
h,
|
|
1506
1509
|
p,
|
|
1507
|
-
|
|
1510
|
+
P,
|
|
1508
1511
|
g
|
|
1509
1512
|
]);
|
|
1510
|
-
let
|
|
1513
|
+
let B = r(async (e) => {
|
|
1511
1514
|
try {
|
|
1512
|
-
await
|
|
1513
|
-
let t = await
|
|
1514
|
-
h(
|
|
1515
|
+
await I(e);
|
|
1516
|
+
let t = await N(p), r = await P(z(ne.ME));
|
|
1517
|
+
h(F(t)), g(F(H(r, p))), n === e?.id && v();
|
|
1515
1518
|
} catch (e) {
|
|
1516
1519
|
console.error("Error deleting conversation", e);
|
|
1517
1520
|
}
|
|
1518
1521
|
}, [
|
|
1519
|
-
|
|
1520
|
-
|
|
1522
|
+
I,
|
|
1523
|
+
N,
|
|
1521
1524
|
p,
|
|
1522
|
-
|
|
1525
|
+
P,
|
|
1523
1526
|
h,
|
|
1524
1527
|
g,
|
|
1525
1528
|
n,
|
|
1526
1529
|
v
|
|
1527
|
-
]),
|
|
1530
|
+
]), V = r(async (e, t) => {
|
|
1528
1531
|
try {
|
|
1529
|
-
C(!0), await
|
|
1530
|
-
let n = await
|
|
1531
|
-
h(
|
|
1532
|
+
C(!0), await L(e, t);
|
|
1533
|
+
let n = await N(p), r = await P(z(ne.ME));
|
|
1534
|
+
h(F(n)), g(F(H(r, p)));
|
|
1532
1535
|
} catch (e) {
|
|
1533
1536
|
console.error("Error renaming conversation", e);
|
|
1534
1537
|
} finally {
|
|
1535
1538
|
C(!1);
|
|
1536
1539
|
}
|
|
1537
1540
|
}, [
|
|
1538
|
-
|
|
1541
|
+
N,
|
|
1539
1542
|
p,
|
|
1540
|
-
|
|
1543
|
+
P,
|
|
1541
1544
|
h,
|
|
1542
1545
|
g,
|
|
1543
|
-
|
|
1544
|
-
]),
|
|
1545
|
-
|
|
1546
|
-
}, [
|
|
1547
|
-
|
|
1548
|
-
}, [
|
|
1549
|
-
return S ? /* @__PURE__ */
|
|
1546
|
+
L
|
|
1547
|
+
]), W = r((e) => {
|
|
1548
|
+
D(e);
|
|
1549
|
+
}, [D]), G = r(() => {
|
|
1550
|
+
k((e) => !e), D("");
|
|
1551
|
+
}, [k]);
|
|
1552
|
+
return S && !w ? /* @__PURE__ */ j(b, {}) : /* @__PURE__ */ j(Je, {
|
|
1550
1553
|
value: {
|
|
1551
1554
|
locale: p,
|
|
1552
|
-
deleteConversation:
|
|
1553
|
-
renameConversation:
|
|
1555
|
+
deleteConversation: B,
|
|
1556
|
+
renameConversation: V,
|
|
1554
1557
|
getConversation: i.getConversation,
|
|
1555
1558
|
getFileBlob: i.getFileBlob,
|
|
1556
1559
|
shareConversationProps: _
|
|
1557
1560
|
},
|
|
1558
|
-
children: /* @__PURE__ */
|
|
1561
|
+
children: /* @__PURE__ */ M(Y.Provider, {
|
|
1559
1562
|
value: d,
|
|
1560
1563
|
children: [
|
|
1561
|
-
!l && /* @__PURE__ */
|
|
1562
|
-
className: e("flex justify-between items-center pr-6",
|
|
1563
|
-
children: [!
|
|
1564
|
+
!l && /* @__PURE__ */ M("div", {
|
|
1565
|
+
className: e("flex justify-between items-center pr-6", O ? " pt-4 pb-0 sm:pt-10" : " pt-6 pb-2 sm:pt-10"),
|
|
1566
|
+
children: [!O && /* @__PURE__ */ j("h3", {
|
|
1564
1567
|
className: "sm:body-2 text-neutrals-700",
|
|
1565
1568
|
children: d?.titles?.allChats ?? "All Chats"
|
|
1566
|
-
}), /* @__PURE__ */
|
|
1567
|
-
searchQuery:
|
|
1568
|
-
isExpandedSearch:
|
|
1569
|
-
onSearchConversations:
|
|
1570
|
-
toggleSearchField:
|
|
1569
|
+
}), /* @__PURE__ */ j(et, {
|
|
1570
|
+
searchQuery: E,
|
|
1571
|
+
isExpandedSearch: O,
|
|
1572
|
+
onSearchConversations: W,
|
|
1573
|
+
toggleSearchField: G
|
|
1571
1574
|
})]
|
|
1572
1575
|
}),
|
|
1573
|
-
/* @__PURE__ */
|
|
1576
|
+
/* @__PURE__ */ j("div", {
|
|
1574
1577
|
className: "scroll-hidden-container mt-4 flex min-h-0 flex-1 flex-col",
|
|
1575
|
-
children:
|
|
1576
|
-
className: e("flex flex-col pr-4",
|
|
1577
|
-
children: f?.length === 0 && m?.length === 0 ? /* @__PURE__ */
|
|
1578
|
+
children: /* @__PURE__ */ j("div", {
|
|
1579
|
+
className: e("flex flex-col pr-4", R ? "gap-y-1" : "gap-y-6", l && "hidden"),
|
|
1580
|
+
children: f?.length === 0 && m?.length === 0 ? /* @__PURE__ */ j(nt, {}) : R ? /* @__PURE__ */ j(tt, {
|
|
1578
1581
|
conversations: [...m, ...f],
|
|
1579
|
-
searchQuery:
|
|
1582
|
+
searchQuery: E,
|
|
1580
1583
|
selectedConversationId: n,
|
|
1581
1584
|
handleConversationClick: t,
|
|
1582
1585
|
isDisabled: u
|
|
1583
|
-
}) : Object.entries(y).map(([e, r]) => r?.length > 0 && /* @__PURE__ */
|
|
1586
|
+
}) : Object.entries(y).map(([e, r]) => r?.length > 0 && /* @__PURE__ */ j($e, {
|
|
1584
1587
|
isDisabled: u,
|
|
1585
1588
|
groupLabel: e,
|
|
1586
1589
|
groupedConversations: r,
|
|
1587
1590
|
handleConversationClick: t,
|
|
1588
|
-
selectedConversationId: n
|
|
1591
|
+
selectedConversationId: n,
|
|
1592
|
+
isCollapsed: ee.has(e),
|
|
1593
|
+
onToggleCollapse: () => te(e)
|
|
1589
1594
|
}, e))
|
|
1590
1595
|
})
|
|
1591
1596
|
}),
|
|
@@ -1593,7 +1598,7 @@ var Xe = ({ conversation: e, triggerButton: t, isDisabled: n }) => {
|
|
|
1593
1598
|
]
|
|
1594
1599
|
})
|
|
1595
1600
|
});
|
|
1596
|
-
}, it = ({ onCloseModal: e, disableModalDividers: t, signOut: n, isSmallButton: r, locale: i, titles: a }) => /* @__PURE__ */
|
|
1601
|
+
}, it = ({ onCloseModal: e, disableModalDividers: t, signOut: n, isSmallButton: r, locale: i, titles: a }) => /* @__PURE__ */ M(C, {
|
|
1597
1602
|
heading: a?.popupTitle || "Log out?",
|
|
1598
1603
|
portalId: "sign-out",
|
|
1599
1604
|
containerClassName: "sign-out-popup",
|
|
@@ -1601,20 +1606,20 @@ var Xe = ({ conversation: e, triggerButton: t, isDisabled: n }) => {
|
|
|
1601
1606
|
dividers: !t,
|
|
1602
1607
|
onClose: e,
|
|
1603
1608
|
closeButtonTitle: "Cancel",
|
|
1604
|
-
children: [/* @__PURE__ */
|
|
1609
|
+
children: [/* @__PURE__ */ j("div", {
|
|
1605
1610
|
className: "px-6 py-4 sm:px-0",
|
|
1606
1611
|
lang: i,
|
|
1607
1612
|
children: a?.popupText
|
|
1608
|
-
}), /* @__PURE__ */
|
|
1613
|
+
}), /* @__PURE__ */ M("div", {
|
|
1609
1614
|
className: "delete-conversation-popup-footer flex justify-end gap-x-2 px-6 py-3",
|
|
1610
|
-
children: [/* @__PURE__ */
|
|
1615
|
+
children: [/* @__PURE__ */ j(f, {
|
|
1611
1616
|
buttonClassName: "cancel-button",
|
|
1612
1617
|
title: a?.popupCancel || "Cancel",
|
|
1613
1618
|
isSmallButton: r,
|
|
1614
1619
|
onClick: (t) => {
|
|
1615
1620
|
t.stopPropagation(), e();
|
|
1616
1621
|
}
|
|
1617
|
-
}), /* @__PURE__ */
|
|
1622
|
+
}), /* @__PURE__ */ j(f, {
|
|
1618
1623
|
buttonClassName: "text-button-primary",
|
|
1619
1624
|
title: a?.popupApply || "Sign Out",
|
|
1620
1625
|
isSmallButton: r,
|
|
@@ -1630,12 +1635,12 @@ var Xe = ({ conversation: e, triggerButton: t, isDisabled: n }) => {
|
|
|
1630
1635
|
m(!1);
|
|
1631
1636
|
}, []), y = r(() => {
|
|
1632
1637
|
window.open(i || "#", "_blank", "noopener,noreferrer");
|
|
1633
|
-
}, [i]), b = o(() => /* @__PURE__ */
|
|
1638
|
+
}, [i]), b = o(() => /* @__PURE__ */ M("div", {
|
|
1634
1639
|
className: "flex items-center gap-2",
|
|
1635
|
-
children: [/* @__PURE__ */
|
|
1640
|
+
children: [/* @__PURE__ */ j("div", {
|
|
1636
1641
|
className: e("cursor-pointer flex items-center justify-center size-11 rounded-[100px] p-[10px] sm:h-[32px] sm:w-[32px] flex-shrink-0", a?.initialStyles),
|
|
1637
1642
|
children: d
|
|
1638
|
-
}), /* @__PURE__ */
|
|
1643
|
+
}), /* @__PURE__ */ j("p", {
|
|
1639
1644
|
className: e("h3 cursor-pointer overflow-hidden text-ellipsis", a?.userNameStyles),
|
|
1640
1645
|
children: (a?.showShortName ? g : t?.name) ?? t?.email ?? ""
|
|
1641
1646
|
})]
|
|
@@ -1644,47 +1649,47 @@ var Xe = ({ conversation: e, triggerButton: t, isDisabled: n }) => {
|
|
|
1644
1649
|
g,
|
|
1645
1650
|
a,
|
|
1646
1651
|
t
|
|
1647
|
-
]), x = o(() => /* @__PURE__ */
|
|
1652
|
+
]), x = o(() => /* @__PURE__ */ M("div", {
|
|
1648
1653
|
className: e("py-1", a?.dropDownStyles),
|
|
1649
1654
|
children: [
|
|
1650
|
-
a?.settingsIcon && /* @__PURE__ */
|
|
1655
|
+
a?.settingsIcon && /* @__PURE__ */ M("button", {
|
|
1651
1656
|
className: e("p-2 items-center flex gap-1 text-primary fill-primary", a?.dropdownButtonTypographyStyles || "body-1", a?.dropdownButtonStyles),
|
|
1652
1657
|
title: l?.settings,
|
|
1653
|
-
children: [/* @__PURE__ */
|
|
1658
|
+
children: [/* @__PURE__ */ j("span", {
|
|
1654
1659
|
className: "shrink-0",
|
|
1655
1660
|
children: a?.settingsIcon
|
|
1656
|
-
}), /* @__PURE__ */
|
|
1661
|
+
}), /* @__PURE__ */ j("span", {
|
|
1657
1662
|
className: "min-w-0 break-words",
|
|
1658
1663
|
children: l?.settings || "Settings"
|
|
1659
1664
|
})]
|
|
1660
1665
|
}),
|
|
1661
|
-
a?.contactSupportIcon && /* @__PURE__ */
|
|
1666
|
+
a?.contactSupportIcon && /* @__PURE__ */ M("button", {
|
|
1662
1667
|
className: e("p-2 items-center flex gap-1 text-primary fill-primary", a?.dropdownButtonTypographyStyles || "body-1", a?.dropdownButtonStyles),
|
|
1663
1668
|
title: l?.contactSupport,
|
|
1664
1669
|
onClick: y,
|
|
1665
|
-
children: [/* @__PURE__ */
|
|
1670
|
+
children: [/* @__PURE__ */ j("span", {
|
|
1666
1671
|
className: "shrink-0",
|
|
1667
1672
|
children: a?.contactSupportIcon
|
|
1668
|
-
}), /* @__PURE__ */
|
|
1673
|
+
}), /* @__PURE__ */ j("span", {
|
|
1669
1674
|
className: "min-w-0 break-words",
|
|
1670
1675
|
children: l?.contactSupport || "Contact support"
|
|
1671
1676
|
})]
|
|
1672
1677
|
}),
|
|
1673
|
-
/* @__PURE__ */
|
|
1674
|
-
/* @__PURE__ */
|
|
1678
|
+
/* @__PURE__ */ j("div", { className: e("h-0 border-t border-neutrals-600 my-2", a?.showSeparator ? "block" : "hidden") }),
|
|
1679
|
+
/* @__PURE__ */ M("button", {
|
|
1675
1680
|
className: e("p-2 items-center flex gap-1 text-primary fill-primary", a?.dropdownButtonTypographyStyles || "body-1", a?.dropdownButtonStyles),
|
|
1676
1681
|
title: l?.signOut,
|
|
1677
1682
|
onClick: _,
|
|
1678
1683
|
children: [
|
|
1679
|
-
/* @__PURE__ */
|
|
1684
|
+
/* @__PURE__ */ j("span", {
|
|
1680
1685
|
className: "shrink-0",
|
|
1681
1686
|
children: a?.signOutIcon
|
|
1682
1687
|
}),
|
|
1683
|
-
/* @__PURE__ */
|
|
1688
|
+
/* @__PURE__ */ j("span", {
|
|
1684
1689
|
className: "min-w-0 break-words",
|
|
1685
1690
|
children: l?.signOut || "Sign out"
|
|
1686
1691
|
}),
|
|
1687
|
-
f && /* @__PURE__ */
|
|
1692
|
+
f && /* @__PURE__ */ j(it, {
|
|
1688
1693
|
onCloseModal: v,
|
|
1689
1694
|
signOut: () => n?.(),
|
|
1690
1695
|
locale: s,
|
|
@@ -1704,7 +1709,7 @@ var Xe = ({ conversation: e, triggerButton: t, isDisabled: n }) => {
|
|
|
1704
1709
|
s,
|
|
1705
1710
|
n
|
|
1706
1711
|
]);
|
|
1707
|
-
if (t) return /* @__PURE__ */
|
|
1712
|
+
if (t) return /* @__PURE__ */ j(p, {
|
|
1708
1713
|
containerClassName: e("transition-opacity group-hover:opacity-100 shrink w-full", a?.dropdownContainerClassName),
|
|
1709
1714
|
triggerButton: b,
|
|
1710
1715
|
content: x,
|
package/package.json
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/statgpt-conversation-list",
|
|
3
|
-
"version": "0.8.0
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"license": "MIT",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/epam/statgpt-portal-frontend.git",
|
|
8
|
+
"directory": "libs/conversation-list"
|
|
9
|
+
},
|
|
5
10
|
"dependencies": {
|
|
6
|
-
"@epam/statgpt-dial-toolkit": "0.8.0
|
|
7
|
-
"@epam/statgpt-shared-toolkit": "0.8.0
|
|
8
|
-
"@epam/statgpt-ui-components": "0.8.0
|
|
11
|
+
"@epam/statgpt-dial-toolkit": "0.8.0",
|
|
12
|
+
"@epam/statgpt-shared-toolkit": "0.8.0",
|
|
13
|
+
"@epam/statgpt-ui-components": "0.8.0"
|
|
9
14
|
},
|
|
10
15
|
"peerDependencies": {
|
|
11
16
|
"@epam/ai-dial-shared": "^0.43.3",
|