codicent-app-sdk 0.5.5 → 0.5.6
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.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/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.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/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/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import r from"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{Title as i}from"../components/Title.js";import{Text as
|
|
1
|
+
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import r from"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{Title as i}from"../components/Title.js";import{Text as n}from"../components/Text.js";import"../components/Spinner.js";import{makeStyles as s,Button as m}from"@fluentui/react-components";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import{useState as p,useEffect as a}from"react";import"@fluentui/react-icons";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as c}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import{formatGuidToShorterReadableCode as l}from"../utils/helpers.js";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./Sales.js";import{useSearchParams as j,useNavigate as d}from"react-router-dom";import"./Purchase.js";import u from"../components/Content.js";import{Page as h}from"../components/Page.js";import"./QrScan.js";import g from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";const f=s({container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%"},instructionParagraph:{fontWeight:"bold",marginBottom:"1em"},orderedList:{marginLeft:"20px",marginBottom:"1em",fontSize:"1.3em"}}),k=()=>{const{t:s,tAsync:k}=g(),[C]=j(),M=d(),v=C.get("id"),_=f(),[b,S]=p(""),[P,x]=p(!1);return a((()=>{(async()=>{const o=c("FORM_ACCEPT_MARKDOWN");if(o){x(!0);const t=await k(o);x(!1),S(t.replace("{{code}}",l(v||"")))}})()}),[k,v]),o(h,{hideFooter:!0,hideHeader:!0,children:o("div",{className:_.container,style:{backgroundImage:`url(${c("FORM_BACKGROUND_IMAGE_URL")})`},children:t(u,{children:[P&&o(n,{children:s("Översätter...")}),c("FORM_ACCEPT_MARKDOWN")&&b&&!P&&o(r,{content:b}),!c("FORM_ACCEPT_MARKDOWN")&&t(e,{children:[o(i,{children:s("Din kod för formuläret")}),o("p",{className:_.instructionParagraph,children:s("Instruktioner:")}),t("ol",{className:_.orderedList,children:[o("li",{children:s("Skriv ner eller kopiera den kod som visas nedan, du behöver den för att identifiera din session.")}),o("li",{children:s("Klicka på 'Starta' för att komma igång med chatten.")})]}),o(n,{size:500,children:s("Din kod är (skriv ner den):")}),o(n,{size:600,style:{userSelect:"all"},children:l(v||"")})]}),v&&o(m,{appearance:"primary",onClick:()=>M(`/chat?fid=${v}`),children:s("Starta")})]})})})};export{k as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as e,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as r}from"react";import{makeStyles as i,useId as a,Dropdown as s,Option as m}from"@fluentui/react-components";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as p}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as l}from"../components/Title.js";import"../components/Spinner.js";import{Label as c}from"../components/Label.js";import{Input as d}from"../components/Input.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import u from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as j}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"
|
|
1
|
+
import{jsx as o,jsxs as e,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as r}from"react";import{makeStyles as i,useId as a,Dropdown as s,Option as m}from"@fluentui/react-components";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as p}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as l}from"../components/Title.js";import"../components/Spinner.js";import{Label as c}from"../components/Label.js";import{Input as d}from"../components/Input.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import u from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as j}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import{formatGuidToShorterReadableCode as h}from"../utils/helpers.js";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormAccept.js";import"./Sales.js";import"react-router-dom";import"./Purchase.js";import k from"../components/Content.js";import{Page as g}from"../components/Page.js";import"./QrScan.js";import f from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";const v=i({inputAndButton:{display:"flex",gap:"10px"},input:{minWidth:"90%"},container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%"},generatedLinkTitle:{marginBottom:"0.5em",fontWeight:"bold"},orderedList:{marginLeft:"20px",marginBottom:"1em"},instructionParagraph:{marginBottom:"1em",fontWeight:"bold"}}),w=({state:i})=>{const w=v(),{service:b}=i,{t:C}=f(),[S,x]=u(i.context.selectedApp+"_forms",[]),[y,L]=n(),[$,M]=n(),[P,B]=n(!1),[_,A]=n(),D=a("form-dropdown");r((()=>{b.getForms().then((o=>{o.sort(((o,e)=>o.name.localeCompare(e.name))),x(o)}))}),[b,C,x]);const T=void 0!==navigator.share;return o(g,{children:o("div",{className:w.container,style:{backgroundImage:`url(${j("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:e(k,{children:[o(l,{children:C("Skapa länk till formulär")}),o("p",{className:w.instructionParagraph,children:C("Instruktioner")}),e("ol",{className:w.orderedList,children:[o("li",{children:C("Välj ett formulär från rullgardinsmenyn nedan. Detta formulär kommer att användas för den genererade länken.")}),o("li",{children:C("Klicka på 'Skapa länk' för att generera en unik länk. Länken visar var aktiv och kan användas för att svara på formuläret.")}),o("li",{children:C("När länken visas, kan du klicka på kopiera-ikonen för att kopiera länken till ditt urklipp.")}),o("li",{children:C("Om din enhet stödjer det, kan du även använda dela-knappen för att dela länken direkt.")}),o("li",{children:C("Kom ihåg att spara (skriva ner) koden")})]}),o("label",{id:D,className:w.instructionParagraph,children:C("Välj formulär")}),o(s,{"aria-labelledby":D,placeholder:"-",onOptionSelect:(o,e)=>A(e.optionValue),children:S.map((o=>e(m,{value:o.name,text:`${o.title} (${o.name})`,children:[`${o.title} (${o.name})`," "]},o.name)))}),o(p,{appearance:"primary",disabled:!_,onClick:()=>{const o=S.find((o=>o.name===_));o?.url?b.sendMessage(`#ss-link #${_}`).then((e=>{const t=new Date(Date.now()+2592e5);b.generateApiToken(t).then((t=>{const n=o.url.includes("?")?"&":"?",r=`${o.url}${n}token=${t}`;L(r);const i=h(e);M(i)}))})):b.sendMessage(`#ss-link #${_}`).then((o=>{const e=`${window.location.protocol}//${window.location.hostname}${window.location.port?":"+window.location.port:""}${window.location.pathname}`;L(`${e}#/formaccept?id=${o}`);const t=h(o);M(t)}))},children:C("Skapa länk")}),y&&e(t,{children:[o("p",{className:w.generatedLinkTitle,children:C("Här är din genererade länk (du kan kopiera eller dela den):")}),o("div",{className:w.inputAndButton,children:o(d,{className:w.input,value:y,readOnly:!0,onFocus:o=>o.target.select()})}),o("br",{}),e("div",{className:w.inputAndButton,children:[o(p,{appearance:"primary",title:C("Kopiera länk"),icon:"CopyRegular",onClick:()=>{y&&(navigator.clipboard.writeText(y),B(!0),setTimeout((()=>{B(!1),L(void 0)}),2e3))},children:C("Kopiera")}),T&&o(p,{appearance:"primary",title:C("Dela länk"),icon:"ShareRegular",onClick:()=>{y&&(navigator.share({url:y}),setTimeout((()=>{L(void 0)}),2e3))},children:C("Dela")})]}),P&&o(c,{children:C("Länk kopierad!")})]})]})})})};export{w as default};
|
package/dist/esm/pages/Home.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{useState as n,useEffect as i}from"react";import{makeStyles as r,shorthands as a,Tooltip as s,Button as l,Image as c,Menu as p,MenuTrigger as m,MenuButton as d,MenuPopover as u,MenuList as h,MenuItem as g}from"@fluentui/react-components";import*as f from"@fluentui/react-icons";import{Edit24Regular as b,Chat24Regular as v,Target24Regular as j,Database24Regular as x,Sparkle24Regular as k,Briefcase24Regular as C,Rocket24Regular as w}from"@fluentui/react-icons";import{Link as y}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as S}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as I}from"../components/Title.js";import{Text as A}from"../components/Text.js";import{Spinner as N}from"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import D from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"../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"../node_modules/exceljs/excel.js";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import z from"../components/Content.js";import{Page as M}from"../components/Page.js";import"./QrScan.js";import P from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import _ from"../hooks/useCodicentState.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import{UrlProcessor as B}from"../components/UrlProcessor.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import T from"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";const W=t=>{if(!t)return null;const o=f[t];if(o&&("function"==typeof o||"object"==typeof o))try{return e(o,{})}catch{return null}return null},L=t=>{switch(t){case"Start Your CV AI Assistant":return e(w,{});case"Smart CV Matching":return e(C,{});case"Enhance & Optimize CVs":return e(k,{});case"View CV Database":return e(x,{});case"Create Job Requirements":return e(j,{});case"Chat with CV AI":return e(v,{});default:return null}},$=r({main:{flexGrow:1,...a.padding("10px"),overflowY:"auto",touchAction:"pan-y"},editButton:{position:"absolute",top:"80px",right:"16px",zIndex:10,background:"transparent",boxShadow:"none",border:"none",cursor:"pointer",padding:0,pointerEvents:"auto"},root:{height:"100%",backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",pointerEvents:"none"},item:{height:"auto",width:"auto",flexShrink:1},buttonsList:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",flexDirection:"column",alignItems:"center",gap:"1.5rem",...a.padding("10px"),paddingTop:"30px",pointerEvents:"auto"},buttonContent:{display:"flex",alignItems:"center",gap:"8px"},buttonContentColumn:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"4px",width:"100%"},buttonContentRow:{display:"flex",alignItems:"center",gap:"8px","& > svg":{flexShrink:0,width:"24px"}},buttonSubtitle:{fontSize:"0.85em",opacity:.75,fontWeight:"normal",marginTop:"2px",paddingLeft:"32px"},menuPopover:{minWidth:"16rem",borderRadius:"12px",...a.padding("6px"),boxShadow:"0 8px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.10)"},menuItemIconBadge:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"8px",backgroundColor:"var(--colorBrandBackground2)",color:"var(--colorBrandForeground2)",flexShrink:0},menuItemTitle:{fontWeight:"500",fontSize:"0.95em"},menuItemSubtitle:{fontSize:"0.78em",opacity:.6,paddingLeft:"42px"},welcomeInfo:{display:"flex",flexDirection:"column",gap:"8px",alignItems:"center",textAlign:"center",maxWidth:"20rem",pointerEvents:"auto"},scrollableContent:{overflowY:"auto"}}),E=({state:r,audio:a,voice:f,buttons:v,backgroundImageUrl:j,welcomeText:x,slogan:k,indexTitle:C,developerMode:w,onEditClick:E,buttonStyles:F={},appName:V})=>{const{selectedApp:R,nickname:H,apps:U,name:O}=r.context,{service:Q,error:Y,stateMachine:q,currentStateName:K,fixAppUrl:G}=r,J=$(),[X,Z]=D("app-buttons_"+R,[]),[ee,te]=n(!1),[oe,ne]=n(!1),[ie,re]=n([]),[ae,se]=n(""),[le,ce]=n(""),[pe,me]=n(""),[de,ue]=n(new Set),{updating:he,welcomeStatusText:ge}=_(q),{t:fe}=P();i((()=>{void 0!==v?Z(v):R&&Q.getAppButtons().then((e=>Z(e))).catch(console.warn)}),[Q,Z,R,v]);const be=e=>{e.preventDefault(),e.stopPropagation()},ve=!R||"hasAccess"!==K,je=!R||"hasAccess"!==K,xe=R&&"hasAccess"===K,ke=!R&&"hasAccess"===K&&U.length>1,Ce=!Y&&!R&&!V,we="noAccess"===K&&(1===U.length||!!V),ye=R&&"hasAccess"===K;return e(M,{hideHeader:ve,hideFooter:je,audio:a,voice:f,children:t("div",{className:J.root,style:{backgroundImage:j?`url(${j})`:void 0},children:[w&&E&&"hasAccess"===K&&e("div",{className:J.editButton,children:e(s,{content:fe("Edit settings")||"Edit settings",relationship:"label",children:e(l,{appearance:"subtle",icon:e(b,{}),"aria-label":fe("Edit settings")||"Edit settings",onClick:E,size:"small"})})}),e("div",{className:J.item,children:e("div",{className:J.item,children:t("div",{className:J.buttonsList,children:[ke&&t(o,{children:[e(I,{children:fe("Välkommen, vart vill du gå?")}),U.map(((o,n)=>e("div",{children:e(S,{size:"large",appearance:"primary",onClick:()=>q.setSelectedApp(o.id),children:t("div",{className:J.buttonContent,children:[o.logo&&e(c,{src:o.logo,height:24}),o.title||o.id]})})},"codicent_button_"+n)))]}),Ce&&t(o,{children:[e(I,{children:fe("Skapa ny?")}),e(A,{size:400,children:fe("Här går du vidare för att skapa din egna privata digitala assistent.")}),e(S,{size:"large",appearance:"primary",onClick:()=>q.update(),children:fe("Kör!")})]}),we&&e("div",{children:t(z,{children:[e(I,{children:`${fe("Välkommen till")} ${C}`}),!ee&&e(A,{size:400,children:fe("Du är inte medlem än. Skicka begäran för att komma in!")}),!ee&&e(S,{size:"large",appearance:"primary",onClick:async()=>{if(te(!0),!V)return console.error("appName prop not provided."),alert("appName not defined."),void te(!1);await Q.requestInvite(H,V)?alert(fe("Begäran skickad! Du får åtkomst när ägaren godkänner.")):(te(!1),alert(fe("Misslyckades att skicka begäran. Försök igen senare.")))},children:fe("Skicka begäran")}),!ee&&t(A,{size:300,children:[fe("Har du redan ett abonnemang? Då kanske har du loggat in med fel konto.")," ",e(y,{to:"/logout",children:fe("Logga ut")})," ",fe("och sedan in igen för att komma igång.")]}),ee&&e(A,{size:400,children:fe("Begäran skickad till ägaren.")}),ee&&e(S,{size:"large",onClick:()=>{window.location.href="./"},children:fe("Kontrollera åtkomst")})]})}),ye&&t("div",{className:J.welcomeInfo,children:[e(A,{weight:"semibold",size:500,align:"center",children:x?x.replace("{{username}}",O||H||""):fe("Välkommen")}),k&&e(A,{weight:"semibold",italic:!0,size:400,align:"center",children:k}),he&&e(N,{}),!he&&ge&&e(A,{size:400,align:"center",children:fe(ge)})]}),xe&&X.map(((o,n)=>{const i="file_drop"===o.type,r="multi_option"===o.type,a=o.options&&Array.isArray(o.options)?o.options:[],s=e=>{const t=e.replace("upload:","").split(":");if(t.length>=4){se(t[0]?.trim()||""),ce(t[1]?.trim()||""),me(t[2]?.trim()||"");const e=t[3]?.trim()||"";re(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}else{se(""),ce(""),me("");const e=t[0]?.trim()||"";re(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}ne(!0)},l=(e,t)=>{if(e.startsWith("voice:")){const t=e.replace("voice:","").trim();t&&f?.updateInstructions(t),f?.connectConversation()}else e.startsWith("upload:")?s(e):e.startsWith("app:")?t(e.replace("app:",G("/app/index.html?token={token}&app={app}&nickname={nickname}")).trim()):t(e)};return e("div",{children:i?e("div",{className:`${J.item} ${de.has(n)?"dragActive":""}`,style:{width:"16rem",minWidth:"15rem",border:`2px dashed ${F.textColor||"#ccc"}`,backgroundColor:de.has(n)?F.activeColor||void 0:F.backgroundColor||void 0,color:F.textColor||void 0,borderRadius:"8px",padding:"1.2rem 1rem",textAlign:"center",cursor:"pointer"},onDragEnter:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ue((e=>new Set(e.add(t))))})(e,n),onDragLeave:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ue((e=>{const o=new Set(e);return o.delete(t),o}))})(e,n),onDragOver:be,onDrop:e=>(async(e,t,o)=>{e.preventDefault(),e.stopPropagation(),ue((e=>{const t=new Set(e);return t.delete(o),t}));const n=Array.from(e.dataTransfer.files);if(0===n.length)return;let i=[];if(t.url.startsWith("upload:")){const e=t.url.replace("upload:","").split(":"),o=(e.length>=4?e[3]:e[0])?.trim()||"";i=o?o.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[]}for(const e of n)try{const t=new FormData;t.append("file",e);const o=await Q.uploadFile(e.name,t);if(!o)continue;const n=i.length>0?i.map((e=>`#${e}`)).join(" "):"#index #summarize";await Q.sendMessage(`@${R} ${n}\n\n${e.name}\n#file:${o}\n`)}catch(t){console.error("Error processing file:",e.name,t)}})(e,o,n),onClick:()=>o.url.startsWith("upload:")&&s(o.url),children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[W(o.icon)||L(o.title),e("span",{children:fe(o.title)})]}),e("div",{className:J.buttonSubtitle,children:de.has(n)?fe("Drop files here..."):fe("Drag files here or click")})]})}):r?t(p,{children:[e(m,{children:e(d,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:F.backgroundColor||void 0,color:F.textColor||void 0,padding:"1.2rem 1rem"},children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[W(o.icon)||L(o.title),e("span",{children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.buttonSubtitle,children:fe(o.subtitle)})]})})}),e(u,{className:J.menuPopover,children:e(h,{children:a.map(((o,i)=>e(B,{service:Q,children:n=>e(g,{onClick:()=>l(o.url,n),children:t("div",{children:[t("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[W(o.icon)&&e("div",{className:J.menuItemIconBadge,children:W(o.icon)}),e("span",{className:J.menuItemTitle,children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.menuItemSubtitle,children:fe(o.subtitle)})]})})},`option_${n}_${i}`)))})})]}):e(B,{service:Q,children:n=>e(S,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:F.backgroundColor||void 0,color:F.textColor||void 0,padding:"1.2rem 1rem"},onClick:()=>l(o.url,n),children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[W(o.icon)||L(o.title),e("span",{children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.buttonSubtitle,children:fe(o.subtitle)})]})})})},"button_"+n)}))]})})}),Y&&e("div",{className:"error",children:Y}),e(T,{project:R||"",hidden:!oe,onDismiss:()=>{ne(!1),se(""),ce(""),me(""),re([])},sendMessage:async e=>{try{return await Q.sendMessage(e)}catch{return}},onUploaded:()=>{ne(!1),se(""),ce(""),me(""),re([])},service:Q,tags:ie,title:ae,description:le,dropText:pe})]})})};export{E as Home,E as default};
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{useState as n,useEffect as i}from"react";import{makeStyles as r,shorthands as a,Tooltip as s,Button as l,Image as c,Menu as p,MenuTrigger as m,MenuButton as d,MenuPopover as u,MenuList as h,MenuItem as g}from"@fluentui/react-components";import*as f from"@fluentui/react-icons";import{Edit24Regular as b,Chat24Regular as v,Target24Regular as j,Database24Regular as x,Sparkle24Regular as k,Briefcase24Regular as C,Rocket24Regular as w}from"@fluentui/react-icons";import{Link as y}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as S}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as I}from"../components/Title.js";import{Text as A}from"../components/Text.js";import{Spinner as N}from"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import D from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"../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"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import z from"../components/Content.js";import{Page as M}from"../components/Page.js";import"./QrScan.js";import P from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import B from"../hooks/useCodicentState.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import{UrlProcessor as _}from"../components/UrlProcessor.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import T from"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";const W=t=>{if(!t)return null;const o=f[t];if(o&&("function"==typeof o||"object"==typeof o))try{return e(o,{})}catch{return null}return null},L=t=>{switch(t){case"Start Your CV AI Assistant":return e(w,{});case"Smart CV Matching":return e(C,{});case"Enhance & Optimize CVs":return e(k,{});case"View CV Database":return e(x,{});case"Create Job Requirements":return e(j,{});case"Chat with CV AI":return e(v,{});default:return null}},$=r({main:{flexGrow:1,...a.padding("10px"),overflowY:"auto",touchAction:"pan-y"},editButton:{position:"absolute",top:"80px",right:"16px",zIndex:10,background:"transparent",boxShadow:"none",border:"none",cursor:"pointer",padding:0,pointerEvents:"auto"},root:{height:"100%",backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",pointerEvents:"none"},item:{height:"auto",width:"auto",flexShrink:1},buttonsList:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",flexDirection:"column",alignItems:"center",gap:"1.5rem",...a.padding("10px"),paddingTop:"30px",pointerEvents:"auto"},buttonContent:{display:"flex",alignItems:"center",gap:"8px"},buttonContentColumn:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"4px",width:"100%"},buttonContentRow:{display:"flex",alignItems:"center",gap:"8px","& > svg":{flexShrink:0,width:"24px"}},buttonSubtitle:{fontSize:"0.85em",opacity:.75,fontWeight:"normal",marginTop:"2px",paddingLeft:"32px"},menuPopover:{minWidth:"16rem",borderRadius:"12px",...a.padding("6px"),boxShadow:"0 8px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.10)"},menuItemIconBadge:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"8px",backgroundColor:"var(--colorBrandBackground2)",color:"var(--colorBrandForeground2)",flexShrink:0},menuItemTitle:{fontWeight:"500",fontSize:"0.95em"},menuItemSubtitle:{fontSize:"0.78em",opacity:.6,paddingLeft:"42px"},welcomeInfo:{display:"flex",flexDirection:"column",gap:"8px",alignItems:"center",textAlign:"center",maxWidth:"20rem",pointerEvents:"auto"},scrollableContent:{overflowY:"auto"}}),E=({state:r,audio:a,voice:f,buttons:v,backgroundImageUrl:j,welcomeText:x,slogan:k,indexTitle:C,developerMode:w,onEditClick:E,buttonStyles:F={},appName:V})=>{const{selectedApp:R,nickname:H,apps:U,name:O}=r.context,{service:Q,error:Y,stateMachine:q,currentStateName:K,fixAppUrl:G}=r,J=$(),[X,Z]=D("app-buttons_"+R,[]),[ee,te]=n(!1),[oe,ne]=n(!1),[ie,re]=n([]),[ae,se]=n(""),[le,ce]=n(""),[pe,me]=n(""),[de,ue]=n(new Set),{updating:he,welcomeStatusText:ge}=B(q),{t:fe}=P();i((()=>{void 0!==v?Z(v):R&&Q.getAppButtons().then((e=>Z(e))).catch(console.warn)}),[Q,Z,R,v]);const be=e=>{e.preventDefault(),e.stopPropagation()},ve=!R||"hasAccess"!==K,je=!R||"hasAccess"!==K,xe=R&&"hasAccess"===K,ke=!R&&"hasAccess"===K&&U.length>1,Ce=!Y&&!R&&!V,we="noAccess"===K&&(1===U.length||!!V),ye=R&&"hasAccess"===K;return e(M,{hideHeader:ve,hideFooter:je,audio:a,voice:f,children:t("div",{className:J.root,style:{backgroundImage:j?`url(${j})`:void 0},children:[w&&E&&"hasAccess"===K&&e("div",{className:J.editButton,children:e(s,{content:fe("Edit settings")||"Edit settings",relationship:"label",children:e(l,{appearance:"subtle",icon:e(b,{}),"aria-label":fe("Edit settings")||"Edit settings",onClick:E,size:"small"})})}),e("div",{className:J.item,children:e("div",{className:J.item,children:t("div",{className:J.buttonsList,children:[ke&&t(o,{children:[e(I,{children:fe("Välkommen, vart vill du gå?")}),U.map(((o,n)=>e("div",{children:e(S,{size:"large",appearance:"primary",onClick:()=>q.setSelectedApp(o.id),children:t("div",{className:J.buttonContent,children:[o.logo&&e(c,{src:o.logo,height:24}),o.title||o.id]})})},"codicent_button_"+n)))]}),Ce&&t(o,{children:[e(I,{children:fe("Skapa ny?")}),e(A,{size:400,children:fe("Här går du vidare för att skapa din egna privata digitala assistent.")}),e(S,{size:"large",appearance:"primary",onClick:()=>q.update(),children:fe("Kör!")})]}),we&&e("div",{children:t(z,{children:[e(I,{children:`${fe("Välkommen till")} ${C}`}),!ee&&e(A,{size:400,children:fe("Du är inte medlem än. Skicka begäran för att komma in!")}),!ee&&e(S,{size:"large",appearance:"primary",onClick:async()=>{if(te(!0),!V)return console.error("appName prop not provided."),alert("appName not defined."),void te(!1);await Q.requestInvite(H,V)?alert(fe("Begäran skickad! Du får åtkomst när ägaren godkänner.")):(te(!1),alert(fe("Misslyckades att skicka begäran. Försök igen senare.")))},children:fe("Skicka begäran")}),!ee&&t(A,{size:300,children:[fe("Har du redan ett abonnemang? Då kanske har du loggat in med fel konto.")," ",e(y,{to:"/logout",children:fe("Logga ut")})," ",fe("och sedan in igen för att komma igång.")]}),ee&&e(A,{size:400,children:fe("Begäran skickad till ägaren.")}),ee&&e(S,{size:"large",onClick:()=>{window.location.href="./"},children:fe("Kontrollera åtkomst")})]})}),ye&&t("div",{className:J.welcomeInfo,children:[e(A,{weight:"semibold",size:500,align:"center",children:x?x.replace("{{username}}",O||H||""):fe("Välkommen")}),k&&e(A,{weight:"semibold",italic:!0,size:400,align:"center",children:k}),he&&e(N,{}),!he&&ge&&e(A,{size:400,align:"center",children:fe(ge)})]}),xe&&X.map(((o,n)=>{const i="file_drop"===o.type,r="multi_option"===o.type,a=o.options&&Array.isArray(o.options)?o.options:[],s=e=>{const t=e.replace("upload:","").split(":");if(t.length>=4){se(t[0]?.trim()||""),ce(t[1]?.trim()||""),me(t[2]?.trim()||"");const e=t[3]?.trim()||"";re(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}else{se(""),ce(""),me("");const e=t[0]?.trim()||"";re(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}ne(!0)},l=(e,t)=>{if(e.startsWith("voice:")){const t=e.replace("voice:","").trim();t&&f?.updateInstructions(t),f?.connectConversation()}else e.startsWith("upload:")?s(e):e.startsWith("app:")?t(e.replace("app:",G("/app/index.html?token={token}&app={app}&nickname={nickname}")).trim()):t(e)};return e("div",{children:i?e("div",{className:`${J.item} ${de.has(n)?"dragActive":""}`,style:{width:"16rem",minWidth:"15rem",border:`2px dashed ${F.textColor||"#ccc"}`,backgroundColor:de.has(n)?F.activeColor||void 0:F.backgroundColor||void 0,color:F.textColor||void 0,borderRadius:"8px",padding:"1.2rem 1rem",textAlign:"center",cursor:"pointer"},onDragEnter:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ue((e=>new Set(e.add(t))))})(e,n),onDragLeave:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ue((e=>{const o=new Set(e);return o.delete(t),o}))})(e,n),onDragOver:be,onDrop:e=>(async(e,t,o)=>{e.preventDefault(),e.stopPropagation(),ue((e=>{const t=new Set(e);return t.delete(o),t}));const n=Array.from(e.dataTransfer.files);if(0===n.length)return;let i=[];if(t.url.startsWith("upload:")){const e=t.url.replace("upload:","").split(":"),o=(e.length>=4?e[3]:e[0])?.trim()||"";i=o?o.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[]}for(const e of n)try{const t=new FormData;t.append("file",e);const o=await Q.uploadFile(e.name,t);if(!o)continue;const n=i.length>0?i.map((e=>`#${e}`)).join(" "):"#index #summarize";await Q.sendMessage(`@${R} ${n}\n\n${e.name}\n#file:${o}\n`)}catch(t){console.error("Error processing file:",e.name,t)}})(e,o,n),onClick:()=>o.url.startsWith("upload:")&&s(o.url),children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[W(o.icon)||L(o.title),e("span",{children:fe(o.title)})]}),e("div",{className:J.buttonSubtitle,children:de.has(n)?fe("Drop files here..."):fe("Drag files here or click")})]})}):r?t(p,{children:[e(m,{children:e(d,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:F.backgroundColor||void 0,color:F.textColor||void 0,padding:"1.2rem 1rem"},children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[W(o.icon)||L(o.title),e("span",{children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.buttonSubtitle,children:fe(o.subtitle)})]})})}),e(u,{className:J.menuPopover,children:e(h,{children:a.map(((o,i)=>e(_,{service:Q,children:n=>e(g,{onClick:()=>l(o.url,n),children:t("div",{children:[t("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[W(o.icon)&&e("div",{className:J.menuItemIconBadge,children:W(o.icon)}),e("span",{className:J.menuItemTitle,children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.menuItemSubtitle,children:fe(o.subtitle)})]})})},`option_${n}_${i}`)))})})]}):e(_,{service:Q,children:n=>e(S,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:F.backgroundColor||void 0,color:F.textColor||void 0,padding:"1.2rem 1rem"},onClick:()=>l(o.url,n),children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[W(o.icon)||L(o.title),e("span",{children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.buttonSubtitle,children:fe(o.subtitle)})]})})})},"button_"+n)}))]})})}),Y&&e("div",{className:"error",children:Y}),e(T,{project:R||"",hidden:!oe,onDismiss:()=>{ne(!1),se(""),ce(""),me(""),re([])},sendMessage:async e=>{try{return await Q.sendMessage(e)}catch{return}},onUploaded:()=>{ne(!1),se(""),ce(""),me(""),re([])},service:Q,tags:ie,title:ae,description:le,dropText:pe})]})})};export{E as Home,E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as t}from"react/jsx-runtime";import{Spinner as e}from"@fluentui/react-components";import{useState as s,useEffect as i}from"react";import{useNavigate as n}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{Text as r}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../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"
|
|
1
|
+
import{jsx as o,jsxs as t}from"react/jsx-runtime";import{Spinner as e}from"@fluentui/react-components";import{useState as s,useEffect as i}from"react";import{useNavigate as n}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{Text as r}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../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"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import"../components/Content.js";import{Page as m}from"../components/Page.js";import"./QrScan.js";import"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import p from"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";const c=({state:c})=>{const a=window.location.hash.match(/^#\/html\/(.+)$/),l=a?decodeURIComponent(a[1]):"",d=n(),[j,h]=s(),[u,g]=s(!1),[f,v]=s(),{service:y}=c;return i((()=>{l&&y?(g(!0),v(void 0),y.getMessagesFast([l],void 0,1).then((o=>{if(0===o.length)return void v(`No messages found with tag: ${l}`);const t=o[0].content;h((o=>{const t=o.indexOf("```html");if(-1!==t){const e=o.indexOf("```",t+7);return-1===e?o.substring(t+7):o.substring(t+7,e)}const e=[/<!DOCTYPE[^>]*>[\s\S]*?<\/html>/i,/<html[^>]*>[\s\S]*?<\/html>/i,/<div[^>]*>[\s\S]*?<\/div>/i,/<body[^>]*>[\s\S]*?<\/body>/i,/<article[^>]*>[\s\S]*?<\/article>/i,/<section[^>]*>[\s\S]*?<\/section>/i];for(const t of e){const e=o.match(t);if(e)return e[0]}if(o.includes("<html")||o.includes("<!DOCTYPE")||o.includes("<div")||o.includes("<p>")||o.includes("<span")){const t=["<!DOCTYPE","<html","<div","<body","<article","<section"];let e=-1;for(const s of t){const t=o.indexOf(s);-1!==t&&(-1===e||t<e)&&(e=t)}if(-1!==e){let t=o.substring(e);const s=["</html>","</body>","</div>"];for(const o of s){const e=t.lastIndexOf(o);if(-1!==e){t=t.substring(0,e+o.length);break}}return t}return o}return o})(t))})).catch((o=>{console.error("Error fetching message:",o),v(`Error fetching message: ${o.message||"Unknown error"}`)})).finally((()=>{g(!1)}))):v("No tag provided or service unavailable")}),[l,y]),u?o(m,{hideHeader:!0,hideFooter:!0,children:o("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:o(e,{})})}):f?o(m,{hideHeader:!0,hideFooter:!0,children:t("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh",flexDirection:"column",gap:"20px"},children:[o(r,{children:f}),t(r,{children:["Tag: ",l]})]})}):j?o("div",{style:{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden"},children:o(p,{html:j,onDismiss:()=>d(-1)})}):o(m,{hideHeader:!0,hideFooter:!0,children:o("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:o(r,{children:"No HTML content available"})})})};export{c as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as t,Fragment as o}from"react/jsx-runtime";import{makeStyles as n,Button as r,Image as i}from"@fluentui/react-components";import{Dismiss24Regular as s}from"@fluentui/react-icons";import{useState as a,useEffect as l}from"react";import{useSearchParams as c,useNavigate as d}from"react-router-dom";import m 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"
|
|
1
|
+
import{jsxs as e,jsx as t,Fragment as o}from"react/jsx-runtime";import{makeStyles as n,Button as r,Image as i}from"@fluentui/react-components";import{Dismiss24Regular as s}from"@fluentui/react-icons";import{useState as a,useEffect as l}from"react";import{useSearchParams as c,useNavigate as d}from"react-router-dom";import m 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{CodicentService as u}from"../services/codicent.js";const p=n({image:{zIndex:900,transition:"transform 0.1s ease-out",cursor:"grab","&:active":{cursor:"grabbing"}},transparent:{color:"transparent",backgroundColor:"transparent"},next:{cursor:"pointer",position:"absolute",top:"50%",width:"auto",marginTop:"-22px",padding:"16px",color:"white",fontWeight:"bold",fontSize:"18px",transition:"0.6s ease",userSelect:"none",right:0,borderRadius:"3px 0 0 3px",zIndex:1e3,backgroundColor:"#A0A0A080","&:hover":{backgroundColor:"#A0A0A0"}},prev:{cursor:"pointer",position:"absolute",top:"50%",width:"auto",marginTop:"-22px",padding:"16px",color:"white",fontWeight:"bold",fontSize:"18px",transition:"0.6s ease",borderRadius:"0 3px 3px 0",userSelect:"none",left:0,zIndex:1e3,backgroundColor:"#A0A0A080","&:hover":{backgroundColor:"#A0A0A0"}},content:{position:"fixed",top:0,left:0,bottom:0,right:0,display:"flex",justifyContent:"center",alignItems:"center"},closeButton:{position:"absolute",top:"10px",right:"10px",zIndex:1001,backgroundColor:"rgba(0, 0, 0, 0.5)",color:"white","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.7)"}}}),v=({state:n})=>{const v=p(),[g]=c(),h=d(),[w,x]=a([]),[f,b]=a(0),[y,E]=a(),[L,k]=a(null),[C,j]=a(null),{service:A}=n,[I,_]=a(1),[z,M]=a({x:0,y:0}),[N,S]=a(!1),[X,$]=a({x:0,y:0});l((()=>{const e=e=>{"Escape"===e.key&&h(-1)},t=e=>{k(e.touches[0].clientX)},o=e=>{j(e.touches[0].clientX)},n=()=>{if(null!==L&&null!==C){const e=L-C;e>50?F(1):e<-50&&F(-1)}k(null),j(null)};return window.addEventListener("keydown",e),window.addEventListener("touchstart",t),window.addEventListener("touchmove",o),window.addEventListener("touchend",n),()=>{window.removeEventListener("keydown",e),window.removeEventListener("touchstart",t),window.removeEventListener("touchmove",o),window.removeEventListener("touchend",n)}}),[h,L,C]),l((()=>{E(u.getFileUrl(w[f]))}),[w,f]),l((()=>{const e=g.get("id"),t=g.get("file");e&&t&&A.getMessageContent(e).then((e=>{const o=m.findFileIds(e.content);Promise.all(o.map((e=>A.getFileInfo(e)))).then((e=>{x(e.filter((e=>e.contentType.startsWith("image"))).map((e=>e.id)));const o=w.indexOf(t);o>=0&&b(o)}))})).catch((()=>{}))}),[g,A]),l((()=>{_(1),M({x:0,y:0})}),[f]),l((()=>{const e=e=>{e.preventDefault();const t=-.01*e.deltaY;_((e=>Math.min(Math.max(1,e+t),5)))},t=e=>{const t=e;I>1&&(S(!0),$({x:t.clientX-z.x,y:t.clientY-z.y}))},o=e=>{const t=e;N&&M({x:t.clientX-X.x,y:t.clientY-X.y})},n=()=>{S(!1)},r=document.querySelector(`.${v.image}`);return r&&(r.addEventListener("wheel",e),r.addEventListener("mousedown",t),window.addEventListener("mousemove",o),window.addEventListener("mouseup",n)),()=>{r&&(r.removeEventListener("wheel",e),r.removeEventListener("mousedown",t),window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",n))}}),[I,z,N,X,v.image]);const F=e=>{if(f+e<0||f+e>=w.length)return;const t=(f+e+w.length)%w.length;b(t)};return e("div",{className:v.content,children:[t(r,{icon:t(s,{}),className:v.closeButton,onClick:()=>h(-1)}),t(i,{className:v.image,src:y,alt:"Codicent Image",fit:"contain",width:"100%",height:"100%",style:{transform:`translate(${z.x}px, ${z.y}px) scale(${I})`,touchAction:"none"}}),w.length>1&&e(o,{children:[0!==f&&t("a",{className:v.prev,onClick:()=>F(-1),children:"❮"}),f<w.length-1&&t("a",{className:v.next,onClick:()=>F(1),children:"❯"})]})]})};export{v as default};
|
package/dist/esm/pages/Log.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as o,useRef as r,useEffect as n}from"react";import i 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"
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as o,useRef as r,useEffect as n}from"react";import i 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{getTimeString as s}from"../utils/helpers.js";import a from"../components/TextHeader.js";import l from"../components/MessageItem.js";import{Page as c}from"../components/Page.js";import m from"../components/HtmlView.js";import d from"../components/SearchBox.js";import p from"../hooks/useLocalization.js";import u from"../hooks/useStateWithLocalStorage.js";import{makeStyles as g}from"@fluentui/react-components";import{useSearchParams as h,useNavigate as f}from"react-router-dom";const w=g({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"}}),v=({state:g,tags:v=["log"],tagDefinitions:x,publicFlowCodicent:S,title:j,messageItemHeight:b})=>{const[y,I]=h(),[L,T]=o(y.get("q")||""),{service:_}=g,{selectedApp:k}=g.context,[A,E]=u(`messages-${k}`,[]),[C,q]=o(!1),D=r(null),F=r(null),H=r(!0),M=w(),R=r(null),{t:$}=p(),P=f(),[W,z]=o(),B=Array.isArray(v)?v:v.split(",").map((e=>e.trim())).filter(Boolean);return n((()=>{const e=y.get("q")||"";T(e)}),[y]),n((()=>{localStorage.setItem("logbook-last-seen-at",(new Date).toISOString()),localStorage.removeItem("logbook-has-notification"),window.dispatchEvent(new CustomEvent("logbook-notification-changed"))}),[]),n((()=>{let e=!0;return D.current&&clearTimeout(D.current),D.current=setTimeout((()=>{void 0!==L?(I(L?{q:L}:{},{replace:!0}),q(!0),_.getMessagesFast(B,void 0,100,S).then((t=>{if(!e)return void q(!1);const o=t.filter((e=>e.content.toLowerCase().includes(L.toLowerCase())));0!==o.length&&0!==A.length&&o[0].id===A[0].id||E(o)})).catch((e=>{console.warn(e)})).finally((()=>q(!1)))):T("")}),500),()=>{e=!1,D.current&&clearTimeout(D.current)}}),[L,_,E,I]),n((()=>{const e=F.current;if(!e)return;const t=()=>{requestAnimationFrame((()=>{sessionStorage.setItem("log-scroll-pos-"+k,e.scrollTop.toString())}))};return e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}),[]),n((()=>{if(!H.current)return;const e=sessionStorage.getItem("log-scroll-pos-"+k);e&&F.current&&requestAnimationFrame((()=>{F.current&&(F.current.scrollTop=parseInt(e))})),H.current=!1}),[A,k]),n((()=>{H.current||F.current&&(F.current.scrollTop=0,sessionStorage.removeItem("log-scroll-pos-"+k))}),[L,k]),n((()=>{const e=F.current;if(!e)return;R.current=new ResizeObserver((()=>{const t=sessionStorage.getItem(`log-scroll-pos-${k}`);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 o=e.scrollTop;t.addEventListener("load",(()=>{e.scrollTop=o}),{once:!0})}})),()=>{R.current?.disconnect()}}),[A,k]),n((()=>{if(!W)return;const e=()=>{z(void 0)};return window.addEventListener("popstate",e),()=>{window.removeEventListener("popstate",e)}}),[W]),W?e(m,{html:W,onDismiss:()=>z(void 0)}):e(c,{hideHeader:!0,hideFooter:!!W,children:t("div",{className:M.container,children:[e(a,{title:j||$("Loggbok")}),e(d,{placeholder:$("Sök")+"...",value:L,onChange:e=>{T(e)}}),t("div",{className:M.search_results,ref:F,children:[C&&e("p",{children:$("Söker")+"..."}),A.map((t=>{const o=new i(t.content);let r=$(x?x[o.tags[0]]?.name||o.tags[0]||(o.files.length>0?x.file?.name:""):o.tags[0]),n=o.content;if(o.tags.includes("chat_title")){r=$(x?.chat_title?.name||"Chatt");try{const e=o.data;n='<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(l,{id:t.id,header:r,description:"",timestamp:s(new Date(t.createdAt)),timestampTitle:new Date(t.createdAt).toLocaleString(),text:n,tags:o.tags,image:"",fileIds:o.files,codicentService:_,maxHeightPx:b,onEdit:()=>{P(`/new/?text=${encodeURIComponent(t.content)}&parentId=${t.id}`)},onShowHtmlPreview:e=>{window.history.pushState({html:e},"",window.location.href),z(e)}},t.id)}))]})]})})};export{v as Log,v as default};
|
package/dist/esm/pages/Login.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,jsx as t,Fragment as e}from"react/jsx-runtime";import i,{useState as n}from"react";import{makeStyles as r,Image as s,Input as m,mergeClasses as a}from"@fluentui/react-components";import"../services/codicent.js";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as p}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as c}from"../components/Title.js";import{Text as l}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as j}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"
|
|
1
|
+
import{jsxs as o,jsx as t,Fragment as e}from"react/jsx-runtime";import i,{useState as n}from"react";import{makeStyles as r,Image as s,Input as m,mergeClasses as a}from"@fluentui/react-components";import"../services/codicent.js";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as p}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as c}from"../components/Title.js";import{Text as l}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as j}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/Page.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import g from"../hooks/useLocalization.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"react-router-dom";import"./Purchase.js";import"./QrScan.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import d from"../hooks/useAppStyles.js";const u=r({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"}}),h=({state:r})=>{const{loginWithRedirect:h,loginPasswordless:_}=r.auth,I=u(),f=d(),{t:E}=g(),[L,b]=n(""),[k,C]=n(!1),N=j("LOGIN_REDIRECT"),O=j("AUTH0_PASSWORDLESS_ENABLED");i.useEffect((()=>{N&&h()}),[N]);return o("div",N?{className:I.container,style:{backgroundImage:`url(${j("HOME_BACKGROUND_IMAGE_URL")})`},children:[t(c,{children:`${E("Välkommen till")} ${j("INDEX_TITLE")}!`}),t(l,{size:400,children:E("Omdirigerar till inloggning...")})]}:{className:I.container,style:{backgroundImage:`url(${j("HOME_BACKGROUND_IMAGE_URL")})`},children:[j("LOGIN_LOGO_URL")&&t(s,{src:j("LOGIN_LOGO_URL"),alt:j("INDEX_TITLE"),className:I.image}),!j("LOGIN_HIDE_WELCOME")&&t(c,{children:`${E("Välkommen till")} ${j("INDEX_TITLE")}!`}),t(l,{size:400,children:E(j("LOGIN_WELCOME_TEXT")||"Logga in, eller registrera ett konto, för att komma igång.")}),o(e,O?{children:[t(m,{className:I.input,type:"email",placeholder:E("Ange din e-postadress"),value:L,onChange:o=>b(o.target.value),disabled:k}),t(p,{className:a(f.button,I.button),size:"large",appearance:"primary",onClick:async()=>{if(L.trim()){C(!0);try{await _(L)}catch(o){console.error("Passwordless login failed:",o)}finally{C(!1)}}},disabled:!L.trim()||k,children:E(k?"Skickar...":"Skicka inloggningslänk")})]}:{children:[t(p,{className:a(f.button,I.button),size:"large",appearance:"primary",onClick:()=>h(),children:E("Logga in")}),!j("HIDE_REGISTER_BUTTON")&&t(p,{className:a(f.button,I.button),size:"large",appearance:"primary",onClick:()=>h({authorizationParams:{screen_hint:"signup"}}),children:E("Registrera")})]})]})};export{h as default};
|
package/dist/esm/pages/Menu.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{makeStyles as
|
|
1
|
+
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{makeStyles as i,Image as n}from"@fluentui/react-components";import{useNavigate as r}from"react-router-dom";import s from"../components/Markdown.js";import"../components/Textarea.js";import{Button as p}from"../components/Button.js";import"../components/CompoundButton.js";import"../components/Spinner.js";import a from"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"react";import"@fluentui/react-icons";import"../services/codicent.js";import"../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"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import"../components/Content.js";import{Page as m}from"../components/Page.js";import"./QrScan.js";import c from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import l from"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import d from"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import{LanguageSelector as j}from"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";const u=i({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"}}),g=({state:i,title:g,aboutText:h,version:f,backgroundImageUrl:v,showHelpButton:b,showLogbookButton:x,stripeCustomerPortal:C,showAppSelector:k=!0})=>{const w=r(),S=l(),B=u(),{auth:P}=i,{t:M}=c(),y=h?h.replace("{{version}}",(()=>{const o=new Date,t=o.toISOString().split("T")[0],e=o.getHours().toString().padStart(2,"0");return f||`v${t}.${e}`})()):void 0;return o(m,{hideHeader:!0,children:t("div",{className:B.container,style:{backgroundImage:v?`url(${v})`:void 0},children:[o(a,{title:g||M("Meny")}),t("div",{className:B.menu_items,children:[o(d,{state:i}),o(j,{}),o("hr",{}),o(p,{icon:"ChevronRightFilled",size:"large",className:S.menuButton,onClick:()=>{P.logout(),i.stateMachine.logout()},iconPosition:"after",appearance:"transparent",children:M("Logga ut")}),C&&o(p,{icon:"Payment24Regular",size:"large",className:S.menuButton,onClick:()=>window.location.href=C,iconPosition:"after",appearance:"transparent",children:M("Abonnemang")}),k&&i.context.apps&&i.context.apps.length>1&&t(e,{children:[o("h3",{children:M("Mina codicents")}),i.context.apps.map((t=>o(p,{className:B.appButton,image:t.logo?o(n,{src:t.logo,height:"24px"}):void 0,onClick:()=>i.stateMachine.setSelectedApp(t.id),title:t.title||t.id,children:t.title||t.id},t.id)))]}),x&&t(e,{children:[o("hr",{}),o(p,{className:S.menuButton,icon:"ChevronRightFilled",size:"large",appearance:"subtle",iconPosition:"after",onClick:()=>w("/log"),children:M("Loggboken")})]}),o("hr",{}),y&&o(s,{content:y}),b&&t(e,{children:[o("h3",{children:M("Behöver du hjälp?")}),o(p,{icon:"QuestionCircle24Regular",className:S.button,size:"large",appearance:"subtle",onClick:()=>w("/help"),children:M("Visa hjälp")})]})]})]})})};export{g as Menu,g as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,jsx as t}from"react/jsx-runtime";import{makeStyles as e,tokens as r}from"@fluentui/react-components";import{useState as i,useEffect as n}from"react";import{Link as s}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as m}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as p}from"../components/Title.js";import{Text as a}from"../components/Text.js";import{Spinner as c}from"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as l}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"
|
|
1
|
+
import{jsxs as o,jsx as t}from"react/jsx-runtime";import{makeStyles as e,tokens as r}from"@fluentui/react-components";import{useState as i,useEffect as n}from"react";import{Link as s}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as m}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as p}from"../components/Title.js";import{Text as a}from"../components/Text.js";import{Spinner as c}from"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as l}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"../components/Content.js";import"../components/Page.js";import"./QrScan.js";import"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";const d=e({container:{display:"flex",flexDirection:"column",alignItems:"center",gap:"20px",padding:"20px"},pricing:{padding:"20px",paddingLeft:"30px",border:"1px solid #ccc",borderRadius:"8px",backgroundColor:r.colorNeutralBackground1}}),j=({state:e})=>{const r=d(),[j,g]=i(!1),{service:u,stateMachine:h}=e,{updateContext:f}=h;n((()=>{new URLSearchParams(window.location.search).get("session_id")&&f({hasValidPurchase:void 0})}),[]);return o("div",{className:r.container,children:[t(p,{children:"Starta ditt abonnemang"}),t("div",{className:r.pricing,children:o("ul",{children:[t("li",{children:t(a,{size:400,children:"Kreditkort krävs inte"})}),t("li",{children:t(a,{size:400,children:"Gratis de 2 första månaderna"})}),t("li",{children:t(a,{size:400,children:"Därefter 89 kr/månad"})})]})}),t(m,{appearance:"primary",onClick:async()=>{try{g(!0),await u.redirectToCheckout(l("STRIPE_PRICE_ID"))}catch(o){console.error("Purchase error:",o)}finally{g(!1)}},disabled:j,children:j?t(c,{size:"tiny"}):"Starta abonnemang"}),t("div",{children:o(a,{size:400,children:["Har du redan ett abonnemang? Kanske har du loggat in med fel konto. ",t(s,{to:"/logout",children:"Logga ut"})," och sedan in igen för att komma igång."]})})]})};export{j as Purchase,j as default};
|
package/dist/esm/pages/Sales.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as e,Fragment as t}from"react/jsx-runtime";import{useState as n,useCallback as i,useEffect as
|
|
1
|
+
import{jsx as o,jsxs as e,Fragment as t}from"react/jsx-runtime";import{useState as n,useCallback as i,useEffect as r}from"react";import{makeStyles as s,tokens as a,shorthands as c,Image as p,mergeClasses as l}from"@fluentui/react-components";import{useNavigate as m}from"react-router-dom";import"../components/Markdown.js";import{Textarea as d}from"../components/Textarea.js";import{Button as h}from"../components/Button.js";import"../components/CompoundButton.js";import{Text as g}from"../components/Text.js";import"../components/Spinner.js";import{Input as u}from"../components/Input.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import{Dialog as j,DialogTitle as f,DialogContent as x,DialogActions as C}from"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as k}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Purchase.js";import"../components/Content.js";import{Page as b}from"../components/Page.js";import"./QrScan.js";import v from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import{QrCodeDialog as w}from"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";const _=s({root:{display:"flex",flexDirection:"column",height:"100%",touchAction:"pan-y"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",color:a.colorNeutralForegroundOnBrand,...c.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:{...c.padding("10px"),...c.borderRadius("12px"),minWidth:"50px",textAlign:"center",color:"white"},buttonContainer:{display:"flex",flexDirection:"column",height:"100%",justifyContent:"center",gap:"30px",alignItems:"center",...c.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}}),y={opened:"#1a5614",not_home:"#f44336",sales:"#2196F3",call_back:"#FF9800"},I=()=>{const s=_(),{t:c}=v(),I=m(),[P,A]=n(""),[F,B]=n(),[M,$]=n({opened:0,not_home:0,sales:0,call_back:0}),[N,D]=n([]),[S,L]=n(!1),[O,H]=n(""),[T,z]=n(""),[R,U]=n(""),[E,G]=n(!1),[W,Q]=n(!1),[V,K]=n(!1),q={backgroundColor:k("APP_HEADER_COLOR")||a.colorBrandBackground},J=i((()=>new Promise((o=>{navigator.geolocation?navigator.geolocation.getCurrentPosition((e=>{const t=`#position (${e.coords.latitude},${e.coords.longitude})`;o(t)})):o(void 0)}))),[B]);r((()=>{window.Codicent.getDataMessages({codicent:k("APP_NAME"),tags:["sales_code"]}).then((o=>{o=o.filter((o=>"1"!==o.data.inactive)),D(o)})).catch(console.error),J()}),[]);const X=async()=>{if(!P)return;const o=["not_home","sales","call_back","opened"],e=new Date;e.setHours(0,0,0,0);const t={...M};for(const n of o){const o=await window.Codicent.getMessages({search:`#${n} #sales_code_${P}`,afterTimestamp:e,length:1e4});t[n]=o.filter((o=>o.content.includes(`#${n} `)&&o.content.includes(`#sales_code_${P}`))).length}$(t)},Y=async(o,e="")=>{const t=await J();console.log("Got position",t);const n=`@${k("APP_NAME")} #sales_code_${P} #${o} ${t||""} ${e.trim().length>0?"#comment ":""}${e}`.trim();await window.Codicent.postMessage({message:n}),X()};return o(b,{hideHeader:!0,children:e("div",{className:s.root,children:[o("div",{className:s.backButton,children:o(h,{appearance:"subtle",icon:"ArrowLeft24Regular",onClick:()=>I(-1),children:c("Tillbaka")})}),e("div",{className:s.header,style:q,children:[o(p,{src:T||k("APP_ICON_URL")||"https://via.placeholder.com/100",className:s.logo,onClick:()=>{T?K(!0):R&&Q(!0)}}),o("div",{className:s.inputContainer,children:o(u,{value:P,onChange:o=>A(o.target.value),onBlur:()=>{const o=N.find((o=>o.data.code===P));if(o)z(`https://codicent.com/app/GetImage?fileId=${o.fileId}&width=100`),U(o.data.link),G(!0),X();else{const o=N.find((o=>o.data.code2===P.toUpperCase()));o?(z(`https://codicent.com/app/GetImage?fileId=${o.fileIds&&o.fileIds.length>1?o.fileIds[1]:o.fileId}&width=100`),U(o.data.link2),G(!0),X()):(G(!1),alert(c("Fel försäljningskod!")))}},placeholder:c("Fyll i försäljningskod"),maxLength:16,size:"large"})})]}),E&&e(t,{children:[o("div",{className:s.dashboard,children:Object.keys(M).map((e=>{return o("div",{className:(t=e,l(s.statBox,s[t])),children:o(g,{weight:"bold",size:400,children:M[e]})},e);var t}))}),o("div",{className:s.buttonContainer,children:Object.entries(y).map((([e,t])=>o(h,{size:"large",className:s.actionButton,style:{backgroundColor:t,color:"white"},onClick:()=>{Y(e),"opened"===e&&L(!0),"sales"===e&&Q(!0)},children:e.charAt(0).toUpperCase()+e.slice(1).replace("_"," ")},e)))}),e(j,{open:S,children:[o(f,{children:c("Skriv in avvikelse")}),o(x,{children:o("div",{className:s.textAreaContainer,children:o(d,{value:O,onChange:o=>H(o.target.value),placeholder:c("Skriv din text här..."),rows:4,size:"large"})})}),o(C,{children:o(h,{appearance:"primary",onClick:()=>{Y("anomaly",`\n${O}`),L(!1),H("")},children:c("Spara")})})]}),e(j,{open:W,children:[o(f,{children:c("Godkännande")}),o(x,{children:c("Är kunden över 23 år?")}),e(C,{children:[o(h,{appearance:"primary",onClick:()=>window.open(R,"_blank"),children:c("OK")}),o(h,{appearance:"secondary",onClick:()=>Q(!1),children:c("Avbryt")})]})]})]}),o(w,{isOpen:V,onDismiss:()=>K(!1),imageUrl:T})]})})};export{I as Sales,I as default};
|
package/dist/esm/pages/Search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as t}from"react/jsx-runtime";import{useRef as e,useState as n,useEffect as r}from"react";import{makeStyles as i,tokens as s}from"@fluentui/react-components";import a from"../components/Markdown.js";import"../components/Textarea.js";import{Button as m}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as p}from"../components/Title.js";import"../components/Spinner.js";import"../components/TextHeader.js";import c from"../components/TypingIndicator.js";import"../components/Dialog.js";import l from"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import d from"../hooks/useStateWithLocalStorage.js";import{CodicentService as j}from"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as u}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"
|
|
1
|
+
import{jsx as o,jsxs as t}from"react/jsx-runtime";import{useRef as e,useState as n,useEffect as r}from"react";import{makeStyles as i,tokens as s}from"@fluentui/react-components";import a from"../components/Markdown.js";import"../components/Textarea.js";import{Button as m}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as p}from"../components/Title.js";import"../components/Spinner.js";import"../components/TextHeader.js";import c from"../components/TypingIndicator.js";import"../components/Dialog.js";import l from"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import d from"../hooks/useStateWithLocalStorage.js";import{CodicentService as j}from"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as u}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"react-router-dom";import"./Purchase.js";import"../components/Content.js";import{Page as g}from"../components/Page.js";import"./QrScan.js";import h from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import{useChat as f}from"../hooks/useChat.js";import{useTemplateVariables as x}from"../hooks/useTemplateVariables.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";const C=i({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"}}),A=({state:i})=>{const A=C(),{t:w}=h(),{messages:T,isBotTyping:v,handleSend:_,newChat:S}=f(i.stateMachine),N=e(null),{service:b}=i;u("CHAT_BOT_BACKGROUND_COLOR")||s.colorBrandBackground2;const[k,O]=d(i.context.selectedApp+"_searchprompts",["Leta information","Vad kan jag göra?","Sök supportställe"]),[y,I]=n(),[B,M]=n(null),[P,D]=n(!1);x(b.uploadFile);r((()=>{v&&D(!0)}),[v]),r((()=>{S();const o=u("APP_CONFIG"),t=u("APP_BUTTONS");t?o.apps[t].questions&&O(o.apps[t].questions.map((o=>w(o)))):console.error("APP_BUTTONS is not defined in the configuration."),void 0!==u("ANONYMOUS_CODICENT")&&void 0!==u("ANONYMOUS_TOKEN")?(b.codicent=u("ANONYMOUS_CODICENT"),b.setToken(u("ANONYMOUS_TOKEN"))):console.error("Anonymous Codicent or Token is not defined in the configuration.")}),[S,b,O,w]),r((()=>{setTimeout((()=>{N.current?.scrollIntoView({behavior:"smooth"})}),10)}),[T]);const L=o=>{I(o),_(o)};return r((()=>{const o=T.filter((o=>"bot"===o.sender));let t=o.length>0?o[o.length-1]:null;M({...t,createdAt:new Date}),t&&D(!1)}),[T]),o(g,{hideHeader:!0,hideFooter:!0,children:t("div",{id:"search-container",className:A.chatContainer,style:{backgroundImage:`url(${u("CHAT_BACKGROUND_IMAGE_URL")})`},children:[o("div",{className:A.title,children:o(p,{children:w(u("APP_SEARCH_TITLE")||"Frågor")})}),t("div",{className:A.inputArea,children:[o(l,{noMemory:!0,defaultText:y,codicent:i.context.selectedApp,disableSend:v,onSend:L,rows:3,getImageUrl:j.getImageUrl,getFileInfo:o=>b.getFileInfo(o),selectAll:!0}),o("div",{className:A.promptButtons,children:k.length>0&&k.map(((t,e)=>o(m,{onClick:()=>L(t),size:"large",appearance:"primary",shape:"circular",children:t},`search-prompt-${e}`)))}),P&&o(c,{}),B&&!v&&t("div",{className:A.answerArea,children:[o("div",{ref:N}),o(a,{content:B.content})]})]})]})})};export{A as default};
|
package/dist/esm/pages/Snap.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as e,useRef as i,useMemo as n,useCallback as r,useEffect as s}from"react";import{makeStyles as a}from"@fluentui/react-components";import{useSearchParams as p,useNavigate as m}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{Text as c}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import{CombinedPlaceholderDialog as l}from"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../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"
|
|
1
|
+
import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as e,useRef as i,useMemo as n,useCallback as r,useEffect as s}from"react";import{makeStyles as a}from"@fluentui/react-components";import{useSearchParams as p,useNavigate as m}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{Text as c}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import{CombinedPlaceholderDialog as l}from"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../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"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import"../components/Content.js";import"../components/Page.js";import"./QrScan.js";import d from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import{useTemplateVariables as u}from"../hooks/useTemplateVariables.js";import"../hooks/useAppStyles.js";import h from"../components/MessageInput.js";import"../components/UploadFile.js";import g from"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";const j=a({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"}}),f=({state:a,audio:f})=>{const w=j(),{service:x}=a,[b,v]=e(null),[C,y]=e(!0),k=i(null),I=i(null),[F]=p(),S=F.get("extra"),z=F.get("template"),[M,T]=e(""),[P]=e("log"),V=n((()=>new Audio("/audio/camera.mp3")),[]),[B,$]=e(!1),E=m(),{t:L}=d(),{extractTemplateVariables:N}=u(x.uploadFile),[_,D]=e(N(z||"")),[H,A]=e(_.length>0),[O,R]=e(""),[Q,U]=e(100),W=r((()=>_.map((o=>`#${o.value}`)).join(" ")),[_]);s((()=>{const o=W();R(`${S?" #"+S:""}${o.length>0?" "+o:""}`.trim())}),[_,S,W]),s((()=>{if(window.visualViewport){const o=()=>{const o=window.visualViewport?window.innerHeight-window.visualViewport.height:0;U(o>150?o+20:100)};return window.visualViewport.addEventListener("resize",o),o(),()=>{window.visualViewport&&window.visualViewport.removeEventListener("resize",o)}}}),[]);const K=async o=>{try{const t=new FormData;t.append("file",o);const e=await x.uploadFile(o.name,t),i=W(),n=`${P?" #"+P:""}${S?" #"+S:""}${i.length>0?" "+i:""} #photo #file:${e}`;await x.sendMessage(n)}catch(o){alert(L("Failed to send image:")+" "+o)}};return s((()=>()=>{b&&b.getTracks().forEach((o=>o.stop()))}),[b]),o("div",{className:w.container,children:[t("div",{className:w.flashOverlay,style:{backgroundColor:B?"#ffffff":"transparent"}}),t("video",{ref:k,autoPlay:!0,playsInline:!0,className:w.video}),t("canvas",{ref:I,width:"640",height:"480",className:w.canvas}),!b&&t(c,{weight:"semibold",size:400,className:w.centerText,children:L("Klicka på Byt kamera för att starta!")}),t("div",{className:w.bottomControls,style:{bottom:`${Q}px`},children:t("div",{className:w.controlContainer,children:t(h,{onSend:async()=>{if(""===M.trim())return;const o=W(),t=`${P?" #"+P:""}${S?" #"+S:""}${o.length>0?" "+o:""} ${M}`;try{await x.sendMessage(t),T("")}catch(o){alert(L("Failed to send message: ")+o)}},rows:4,onChange:T})})}),t("div",{className:w.bottomButtons,children:t(g,{audio:f,onHome:()=>E("/"),onTakePhoto:()=>{const o=I.current,t=k.current;if(o&&t){o.width=t.videoWidth,o.height=t.videoHeight;const e=o.getContext("2d");e&&(V.play(),$(!0),setTimeout((()=>$(!1)),100),e.drawImage(t,0,0,o.width,o.height),o.toBlob((o=>{if(o){const t=new File([o],"snapshot.png",{type:"image/png"});K(t)}})))}},onSwichCamera:()=>{y((o=>!o)),(async()=>{b&&b.getTracks().forEach((o=>o.stop()));const o={video:{facingMode:C?"user":"environment"},audio:!1};try{const t=await navigator.mediaDevices.getUserMedia(o);v(t),k.current&&(k.current.srcObject=t,k.current.play())}catch(o){console.error("Error accessing the camera: ",o),o instanceof Error?alert(L("Error accessing the camera:")+" "+o.message):alert(L("Error accessing the camera"))}})()},tag:O})}),t(l,{open:H,templateVariables:_,filePlaceholders:[],onTemplateVariablesChange:D,onFilePlaceholdersChange:()=>{},onConfirm:()=>A(!1),onCancel:()=>{A(!1),E(-1)},uploadFile:x.uploadFile})]})};export{f as default};
|