codicent-app-sdk 0.3.117 → 0.3.119
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/dist/cjs/components/MessageItem.d.ts +2 -1
- package/dist/cjs/components/MessageItem.d.ts.map +1 -1
- package/dist/cjs/components/MessageItem.js +1 -1
- package/dist/esm/components/MessageItem.d.ts +2 -1
- package/dist/esm/components/MessageItem.d.ts.map +1 -1
- package/dist/esm/components/MessageItem.js +1 -1
- package/dist/index.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CodicentService } from "../services";
|
|
2
|
-
declare const MessageItem: ({ header, description, timestamp, text, image, tags, id, fileIds, codicentService, busy, onEdit, onShowHtmlPreview, }: {
|
|
2
|
+
declare const MessageItem: ({ header, description, timestamp, text, image, tags, id, fileIds, codicentService, busy, onEdit, onShowHtmlPreview, maxHeightPx, }: {
|
|
3
3
|
id: string;
|
|
4
4
|
header: string;
|
|
5
5
|
description: string;
|
|
@@ -12,6 +12,7 @@ declare const MessageItem: ({ header, description, timestamp, text, image, tags,
|
|
|
12
12
|
onShowHtmlPreview?: (html: string) => void;
|
|
13
13
|
onEdit?: () => void;
|
|
14
14
|
timestamp?: string;
|
|
15
|
+
maxHeightPx?: number;
|
|
15
16
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
16
17
|
export default MessageItem;
|
|
17
18
|
//# sourceMappingURL=MessageItem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageItem.d.ts","sourceRoot":"","sources":["../../../src/components/MessageItem.tsx"],"names":[],"mappings":"AA6BA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA2H9C,QAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"MessageItem.d.ts","sourceRoot":"","sources":["../../../src/components/MessageItem.tsx"],"names":[],"mappings":"AA6BA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA2H9C,QAAA,MAAM,WAAW,uIAcd;IACD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,4CAqRA,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("react-router-dom"),i=require("../services/codicent.js"),s=require("./Markdown.js");require("./Textarea.js"),require("./Button.js"),require("./CompoundButton.js");var o=require("./Text.js");require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js");var n=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var a=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js");var l=require("../hooks/useLocalization.js");require("../hooks/useAppStyles.js");var u=require("./FileThumbnail.js");require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Footer.js"),require("./Page.js"),require("./QrCodeDialog.js");var d=require("../node_modules/@griffel/react/makeStyles.esm.js"),c=require("../node_modules/@fluentui/react-card/lib/components/Card/Card.js"),m=require("../node_modules/@fluentui/react-switch/lib/components/Switch/Switch.js"),g=require("../node_modules/@fluentui/react-icons/lib/icons/chunk-2.js"),p=require("../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js"),h=require("../node_modules/@fluentui/react-card/lib/components/CardHeader/CardHeader.js"),j=require("../node_modules/@fluentui/react-skeleton/lib/components/Skeleton/Skeleton.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("react-router-dom"),i=require("../services/codicent.js"),s=require("./Markdown.js");require("./Textarea.js"),require("./Button.js"),require("./CompoundButton.js");var o=require("./Text.js");require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js");var n=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var a=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js");var l=require("../hooks/useLocalization.js");require("../hooks/useAppStyles.js");var u=require("./FileThumbnail.js");require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Footer.js"),require("./Page.js"),require("./QrCodeDialog.js");var d=require("../node_modules/@griffel/react/makeStyles.esm.js"),c=require("../node_modules/@fluentui/react-card/lib/components/Card/Card.js"),m=require("../node_modules/@fluentui/react-switch/lib/components/Switch/Switch.js"),g=require("../node_modules/@fluentui/react-icons/lib/icons/chunk-2.js"),p=require("../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js"),h=require("../node_modules/@fluentui/react-card/lib/components/CardHeader/CardHeader.js"),j=require("../node_modules/@fluentui/react-skeleton/lib/components/Skeleton/Skeleton.js"),x=require("../node_modules/@fluentui/react-skeleton/lib/components/SkeletonItem/SkeletonItem.js"),f=require("../node_modules/@fluentui/react-text/lib/components/presets/Caption1/Caption1.js"),S=require("../node_modules/@fluentui/tokens/lib/tokens.js"),q=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js");const b=d.makeStyles({iframe:{border:"none",width:"100%",height:"100%"},main:{gap:"36px",display:"flex",flexDirection:"column",flexWrap:"wrap"},card:{minWidth:"300px",maxWidth:"100%",height:"fit-content",marginBottom:"1em",paddingLeft:"1em",maxHeight:"11em",borderRadius:"10px",position:"relative"},expandedCard:{minWidth:"320px",maxWidth:"100%",height:"fit-content",marginBottom:"1em",paddingLeft:"1em",borderRadius:"10px",position:"relative"},text:{margin:"0.5em",whiteSpace:"normal",fontSize:"larger"},caption:{color:S.tokens.colorNeutralForeground3},headerImage:{borderRadius:"4px",maxWidth:"44px",maxHeight:"44px"},rectangle:{margin:0,top:"-5px",left:"-2px",width:"5px",position:"absolute",height:"100%"},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px",margin:"0 -4px",maxWidth:"100%",boxSizing:"border-box","&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:S.tokens.colorNeutralStroke1,borderRadius:"3px"}},htmlButton:{fontSize:"1.5em",cursor:"pointer",marginLeft:"0.5em"},headerButton:{fontSize:"1.5em",cursor:"pointer",marginLeft:"0.5em"},iconButtonRow:{position:"absolute",top:"0.5em",right:"0.5em",display:"flex",alignItems:"center",gap:"0.5em",zIndex:2},content:{overflow:"hidden",transition:"max-height 0.3s ease-out",userSelect:"text"},truncated:{maxHeight:"10em"},header:{display:"flex",flexDirection:"row",gap:"0.5em",alignItems:"center"},todoSwitch:{transform:"scale(0.8)","& .fui-Switch__label":{fontSize:"0.75rem"}}});exports.default=({header:d,description:S,timestamp:k,text:w,image:C,tags:v,id:I,fileIds:_,codicentService:O,busy:E,onEdit:N,onShowHtmlPreview:T,maxHeightPx:y})=>{const A=b(),R=r.useNavigate(),[F,B]=t.useState(!1),[P,H]=t.useState(!1),[L,D]=t.useState("unknown"),[G,M]=t.useState(!1),z=t.useRef(null),V=Object.keys(a.getConfigValue("LOGBOOK_TAG_DEFINITIONS")),K=V.find((e=>v.includes(e)))||(_.length>0?V.find((e=>"file"===e)):void 0),[W,$]=t.useState([]),U=v.includes("todo"),{t:Y}=l.default(),Q=["TYPE","CUSTOMER","CONTACT","SALESPERSON","MESSAGE","COMPANY","PHONE","EMAIL","WEBSITE","INFO","FÖRETAG","ROLE","KONTAKT"],X=[Y("Typ"),Y("Kund"),Y("Kontakt"),Y("Säljare"),Y("Meddelande"),Y("Företag"),Y("Telefon"),Y("E-post"),Y("Hemsida"),Y("Info"),Y("Företag"),Y("Roll"),Y("Kontakt")];t.useEffect((()=>{Promise.all(_.map((e=>O.getFileInfo(e)))).then((e=>{$(e)}))}),[O,$,_]),t.useEffect((()=>{const e=()=>{if(z.current){const e=y??100,t=z.current.scrollHeight>e+(W.length>0?-72:0);H(t)}};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[w,W,y]),t.useEffect((()=>{if(U){(async()=>{try{const e=await O.getTodoStatus(I);D(e)}catch(e){console.error("Error loading todo status:",e),D("unknown")}})()}}),[U,I,O]);const J=()=>B(!F),Z=v.includes("chat")&&(w.includes("#function_result")||w.includes("#finish_reason_function_call")),ee=e=>{const t=e.indexOf("```html");if(-1===t)return e;const r=e.indexOf("```",t+7);if(-1===r)return e.substring(t+7);return e.substring(t+7,r)},te=new n.default(w).data,re=K&&a.getConfigValue("LOGBOOK_TAG_DEFINITIONS")[K].editable,ie=K&&a.getConfigValue("LOGBOOK_TAG_DEFINITIONS")[K].imageSize||void 0;return e.jsxs(c.Card,{className:F?A.expandedCard:A.card,style:{backgroundColor:a.getConfigValue("MESSAGE_HIDE_BAR")?K?a.getConfigValue("LOGBOOK_TAG_DEFINITIONS")[K].color:a.getConfigValue("APP_HEADER_COLOR")||"#eee":"#eee",maxHeight:!F&&y?`${y}px`:void 0},onClick:v.includes("chat")?e=>{v.includes("chat")&&(e&&e.stopPropagation(),R("/chat?id="+I))}:void 0,children:[!a.getConfigValue("MESSAGE_HIDE_BAR")&&e.jsx("div",{className:A.rectangle,style:{backgroundColor:K?a.getConfigValue("LOGBOOK_TAG_DEFINITIONS")[K].color:a.getConfigValue("APP_HEADER_COLOR")||void 0}}),e.jsxs("div",{className:A.iconButtonRow,children:[U&&e.jsx(m.Switch,{className:A.todoSwitch,checked:"done"===L,onChange:(e,t)=>(async e=>{if(!G){M(!0);try{const t=e?"done":"undone";await O.updateTodoStatus(I,t)&&D(t)}catch(e){console.error("Error updating todo status:",e)}finally{M(!1)}}})(t.checked),disabled:G||"unknown"===L,label:Y("done"===L?"Done":"Todo")}),re&&N&&e.jsx(q.Edit20Regular,{className:A.htmlButton,onClick:()=>N()}),T&&!re&&v.includes("html")&&e.jsx(g.FullScreenMaximizeRegular,{className:A.htmlButton,onClick:e=>{e.stopPropagation(),T(ee(w))}}),P&&!v.includes("chat")&&F&&e.jsx(p.ArrowCollapseAllRegular,{className:A.headerButton,onClick:J}),P&&!v.includes("chat")&&!F&&e.jsx(p.ArrowExpandAllRegular,{className:A.headerButton,onClick:J})]}),e.jsx(h.CardHeader,{image:C?e.jsx("img",{className:A.headerImage,src:"app_logo.svg",alt:"User"}):null,header:E?e.jsx(j.Skeleton,{style:{width:"50%"},children:e.jsx(x.SkeletonItem,{})}):e.jsxs("div",{className:A.header,children:[e.jsx(o.Text,{weight:"semibold",children:d}),k&&e.jsx(o.Text,{weight:"regular",children:k})]}),description:e.jsx(f.Caption1,{className:A.caption,children:S})}),e.jsxs("div",{ref:z,className:`${A.content} ${F?"":A.truncated}`,style:{maxHeight:!F&&y?`${y}px`:void 0},children:[W.length>0&&e.jsx("div",{className:A.fileList,children:W.map((t=>e.jsx(u.FileThumbnail,{file:t,thumbnailSize:ie,getImageUrl:i.CodicentService.getImageUrl,onClick:()=>{t.contentType.startsWith("image")?R(`/image?id=${I}&file=${t.id}`):i.CodicentService.downloadFile(t)}},t.id)))}),E?e.jsxs(j.Skeleton,{style:{width:"100%"},children:[e.jsx(x.SkeletonItem,{}),e.jsx(x.SkeletonItem,{}),e.jsx(x.SkeletonItem,{}),e.jsx(x.SkeletonItem,{}),e.jsx(x.SkeletonItem,{})]}):e.jsx("div",{className:A.text,children:v.includes("html")?e.jsx("iframe",{className:A.iframe,title:"html",srcDoc:ee(w),sandbox:"allow-same-origin allow-scripts"}):v.includes("crm")&&0===Object.keys(te).length?e.jsx(s.default,{content:Z?"*"+Y("Tänker")+"...*":te?(()=>{const e=new RegExp(`(${Q.join("|")})\\s*:\\s*`,"gi"),t=w.replace(e,((e,t)=>{const r=Q.indexOf(t.toUpperCase());-1===r&&console.log("Field not found:",t);return`\n**${-1!==r?X[r]:t}:** `}));return t.trim()})():w}):e.jsx(s.default,{content:Z?"*"+Y("Tänker")+"...*":te&&te&&Object.keys(te).length>0?Object.keys(te).map((e=>{const t=Q.indexOf(e.toUpperCase());return`**${-1!==t?X[t]:e}:** ${te[e]}\n`})).join("\n"):w})})]})]})};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CodicentService } from "../services";
|
|
2
|
-
declare const MessageItem: ({ header, description, timestamp, text, image, tags, id, fileIds, codicentService, busy, onEdit, onShowHtmlPreview, }: {
|
|
2
|
+
declare const MessageItem: ({ header, description, timestamp, text, image, tags, id, fileIds, codicentService, busy, onEdit, onShowHtmlPreview, maxHeightPx, }: {
|
|
3
3
|
id: string;
|
|
4
4
|
header: string;
|
|
5
5
|
description: string;
|
|
@@ -12,6 +12,7 @@ declare const MessageItem: ({ header, description, timestamp, text, image, tags,
|
|
|
12
12
|
onShowHtmlPreview?: (html: string) => void;
|
|
13
13
|
onEdit?: () => void;
|
|
14
14
|
timestamp?: string;
|
|
15
|
+
maxHeightPx?: number;
|
|
15
16
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
16
17
|
export default MessageItem;
|
|
17
18
|
//# sourceMappingURL=MessageItem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageItem.d.ts","sourceRoot":"","sources":["../../../src/components/MessageItem.tsx"],"names":[],"mappings":"AA6BA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA2H9C,QAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"MessageItem.d.ts","sourceRoot":"","sources":["../../../src/components/MessageItem.tsx"],"names":[],"mappings":"AA6BA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA2H9C,QAAA,MAAM,WAAW,uIAcd;IACD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,4CAqRA,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as o,useRef as i,useEffect as r}from"react";import{useNavigate as n}from"react-router-dom";import{CodicentService as s}from"../services/codicent.js";import a from"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import{Text as l}from"./Text.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import m from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as d}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import c from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{FileThumbnail as p}from"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import{makeStyles as u}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Card as h}from"../node_modules/@fluentui/react-card/lib/components/Card/Card.js";import{Switch as g}from"../node_modules/@fluentui/react-switch/lib/components/Switch/Switch.js";import{FullScreenMaximizeRegular as f}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-2.js";import{ArrowCollapseAllRegular as j,ArrowExpandAllRegular as
|
|
1
|
+
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as o,useRef as i,useEffect as r}from"react";import{useNavigate as n}from"react-router-dom";import{CodicentService as s}from"../services/codicent.js";import a from"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import{Text as l}from"./Text.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import m from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as d}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import c from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{FileThumbnail as p}from"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import{makeStyles as u}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Card as h}from"../node_modules/@fluentui/react-card/lib/components/Card/Card.js";import{Switch as g}from"../node_modules/@fluentui/react-switch/lib/components/Switch/Switch.js";import{FullScreenMaximizeRegular as f}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-2.js";import{ArrowCollapseAllRegular as j,ArrowExpandAllRegular as x}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js";import{CardHeader as b}from"../node_modules/@fluentui/react-card/lib/components/CardHeader/CardHeader.js";import{Skeleton as w}from"../node_modules/@fluentui/react-skeleton/lib/components/Skeleton/Skeleton.js";import{SkeletonItem as S}from"../node_modules/@fluentui/react-skeleton/lib/components/SkeletonItem/SkeletonItem.js";import{Caption1 as k}from"../node_modules/@fluentui/react-text/lib/components/presets/Caption1/Caption1.js";import{tokens as _}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Edit20Regular as O}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js";const I=u({iframe:{border:"none",width:"100%",height:"100%"},main:{gap:"36px",display:"flex",flexDirection:"column",flexWrap:"wrap"},card:{minWidth:"300px",maxWidth:"100%",height:"fit-content",marginBottom:"1em",paddingLeft:"1em",maxHeight:"11em",borderRadius:"10px",position:"relative"},expandedCard:{minWidth:"320px",maxWidth:"100%",height:"fit-content",marginBottom:"1em",paddingLeft:"1em",borderRadius:"10px",position:"relative"},text:{margin:"0.5em",whiteSpace:"normal",fontSize:"larger"},caption:{color:_.colorNeutralForeground3},headerImage:{borderRadius:"4px",maxWidth:"44px",maxHeight:"44px"},rectangle:{margin:0,top:"-5px",left:"-2px",width:"5px",position:"absolute",height:"100%"},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px",margin:"0 -4px",maxWidth:"100%",boxSizing:"border-box","&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:_.colorNeutralStroke1,borderRadius:"3px"}},htmlButton:{fontSize:"1.5em",cursor:"pointer",marginLeft:"0.5em"},headerButton:{fontSize:"1.5em",cursor:"pointer",marginLeft:"0.5em"},iconButtonRow:{position:"absolute",top:"0.5em",right:"0.5em",display:"flex",alignItems:"center",gap:"0.5em",zIndex:2},content:{overflow:"hidden",transition:"max-height 0.3s ease-out",userSelect:"text"},truncated:{maxHeight:"10em"},header:{display:"flex",flexDirection:"row",gap:"0.5em",alignItems:"center"},todoSwitch:{transform:"scale(0.8)","& .fui-Switch__label":{fontSize:"0.75rem"}}}),C=({header:u,description:_,timestamp:C,text:v,image:E,tags:N,id:T,fileIds:y,codicentService:A,busy:B,onEdit:F,onShowHtmlPreview:L,maxHeightPx:P})=>{const H=I(),R=n(),[D,G]=o(!1),[z,M]=o(!1),[K,W]=o("unknown"),[$,U]=o(!1),Y=i(null),V=Object.keys(d("LOGBOOK_TAG_DEFINITIONS")),Q=V.find((e=>N.includes(e)))||(y.length>0?V.find((e=>"file"===e)):void 0),[X,q]=o([]),J=N.includes("todo"),{t:Z}=c(),ee=["TYPE","CUSTOMER","CONTACT","SALESPERSON","MESSAGE","COMPANY","PHONE","EMAIL","WEBSITE","INFO","FÖRETAG","ROLE","KONTAKT"],te=[Z("Typ"),Z("Kund"),Z("Kontakt"),Z("Säljare"),Z("Meddelande"),Z("Företag"),Z("Telefon"),Z("E-post"),Z("Hemsida"),Z("Info"),Z("Företag"),Z("Roll"),Z("Kontakt")];r((()=>{Promise.all(y.map((e=>A.getFileInfo(e)))).then((e=>{q(e)}))}),[A,q,y]),r((()=>{const e=()=>{if(Y.current){const e=P??100,t=Y.current.scrollHeight>e+(X.length>0?-72:0);M(t)}};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[v,X,P]),r((()=>{if(J){(async()=>{try{const e=await A.getTodoStatus(T);W(e)}catch(e){console.error("Error loading todo status:",e),W("unknown")}})()}}),[J,T,A]);const oe=()=>G(!D),ie=N.includes("chat")&&(v.includes("#function_result")||v.includes("#finish_reason_function_call")),re=e=>{const t=e.indexOf("```html");if(-1===t)return e;const o=e.indexOf("```",t+7);if(-1===o)return e.substring(t+7);return e.substring(t+7,o)},ne=new m(v).data,se=Q&&d("LOGBOOK_TAG_DEFINITIONS")[Q].editable,ae=Q&&d("LOGBOOK_TAG_DEFINITIONS")[Q].imageSize||void 0;return e(h,{className:D?H.expandedCard:H.card,style:{backgroundColor:d("MESSAGE_HIDE_BAR")?Q?d("LOGBOOK_TAG_DEFINITIONS")[Q].color:d("APP_HEADER_COLOR")||"#eee":"#eee",maxHeight:!D&&P?`${P}px`:void 0},onClick:N.includes("chat")?e=>{N.includes("chat")&&(e&&e.stopPropagation(),R("/chat?id="+T))}:void 0,children:[!d("MESSAGE_HIDE_BAR")&&t("div",{className:H.rectangle,style:{backgroundColor:Q?d("LOGBOOK_TAG_DEFINITIONS")[Q].color:d("APP_HEADER_COLOR")||void 0}}),e("div",{className:H.iconButtonRow,children:[J&&t(g,{className:H.todoSwitch,checked:"done"===K,onChange:(e,t)=>(async e=>{if(!$){U(!0);try{const t=e?"done":"undone";await A.updateTodoStatus(T,t)&&W(t)}catch(e){console.error("Error updating todo status:",e)}finally{U(!1)}}})(t.checked),disabled:$||"unknown"===K,label:Z("done"===K?"Done":"Todo")}),se&&F&&t(O,{className:H.htmlButton,onClick:()=>F()}),L&&!se&&N.includes("html")&&t(f,{className:H.htmlButton,onClick:e=>{e.stopPropagation(),L(re(v))}}),z&&!N.includes("chat")&&D&&t(j,{className:H.headerButton,onClick:oe}),z&&!N.includes("chat")&&!D&&t(x,{className:H.headerButton,onClick:oe})]}),t(b,{image:E?t("img",{className:H.headerImage,src:"app_logo.svg",alt:"User"}):null,header:B?t(w,{style:{width:"50%"},children:t(S,{})}):e("div",{className:H.header,children:[t(l,{weight:"semibold",children:u}),C&&t(l,{weight:"regular",children:C})]}),description:t(k,{className:H.caption,children:_})}),e("div",{ref:Y,className:`${H.content} ${D?"":H.truncated}`,style:{maxHeight:!D&&P?`${P}px`:void 0},children:[X.length>0&&t("div",{className:H.fileList,children:X.map((e=>t(p,{file:e,thumbnailSize:ae,getImageUrl:s.getImageUrl,onClick:()=>{e.contentType.startsWith("image")?R(`/image?id=${T}&file=${e.id}`):s.downloadFile(e)}},e.id)))}),B?e(w,{style:{width:"100%"},children:[t(S,{}),t(S,{}),t(S,{}),t(S,{}),t(S,{})]}):t("div",{className:H.text,children:N.includes("html")?t("iframe",{className:H.iframe,title:"html",srcDoc:re(v),sandbox:"allow-same-origin allow-scripts"}):N.includes("crm")&&0===Object.keys(ne).length?t(a,{content:ie?"*"+Z("Tänker")+"...*":ne?(()=>{const e=new RegExp(`(${ee.join("|")})\\s*:\\s*`,"gi");return v.replace(e,((e,t)=>{const o=ee.indexOf(t.toUpperCase());-1===o&&console.log("Field not found:",t);return`\n**${-1!==o?te[o]:t}:** `})).trim()})():v}):t(a,{content:ie?"*"+Z("Tänker")+"...*":ne&&ne&&Object.keys(ne).length>0?Object.keys(ne).map((e=>{const t=ee.indexOf(e.toUpperCase());return`**${-1!==t?te[t]:e}:** ${ne[e]}\n`})).join("\n"):v})})]})]})};export{C as default};
|
package/dist/index.d.ts
CHANGED
|
@@ -869,7 +869,7 @@ declare const Profile: React.FC<{
|
|
|
869
869
|
state: CodicentAppState;
|
|
870
870
|
}>;
|
|
871
871
|
|
|
872
|
-
declare const MessageItem: ({ header, description, timestamp, text, image, tags, id, fileIds, codicentService, busy, onEdit, onShowHtmlPreview, }: {
|
|
872
|
+
declare const MessageItem: ({ header, description, timestamp, text, image, tags, id, fileIds, codicentService, busy, onEdit, onShowHtmlPreview, maxHeightPx, }: {
|
|
873
873
|
id: string;
|
|
874
874
|
header: string;
|
|
875
875
|
description: string;
|
|
@@ -882,6 +882,7 @@ declare const MessageItem: ({ header, description, timestamp, text, image, tags,
|
|
|
882
882
|
onShowHtmlPreview?: (html: string) => void;
|
|
883
883
|
onEdit?: () => void;
|
|
884
884
|
timestamp?: string;
|
|
885
|
+
maxHeightPx?: number;
|
|
885
886
|
}) => react_jsx_runtime.JSX.Element;
|
|
886
887
|
|
|
887
888
|
declare const Content: React.FC<{
|