codicent-app-sdk 0.5.5 → 0.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/cjs/_virtual/index19.js +1 -1
- package/dist/cjs/_virtual/index20.js +1 -1
- package/dist/cjs/_virtual/index4.js +1 -1
- package/dist/cjs/_virtual/index5.js +1 -1
- package/dist/cjs/components/AiInput.js +1 -1
- package/dist/cjs/components/AudioIcon.js +1 -1
- package/dist/cjs/components/ChatInput.js +1 -1
- package/dist/cjs/components/ChatMessage.js +1 -1
- package/dist/cjs/components/CombinedPlaceholderDialog.js +1 -1
- package/dist/cjs/components/Footer.js +1 -1
- package/dist/cjs/components/GenericJsonRenderer.js +1 -1
- package/dist/cjs/components/Header.js +1 -1
- package/dist/cjs/components/HtmlView.js +1 -1
- package/dist/cjs/components/MessageInput.js +1 -1
- package/dist/cjs/components/MessageItem.js +1 -1
- package/dist/cjs/components/Profile.js +1 -1
- package/dist/cjs/components/Prompt.js +1 -1
- package/dist/cjs/components/SnapFooter.js +1 -1
- package/dist/cjs/components/TextHeader.js +1 -1
- package/dist/cjs/components/TypingIndicator.js +1 -1
- package/dist/cjs/components/UploadFile.js +1 -1
- package/dist/cjs/components/UrlProcessor.js +1 -1
- package/dist/cjs/components/VoiceIcon.js +1 -1
- package/dist/cjs/hooks/useAuthState.js +1 -1
- package/dist/cjs/hooks/useChat.js +1 -1
- package/dist/cjs/hooks/useCodicentState.js +1 -1
- package/dist/cjs/hooks/useObserveDataSchemas.js +1 -1
- package/dist/cjs/hooks/useTools.js +1 -1
- package/dist/cjs/hooks/useUserRoles.d.ts +1 -1
- package/dist/cjs/hooks/useUserRoles.d.ts.map +1 -1
- package/dist/cjs/hooks/useUserRoles.js +1 -1
- package/dist/cjs/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.js +1 -1
- package/dist/cjs/node_modules/@fast-csv/format/build/src/index.js +1 -1
- package/dist/cjs/node_modules/@fast-csv/format/build/src/types.js +1 -1
- package/dist/cjs/node_modules/@fast-csv/parse/build/src/index.js +1 -1
- package/dist/cjs/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.js +1 -1
- package/dist/cjs/node_modules/@fast-csv/parse/build/src/types.js +1 -1
- package/dist/cjs/node_modules/concat-map/index.js +1 -1
- package/dist/cjs/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +1 -1
- package/dist/cjs/node_modules/fs.realpath/index.js +1 -1
- package/dist/cjs/node_modules/fs.realpath/old.js +1 -1
- package/dist/cjs/node_modules/glob/common.js +1 -1
- package/dist/cjs/node_modules/glob/glob.js +1 -1
- package/dist/cjs/node_modules/glob/sync.js +1 -1
- package/dist/cjs/node_modules/inflight/inflight.js +1 -1
- package/dist/cjs/node_modules/minimatch/minimatch.js +1 -1
- package/dist/cjs/node_modules/minimatch/node_modules/brace-expansion/index.js +1 -1
- package/dist/cjs/node_modules/react-is/index.js +1 -1
- package/dist/cjs/node_modules/safe-buffer/index.js +1 -1
- package/dist/cjs/node_modules/scheduler/index.js +1 -1
- package/dist/cjs/node_modules/style-to-js/cjs/index.js +1 -1
- package/dist/cjs/node_modules/style-to-object/cjs/index.js +1 -1
- package/dist/cjs/node_modules/unzipper/node_modules/safe-buffer/index.js +1 -1
- package/dist/cjs/node_modules/zip-stream/node_modules/archiver-utils/index.js +1 -1
- package/dist/cjs/pages/AppFrame.js +1 -1
- package/dist/cjs/pages/Chat.js +1 -1
- package/dist/cjs/pages/Compose.js +1 -1
- package/dist/cjs/pages/CrmPage.js +1 -1
- package/dist/cjs/pages/CrmPagePersistent.js +1 -1
- package/dist/cjs/pages/FormAccept.js +1 -1
- package/dist/cjs/pages/FormInvite.js +1 -1
- package/dist/cjs/pages/Home.js +1 -1
- package/dist/cjs/pages/HtmlViewer.js +1 -1
- package/dist/cjs/pages/ImageView.js +1 -1
- package/dist/cjs/pages/ListPage.js +1 -1
- package/dist/cjs/pages/Log.js +1 -1
- package/dist/cjs/pages/Login.js +1 -1
- package/dist/cjs/pages/Menu.js +1 -1
- package/dist/cjs/pages/Purchase.js +1 -1
- package/dist/cjs/pages/Sales.js +1 -1
- package/dist/cjs/pages/Search.js +1 -1
- package/dist/cjs/pages/Snap.js +1 -1
- package/dist/cjs/services/codicent.js +1 -1
- package/dist/cjs/utils/excelExport.js +1 -1
- package/dist/esm/_virtual/_commonjsHelpers.js +1 -1
- package/dist/esm/_virtual/index14.js +1 -1
- package/dist/esm/_virtual/index17.js +1 -1
- package/dist/esm/_virtual/index19.js +1 -1
- package/dist/esm/_virtual/index20.js +1 -1
- package/dist/esm/_virtual/index4.js +1 -1
- package/dist/esm/_virtual/index5.js +1 -1
- package/dist/esm/components/AiInput.js +1 -1
- package/dist/esm/components/AudioIcon.js +1 -1
- package/dist/esm/components/ChatInput.js +1 -1
- package/dist/esm/components/ChatMessage.js +1 -1
- package/dist/esm/components/CombinedPlaceholderDialog.js +1 -1
- package/dist/esm/components/Footer.js +1 -1
- package/dist/esm/components/GenericJsonRenderer.js +1 -1
- package/dist/esm/components/Header.js +1 -1
- package/dist/esm/components/HtmlView.js +1 -1
- package/dist/esm/components/MessageInput.js +1 -1
- package/dist/esm/components/MessageItem.js +1 -1
- package/dist/esm/components/Profile.js +1 -1
- package/dist/esm/components/Prompt.js +1 -1
- package/dist/esm/components/SnapFooter.js +1 -1
- package/dist/esm/components/TextHeader.js +1 -1
- package/dist/esm/components/TypingIndicator.js +1 -1
- package/dist/esm/components/UploadFile.js +1 -1
- package/dist/esm/components/UrlProcessor.js +1 -1
- package/dist/esm/components/VoiceIcon.js +1 -1
- package/dist/esm/hooks/useAuthState.js +1 -1
- package/dist/esm/hooks/useChat.js +1 -1
- package/dist/esm/hooks/useCodicentState.js +1 -1
- package/dist/esm/hooks/useObserveDataSchemas.js +1 -1
- package/dist/esm/hooks/useTools.js +1 -1
- package/dist/esm/hooks/useUserRoles.d.ts +1 -1
- package/dist/esm/hooks/useUserRoles.d.ts.map +1 -1
- package/dist/esm/hooks/useUserRoles.js +1 -1
- package/dist/esm/node_modules/@fast-csv/format/build/src/CsvFormatterStream.js +1 -1
- package/dist/esm/node_modules/@fast-csv/format/build/src/formatter/index.js +1 -1
- package/dist/esm/node_modules/@fast-csv/parse/build/src/CsvParserStream.js +1 -1
- package/dist/esm/node_modules/@fast-csv/parse/build/src/parser/index.js +1 -1
- package/dist/esm/node_modules/@fast-csv/parse/build/src/transforms/index.js +1 -1
- package/dist/esm/node_modules/concat-map/index.js +1 -1
- package/dist/esm/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +1 -1
- package/dist/esm/node_modules/fs.realpath/index.js +1 -1
- package/dist/esm/node_modules/fs.realpath/old.js +1 -1
- package/dist/esm/node_modules/glob/common.js +1 -1
- package/dist/esm/node_modules/glob/glob.js +1 -1
- package/dist/esm/node_modules/glob/sync.js +1 -1
- package/dist/esm/node_modules/inflight/inflight.js +1 -1
- package/dist/esm/node_modules/minimatch/minimatch.js +1 -1
- package/dist/esm/node_modules/minimatch/node_modules/brace-expansion/index.js +1 -1
- package/dist/esm/node_modules/react-is/index.js +1 -1
- package/dist/esm/node_modules/scheduler/index.js +1 -1
- package/dist/esm/node_modules/style-to-js/cjs/index.js +1 -1
- package/dist/esm/node_modules/style-to-object/cjs/index.js +1 -1
- package/dist/esm/node_modules/unzipper/node_modules/safe-buffer/index.js +1 -1
- package/dist/esm/node_modules/zip-stream/node_modules/archiver-utils/index.js +1 -1
- package/dist/esm/pages/AppFrame.js +1 -1
- package/dist/esm/pages/Chat.js +1 -1
- package/dist/esm/pages/Compose.js +1 -1
- package/dist/esm/pages/CrmPage.js +1 -1
- package/dist/esm/pages/CrmPagePersistent.js +1 -1
- package/dist/esm/pages/FormAccept.js +1 -1
- package/dist/esm/pages/FormInvite.js +1 -1
- package/dist/esm/pages/Home.js +1 -1
- package/dist/esm/pages/HtmlViewer.js +1 -1
- package/dist/esm/pages/ImageView.js +1 -1
- package/dist/esm/pages/ListPage.js +1 -1
- package/dist/esm/pages/Log.js +1 -1
- package/dist/esm/pages/Login.js +1 -1
- package/dist/esm/pages/Menu.js +1 -1
- package/dist/esm/pages/Purchase.js +1 -1
- package/dist/esm/pages/Sales.js +1 -1
- package/dist/esm/pages/Search.js +1 -1
- package/dist/esm/pages/Snap.js +1 -1
- package/dist/esm/services/codicent.js +1 -1
- package/dist/esm/utils/excelExport.js +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js");var r=require("@fluentui/react-components");require("../components/Spinner.js");var a=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js");var n=require("@fluentui/react-icons");require("../services/codicent.js");var s=require("../services/dataCache.js"),o=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),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");var i=require("../utils/excelExport.js");require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js");var c=require("react-router-dom");require("./Purchase.js"),require("../components/Content.js");var l=require("../components/Page.js");require("./QrScan.js");var u=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var d=require("../hooks/useUserRoles.js");require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js");var p=require("../components/SearchBox.js");require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js");var m=require("../components/ListView.js"),g=require("../components/RecordModal.js");require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");var h=require("../node_modules/lodash/lodash.js");const f=r.makeStyles({container:{width:"100%",flex:1,maxWidth:"100%",height:"100%",minHeight:0,backgroundColor:"#ffffff",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},touchAction:"pan-y",paddingLeft:"0",paddingRight:"0"},listContainer:{overflow:"hidden",flex:1,minHeight:0,marginTop:"10px"},headerRow:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"10px",flexWrap:"wrap"},buttonGroup:{display:"flex",gap:"8px",flexWrap:"wrap"},addButton:{minWidth:"auto",whiteSpace:"nowrap"},recordsCount:{fontSize:"14px",color:"#666",marginTop:"8px"},backButton:{marginBottom:"10px"},searchBox:{marginTop:"8px"},loadMoreContainer:{display:"flex",justifyContent:"center",padding:"16px 0",borderTop:"1px solid #e0e0e0",marginTop:"4px"}}),j=500,x=({state:x,getColumnDefs:q,filterData:C})=>{const[S,w]=c.useSearchParams(),v=S.get("tag")||"logbook",y=S.get("title")||"",k=S.get("contentTitle"),b="true"===S.get("loadAll"),M="true"===S.get("canAdd"),A="true"===S.get("canEdit"),D="false"!==S.get("canExport"),E=S.get("addUrl")||"",R=S.get("q")||"",[T,_]=t.useState(R),[B,I]=t.useState(R),{service:$}=x,[P,N]=t.useState([]),[L,F]=t.useState(!1),[O,U]=t.useState(!1),[H,W]=t.useState(!1),V=t.useRef(null),z=t.useRef(R),J=t.useRef(""),Q=t.useRef(!0),[G,K]=t.useState(0),[X,Y]=t.useState(null),Z=f(),{t:ee}=u.default(),te=c.useNavigate(),{getCurrentUserName:re}=d.useUserRoles($,x.context.nickname),ae=t.useMemo((()=>(k?[{key:k,title:k,maxWidth:250}]:q?q(v):[]).map((e=>({...e,title:e.title?ee(e.title):void 0})))),[k,v,ee,q]),[ne,se]=t.useState(!1),[oe,ie]=t.useState(null),[ce,le]=t.useState(!1),[ue,de]=t.useState(null),pe=t.useMemo((()=>`listpage_searches_${v}`),[v]),me=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):[]}catch{return[]}},[ge,he]=t.useState((()=>me(pe)));t.useEffect((()=>{he(me(pe))}),[pe]);const fe=t.useCallback((e=>{const t=e.trim();t&&he((e=>{const r=[t,...e.filter((e=>e!==t))].slice(0,20);try{localStorage.setItem(pe,JSON.stringify(r))}catch{}return r}))}),[pe]),je=t.useCallback((e=>{he((t=>{const r=t.filter((t=>t!==e));try{localStorage.setItem(pe,JSON.stringify(r))}catch{}return r}))}),[pe]),xe=t.useMemo((()=>h.lodashExports.debounce((e=>I(e)),500)),[I]);t.useEffect((()=>()=>{xe.cancel()}),[xe]);const qe=t.useCallback((e=>{_(e),xe(e)}),[xe]),Ce=t.useCallback((e=>{fe(e)}),[fe]);t.useEffect((()=>{if(!S.get("q")){const e=S.get(`filter_${v}`);if(e){let t=e;if("%USERNAME%"===t){const e=re();if(!e)return;t=e}_(t),I(t),z.current=t}}}),[v,S,re]),t.useEffect((()=>{const e=S.get("q")||"";e!==z.current&&(_(e),I(e),z.current=e,J.current="")}),[S]),t.useEffect((()=>(V.current&&clearTimeout(V.current),V.current=setTimeout((()=>{if(z.current!==T){const e={title:y,tag:v};k&&(e.contentTitle=k),T&&(e.q=T),b&&(e.loadAll="true"),w(e,{replace:!0}),z.current=T}}),500),()=>{V.current&&clearTimeout(V.current)})),[T,v,y,k,b,w]),t.useEffect((()=>{Q.current=!0;const e=`${v}-${k}-${b}-${G}-${B}`;if(e===J.current)return;J.current=e;const t=k?`${v}-${B}-${k}`:`${v}-${B||"all"}`,r=s.dataCache.get(t);if(!r){if(U(!1),F(!0),k)$.getMessagesFast([v],B).then((e=>{if(!Q.current)return void F(!1);const r=e.map((e=>{const t=new Date(e.createdAt).toLocaleString();return{id:e.id,data:{[k]:new o.default(e.content).content,createdAt:t},fileId:null,fileIds:[],tags:[v],mentions:[$.codicent],createdAt:t}}));s.dataCache.set(t,r),Q.current&&N(r)})).catch(console.warn).finally((()=>F(!1)));else{const e=B||"",r=b||e?void 0:j;$.readDataMessages(v,e,void 0,0,r).then((r=>{s.dataCache.set(t,r),Q.current?(N(r),U(!b&&!e&&r.length===j)):F(!1)})).catch(console.warn).finally((()=>F(!1)))}return()=>{Q.current=!1}}if(N(r),U(!b&&!k&&r.length>=j),!k&&!B&&r.length>0){const e=r.reduce(((e,t)=>t.createdAt>e?t.createdAt:e),r[0].createdAt);$.readDataMessages(v,"",void 0,void 0,void 0,e).then((e=>{Q.current&&N((r=>{const a=new Set(r.map((e=>e.id))),n=e.filter((e=>!a.has(e.id)));if(0===n.length)return r;const o=[...n,...r];return s.dataCache.set(t,o),o}))})).catch(console.warn)}}),[$,v,k,b,B,G]);const Se=t.useMemo((()=>{const e={};S.forEach(((t,r)=>{r.startsWith("filter_")&&(e[r.replace("filter_","")]=t)}));let t=P.map(((e,t)=>({item:e,index:t})));for(const[r,a]of Object.entries(e)){const e=a.replace("%USERNAME%",re()),n=x.context.nickname||"";t=t.filter((({item:t})=>{const a=t.data[r];return null!=a&&(String(a).includes(e)||String(a).includes(n))}))}if(C){const e=C(t.map((({item:e})=>e)),v),r=new Set(e.map((e=>e.id)));t=t.filter((({item:e})=>r.has(e.id)))}return t.map((({item:e,index:t})=>({...e.data,createdAt:e.createdAt,_id:e.id,originalMessageId:e.originalMessageId||e.id,_index:t})))}),[P,S,x.context.nickname,re,C,v]),we=t.useMemo((()=>{const e=(T||"").trim().toLowerCase();if(!e)return Se;const t=ae.filter((e=>!e.hidden)).map((e=>e.key));return Se.filter((r=>{for(const a of t)if(Array.isArray(a))for(const t of a){const a=r[t];if(null!=a&&String(a).toLowerCase().includes(e))return!0}else{const t=r[a];if(null!=t&&String(t).toLowerCase().includes(e))return!0}return!1}))}),[Se,T,ae]),ve=t.useCallback((()=>{s.dataCache.clearPattern(v),J.current="",K((e=>e+1))}),[v]),ye=t.useCallback((async()=>{W(!0);try{const e=await $.readDataMessages(v,"",void 0,P.length,j),t=[...P,...e];N(t),s.dataCache.set(`${v}-all`,t),U(e.length===j)}catch(e){console.warn(e)}finally{W(!1)}}),[P,$,v]),ke=t.useCallback((e=>{Y(e)}),[]),be=()=>{le(!1),de(null)},Me=t.useCallback((async()=>{const e=`${v}_${(new Date).toISOString().split("T")[0]}`.replace(/[/\\:*?"<>|]/g,"_");const t=null!==X?X:we;await i.exportToExcel(t,ae,e,ee)||console.warn("No data to export")}),[X,we,ae,v,ee]),Ae=t.useMemo((()=>null!==X?X.length:we.length),[X,we]);return e.jsx(l.Page,{hideHeader:!0,children:e.jsxs("div",{className:Z.container,children:[e.jsx("div",{className:Z.backButton,children:e.jsx(r.Button,{appearance:"subtle",icon:e.jsx(n.ArrowLeft24Regular,{}),onClick:()=>te(-1),children:ee("Tillbaka")})}),e.jsxs("div",{className:Z.headerRow,children:[e.jsx(a.default,{title:ee(y||"Loggbok")}),e.jsxs("div",{className:Z.buttonGroup,children:[e.jsx(r.Button,{appearance:"subtle",icon:e.jsx(n.ArrowClockwise24Regular,{}),onClick:ve,title:ee("Refresh"),children:ee("Refresh")}),D&&e.jsx(r.Button,{appearance:"subtle",icon:e.jsx(n.ArrowDownload24Regular,{}),onClick:Me,title:ee("Export to Excel"),children:ee("Export to Excel")}),(M||E)&&e.jsx(r.Button,{appearance:"primary",icon:e.jsx(n.Add24Regular,{}),onClick:M?()=>{ie(null),se(!0)}:()=>window.open(E,"_blank"),className:Z.addButton,children:ee("Add Record")})]})]}),e.jsx("div",{className:Z.searchBox,children:e.jsx(p.default,{placeholder:ee("Sök")+"...",value:T,onChange:qe,recentSearches:ge,onCommitSearch:Ce,onRemoveRecentSearch:je})}),!L&&e.jsxs("div",{className:Z.recordsCount,children:[ee("Total"),": ",Ae," ",ee("records"),Ae!==P.length&&` (${ee("filtered from")} ${P.length})`]}),e.jsxs("div",{className:Z.listContainer,children:[L&&e.jsx("p",{children:ee("Söker")+"..."}),!L&&e.jsx(m.default,{data:we,columns:ae,canEdit:A,onEdit:(e,t)=>{const r=P[t];r&&(ie({data:{...r.data},index:t}),se(!0))},onDelete:(e,t)=>{const r=P[t];r&&(de({index:t,id:r.id}),le(!0))},onToggleCheckbox:async(e,t,r,a)=>{const n=P[a];if(n){const e=Array.isArray(t)?t[0]:t,o={...n.data,[e]:String(r)},i=await $.updateDataMessage(n.id,o);N((e=>{const t=[...e];return t[a]={...n,id:i,data:o},t})),s.dataCache.clearPattern(v)}},onEnumChange:async(e,t,r,a)=>{const n=P[a];if(n){const e=Array.isArray(t)?t[0]:t,o={...n.data,[e]:r},i=await $.updateDataMessage(n.id,o);N((e=>{const t=[...e];return t[a]={...n,id:i,data:o},t})),s.dataCache.clearPattern(v)}},onFilteredDataChange:ke})]}),O&&!T.trim()&&e.jsx("div",{className:Z.loadMoreContainer,children:e.jsx(r.Button,{appearance:"primary",size:"medium",onClick:ye,disabled:H,children:H?ee("Laddar..."):ee("Visa fler")+` (${P.length} ${ee("laddade")})`})}),e.jsx(g.RecordModal,{open:ne,onClose:()=>se(!1),onSave:async e=>{if(oe){const t=P[oe.index];if(t){const r={};for(const t in e){const a=e[t];r[t]=null==a?"":String(a)}const a=await $.updateDataMessage(t.id,r);N((e=>{const n=[...e];return n[oe.index]={...t,id:a,data:r},n})),s.dataCache.clearPattern(v)}}else{const t={};for(const r in e){const a=e[r];t[r]=null==a?"":String(a)}const r={id:await $.createDataMessage(v,t),data:t,createdAt:(new Date).toISOString(),fileId:null,fileIds:[],tags:[v],mentions:[$.codicent]};N((e=>[r,...e])),s.dataCache.clearPattern(v)}},columns:ae,initialData:oe?.data}),e.jsx(r.Dialog,{open:ce,onOpenChange:(e,t)=>!t.open&&be(),children:e.jsx(r.DialogSurface,{children:e.jsxs(r.DialogBody,{children:[e.jsx(r.DialogTitle,{children:ee("Confirm Delete")}),e.jsx(r.DialogContent,{children:ee("Are you sure you want to delete this record? This action cannot be undone.")}),e.jsxs(r.DialogActions,{children:[e.jsx(r.Button,{appearance:"secondary",onClick:be,children:ee("Cancel")}),e.jsx(r.Button,{appearance:"primary",onClick:async()=>{if(ue)try{await $.deleteDataMessage(ue.id),N((e=>e.filter(((e,t)=>t!==ue.index)))),s.dataCache.clearPattern(v)}catch(e){console.error("Failed to delete record:",e)}finally{le(!1),de(null)}},children:ee("Delete")})]})]})})})]})})};exports.ListPage=x,exports.default=x;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js");var r=require("@fluentui/react-components");require("../components/Spinner.js");var a=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js");var n=require("@fluentui/react-icons");require("../services/codicent.js");var s=require("../services/dataCache.js"),o=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),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");var i=require("../utils/excelExport.js");require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js");var c=require("react-router-dom");require("./Purchase.js"),require("../components/Content.js");var l=require("../components/Page.js");require("./QrScan.js");var u=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var d=require("../hooks/useUserRoles.js");require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js");var p=require("../components/SearchBox.js");require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js");var m=require("../components/ListView.js"),g=require("../components/RecordModal.js");require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");var h=require("../node_modules/lodash/lodash.js");const f=r.makeStyles({container:{width:"100%",flex:1,maxWidth:"100%",height:"100%",minHeight:0,backgroundColor:"#ffffff",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},touchAction:"pan-y",paddingLeft:"0",paddingRight:"0"},listContainer:{overflow:"hidden",flex:1,minHeight:0,marginTop:"10px"},headerRow:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"10px",flexWrap:"wrap"},buttonGroup:{display:"flex",gap:"8px",flexWrap:"wrap"},addButton:{minWidth:"auto",whiteSpace:"nowrap"},recordsCount:{fontSize:"14px",color:"#666",marginTop:"8px"},backButton:{marginBottom:"10px"},searchBox:{marginTop:"8px"},loadMoreContainer:{display:"flex",justifyContent:"center",padding:"16px 0",borderTop:"1px solid #e0e0e0",marginTop:"4px"}}),j=500,x=({state:x,getColumnDefs:q,filterData:C})=>{const[S,w]=c.useSearchParams(),v=S.get("tag")||"logbook",y=S.get("title")||"",k=S.get("contentTitle"),b="true"===S.get("loadAll"),A="true"===S.get("canAdd"),M="true"===S.get("canEdit"),D="false"!==S.get("canExport"),E=S.get("addUrl")||"",R=S.get("q")||"",[T,_]=t.useState(R),[B,I]=t.useState(R),{service:$}=x,[P,N]=t.useState([]),[L,F]=t.useState(!1),[O,U]=t.useState(!1),[H,W]=t.useState(!1),V=t.useRef(null),z=t.useRef(R),J=t.useRef(""),Q=t.useRef(!0),[G,K]=t.useState(0),[X,Y]=t.useState(null),Z=f(),{t:ee}=u.default(),te=c.useNavigate(),{getCurrentUserName:re}=d.useUserRoles($,x.context.nickname,x.context.selectedApp),ae=t.useMemo((()=>(k?[{key:k,title:k,maxWidth:250}]:q?q(v):[]).map((e=>({...e,title:e.title?ee(e.title):void 0})))),[k,v,ee,q]),[ne,se]=t.useState(!1),[oe,ie]=t.useState(null),[ce,le]=t.useState(!1),[ue,de]=t.useState(null),pe=t.useMemo((()=>`listpage_searches_${v}`),[v]),me=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):[]}catch{return[]}},[ge,he]=t.useState((()=>me(pe)));t.useEffect((()=>{he(me(pe))}),[pe]);const fe=t.useCallback((e=>{const t=e.trim();t&&he((e=>{const r=[t,...e.filter((e=>e!==t))].slice(0,20);try{localStorage.setItem(pe,JSON.stringify(r))}catch{}return r}))}),[pe]),je=t.useCallback((e=>{he((t=>{const r=t.filter((t=>t!==e));try{localStorage.setItem(pe,JSON.stringify(r))}catch{}return r}))}),[pe]),xe=t.useMemo((()=>h.lodashExports.debounce((e=>I(e)),500)),[I]);t.useEffect((()=>()=>{xe.cancel()}),[xe]);const qe=t.useCallback((e=>{_(e),xe(e)}),[xe]),Ce=t.useCallback((e=>{fe(e)}),[fe]);t.useEffect((()=>{if(!S.get("q")){const e=S.get(`filter_${v}`);if(e){let t=e;if("%USERNAME%"===t){const e=re();if(!e)return;t=e}_(t),I(t),z.current=t}}}),[v,S,re]),t.useEffect((()=>{const e=S.get("q")||"";e!==z.current&&(_(e),I(e),z.current=e,J.current="")}),[S]),t.useEffect((()=>(V.current&&clearTimeout(V.current),V.current=setTimeout((()=>{if(z.current!==T){const e={title:y,tag:v};k&&(e.contentTitle=k),T&&(e.q=T),b&&(e.loadAll="true"),w(e,{replace:!0}),z.current=T}}),500),()=>{V.current&&clearTimeout(V.current)})),[T,v,y,k,b,w]),t.useEffect((()=>{Q.current=!0;const e=`${v}-${k}-${b}-${G}-${B}`;if(e===J.current)return;J.current=e;const t=k?`${v}-${B}-${k}`:`${v}-${B||"all"}`,r=s.dataCache.get(t);if(!r){if(U(!1),F(!0),k)$.getMessagesFast([v],B).then((e=>{if(!Q.current)return void F(!1);const r=e.map((e=>{const t=new Date(e.createdAt).toLocaleString();return{id:e.id,data:{[k]:new o.default(e.content).content,createdAt:t},fileId:null,fileIds:[],tags:[v],mentions:[$.codicent],createdAt:t}}));s.dataCache.set(t,r),Q.current&&N(r)})).catch(console.warn).finally((()=>F(!1)));else{const e=B||"",r=b||e?void 0:j;$.readDataMessages(v,e,void 0,0,r).then((r=>{s.dataCache.set(t,r),Q.current?(N(r),U(!b&&!e&&r.length===j)):F(!1)})).catch(console.warn).finally((()=>F(!1)))}return()=>{Q.current=!1}}if(N(r),U(!b&&!k&&r.length>=j),!k&&!B&&r.length>0){const e=r.reduce(((e,t)=>t.createdAt>e?t.createdAt:e),r[0].createdAt);$.readDataMessages(v,"",void 0,void 0,void 0,e).then((e=>{Q.current&&N((r=>{const a=new Set(r.map((e=>e.id))),n=e.filter((e=>!a.has(e.id)));if(0===n.length)return r;const o=[...n,...r];return s.dataCache.set(t,o),o}))})).catch(console.warn)}}),[$,v,k,b,B,G]);const Se=t.useMemo((()=>{const e={};S.forEach(((t,r)=>{r.startsWith("filter_")&&(e[r.replace("filter_","")]=t)}));let t=P.map(((e,t)=>({item:e,index:t})));for(const[r,a]of Object.entries(e)){const e=a.replace("%USERNAME%",re()),n=x.context.nickname||"";t=t.filter((({item:t})=>{const a=t.data[r];return null!=a&&(String(a).includes(e)||String(a).includes(n))}))}if(C){const e=C(t.map((({item:e})=>e)),v),r=new Set(e.map((e=>e.id)));t=t.filter((({item:e})=>r.has(e.id)))}return t.map((({item:e,index:t})=>({...e.data,createdAt:e.createdAt,_id:e.id,originalMessageId:e.originalMessageId||e.id,_index:t})))}),[P,S,x.context.nickname,re,C,v]),we=t.useMemo((()=>{const e=(T||"").trim().toLowerCase();if(!e)return Se;const t=ae.filter((e=>!e.hidden)).map((e=>e.key));return Se.filter((r=>{for(const a of t)if(Array.isArray(a))for(const t of a){const a=r[t];if(null!=a&&String(a).toLowerCase().includes(e))return!0}else{const t=r[a];if(null!=t&&String(t).toLowerCase().includes(e))return!0}return!1}))}),[Se,T,ae]),ve=t.useCallback((()=>{s.dataCache.clearPattern(v),J.current="",K((e=>e+1))}),[v]),ye=t.useCallback((async()=>{W(!0);try{const e=await $.readDataMessages(v,"",void 0,P.length,j),t=[...P,...e];N(t),s.dataCache.set(`${v}-all`,t),U(e.length===j)}catch(e){console.warn(e)}finally{W(!1)}}),[P,$,v]),ke=t.useCallback((e=>{Y(e)}),[]),be=()=>{le(!1),de(null)},Ae=t.useCallback((async()=>{const e=`${v}_${(new Date).toISOString().split("T")[0]}`.replace(/[/\\:*?"<>|]/g,"_");const t=null!==X?X:we;await i.exportToExcel(t,ae,e,ee)||console.warn("No data to export")}),[X,we,ae,v,ee]),Me=t.useMemo((()=>null!==X?X.length:we.length),[X,we]);return e.jsx(l.Page,{hideHeader:!0,children:e.jsxs("div",{className:Z.container,children:[e.jsx("div",{className:Z.backButton,children:e.jsx(r.Button,{appearance:"subtle",icon:e.jsx(n.ArrowLeft24Regular,{}),onClick:()=>te(-1),children:ee("Tillbaka")})}),e.jsxs("div",{className:Z.headerRow,children:[e.jsx(a.default,{title:ee(y||"Loggbok")}),e.jsxs("div",{className:Z.buttonGroup,children:[e.jsx(r.Button,{appearance:"subtle",icon:e.jsx(n.ArrowClockwise24Regular,{}),onClick:ve,title:ee("Refresh"),children:ee("Refresh")}),D&&e.jsx(r.Button,{appearance:"subtle",icon:e.jsx(n.ArrowDownload24Regular,{}),onClick:Ae,title:ee("Export to Excel"),children:ee("Export to Excel")}),(A||E)&&e.jsx(r.Button,{appearance:"primary",icon:e.jsx(n.Add24Regular,{}),onClick:A?()=>{ie(null),se(!0)}:()=>window.open(E,"_blank"),className:Z.addButton,children:ee("Add Record")})]})]}),e.jsx("div",{className:Z.searchBox,children:e.jsx(p.default,{placeholder:ee("Sök")+"...",value:T,onChange:qe,recentSearches:ge,onCommitSearch:Ce,onRemoveRecentSearch:je})}),!L&&e.jsxs("div",{className:Z.recordsCount,children:[ee("Total"),": ",Me," ",ee("records"),Me!==P.length&&` (${ee("filtered from")} ${P.length})`]}),e.jsxs("div",{className:Z.listContainer,children:[L&&e.jsx("p",{children:ee("Söker")+"..."}),!L&&e.jsx(m.default,{data:we,columns:ae,canEdit:M,onEdit:(e,t)=>{const r=P[t];r&&(ie({data:{...r.data},index:t}),se(!0))},onDelete:(e,t)=>{const r=P[t];r&&(de({index:t,id:r.id}),le(!0))},onToggleCheckbox:async(e,t,r,a)=>{const n=P[a];if(n){const e=Array.isArray(t)?t[0]:t,o={...n.data,[e]:String(r)},i=await $.updateDataMessage(n.id,o);N((e=>{const t=[...e];return t[a]={...n,id:i,data:o},t})),s.dataCache.clearPattern(v)}},onEnumChange:async(e,t,r,a)=>{const n=P[a];if(n){const e=Array.isArray(t)?t[0]:t,o={...n.data,[e]:r},i=await $.updateDataMessage(n.id,o);N((e=>{const t=[...e];return t[a]={...n,id:i,data:o},t})),s.dataCache.clearPattern(v)}},onFilteredDataChange:ke})]}),O&&!T.trim()&&e.jsx("div",{className:Z.loadMoreContainer,children:e.jsx(r.Button,{appearance:"primary",size:"medium",onClick:ye,disabled:H,children:H?ee("Laddar..."):ee("Visa fler")+` (${P.length} ${ee("laddade")})`})}),e.jsx(g.RecordModal,{open:ne,onClose:()=>se(!1),onSave:async e=>{if(oe){const t=P[oe.index];if(t){const r={};for(const t in e){const a=e[t];r[t]=null==a?"":String(a)}const a=await $.updateDataMessage(t.id,r);N((e=>{const n=[...e];return n[oe.index]={...t,id:a,data:r},n})),s.dataCache.clearPattern(v)}}else{const t={};for(const r in e){const a=e[r];t[r]=null==a?"":String(a)}const r={id:await $.createDataMessage(v,t),data:t,createdAt:(new Date).toISOString(),fileId:null,fileIds:[],tags:[v],mentions:[$.codicent]};N((e=>[r,...e])),s.dataCache.clearPattern(v)}},columns:ae,initialData:oe?.data}),e.jsx(r.Dialog,{open:ce,onOpenChange:(e,t)=>!t.open&&be(),children:e.jsx(r.DialogSurface,{children:e.jsxs(r.DialogBody,{children:[e.jsx(r.DialogTitle,{children:ee("Confirm Delete")}),e.jsx(r.DialogContent,{children:ee("Are you sure you want to delete this record? This action cannot be undone.")}),e.jsxs(r.DialogActions,{children:[e.jsx(r.Button,{appearance:"secondary",onClick:be,children:ee("Cancel")}),e.jsx(r.Button,{appearance:"primary",onClick:async()=>{if(ue)try{await $.deleteDataMessage(ue.id),N((e=>e.filter(((e,t)=>t!==ue.index)))),s.dataCache.clearPattern(v)}catch(e){console.error("Failed to delete record:",e)}finally{le(!1),de(null)}},children:ee("Delete")})]})]})})})]})})};exports.ListPage=x,exports.default=x;
|
package/dist/cjs/pages/Log.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),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("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),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("exceljs");var o=require("../utils/helpers.js"),s=require("../components/TextHeader.js"),n=require("../components/MessageItem.js"),i=require("../components/Page.js"),a=require("../components/HtmlView.js"),l=require("../components/SearchBox.js"),c=require("../hooks/useLocalization.js"),u=require("../hooks/useStateWithLocalStorage.js"),d=require("@fluentui/react-components"),m=require("react-router-dom");const f=d.makeStyles({container:{width:"100%",flex:1,maxWidth:"800px",height:"100%",backgroundColor:"#ffffff",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},"@media (max-width: 480px)":{},touchAction:"pan-y",paddingLeft:"10px",paddingRight:"10px"},search_results:{overflowY:"auto",height:"calc(100vh - 200px)",marginTop:"10px"}}),g=({state:d,tags:g=["log"],tagDefinitions:p,publicFlowCodicent:h,title:v,messageItemHeight:w})=>{const[x,q]=m.useSearchParams(),[j,S]=t.useState(x.get("q")||""),{service:b}=d,{selectedApp:E}=d.context,[y,I]=u.default(`messages-${E}`,[]),[_,L]=t.useState(!1),T=t.useRef(null),k=t.useRef(null),A=t.useRef(!0),C=f(),R=t.useRef(null),{t:D}=c.default(),F=m.useNavigate(),[H,P]=t.useState(),M=Array.isArray(g)?g:g.split(",").map((e=>e.trim())).filter(Boolean);return t.useEffect((()=>{const e=x.get("q")||"";S(e)}),[x]),t.useEffect((()=>{localStorage.setItem("logbook-last-seen-at",(new Date).toISOString()),localStorage.removeItem("logbook-has-notification"),window.dispatchEvent(new CustomEvent("logbook-notification-changed"))}),[]),t.useEffect((()=>{let e=!0;return T.current&&clearTimeout(T.current),T.current=setTimeout((()=>{void 0!==j?(q(j?{q:j}:{},{replace:!0}),L(!0),b.getMessagesFast(M,void 0,100,h).then((t=>{if(!e)return void L(!1);const r=t.filter((e=>e.content.toLowerCase().includes(j.toLowerCase())));0!==r.length&&0!==y.length&&r[0].id===y[0].id||I(r)})).catch((e=>{console.warn(e)})).finally((()=>L(!1)))):S("")}),500),()=>{e=!1,T.current&&clearTimeout(T.current)}}),[j,b,I,q]),t.useEffect((()=>{const e=k.current;if(!e)return;const t=()=>{requestAnimationFrame((()=>{sessionStorage.setItem("log-scroll-pos-"+E,e.scrollTop.toString())}))};return e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}),[]),t.useEffect((()=>{if(!A.current)return;const e=sessionStorage.getItem("log-scroll-pos-"+E);e&&k.current&&requestAnimationFrame((()=>{k.current&&(k.current.scrollTop=parseInt(e))})),A.current=!1}),[y,E]),t.useEffect((()=>{A.current||k.current&&(k.current.scrollTop=0,sessionStorage.removeItem("log-scroll-pos-"+E))}),[j,E]),t.useEffect((()=>{const e=k.current;if(!e)return;R.current=new ResizeObserver((()=>{const t=sessionStorage.getItem(`log-scroll-pos-${E}`);t&&(e.scrollTop=parseInt(t))}));e.querySelectorAll(".message-item").forEach((e=>{R.current?.observe(e)}));return e.querySelectorAll("img").forEach((t=>{if(!t.complete){const r=e.scrollTop;t.addEventListener("load",(()=>{e.scrollTop=r}),{once:!0})}})),()=>{R.current?.disconnect()}}),[y,E]),t.useEffect((()=>{if(!H)return;const e=()=>{P(void 0)};return window.addEventListener("popstate",e),()=>{window.removeEventListener("popstate",e)}}),[H]),H?e.jsx(a.default,{html:H,onDismiss:()=>P(void 0)}):e.jsx(i.Page,{hideHeader:!0,hideFooter:!!H,children:e.jsxs("div",{className:C.container,children:[e.jsx(s.default,{title:v||D("Loggbok")}),e.jsx(l.default,{placeholder:D("Sök")+"...",value:j,onChange:e=>{S(e)}}),e.jsxs("div",{className:C.search_results,ref:k,children:[_&&e.jsx("p",{children:D("Söker")+"..."}),y.map((t=>{const s=new r.default(t.content);let i=D(p?p[s.tags[0]]?.name||s.tags[0]||(s.files.length>0?p.file?.name:""):s.tags[0]),a=s.content;if(s.tags.includes("chat_title")){i=D(p?.chat_title?.name||"Chatt");try{const e=s.data;a='<a style="color: inherit !important; text-decoration: none !important;" href="./#/chat?id='+e.conversation_id+'">'+e.title+"</a>"}catch(e){console.warn("Failed to parse chat title content:",e)}}return e.jsx(n.default,{id:t.id,header:i,description:"",timestamp:o.getTimeString(new Date(t.createdAt)),timestampTitle:new Date(t.createdAt).toLocaleString(),text:a,tags:s.tags,image:"",fileIds:s.files,codicentService:b,maxHeightPx:w,onEdit:()=>{F(`/new/?text=${encodeURIComponent(t.content)}&parentId=${t.id}`)},onShowHtmlPreview:e=>{window.history.pushState({html:e},"",window.location.href),P(e)}},t.id)}))]})]})})};exports.Log=g,exports.default=g;
|
package/dist/cjs/pages/Login.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),s=require("@fluentui/react-components");require("../services/codicent.js"),require("../components/Markdown.js"),require("../components/Textarea.js");var i=require("../components/Button.js");require("../components/CompoundButton.js");var n=require("../components/Title.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),s=require("@fluentui/react-components");require("../services/codicent.js"),require("../components/Markdown.js"),require("../components/Textarea.js");var i=require("../components/Button.js");require("../components/CompoundButton.js");var n=require("../components/Title.js"),t=require("../components/Text.js");require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var o=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("exceljs"),require("../components/FileThumbnail.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/Content.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/Page.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js");var a=require("../hooks/useLocalization.js");require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("react-router-dom"),require("./Purchase.js"),require("./QrScan.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var u=require("../hooks/useAppStyles.js");const l=s.makeStyles({container:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100vh",backgroundPosition:"calc(50% - 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",gap:"20px",padding:"0 20px"},button:{minWidth:"15rem"},input:{minWidth:"15rem",marginBottom:"10px"},image:{maxHeight:"200px"}});exports.default=({state:c})=>{const{loginWithRedirect:m,loginPasswordless:g}=c.auth,j=l(),p=u.default(),{t:q}=a.default(),[d,h]=r.useState(""),[C,x]=r.useState(!1),_=o.getConfigValue("LOGIN_REDIRECT"),f=o.getConfigValue("AUTH0_PASSWORDLESS_ENABLED");r.useEffect((()=>{_&&m()}),[_]);return _?e.jsxs("div",{className:j.container,style:{backgroundImage:`url(${o.getConfigValue("HOME_BACKGROUND_IMAGE_URL")})`},children:[e.jsx(n.Title,{children:`${q("Välkommen till")} ${o.getConfigValue("INDEX_TITLE")}!`}),e.jsx(t.Text,{size:400,children:q("Omdirigerar till inloggning...")})]}):e.jsxs("div",{className:j.container,style:{backgroundImage:`url(${o.getConfigValue("HOME_BACKGROUND_IMAGE_URL")})`},children:[o.getConfigValue("LOGIN_LOGO_URL")&&e.jsx(s.Image,{src:o.getConfigValue("LOGIN_LOGO_URL"),alt:o.getConfigValue("INDEX_TITLE"),className:j.image}),!o.getConfigValue("LOGIN_HIDE_WELCOME")&&e.jsx(n.Title,{children:`${q("Välkommen till")} ${o.getConfigValue("INDEX_TITLE")}!`}),e.jsx(t.Text,{size:400,children:q(o.getConfigValue("LOGIN_WELCOME_TEXT")||"Logga in, eller registrera ett konto, för att komma igång.")}),f?e.jsxs(e.Fragment,{children:[e.jsx(s.Input,{className:j.input,type:"email",placeholder:q("Ange din e-postadress"),value:d,onChange:e=>h(e.target.value),disabled:C}),e.jsx(i.Button,{className:s.mergeClasses(p.button,j.button),size:"large",appearance:"primary",onClick:async()=>{if(d.trim()){x(!0);try{await g(d)}catch(e){console.error("Passwordless login failed:",e)}finally{x(!1)}}},disabled:!d.trim()||C,children:q(C?"Skickar...":"Skicka inloggningslänk")})]}):e.jsxs(e.Fragment,{children:[e.jsx(i.Button,{className:s.mergeClasses(p.button,j.button),size:"large",appearance:"primary",onClick:()=>m(),children:q("Logga in")}),!o.getConfigValue("HIDE_REGISTER_BUTTON")&&e.jsx(i.Button,{className:s.mergeClasses(p.button,j.button),size:"large",appearance:"primary",onClick:()=>m({authorizationParams:{screen_hint:"signup"}}),children:q("Registrera")})]})]})};
|
package/dist/cjs/pages/Menu.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@fluentui/react-components"),o=require("react-router-dom"),t=require("../components/Markdown.js");require("../components/Textarea.js");var s=require("../components/Button.js");require("../components/CompoundButton.js"),require("../components/Spinner.js");var n=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("react"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),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("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@fluentui/react-components"),o=require("react-router-dom"),t=require("../components/Markdown.js");require("../components/Textarea.js");var s=require("../components/Button.js");require("../components/CompoundButton.js"),require("../components/Spinner.js");var n=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("react"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),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("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("../components/Content.js");var i=require("../components/Page.js");require("./QrScan.js");var a=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var u=require("../hooks/useAppStyles.js");require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js");var c=require("../components/Profile.js");require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js");var l=require("../components/LanguageSelector.js");require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const p=r.makeStyles({container:{backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%",touchAction:"pan-y",margin:"0 auto",maxWidth:"800px"},menu_items:{overflowY:"auto",height:"calc(100vh - 130px)",paddingLeft:"10px",paddingRight:"10px"},divider:{fontSize:"20px",fontWeight:"bold",marginTop:"32px",marginBottom:"20px"},appButton:{margin:"2px"}}),j=({state:j,title:m,aboutText:d,version:g,backgroundImageUrl:q,showHelpButton:h,showLogbookButton:x,stripeCustomerPortal:v,showAppSelector:b=!0})=>{const C=o.useNavigate(),f=u.default(),S=p(),{auth:k}=j,{t:B}=a.default(),w=d?d.replace("{{version}}",(()=>{const e=new Date,r=e.toISOString().split("T")[0],o=e.getHours().toString().padStart(2,"0");return g||`v${r}.${o}`})()):void 0;return e.jsx(i.Page,{hideHeader:!0,children:e.jsxs("div",{className:S.container,style:{backgroundImage:q?`url(${q})`:void 0},children:[e.jsx(n.default,{title:m||B("Meny")}),e.jsxs("div",{className:S.menu_items,children:[e.jsx(c.default,{state:j}),e.jsx(l.LanguageSelector,{}),e.jsx("hr",{}),e.jsx(s.Button,{icon:"ChevronRightFilled",size:"large",className:f.menuButton,onClick:()=>{k.logout(),j.stateMachine.logout()},iconPosition:"after",appearance:"transparent",children:B("Logga ut")}),v&&e.jsx(s.Button,{icon:"Payment24Regular",size:"large",className:f.menuButton,onClick:()=>window.location.href=v,iconPosition:"after",appearance:"transparent",children:B("Abonnemang")}),b&&j.context.apps&&j.context.apps.length>1&&e.jsxs(e.Fragment,{children:[e.jsx("h3",{children:B("Mina codicents")}),j.context.apps.map((o=>e.jsx(s.Button,{className:S.appButton,image:o.logo?e.jsx(r.Image,{src:o.logo,height:"24px"}):void 0,onClick:()=>j.stateMachine.setSelectedApp(o.id),title:o.title||o.id,children:o.title||o.id},o.id)))]}),x&&e.jsxs(e.Fragment,{children:[e.jsx("hr",{}),e.jsx(s.Button,{className:f.menuButton,icon:"ChevronRightFilled",size:"large",appearance:"subtle",iconPosition:"after",onClick:()=>C("/log"),children:B("Loggboken")})]}),e.jsx("hr",{}),w&&e.jsx(t.default,{content:w}),h&&e.jsxs(e.Fragment,{children:[e.jsx("h3",{children:B("Behöver du hjälp?")}),e.jsx(s.Button,{icon:"QuestionCircle24Regular",className:f.button,size:"large",appearance:"subtle",onClick:()=>C("/help"),children:B("Visa hjälp")})]})]})]})})};exports.Menu=j,exports.default=j;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@fluentui/react-components"),s=require("react"),i=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js");var n=require("../components/Button.js");require("../components/CompoundButton.js");var o=require("../components/Title.js"),t=require("../components/Text.js"),a=require("../components/Spinner.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var u=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("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@fluentui/react-components"),s=require("react"),i=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js");var n=require("../components/Button.js");require("../components/CompoundButton.js");var o=require("../components/Title.js"),t=require("../components/Text.js"),a=require("../components/Spinner.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var u=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("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("../components/Content.js"),require("../components/Page.js"),require("./QrScan.js"),require("../hooks/useLocalization.js"),require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const c=r.makeStyles({container:{display:"flex",flexDirection:"column",alignItems:"center",gap:"20px",padding:"20px"},pricing:{padding:"20px",paddingLeft:"30px",border:"1px solid #ccc",borderRadius:"8px",backgroundColor:r.tokens.colorNeutralBackground1}}),l=({state:r})=>{const l=c(),[j,p]=s.useState(!1),{service:d,stateMachine:q}=r,{updateContext:m}=q;s.useEffect((()=>{new URLSearchParams(window.location.search).get("session_id")&&m({hasValidPurchase:void 0})}),[]);return e.jsxs("div",{className:l.container,children:[e.jsx(o.Title,{children:"Starta ditt abonnemang"}),e.jsx("div",{className:l.pricing,children:e.jsxs("ul",{children:[e.jsx("li",{children:e.jsx(t.Text,{size:400,children:"Kreditkort krävs inte"})}),e.jsx("li",{children:e.jsx(t.Text,{size:400,children:"Gratis de 2 första månaderna"})}),e.jsx("li",{children:e.jsx(t.Text,{size:400,children:"Därefter 89 kr/månad"})})]})}),e.jsx(n.Button,{appearance:"primary",onClick:async()=>{try{p(!0),await d.redirectToCheckout(u.getConfigValue("STRIPE_PRICE_ID"))}catch(e){console.error("Purchase error:",e)}finally{p(!1)}},disabled:j,children:j?e.jsx(a.Spinner,{size:"tiny"}):"Starta abonnemang"}),e.jsx("div",{children:e.jsxs(t.Text,{size:400,children:["Har du redan ett abonnemang? Kanske har du loggat in med fel konto. ",e.jsx(i.Link,{to:"/logout",children:"Logga ut"})," och sedan in igen för att komma igång."]})})]})};exports.Purchase=l,exports.default=l;
|
package/dist/cjs/pages/Sales.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),o=require("@fluentui/react-components"),s=require("react-router-dom");require("../components/Markdown.js");var t=require("../components/Textarea.js"),n=require("../components/Button.js");require("../components/CompoundButton.js");var a=require("../components/Text.js");require("../components/Spinner.js");var i=require("../components/Input.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js");var l=require("../components/Dialog.js");require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var c=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("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),o=require("@fluentui/react-components"),s=require("react-router-dom");require("../components/Markdown.js");var t=require("../components/Textarea.js"),n=require("../components/Button.js");require("../components/CompoundButton.js");var a=require("../components/Text.js");require("../components/Spinner.js");var i=require("../components/Input.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js");var l=require("../components/Dialog.js");require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var c=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("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Purchase.js"),require("../components/Content.js");var u=require("../components/Page.js");require("./QrScan.js");var d=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var p=require("../components/QrCodeDialog.js");require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const m=o.makeStyles({root:{display:"flex",flexDirection:"column",height:"100%",touchAction:"pan-y"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",color:o.tokens.colorNeutralForegroundOnBrand,...o.shorthands.padding("10px","20px")},logo:{maxWidth:"100px",maxHeight:"50px",height:"auto",cursor:"pointer"},inputContainer:{display:"flex",justifyContent:"flex-end",alignItems:"center",maxWidth:"300px",width:"200px",paddingLeft:"10px"},dashboard:{display:"flex",justifyContent:"space-around",width:"100%",marginTop:"20px"},statBox:{...o.shorthands.padding("10px"),...o.shorthands.borderRadius("12px"),minWidth:"50px",textAlign:"center",color:"white"},buttonContainer:{display:"flex",flexDirection:"column",height:"100%",justifyContent:"center",gap:"30px",alignItems:"center",...o.shorthands.padding("20px")},actionButton:{width:"14rem",minWidth:"15rem",height:"3rem"},textAreaContainer:{display:"flex",flexDirection:"column",gap:"10px"},opened:{backgroundColor:"#1a5614"},not_home:{backgroundColor:"#f44336"},sales:{backgroundColor:"#2196F3"},call_back:{backgroundColor:"#FF9800"},backButton:{position:"absolute",top:"10px",left:"10px",zIndex:1e3}}),j={opened:"#1a5614",not_home:"#f44336",sales:"#2196F3",call_back:"#FF9800"},g=()=>{const g=m(),{t:h}=d.default(),x=s.useNavigate(),[q,C]=r.useState(""),[f,v]=r.useState(),[k,b]=r.useState({opened:0,not_home:0,sales:0,call_back:0}),[w,_]=r.useState([]),[y,S]=r.useState(!1),[I,D]=r.useState(""),[P,A]=r.useState(""),[B,F]=r.useState(""),[M,N]=r.useState(!1),[$,T]=r.useState(!1),[L,O]=r.useState(!1),H={backgroundColor:c.getConfigValue("APP_HEADER_COLOR")||o.tokens.colorBrandBackground},V=r.useCallback((()=>new Promise((e=>{navigator.geolocation?navigator.geolocation.getCurrentPosition((r=>{const o=`#position (${r.coords.latitude},${r.coords.longitude})`;e(o)})):e(void 0)}))),[v]);r.useEffect((()=>{window.Codicent.getDataMessages({codicent:c.getConfigValue("APP_NAME"),tags:["sales_code"]}).then((e=>{e=e.filter((e=>"1"!==e.data.inactive)),_(e)})).catch(console.error),V()}),[]);const z=async()=>{if(!q)return;const e=["not_home","sales","call_back","opened"],r=new Date;r.setHours(0,0,0,0);const o={...k};for(const s of e){const e=await window.Codicent.getMessages({search:`#${s} #sales_code_${q}`,afterTimestamp:r,length:1e4});o[s]=e.filter((e=>e.content.includes(`#${s} `)&&e.content.includes(`#sales_code_${q}`))).length}b(o)},R=async(e,r="")=>{const o=await V();console.log("Got position",o);const s=`@${c.getConfigValue("APP_NAME")} #sales_code_${q} #${e} ${o||""} ${r.trim().length>0?"#comment ":""}${r}`.trim();await window.Codicent.postMessage({message:s}),z()};return e.jsx(u.Page,{hideHeader:!0,children:e.jsxs("div",{className:g.root,children:[e.jsx("div",{className:g.backButton,children:e.jsx(n.Button,{appearance:"subtle",icon:"ArrowLeft24Regular",onClick:()=>x(-1),children:h("Tillbaka")})}),e.jsxs("div",{className:g.header,style:H,children:[e.jsx(o.Image,{src:P||c.getConfigValue("APP_ICON_URL")||"https://via.placeholder.com/100",className:g.logo,onClick:()=>{P?O(!0):B&&T(!0)}}),e.jsx("div",{className:g.inputContainer,children:e.jsx(i.Input,{value:q,onChange:e=>C(e.target.value),onBlur:()=>{const e=w.find((e=>e.data.code===q));if(e)A(`https://codicent.com/app/GetImage?fileId=${e.fileId}&width=100`),F(e.data.link),N(!0),z();else{const e=w.find((e=>e.data.code2===q.toUpperCase()));e?(A(`https://codicent.com/app/GetImage?fileId=${e.fileIds&&e.fileIds.length>1?e.fileIds[1]:e.fileId}&width=100`),F(e.data.link2),N(!0),z()):(N(!1),alert(h("Fel försäljningskod!")))}},placeholder:h("Fyll i försäljningskod"),maxLength:16,size:"large"})})]}),M&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:g.dashboard,children:Object.keys(k).map((r=>{return e.jsx("div",{className:(s=r,o.mergeClasses(g.statBox,g[s])),children:e.jsx(a.Text,{weight:"bold",size:400,children:k[r]})},r);var s}))}),e.jsx("div",{className:g.buttonContainer,children:Object.entries(j).map((([r,o])=>e.jsx(n.Button,{size:"large",className:g.actionButton,style:{backgroundColor:o,color:"white"},onClick:()=>{R(r),"opened"===r&&S(!0),"sales"===r&&T(!0)},children:r.charAt(0).toUpperCase()+r.slice(1).replace("_"," ")},r)))}),e.jsxs(l.Dialog,{open:y,children:[e.jsx(l.DialogTitle,{children:h("Skriv in avvikelse")}),e.jsx(l.DialogContent,{children:e.jsx("div",{className:g.textAreaContainer,children:e.jsx(t.Textarea,{value:I,onChange:e=>D(e.target.value),placeholder:h("Skriv din text här..."),rows:4,size:"large"})})}),e.jsx(l.DialogActions,{children:e.jsx(n.Button,{appearance:"primary",onClick:()=>{R("anomaly",`\n${I}`),S(!1),D("")},children:h("Spara")})})]}),e.jsxs(l.Dialog,{open:$,children:[e.jsx(l.DialogTitle,{children:h("Godkännande")}),e.jsx(l.DialogContent,{children:h("Är kunden över 23 år?")}),e.jsxs(l.DialogActions,{children:[e.jsx(n.Button,{appearance:"primary",onClick:()=>window.open(B,"_blank"),children:h("OK")}),e.jsx(n.Button,{appearance:"secondary",onClick:()=>T(!1),children:h("Avbryt")})]})]})]}),e.jsx(p.QrCodeDialog,{isOpen:L,onDismiss:()=>O(!1),imageUrl:P})]})})};exports.Sales=g,exports.default=g;
|
package/dist/cjs/pages/Search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("@fluentui/react-components"),o=require("../components/Markdown.js");require("../components/Textarea.js");var s=require("../components/Button.js");require("../components/CompoundButton.js");var n=require("../components/Title.js");require("../components/Spinner.js"),require("../components/TextHeader.js");var i=require("../components/TypingIndicator.js");require("../components/Dialog.js");var a=require("../components/ChatInput.js");require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons");var u=require("../hooks/useStateWithLocalStorage.js"),c=require("../services/codicent.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var l=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("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("react-router-dom"),require("./Purchase.js"),require("../components/Content.js");var p=require("../components/Page.js");require("./QrScan.js");var d=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var m=require("../hooks/useChat.js"),g=require("../hooks/useTemplateVariables.js");require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const j=t.makeStyles({chatContainer:{width:"100%",flex:1,maxWidth:"800px",height:"100%",backgroundColor:"#ffffff",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},"@media (max-width: 480px)":{},backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",overflowY:"auto",marginBottom:"16px"},chatMessages:{display:"flex",flexDirection:"column",flex:1,padding:"16px",overflowY:"auto",touchAction:"pan-y"},inputArea:{display:"flex",flexDirection:"column",justifyContent:"start",alignItems:"center",height:"100%",padding:"0 16px"},promptButtons:{display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"start",alignItems:"center",gap:"8px",marginTop:"8px",marginLeft:"6px",marginRight:"2px",marginBottom:"12px"},answerArea:{width:"100%",marginLeft:"12px",marginRight:"12px",padding:"12px",borderRadius:"16px",marginBottom:"24px"},title:{marginLeft:"12px",padding:"16px"}});exports.default=({state:q})=>{const f=j(),{t:h}=d.default(),{messages:x,isBotTyping:C,handleSend:v,newChat:A}=m.useChat(q.stateMachine),S=r.useRef(null),{service:T}=q;l.getConfigValue("CHAT_BOT_BACKGROUND_COLOR")||t.tokens.colorBrandBackground2;const[w,_]=u.default(q.context.selectedApp+"_searchprompts",["Leta information","Vad kan jag göra?","Sök supportställe"]),[b,k]=r.useState(),[y,N]=r.useState(null),[O,I]=r.useState(!1);g.useTemplateVariables(T.uploadFile);r.useEffect((()=>{C&&I(!0)}),[C]),r.useEffect((()=>{A();const e=l.getConfigValue("APP_CONFIG"),r=l.getConfigValue("APP_BUTTONS");r?e.apps[r].questions&&_(e.apps[r].questions.map((e=>h(e)))):console.error("APP_BUTTONS is not defined in the configuration."),void 0!==l.getConfigValue("ANONYMOUS_CODICENT")&&void 0!==l.getConfigValue("ANONYMOUS_TOKEN")?(T.codicent=l.getConfigValue("ANONYMOUS_CODICENT"),T.setToken(l.getConfigValue("ANONYMOUS_TOKEN"))):console.error("Anonymous Codicent or Token is not defined in the configuration.")}),[A,T,_,h]),r.useEffect((()=>{setTimeout((()=>{S.current?.scrollIntoView({behavior:"smooth"})}),10)}),[x]);const P=e=>{k(e),v(e)};return r.useEffect((()=>{const e=x.filter((e=>"bot"===e.sender));let r=e.length>0?e[e.length-1]:null;N({...r,createdAt:new Date}),r&&I(!1)}),[x]),e.jsx(p.Page,{hideHeader:!0,hideFooter:!0,children:e.jsxs("div",{id:"search-container",className:f.chatContainer,style:{backgroundImage:`url(${l.getConfigValue("CHAT_BACKGROUND_IMAGE_URL")})`},children:[e.jsx("div",{className:f.title,children:e.jsx(n.Title,{children:h(l.getConfigValue("APP_SEARCH_TITLE")||"Frågor")})}),e.jsxs("div",{className:f.inputArea,children:[e.jsx(a.default,{noMemory:!0,defaultText:b,codicent:q.context.selectedApp,disableSend:C,onSend:P,rows:3,getImageUrl:c.CodicentService.getImageUrl,getFileInfo:e=>T.getFileInfo(e),selectAll:!0}),e.jsx("div",{className:f.promptButtons,children:w.length>0&&w.map(((r,t)=>e.jsx(s.Button,{onClick:()=>P(r),size:"large",appearance:"primary",shape:"circular",children:r},`search-prompt-${t}`)))}),O&&e.jsx(i.default,{}),y&&!C&&e.jsxs("div",{className:f.answerArea,children:[e.jsx("div",{ref:S}),e.jsx(o.default,{content:y.content})]})]})]})})};
|
package/dist/cjs/pages/Snap.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("@fluentui/react-components"),o=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js");var s=require("../components/Text.js");require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js");var i=require("../components/CombinedPlaceholderDialog.js");require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),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("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("@fluentui/react-components"),o=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js");var s=require("../components/Text.js");require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js");var i=require("../components/CombinedPlaceholderDialog.js");require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),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("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("../components/Content.js"),require("../components/Page.js"),require("./QrScan.js");var n=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var a=require("../hooks/useTemplateVariables.js");require("../hooks/useAppStyles.js");var u=require("../components/MessageInput.js");require("../components/UploadFile.js");var c=require("../components/SnapFooter.js");require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const l=t.makeStyles({container:{position:"relative",height:"100vh",width:"100vw",overflow:"auto"},flashOverlay:{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"transparent",transition:"background-color 0.2s ease-out",pointerEvents:"none",zIndex:3},video:{position:"absolute",top:0,left:0,width:"100%",height:"100%",objectFit:"cover",zIndex:1},canvas:{display:"none"},bottomControls:{position:"fixed",bottom:"100px",width:"100%",display:"flex",justifyContent:"center",alignItems:"center",zIndex:2,boxSizing:"border-box"},controlContainer:{width:"100%",maxWidth:"600px",position:"relative"},sendButton:{position:"absolute",right:"10px",bottom:"10px",width:"50px",height:"50px",borderRadius:"50%",backgroundColor:"#0078d4",color:"white",border:"none",cursor:"pointer",display:"flex",justifyContent:"center",alignItems:"center"},topControls:{position:"fixed",top:"20px",width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",zIndex:2,padding:"0 10px",boxSizing:"border-box"},backButton:{width:"60px",height:"60px",borderRadius:"50%",backgroundColor:"transparent",color:"white",border:"none",cursor:"pointer"},input:{padding:"5px",width:"200px",fontSize:"larger",backgroundColor:"#fff8"},bottomButtons:{position:"fixed",bottom:"0px",width:"100%",display:"flex",justifyContent:"space-around",alignItems:"center",zIndex:2,boxSizing:"border-box"},iconButton:{width:"60px",height:"60px",borderRadius:"50%",backgroundColor:"transparent",color:"white",border:"none",cursor:"pointer"},centerText:{position:"fixed",top:"30%",left:"50%",transform:"translate(-50%, -50%)",zIndex:2,textAlign:"center"}});exports.default=({state:t,audio:d})=>{const p=l(),{service:m}=t,[h,j]=r.useState(null),[g,q]=r.useState(!0),x=r.useRef(null),f=r.useRef(null),[w]=o.useSearchParams(),v=w.get("extra"),b=w.get("template"),[C,y]=r.useState(""),[S]=r.useState("log"),k=r.useMemo((()=>new Audio("/audio/camera.mp3")),[]),[I,F]=r.useState(!1),M=o.useNavigate(),{t:P}=n.default(),{extractTemplateVariables:T}=a.useTemplateVariables(m.uploadFile),[z,V]=r.useState(T(b||"")),[B,E]=r.useState(z.length>0),[$,_]=r.useState(""),[N,D]=r.useState(100),L=r.useCallback((()=>z.map((e=>`#${e.value}`)).join(" ")),[z]);r.useEffect((()=>{const e=L();_(`${v?" #"+v:""}${e.length>0?" "+e:""}`.trim())}),[z,v,L]),r.useEffect((()=>{if(window.visualViewport){const e=()=>{const e=window.visualViewport?window.innerHeight-window.visualViewport.height:0;D(e>150?e+20:100)};return window.visualViewport.addEventListener("resize",e),e(),()=>{window.visualViewport&&window.visualViewport.removeEventListener("resize",e)}}}),[]);const H=async e=>{try{const r=new FormData;r.append("file",e);const t=await m.uploadFile(e.name,r),o=L(),s=`${S?" #"+S:""}${v?" #"+v:""}${o.length>0?" "+o:""} #photo #file:${t}`;await m.sendMessage(s)}catch(e){alert(P("Failed to send image:")+" "+e)}};return r.useEffect((()=>()=>{h&&h.getTracks().forEach((e=>e.stop()))}),[h]),e.jsxs("div",{className:p.container,children:[e.jsx("div",{className:p.flashOverlay,style:{backgroundColor:I?"#ffffff":"transparent"}}),e.jsx("video",{ref:x,autoPlay:!0,playsInline:!0,className:p.video}),e.jsx("canvas",{ref:f,width:"640",height:"480",className:p.canvas}),!h&&e.jsx(s.Text,{weight:"semibold",size:400,className:p.centerText,children:P("Klicka på Byt kamera för att starta!")}),e.jsx("div",{className:p.bottomControls,style:{bottom:`${N}px`},children:e.jsx("div",{className:p.controlContainer,children:e.jsx(u.default,{onSend:async()=>{if(""===C.trim())return;const e=L(),r=`${S?" #"+S:""}${v?" #"+v:""}${e.length>0?" "+e:""} ${C}`;try{await m.sendMessage(r),y("")}catch(e){alert(P("Failed to send message: ")+e)}},rows:4,onChange:y})})}),e.jsx("div",{className:p.bottomButtons,children:e.jsx(c.default,{audio:d,onHome:()=>M("/"),onTakePhoto:()=>{const e=f.current,r=x.current;if(e&&r){e.width=r.videoWidth,e.height=r.videoHeight;const t=e.getContext("2d");t&&(k.play(),F(!0),setTimeout((()=>F(!1)),100),t.drawImage(r,0,0,e.width,e.height),e.toBlob((e=>{if(e){const r=new File([e],"snapshot.png",{type:"image/png"});H(r)}})))}},onSwichCamera:()=>{q((e=>!e)),(async()=>{h&&h.getTracks().forEach((e=>e.stop()));const e={video:{facingMode:g?"user":"environment"},audio:!1};try{const r=await navigator.mediaDevices.getUserMedia(e);j(r),x.current&&(x.current.srcObject=r,x.current.play())}catch(e){console.error("Error accessing the camera: ",e),e instanceof Error?alert(P("Error accessing the camera:")+" "+e.message):alert(P("Error accessing the camera"))}})()},tag:$})}),e.jsx(i.CombinedPlaceholderDialog,{open:B,templateVariables:z,filePlaceholders:[],onTemplateVariablesChange:V,onFilePlaceholdersChange:()=>{},onConfirm:()=>E(!1),onCancel:()=>{E(!1),M(-1)},uploadFile:m.uploadFile})]})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var t,e=require("../node_modules/@stripe/stripe-js/dist/index.js"),o=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("react/jsx-runtime"),require("react"),require("../_virtual/index.js"),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("../node_modules/exceljs/excel.js");let n="https://codicent.com/",a="https://pubsub.codicent.com/hub",s="-";const i=()=>"undefined"!=typeof window&&void 0!==window.Codicent&&"function"==typeof window.Codicent.init,r=t=>{t&&"string"==typeof t?(n=t.endsWith("/")?t:t+"/",i()&&window.Codicent.init({token:s,baseUrl:n,signalRHost:a})):console.warn("Invalid base URL provided, using default")},c=t=>{t&&"string"==typeof t&&(a=t,i()&&window.Codicent.init({token:s,baseUrl:n,signalRHost:a}))},h=()=>void 0!==window.Codicent&&(window.Codicent.handleMessage=function(t){const e=new CustomEvent("codicent-log",{detail:{message:t}});window.dispatchEvent(e)},window.Codicent.init({token:s,baseUrl:n,signalRHost:a}),!0);let d=h();if(!d){const t=setInterval((()=>{d=h(),d&&clearInterval(t)}),100)}class l{constructor(t){this.createDataMessage=async(t,e,o)=>await window.Codicent.data.create({codicent:o||this.codicent,tag:t,data:e}),this.readDataMessages=async(t,e,o,n,a,s,i,r)=>await window.Codicent.data.read({codicent:o||this.codicent,tag:t,search:e,start:n,length:a,afterTimestamp:s,beforeTimestamp:i,dataFilters:r}),this.readOneDataMessage=async t=>await window.Codicent.data.readOne(t),this.getLeafDataMessage=async(t,e)=>{const o=e||this.codicent;try{const e=await fetch(`${this.options.API_BASE_URL}app/GetLeafMessageByOriginalMessageId?project=${encodeURIComponent(o)}&originalMessageId=${encodeURIComponent(t)}`,{headers:{Authorization:`Bearer ${this.getToken()}`}});if(!e.ok)return null;const n=await e.json();if(!n||!n.content)return null;const a=n.content.indexOf("{");if(-1===a)return null;const s=JSON.parse(n.content.slice(a));return{id:n.id,fileId:n.fileId??null,fileIds:n.fileIds??[],data:s,createdAt:n.createdAt,tags:n.tags??[],mentions:n.mentions??[]}}catch{return null}},this.updateDataMessage=async(t,e,o)=>await window.Codicent.data.update({id:t,data:e,codicent:o||this.codicent}),this.deleteDataMessage=async(t,e)=>await window.Codicent.data.delete({id:t,codicent:e||this.codicent}),this.getSchema=async(t,e)=>{try{const e=await fetch(`${this.options.API_BASE_URL}api/GetSchema/${t}`,{method:"GET",headers:{Authorization:`Bearer ${this.options.APP_LOG_TOKEN}`,"Content-Type":"application/json"}});if(!e.ok){if(404===e.status)return null;throw new Error(`Failed to fetch schema: ${e.statusText}`)}const o=await e.text();return JSON.parse(o)}catch(e){return console.error(`Error fetching schema for tag ${t}:`,e),null}},this.getAppTheme=async()=>{try{const t=await window.Codicent.getDataMessages({tags:["app-theme"],codicent:this.codicent});return t.length>0?t[0].data:null}catch(t){return console.error("Error fetching app theme:",t),null}},this.getAppButtons=async()=>{const t=(await window.Codicent.getDataMessages({tags:[this.options.BUTTON_TAG],codicent:this.codicent})).map((t=>t.data));return t.sort(((t,e)=>t.title>e.title?1:-1)),t},this.getAppTasks=async()=>[...(await window.Codicent.getMessages({search:`@${this.codicent} #app-task`,length:50})).map((t=>{const e=new o.default(t.content).content.split("\n"),n=e[0],a=e.slice(1).join("\n");return{id:t.id,title:n,content:a}})),...(await window.Codicent.getDataMessages({tags:["skill"],codicent:this.codicent})).map((t=>t.data)).filter((t=>t.name&&t.title)).map((t=>({id:t.name,title:t.title,content:t.content||t.description||""})))],this.getAppPrompts=async t=>(await window.Codicent.getDataMessages({tags:["chatprompt"],codicent:t||this.codicent})).map((t=>t.data)).map((({title:t,prompt:e})=>({title:t,prompt:e}))),this.uploadFile=async(t,e)=>await window.Codicent.upload(e,t),this.getFileInfo=async t=>await window.Codicent.getFileInfo(t),this.generateApiToken=async(t,e)=>{const o=await fetch(`${n}api/GenerateApiToken?project=${this.codicent}${t?`&expires=${t.toISOString()}`:""}${e?`&forUserNickname=${e}`:""}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)throw o.status,new Error(`${o.statusText}`);return await o.text()},this.sendMessage=(t,e,o)=>window.Codicent.postMessage({message:`@${o||this.codicent} ${t}`,type:"text",parentId:e}),this.chat=(t,e,o)=>window.Codicent.getChatReply4({message:t,codicent:o||this.codicent,messageId:e}),this.getMessagesFast=async(t,e,o=100,a=void 0,s,i=0)=>{const r=await this.request(`${n}app/AppGetMessages`,"POST",{headers:[["Authorization",`Bearer ${this.getToken()}`],["Content-Type","application/json; charset=utf-8"]],body:JSON.stringify({tags:t,codicent:s||this.codicent,search:e,start:i,length:o})});let c=await r.json();if(c.forEach((t=>{t.createdAt=new Date(Date.parse(t.createdAt))})),a){const t=await this.getPublicFlow(a);c=c.concat(t),c.sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()))}return c},this.getMessages=async(t,e,o=10)=>{let n=[];const a=t.map((async t=>{const e=await window.Codicent.getMessages({search:`@${this.codicent} #${t}`,length:o});return"chat"===t&&e.forEach((t=>t.content=`#chat\n${t.content}`)),e}));if((await Promise.all(a)).forEach((t=>{n=n.concat(t)})),e)try{const t=await this.getPublicFlow(e);n=n.concat(t)}catch(t){console.warn("Error fetching public flow, PUBLIC_TAG missing in codicent?",t)}return n=n.filter(((t,e,o)=>e===o.findIndex((e=>e.id===t.id)))),n.sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime())),n},this.registerUser=async(t,e,o,s)=>{const i=await fetch(`${n}app/RegisterAuth0User`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${s}`]],body:JSON.stringify({nickname:t,email:e,userId:o})});if(!i.ok)return"";const r=await i.text();return window.Codicent.init({token:r,baseUrl:n,signalRHost:a}),r},this.loginUser=async(t,e)=>{try{const o=await fetch(`${n}app/LoginAuth0User`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${e}`]],body:JSON.stringify({userId:t})});if(!o.ok)return 404===o.status||400===o.status?null:401===o.status?(this.handleUnauthorized(),null):"";const a=await o.text();return this.setToken(a),a}catch(t){return console.warn("Error logging in user:",t),""}},this.loginMicrosoftUser=async(t,e)=>{try{const o=await fetch(`${n}app/LoginMicrosoftUser`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${e}`]],body:JSON.stringify({userId:t})});if(!o.ok)return 404===o.status||400===o.status?null:401===o.status?(this.handleUnauthorized(),null):"";const a=await o.text();return this.setToken(a),a}catch(t){return console.warn("Error logging in Microsoft user:",t),""}},this.registerMicrosoftUser=async(t,e,o,a)=>{const s=await fetch(`${n}app/RegisterMicrosoftUser`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${a}`]],body:JSON.stringify({nickname:t,email:e,userId:o})});if(!s.ok)return"";return await s.text()},this.nicknameExists=async t=>{const e=await fetch(`${n}app/NicknameExists?nickname=${encodeURIComponent(t)}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"]]});if(!e.ok)return!1;return await e.json()},this.logout=()=>{this.setToken("")},this.isRegistered=()=>null!==localStorage.getItem("codicent_nickname"),this.getApps=async()=>{try{const t=await fetch(`${n}app/AppGetApps`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});if(!t.ok)throw t.status,new Error(`${t.statusText}`);const e=(await t.json()).filter(((t,e,o)=>e===o.findIndex((e=>e.id===t.id))&&(this.options.APP_NAME||t.id.startsWith(this.options.APP_PREFIX))));return e}catch(t){return console.warn("Error fetching apps:",t),null}},this.addFollower=async(t,e)=>{const o=await fetch(`${n}app/AddFollower?nickname=${t}&followerNickname=${e}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)throw o.status,new Error(`${o.statusText||"Failed to add follower!"}`);return await o.json()},this.cloneProject=async(t,e)=>{const o=await fetch(`${n}app/CloneProject?project=${t}&newProject=${e}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)throw o.status,new Error(`${o.statusText}`);let a=await o.json();if(a){const t='#data #app-theme \n{\n "textcolor": "#212121",\n "backgroundcolor": "#273044",\n "color": "#ffffff",\n "logo": "https://codicent.com/logo512.png",\n "title": "",\n "themeColor": "#581d71",\n "buttonColor": "#c0c0c0",\n "buttonTextColor": "#000000",\n "font": "Montserrat",\n "welcome": "Hej {{username}}!",\n "chatPlaceholder": "Tjena, Loociz här! Vad vill du?",\n "textPlaceholder": "Skriv det du vill spara, så tar jag (Loociz alltså) hand om det!",\n "transcriptionInstructions": "Tryck på knappen för att start och sedan stoppa ljudinspelning."\n}';try{await window.Codicent.postMessage({message:`@${e} ${t}`,type:"text"})||(a=!1)}catch{a=!1}if(a){const t='#data #app-button\n{\n "title": "Ta fram företagsinfo",\n "url": "/#/chat?text=Hej!%20Jag%20vill%20spara%20f%C3%B6retagsinfo.%20Guida%20mig%20steg%20f%C3%B6r%20steg%2C%20ett%20i%20taget%2C%20tills%20vi%20har%20all%20info%20om%20mitt%20f%C3%B6retag.%20Exempel%20p%C3%A5%20data%3A%20f%C3%B6retagsnamn%20eller%20id%C3%A9namn%2C%20org.nr.%2C%20%C3%A4gare%2C%20kontaktinformation%2C%20vision%2C%20aff%C3%A4rsid%C3%A9%2C%20mm."\n}';try{await window.Codicent.postMessage({message:`@${e} ${t}`,type:"text"})||(a=!1)}catch{a=!1}}}return a},this.getNickname=async()=>{try{const t=s.split(".")[1],e=atob(t),o=JSON.parse(e),a=o.sub||o.userId,i=await fetch(`${n}app/GetNickname?userId=${a}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!i.ok)throw 401===i.status?(this.handleUnauthorized(),new Error("Unauthorized")):new Error(`${i.statusText}`);return await i.text()}catch{return""}},this.getChatInstructions=async()=>{try{const t=await window.Codicent.getMessages({search:`@${this.codicent} #instructions`,length:1});if(t.length>0)return t[0].content}catch{console.warn("Error fetching chat instructions")}return""},this.updateChatInstructions=async t=>{try{const e=await window.Codicent.getMessages({search:`@${this.codicent} #instructions`,length:100}),o=`@${this.codicent} #instructions\n${t}`;e.length>0?e[0].content!==o&&(console.log("updating instructions",o),await window.Codicent.postMessage({message:o,type:"text",parentId:e[0].id})):(console.log("new instructions",o),await window.Codicent.postMessage({message:o,type:"text"}))}catch{console.warn("Error updating chat instructions")}},this.getUserInfo=async(t,e=!1)=>{const o=await fetch(`${n}app/GetUserInfo?nickname=${t}${e?"&t="+Date.now():""}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)throw 401===o.status?(this.handleUnauthorized(),new Error("Unauthorized")):new Error(`${o.statusText}`);const a=await o.json(),{email:s,picture:i,description:r,followers:c,properties:h,owner:d}=a;return{nickname:t,email:s,name:r,picture:i,followers:c,properties:h,owner:d}},this.updateUserInfo=async({nickname:t,email:e,name:o,picture:a})=>{const s=await fetch(`${n}app/AddOrUpdateUser`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]],body:JSON.stringify({nickname:t,email:e,name:o,picture:a,description:""})});if(!s.ok)throw s.status,new Error(`${s.statusText}`);return await this.getUserInfo(t,!0)},this.requestInvite=async(t,e)=>{const o=await fetch(`${n}app/CreateInvitationOrRequest?forUserNickname=${t}&toProjectNickname=${e}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});return!!o.ok||(console.warn(`requestInvite() => ${o.statusText}`),!1)},this.getProjectInfo=this.getUserInfo,this.updateMembersAccess=async(t,e)=>{const o=await fetch(`${n}app/AddOrUpdateProjectProperty?project=${t}&key=APP_EDITORS&value=${e.join(",")}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});return!!o.ok||(console.warn(`updateMembersAccess() => ${o.statusText}`),!1)},this.getMembersAccess=async t=>{const e=(await this.getProjectInfo(t,!0)).properties.find((t=>"APP_EDITORS"===t.name));return e&&e.value?e.value.split(","):[]},this.getMemberInfo=async(t,e)=>{const o=await fetch(`${n}app/GetMemberInfo?projectNickname=${encodeURIComponent(t)}&memberNickname=${encodeURIComponent(e)}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)throw 401===o.status?(this.handleUnauthorized(),new Error("Unauthorized")):new Error(`${o.statusText}`);return await o.json()},this.setToken=t=>{s=t,s&&window.Codicent.init({token:s,baseUrl:n,signalRHost:a})},this.getToken=()=>s,this.checkPurchaseStatus=async()=>{const t=await fetch(`${n}payments/GetPaymentStatus`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!t.ok)throw new Error("Failed to check purchase status");const{isPaid:e}=await t.json();return e},this.checkSubscriptionStatus=async()=>{if(!this.options.SUBSCRIPTION_NEEDED)return"active";const t=await fetch(`${n}payments/GetSubscriptionStatus?t=${Date.now()}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`],["Cache-Control","no-cache, no-store, must-revalidate"],["Pragma","no-cache"],["Expires","0"]]});if(!t.ok)throw new Error("Failed to check subscription status");const{status:e}=await t.json();return e},this.createCheckoutSession=async t=>{const e=this.options.STRIPE_SOURCE,o=this.options.STRIPE_TRIAL_PERIOD_DAYS,a={priceId:t,successUrl:window.location.href,cancelUrl:window.location.href};e&&(a.source=e),o&&o>0&&(a.trialPeriodDays=o);const s=await fetch(`${n}payments/CreateCheckoutSession`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]],body:JSON.stringify(a)});if(!s.ok)throw new Error("Failed to create checkout session");const{id:i}=await s.json();return i},this.redirectToCheckout=async t=>{const o=await e.loadStripe(this.options.STRIPE_PUBLIC_KEY);if(!o)throw new Error("Stripe failed to load");const n=await this.createCheckoutSession(t),{error:a}=await o.redirectToCheckout({sessionId:n});if(a)throw new Error(a.message)},this.getChatHistory=async t=>{const e=await fetch(`${n}api/GetMessageHistory?messageId=${t}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});if(!e.ok)throw new Error("Failed to get chat history");let o=await e.json();return o=o.filter((t=>!(t.content.includes("#function_result")||t.content.includes("#finish_reason_function_call")||t.content.includes("#function_results_batch")||t.content.includes("#finish_reason_tool_calls_batch")))),o},this.getPublicFlow=async t=>{const e=await fetch(`${n}app/GetPublicFlow?codicent=${t}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});if(!e.ok)throw new Error("Failed to get public flow");const o=await e.json();return o.forEach((t=>{t.createdAt=new Date(Date.parse(t.createdAt))})),o},this.getMessageContent=async t=>{const e=await fetch(`${n}app/GetMessageContent?id=${t}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(e.ok){const t=await e.json();return{content:t.content,url:t.url}}return{content:"",url:""}},this.logAction=async(t,e)=>{if(!this.options.APP_LOG_CODICENT)return"";const o={content:`@${this.options.APP_LOG_CODICENT} #debug #${e}\n${t}`,type:"text"},a=await fetch(`${n}app/AddChatMessage`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.options.APP_LOG_TOKEN}`]],body:JSON.stringify(o)});if(!a.ok)throw new Error(`${a.statusText||"Failed to post log message!"}`);return(await a.json()).id},this.createApp=async()=>{try{for(let t=0;t<50;t++){const t=Math.floor(99999*Math.random())+1,e=`${this.options.APP_PREFIX}${t}`;if(!await this.nicknameExists(e)){if(await this.cloneProject(this.options.APP_TEMPLATE,e)){if(this.options.ANONYMOUS_TOKEN)try{const t=this.options.ANONYMOUS_TOKEN.split(".")[1],o=atob(t),n=JSON.parse(o).nickname;if(!await this.addFollower(e,n))throw new Error("Failed to add follower: "+n)}catch(t){console.error("Error extracting adding anonymous follower:",t)}return e}}}}catch(t){console.error("Error creating app:",t)}return null},this.findUsername=async()=>{try{for(let t=0;t<50;t++){const t=Math.floor(99999*Math.random())+1,e=`${this.options.USER_PREFIX}${t}`;if(!await this.nicknameExists(e))return e}}catch(t){console.warn("Error finding username:",t)}return null},this.getForms=async()=>{const t=await this.request(`${n}app/GetForms?codicent=${this.codicent}`,"GET",{headers:[["Authorization",`Bearer ${this.getToken()}`]]});return await t.json()},this.getFormById=async t=>{const e=await fetch(`${n}app/GetFormById?id=${t}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});return await e.json()},this.getTodoStatus=async t=>{const e=await fetch(`${n}app/GetTodoStatus?messageId=${t}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});return e.ok?await e.text():(e.status,console.warn(`getTodoStatus() => ${e.statusText}`),"unknown")},this.updateTodoStatus=async(t,e)=>{const o=await fetch(`${n}app/UpdateTodoStatus?messageId=${t}&status=${e}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)return console.warn(`updateTodoStatus() => ${o.statusText}`),!1;return await o.json()},this.codicent="",this.options=t,r(t.API_BASE_URL),t.PUBSUB_URL&&c(t.PUBSUB_URL)}async request(t,e,o={}){const n={};o.headers&&o.headers.forEach((([t,e])=>{n[t]=e}));const a=await fetch(t,{...o,method:e,headers:n});if(!a.ok)throw 401===a.status&&this.handleUnauthorized(),new Error(`${a.statusText}`);return a}handleUnauthorized(){this.onUnauthorized&&this.onUnauthorized()}async getRealtimeSessionToken(t="alloy",e="openai"){const o=`${n}realtime/session?voice=${t}&provider=${e}`,a=await fetch(o,{headers:{Authorization:`Bearer ${this.getToken()}`}});if(!a.ok)throw new Error(`Failed to fetch session token: ${a.statusText}`);const s=await a.json(),i=s.client_secret?.value??s.value;if(!i)throw new Error("No ephemeral key returned from session endpoint");return i}async getRealtimeConfig(t="openai"){try{const e=`${n}realtime/config?provider=${t}`,o=await fetch(e,{method:"GET",headers:{Authorization:`Bearer ${this.getToken()}`}});return o.ok?await o.json():null}catch(t){return console.warn("Failed to fetch realtime config:",t),null}}}t=l,l.getImageUrl=(t,e)=>`${n}app/GetImage?fileId=${t}&width=${e}`,l.getFileUrl=(t,e)=>`${n}app/DownloadFile?fileId=${t}${e?`&extension=${e}`:""}`,l.downloadFile=async e=>{fetch(t.getFileUrl(e.id)).then((t=>{if(t.headers.forEach(((t,e)=>{console.log(`${e}: ${t}`)})),t.ok)return t.blob();throw new Error("Network response was not ok.")})).then((t=>{const o=window.URL.createObjectURL(t),n=document.createElement("a");n.style.display="none",n.href=o,n.download=e.filename,document.body.appendChild(n),n.click(),window.URL.revokeObjectURL(o)})).catch((t=>{console.error("There was a problem with the fetch operation:",t)}))},l.getMiniChatReplyOld=async(t,e="codicent-mini",o)=>{let a={project:e,message:t};o&&(a.messageId=o);const i=await fetch(`${n}app/GetAi2ChatReply`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${s}`]],body:JSON.stringify(a)});if(!i.ok)return void i.status;return(await i.json()).content.replace("@codicent-mini","").trim()},l.getMiniChatReply=async(t,e="codicent-mini",o,a=3e5,i=2e3,r)=>{const c={project:e,message:t};let h;o&&(c.messageId=o),r&&(c.previousResponseId=r);try{const t=await fetch(`${n}app/StartAi2ChatAsync`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${s}`]],body:JSON.stringify(c)});if(!t.ok)return t.status,void console.error(`Failed to start AI chat: ${t.status}`);if(h=(await t.json()).promptMessageId,!h)return void console.error("No promptMessageId returned from server")}catch(t){return void console.error("Error starting AI chat:",t)}const d=Date.now();for(;Date.now()-d<a;)try{const t=await fetch(`${n}app/GetAi2ChatReplyStatus?promptMessageId=${h}`,{method:"GET",headers:[["Authorization",`Bearer ${s}`]]});if(202===t.status){await new Promise((t=>setTimeout(t,i)));continue}if(!t.ok)return void console.error(`Error polling AI chat status: ${t.status}`);const o=await t.json(),a=o.content??o.content??"";return{content:a.replace(`@${e}`,"").replace("@codicent-mini","").trim(),responseId:o.responseId??void 0}}catch(t){return void console.error("Error polling AI chat status:",t)}console.error("Polling timeout reached for AI chat")},l.getTranslations=async(t,e,o="codicent-mini")=>{if(!s||"-"===s)return{translation:t};const a=await fetch(`${n}app/GetTranslations`,{method:"POST",headers:{"Content-Type":"application/json; charset=utf-8",Authorization:`Bearer ${s}`},body:JSON.stringify({project:o,text:t,targetLanguage:e})});if(!a.ok)throw a.status,new Error(`Failed to get translations: ${a.statusText}`);return await a.json()},exports.CodicentService=l,exports.setBaseUrl=r,exports.setSignalRHost=c;
|
|
1
|
+
"use strict";var t,e=require("../node_modules/@stripe/stripe-js/dist/index.js"),o=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("react/jsx-runtime"),require("react"),require("../_virtual/index.js"),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("exceljs");let n="https://codicent.com/",a="https://pubsub.codicent.com/hub",s="-";const i=()=>"undefined"!=typeof window&&void 0!==window.Codicent&&"function"==typeof window.Codicent.init,r=t=>{t&&"string"==typeof t?(n=t.endsWith("/")?t:t+"/",i()&&window.Codicent.init({token:s,baseUrl:n,signalRHost:a})):console.warn("Invalid base URL provided, using default")},c=t=>{t&&"string"==typeof t&&(a=t,i()&&window.Codicent.init({token:s,baseUrl:n,signalRHost:a}))},h=()=>void 0!==window.Codicent&&(window.Codicent.handleMessage=function(t){const e=new CustomEvent("codicent-log",{detail:{message:t}});window.dispatchEvent(e)},window.Codicent.init({token:s,baseUrl:n,signalRHost:a}),!0);let d=h();if(!d){const t=setInterval((()=>{d=h(),d&&clearInterval(t)}),100)}class l{constructor(t){this.createDataMessage=async(t,e,o)=>await window.Codicent.data.create({codicent:o||this.codicent,tag:t,data:e}),this.readDataMessages=async(t,e,o,n,a,s,i,r)=>await window.Codicent.data.read({codicent:o||this.codicent,tag:t,search:e,start:n,length:a,afterTimestamp:s,beforeTimestamp:i,dataFilters:r}),this.readOneDataMessage=async t=>await window.Codicent.data.readOne(t),this.getLeafDataMessage=async(t,e)=>{const o=e||this.codicent;try{const e=await fetch(`${this.options.API_BASE_URL}app/GetLeafMessageByOriginalMessageId?project=${encodeURIComponent(o)}&originalMessageId=${encodeURIComponent(t)}`,{headers:{Authorization:`Bearer ${this.getToken()}`}});if(!e.ok)return null;const n=await e.json();if(!n||!n.content)return null;const a=n.content.indexOf("{");if(-1===a)return null;const s=JSON.parse(n.content.slice(a));return{id:n.id,fileId:n.fileId??null,fileIds:n.fileIds??[],data:s,createdAt:n.createdAt,tags:n.tags??[],mentions:n.mentions??[]}}catch{return null}},this.updateDataMessage=async(t,e,o)=>await window.Codicent.data.update({id:t,data:e,codicent:o||this.codicent}),this.deleteDataMessage=async(t,e)=>await window.Codicent.data.delete({id:t,codicent:e||this.codicent}),this.getSchema=async(t,e)=>{try{const e=await fetch(`${this.options.API_BASE_URL}api/GetSchema/${t}`,{method:"GET",headers:{Authorization:`Bearer ${this.options.APP_LOG_TOKEN}`,"Content-Type":"application/json"}});if(!e.ok){if(404===e.status)return null;throw new Error(`Failed to fetch schema: ${e.statusText}`)}const o=await e.text();return JSON.parse(o)}catch(e){return console.error(`Error fetching schema for tag ${t}:`,e),null}},this.getAppTheme=async()=>{try{const t=await window.Codicent.getDataMessages({tags:["app-theme"],codicent:this.codicent});return t.length>0?t[0].data:null}catch(t){return console.error("Error fetching app theme:",t),null}},this.getAppButtons=async()=>{const t=(await window.Codicent.getDataMessages({tags:[this.options.BUTTON_TAG],codicent:this.codicent})).map((t=>t.data));return t.sort(((t,e)=>t.title>e.title?1:-1)),t},this.getAppTasks=async()=>[...(await window.Codicent.getMessages({search:`@${this.codicent} #app-task`,length:50})).map((t=>{const e=new o.default(t.content).content.split("\n"),n=e[0],a=e.slice(1).join("\n");return{id:t.id,title:n,content:a}})),...(await window.Codicent.getDataMessages({tags:["skill"],codicent:this.codicent})).map((t=>t.data)).filter((t=>t.name&&t.title)).map((t=>({id:t.name,title:t.title,content:t.content||t.description||""})))],this.getAppPrompts=async t=>(await window.Codicent.getDataMessages({tags:["chatprompt"],codicent:t||this.codicent})).map((t=>t.data)).map((({title:t,prompt:e})=>({title:t,prompt:e}))),this.uploadFile=async(t,e)=>await window.Codicent.upload(e,t),this.getFileInfo=async t=>await window.Codicent.getFileInfo(t),this.generateApiToken=async(t,e)=>{const o=await fetch(`${n}api/GenerateApiToken?project=${this.codicent}${t?`&expires=${t.toISOString()}`:""}${e?`&forUserNickname=${e}`:""}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)throw o.status,new Error(`${o.statusText}`);return await o.text()},this.sendMessage=(t,e,o)=>window.Codicent.postMessage({message:`@${o||this.codicent} ${t}`,type:"text",parentId:e}),this.chat=(t,e,o)=>window.Codicent.getChatReply4({message:t,codicent:o||this.codicent,messageId:e}),this.getMessagesFast=async(t,e,o=100,a=void 0,s,i=0)=>{const r=await this.request(`${n}app/AppGetMessages`,"POST",{headers:[["Authorization",`Bearer ${this.getToken()}`],["Content-Type","application/json; charset=utf-8"]],body:JSON.stringify({tags:t,codicent:s||this.codicent,search:e,start:i,length:o})});let c=await r.json();if(c.forEach((t=>{t.createdAt=new Date(Date.parse(t.createdAt))})),a){const t=await this.getPublicFlow(a);c=c.concat(t),c.sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()))}return c},this.getMessages=async(t,e,o=10)=>{let n=[];const a=t.map((async t=>{const e=await window.Codicent.getMessages({search:`@${this.codicent} #${t}`,length:o});return"chat"===t&&e.forEach((t=>t.content=`#chat\n${t.content}`)),e}));if((await Promise.all(a)).forEach((t=>{n=n.concat(t)})),e)try{const t=await this.getPublicFlow(e);n=n.concat(t)}catch(t){console.warn("Error fetching public flow, PUBLIC_TAG missing in codicent?",t)}return n=n.filter(((t,e,o)=>e===o.findIndex((e=>e.id===t.id)))),n.sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime())),n},this.registerUser=async(t,e,o,s)=>{const i=await fetch(`${n}app/RegisterAuth0User`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${s}`]],body:JSON.stringify({nickname:t,email:e,userId:o})});if(!i.ok)return"";const r=await i.text();return window.Codicent.init({token:r,baseUrl:n,signalRHost:a}),r},this.loginUser=async(t,e)=>{try{const o=await fetch(`${n}app/LoginAuth0User`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${e}`]],body:JSON.stringify({userId:t})});if(!o.ok)return 404===o.status||400===o.status?null:401===o.status?(this.handleUnauthorized(),null):"";const a=await o.text();return this.setToken(a),a}catch(t){return console.warn("Error logging in user:",t),""}},this.loginMicrosoftUser=async(t,e)=>{try{const o=await fetch(`${n}app/LoginMicrosoftUser`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${e}`]],body:JSON.stringify({userId:t})});if(!o.ok)return 404===o.status||400===o.status?null:401===o.status?(this.handleUnauthorized(),null):"";const a=await o.text();return this.setToken(a),a}catch(t){return console.warn("Error logging in Microsoft user:",t),""}},this.registerMicrosoftUser=async(t,e,o,a)=>{const s=await fetch(`${n}app/RegisterMicrosoftUser`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${a}`]],body:JSON.stringify({nickname:t,email:e,userId:o})});if(!s.ok)return"";return await s.text()},this.nicknameExists=async t=>{const e=await fetch(`${n}app/NicknameExists?nickname=${encodeURIComponent(t)}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"]]});if(!e.ok)return!1;return await e.json()},this.logout=()=>{this.setToken("")},this.isRegistered=()=>null!==localStorage.getItem("codicent_nickname"),this.getApps=async()=>{try{const t=await fetch(`${n}app/AppGetApps`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});if(!t.ok)throw t.status,new Error(`${t.statusText}`);const e=(await t.json()).filter(((t,e,o)=>e===o.findIndex((e=>e.id===t.id))&&(this.options.APP_NAME||t.id.startsWith(this.options.APP_PREFIX))));return e}catch(t){return console.warn("Error fetching apps:",t),null}},this.addFollower=async(t,e)=>{const o=await fetch(`${n}app/AddFollower?nickname=${t}&followerNickname=${e}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)throw o.status,new Error(`${o.statusText||"Failed to add follower!"}`);return await o.json()},this.cloneProject=async(t,e)=>{const o=await fetch(`${n}app/CloneProject?project=${t}&newProject=${e}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)throw o.status,new Error(`${o.statusText}`);let a=await o.json();if(a){const t='#data #app-theme \n{\n "textcolor": "#212121",\n "backgroundcolor": "#273044",\n "color": "#ffffff",\n "logo": "https://codicent.com/logo512.png",\n "title": "",\n "themeColor": "#581d71",\n "buttonColor": "#c0c0c0",\n "buttonTextColor": "#000000",\n "font": "Montserrat",\n "welcome": "Hej {{username}}!",\n "chatPlaceholder": "Tjena, Loociz här! Vad vill du?",\n "textPlaceholder": "Skriv det du vill spara, så tar jag (Loociz alltså) hand om det!",\n "transcriptionInstructions": "Tryck på knappen för att start och sedan stoppa ljudinspelning."\n}';try{await window.Codicent.postMessage({message:`@${e} ${t}`,type:"text"})||(a=!1)}catch{a=!1}if(a){const t='#data #app-button\n{\n "title": "Ta fram företagsinfo",\n "url": "/#/chat?text=Hej!%20Jag%20vill%20spara%20f%C3%B6retagsinfo.%20Guida%20mig%20steg%20f%C3%B6r%20steg%2C%20ett%20i%20taget%2C%20tills%20vi%20har%20all%20info%20om%20mitt%20f%C3%B6retag.%20Exempel%20p%C3%A5%20data%3A%20f%C3%B6retagsnamn%20eller%20id%C3%A9namn%2C%20org.nr.%2C%20%C3%A4gare%2C%20kontaktinformation%2C%20vision%2C%20aff%C3%A4rsid%C3%A9%2C%20mm."\n}';try{await window.Codicent.postMessage({message:`@${e} ${t}`,type:"text"})||(a=!1)}catch{a=!1}}}return a},this.getNickname=async()=>{try{const t=s.split(".")[1],e=atob(t),o=JSON.parse(e),a=o.sub||o.userId,i=await fetch(`${n}app/GetNickname?userId=${a}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!i.ok)throw 401===i.status?(this.handleUnauthorized(),new Error("Unauthorized")):new Error(`${i.statusText}`);return await i.text()}catch{return""}},this.getChatInstructions=async()=>{try{const t=await window.Codicent.getMessages({search:`@${this.codicent} #instructions`,length:1});if(t.length>0)return t[0].content}catch{console.warn("Error fetching chat instructions")}return""},this.updateChatInstructions=async t=>{try{const e=await window.Codicent.getMessages({search:`@${this.codicent} #instructions`,length:100}),o=`@${this.codicent} #instructions\n${t}`;e.length>0?e[0].content!==o&&(console.log("updating instructions",o),await window.Codicent.postMessage({message:o,type:"text",parentId:e[0].id})):(console.log("new instructions",o),await window.Codicent.postMessage({message:o,type:"text"}))}catch{console.warn("Error updating chat instructions")}},this.getUserInfo=async(t,e=!1)=>{const o=await fetch(`${n}app/GetUserInfo?nickname=${t}${e?"&t="+Date.now():""}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)throw 401===o.status?(this.handleUnauthorized(),new Error("Unauthorized")):new Error(`${o.statusText}`);const a=await o.json(),{email:s,picture:i,description:r,followers:c,properties:h,owner:d}=a;return{nickname:t,email:s,name:r,picture:i,followers:c,properties:h,owner:d}},this.updateUserInfo=async({nickname:t,email:e,name:o,picture:a})=>{const s=await fetch(`${n}app/AddOrUpdateUser`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]],body:JSON.stringify({nickname:t,email:e,name:o,picture:a,description:""})});if(!s.ok)throw s.status,new Error(`${s.statusText}`);return await this.getUserInfo(t,!0)},this.requestInvite=async(t,e)=>{const o=await fetch(`${n}app/CreateInvitationOrRequest?forUserNickname=${t}&toProjectNickname=${e}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});return!!o.ok||(console.warn(`requestInvite() => ${o.statusText}`),!1)},this.getProjectInfo=this.getUserInfo,this.updateMembersAccess=async(t,e)=>{const o=await fetch(`${n}app/AddOrUpdateProjectProperty?project=${t}&key=APP_EDITORS&value=${e.join(",")}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});return!!o.ok||(console.warn(`updateMembersAccess() => ${o.statusText}`),!1)},this.getMembersAccess=async t=>{const e=(await this.getProjectInfo(t,!0)).properties.find((t=>"APP_EDITORS"===t.name));return e&&e.value?e.value.split(","):[]},this.getMemberInfo=async(t,e)=>{const o=await fetch(`${n}app/GetMemberInfo?projectNickname=${encodeURIComponent(t)}&memberNickname=${encodeURIComponent(e)}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)throw 401===o.status?(this.handleUnauthorized(),new Error("Unauthorized")):new Error(`${o.statusText}`);return await o.json()},this.setToken=t=>{s=t,s&&window.Codicent.init({token:s,baseUrl:n,signalRHost:a})},this.getToken=()=>s,this.checkPurchaseStatus=async()=>{const t=await fetch(`${n}payments/GetPaymentStatus`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(!t.ok)throw new Error("Failed to check purchase status");const{isPaid:e}=await t.json();return e},this.checkSubscriptionStatus=async()=>{if(!this.options.SUBSCRIPTION_NEEDED)return"active";const t=await fetch(`${n}payments/GetSubscriptionStatus?t=${Date.now()}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`],["Cache-Control","no-cache, no-store, must-revalidate"],["Pragma","no-cache"],["Expires","0"]]});if(!t.ok)throw new Error("Failed to check subscription status");const{status:e}=await t.json();return e},this.createCheckoutSession=async t=>{const e=this.options.STRIPE_SOURCE,o=this.options.STRIPE_TRIAL_PERIOD_DAYS,a={priceId:t,successUrl:window.location.href,cancelUrl:window.location.href};e&&(a.source=e),o&&o>0&&(a.trialPeriodDays=o);const s=await fetch(`${n}payments/CreateCheckoutSession`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]],body:JSON.stringify(a)});if(!s.ok)throw new Error("Failed to create checkout session");const{id:i}=await s.json();return i},this.redirectToCheckout=async t=>{const o=await e.loadStripe(this.options.STRIPE_PUBLIC_KEY);if(!o)throw new Error("Stripe failed to load");const n=await this.createCheckoutSession(t),{error:a}=await o.redirectToCheckout({sessionId:n});if(a)throw new Error(a.message)},this.getChatHistory=async t=>{const e=await fetch(`${n}api/GetMessageHistory?messageId=${t}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});if(!e.ok)throw new Error("Failed to get chat history");let o=await e.json();return o=o.filter((t=>!(t.content.includes("#function_result")||t.content.includes("#finish_reason_function_call")||t.content.includes("#function_results_batch")||t.content.includes("#finish_reason_tool_calls_batch")))),o},this.getPublicFlow=async t=>{const e=await fetch(`${n}app/GetPublicFlow?codicent=${t}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});if(!e.ok)throw new Error("Failed to get public flow");const o=await e.json();return o.forEach((t=>{t.createdAt=new Date(Date.parse(t.createdAt))})),o},this.getMessageContent=async t=>{const e=await fetch(`${n}app/GetMessageContent?id=${t}`,{method:"GET",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.getToken()}`]]});if(e.ok){const t=await e.json();return{content:t.content,url:t.url}}return{content:"",url:""}},this.logAction=async(t,e)=>{if(!this.options.APP_LOG_CODICENT)return"";const o={content:`@${this.options.APP_LOG_CODICENT} #debug #${e}\n${t}`,type:"text"},a=await fetch(`${n}app/AddChatMessage`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${this.options.APP_LOG_TOKEN}`]],body:JSON.stringify(o)});if(!a.ok)throw new Error(`${a.statusText||"Failed to post log message!"}`);return(await a.json()).id},this.createApp=async()=>{try{for(let t=0;t<50;t++){const t=Math.floor(99999*Math.random())+1,e=`${this.options.APP_PREFIX}${t}`;if(!await this.nicknameExists(e)){if(await this.cloneProject(this.options.APP_TEMPLATE,e)){if(this.options.ANONYMOUS_TOKEN)try{const t=this.options.ANONYMOUS_TOKEN.split(".")[1],o=atob(t),n=JSON.parse(o).nickname;if(!await this.addFollower(e,n))throw new Error("Failed to add follower: "+n)}catch(t){console.error("Error extracting adding anonymous follower:",t)}return e}}}}catch(t){console.error("Error creating app:",t)}return null},this.findUsername=async()=>{try{for(let t=0;t<50;t++){const t=Math.floor(99999*Math.random())+1,e=`${this.options.USER_PREFIX}${t}`;if(!await this.nicknameExists(e))return e}}catch(t){console.warn("Error finding username:",t)}return null},this.getForms=async()=>{const t=await this.request(`${n}app/GetForms?codicent=${this.codicent}`,"GET",{headers:[["Authorization",`Bearer ${this.getToken()}`]]});return await t.json()},this.getFormById=async t=>{const e=await fetch(`${n}app/GetFormById?id=${t}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});return await e.json()},this.getTodoStatus=async t=>{const e=await fetch(`${n}app/GetTodoStatus?messageId=${t}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});return e.ok?await e.text():(e.status,console.warn(`getTodoStatus() => ${e.statusText}`),"unknown")},this.updateTodoStatus=async(t,e)=>{const o=await fetch(`${n}app/UpdateTodoStatus?messageId=${t}&status=${e}`,{method:"GET",headers:[["Authorization",`Bearer ${this.getToken()}`]]});if(!o.ok)return console.warn(`updateTodoStatus() => ${o.statusText}`),!1;return await o.json()},this.codicent="",this.options=t,r(t.API_BASE_URL),t.PUBSUB_URL&&c(t.PUBSUB_URL)}async request(t,e,o={}){const n={};o.headers&&o.headers.forEach((([t,e])=>{n[t]=e}));const a=await fetch(t,{...o,method:e,headers:n});if(!a.ok)throw 401===a.status&&this.handleUnauthorized(),new Error(`${a.statusText}`);return a}handleUnauthorized(){this.onUnauthorized&&this.onUnauthorized()}async getRealtimeSessionToken(t="alloy",e="openai"){const o=`${n}realtime/session?voice=${t}&provider=${e}`,a=await fetch(o,{headers:{Authorization:`Bearer ${this.getToken()}`}});if(!a.ok)throw new Error(`Failed to fetch session token: ${a.statusText}`);const s=await a.json(),i=s.client_secret?.value??s.value;if(!i)throw new Error("No ephemeral key returned from session endpoint");return i}async getRealtimeConfig(t="openai"){try{const e=`${n}realtime/config?provider=${t}`,o=await fetch(e,{method:"GET",headers:{Authorization:`Bearer ${this.getToken()}`}});return o.ok?await o.json():null}catch(t){return console.warn("Failed to fetch realtime config:",t),null}}}t=l,l.getImageUrl=(t,e)=>`${n}app/GetImage?fileId=${t}&width=${e}`,l.getFileUrl=(t,e)=>`${n}app/DownloadFile?fileId=${t}${e?`&extension=${e}`:""}`,l.downloadFile=async e=>{fetch(t.getFileUrl(e.id)).then((t=>{if(t.headers.forEach(((t,e)=>{console.log(`${e}: ${t}`)})),t.ok)return t.blob();throw new Error("Network response was not ok.")})).then((t=>{const o=window.URL.createObjectURL(t),n=document.createElement("a");n.style.display="none",n.href=o,n.download=e.filename,document.body.appendChild(n),n.click(),window.URL.revokeObjectURL(o)})).catch((t=>{console.error("There was a problem with the fetch operation:",t)}))},l.getMiniChatReplyOld=async(t,e="codicent-mini",o)=>{let a={project:e,message:t};o&&(a.messageId=o);const i=await fetch(`${n}app/GetAi2ChatReply`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${s}`]],body:JSON.stringify(a)});if(!i.ok)return void i.status;return(await i.json()).content.replace("@codicent-mini","").trim()},l.getMiniChatReply=async(t,e="codicent-mini",o,a=3e5,i=2e3,r)=>{const c={project:e,message:t};let h;o&&(c.messageId=o),r&&(c.previousResponseId=r);try{const t=await fetch(`${n}app/StartAi2ChatAsync`,{method:"POST",headers:[["Content-Type","application/json; charset=utf-8"],["Authorization",`Bearer ${s}`]],body:JSON.stringify(c)});if(!t.ok)return t.status,void console.error(`Failed to start AI chat: ${t.status}`);if(h=(await t.json()).promptMessageId,!h)return void console.error("No promptMessageId returned from server")}catch(t){return void console.error("Error starting AI chat:",t)}const d=Date.now();for(;Date.now()-d<a;)try{const t=await fetch(`${n}app/GetAi2ChatReplyStatus?promptMessageId=${h}`,{method:"GET",headers:[["Authorization",`Bearer ${s}`]]});if(202===t.status){await new Promise((t=>setTimeout(t,i)));continue}if(!t.ok)return void console.error(`Error polling AI chat status: ${t.status}`);const o=await t.json(),a=o.content??o.content??"";return{content:a.replace(`@${e}`,"").replace("@codicent-mini","").trim(),responseId:o.responseId??void 0}}catch(t){return void console.error("Error polling AI chat status:",t)}console.error("Polling timeout reached for AI chat")},l.getTranslations=async(t,e,o="codicent-mini")=>{if(!s||"-"===s)return{translation:t};const a=await fetch(`${n}app/GetTranslations`,{method:"POST",headers:{"Content-Type":"application/json; charset=utf-8",Authorization:`Bearer ${s}`},body:JSON.stringify({project:o,text:t,targetLanguage:e})});if(!a.ok)throw a.status,new Error(`Failed to get translations: ${a.statusText}`);return await a.json()},exports.CodicentService=l,exports.setBaseUrl=r,exports.setSignalRHost=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("
|
|
1
|
+
"use strict";var e=require("exceljs");exports.exportToExcel=async(t,o,r="export",n)=>{if(!t||0===t.length)return!1;const a=e=>Array.isArray(e)?e[0]:e,l=new e.Workbook,c=l.addWorksheet("Data");c.columns=o.map((e=>{const t=a(e.key);return{header:e.title||t,key:t,width:15}})),t.forEach((e=>{const t={};o.forEach((o=>{const r=a(o.key),l=e[r];null==l?t[r]="":"object"==typeof l?t[r]=JSON.stringify(l):"boolean"==typeof l?t[r]=(e=>n?n(e?"Yes":"No"):e?"Yes":"No")(l):l instanceof Date?t[r]=l.toISOString():t[r]=l})),c.addRow(t)}));c.columns.forEach((e=>{if(!e.eachCell)return;let t=e.header?e.header.length:10;e.eachCell({includeEmpty:!0},(e=>{t=Math.max(t,e.value?String(e.value).length:0)})),e.width=Math.min(t+2,50)})),c.getRow(1).font={bold:!0},c.getRow(1).fill={type:"pattern",pattern:"solid",fgColor:{argb:"FFD3D3D3"}};const d=await l.xlsx.writeBuffer(),i=new Blob([d],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),s=window.URL.createObjectURL(i),h=document.createElement("a");return h.href=s,h.download=`${r}.xlsx`,document.body.appendChild(h),h.click(),document.body.removeChild(h),window.URL.revokeObjectURL(s),!0};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function
|
|
1
|
+
var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function o(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}export{e as commonjsGlobal,o as getDefaultExportFromCjs};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var e={exports:{}};export{e as __module};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var r={};export{r as __exports};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{getAugmentedNamespace as e}from"./_commonjsHelpers.js";import*as o from"../node_modules/exceljs/node_modules/uuid/dist/esm-browser/index.js";var s=e(o);export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
var e={exports:{}};export{e as __module};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var e={exports:{}};export{e as __module};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var e={exports:{}};export{e as __module};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as o,jsx as e,Fragment as t}from"react/jsx-runtime";import{useState as i,useEffect as r}from"react";import{makeStyles as s,useId as a,Combobox as p,Option as m}from"@fluentui/react-components";import"./Markdown.js";import"./Textarea.js";import{Button as n}from"./Button.js";import"./CompoundButton.js";import{Text as l}from"./Text.js";import{Spinner as c}from"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import j from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../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"exceljs";import"../pages/AppFrame.js";import"../pages/Canvas.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Menu.js";import"../pages/Log.js";import"../pages/Login.js";import"../pages/Home.js";import"../pages/ListPage.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"react-router-dom";import"../pages/Purchase.js";import"./Content.js";import"./Page.js";import"../pages/QrScan.js";import d from"../hooks/useLocalization.js";import"./FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";const g=s({root:{display:"grid",gridTemplateRows:"repeat(1fr)",justifyItems:"start",gap:"2px",maxWidth:"400px",padding:"8px"},combo:{width:"100%"},horizonal:{display:"flex",flexDirection:"row",verticalAlign:"middle"}}),u=s=>{const{id:u,options:f,title:h,placeholder:x,onChangeValue:w,value:v="",prompt:C,service:b}=s,y=a(u+"-combo"),[S,k]=i([...f||[]]),[L,M]=i(),[P,T]=i(!1),z=g(),{t:_}=d();r((()=>{w(L)}),[L,w]);return o("div",{id:u,className:z.root,children:[o("div",{className:z.horizonal,children:[e(l,{size:400,id:y,children:h}),C&&o(t,{children:[!P&&e(n,{icon:"WandRegular",title:_("Autoskapa"),style:{fontSize:16,marginLeft:6},onClick:async()=>{T(!0),await(async o=>{if(o){const e=await b.chat(o);if(e){const o=new j(e.content).content;w(o)}}})(C),T(!1)},appearance:"transparent",size:"small"}),P&&e(c,{size:"extra-small",style:{marginLeft:12},children:_("Arbetar...")})]})]}),o(p,{className:z.combo,"aria-labelledby":y,freeform:!0,placeholder:x||_("Välj..."),onChange:o=>{const e=o.target.value;M(e);const t=(f||[]).filter((o=>0===o.toLowerCase().indexOf(e.toLowerCase())));k(t)},onOptionSelect:(o,e)=>{e.optionText&&(f||[]).includes(e.optionText);M(e.optionText)},size:"large",value:v,children:[L?e(m,{text:L,children:_("Sök efter ")+L},"freeform"):null,S.map((o=>e(m,{children:o},o)))]})]})};export{u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o}from"react/jsx-runtime";import{Mic24Regular as
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{Mic24Regular as t,MicPulse24Filled as s,MicRecord24Filled as i}from"@fluentui/react-icons";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"@fluentui/react-components";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"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import r from"../utils/withWakeLock.js";import"../_virtual/index.js";import"../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"exceljs";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"../pages/AppFrame.js";import"../pages/Canvas.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Menu.js";import"../pages/Log.js";import"../pages/Login.js";import"../pages/Home.js";import"../pages/ListPage.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"react-router-dom";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import e from"../hooks/useAppStyles.js";const p=r((({isSoundCaptured:t,stopRecording:r})=>{const{pointer:p}=e();return o(t?s:i,{onClick:r,className:p})})),a=({audio:s,disabled:i})=>{const{isRecording:r,isSoundCaptured:a,startRecording:m,stopRecording:j}=s,{pointer:n}=e();return i?o(t,{}):r?o(p,{isSoundCaptured:a,stopRecording:j}):o(t,{onClick:()=>m(""),className:n})};export{a as default};
|