codicent-app-sdk 0.4.0 → 0.4.2
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/bootstrap.js +1 -1
- package/dist/cjs/components/AiInput.js +1 -1
- package/dist/cjs/components/AudioIcon.js +1 -1
- package/dist/cjs/components/BulkUploadDialog.js +1 -1
- package/dist/cjs/components/Button.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/CompoundButton.js +1 -1
- package/dist/cjs/components/Content.js +1 -1
- package/dist/cjs/components/Dialog.js +1 -1
- package/dist/cjs/components/FileThumbnail.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/Input.js +1 -1
- package/dist/cjs/components/Label.js +1 -1
- package/dist/cjs/components/LanguageSelector.js +1 -1
- package/dist/cjs/components/ListView.js +1 -1
- package/dist/cjs/components/Markdown.js +1 -1
- package/dist/cjs/components/MessageInput.js +1 -1
- package/dist/cjs/components/MessageItem.js +1 -1
- package/dist/cjs/components/OfflineMessage.js +1 -1
- package/dist/cjs/components/Page.js +1 -1
- package/dist/cjs/components/Profile.js +1 -1
- package/dist/cjs/components/Prompt.js +1 -1
- package/dist/cjs/components/QrCodeDialog.js +1 -1
- package/dist/cjs/components/QrScanner.js +1 -1
- package/dist/cjs/components/RecordModal.js +1 -1
- package/dist/cjs/components/SearchBox.js +1 -1
- package/dist/cjs/components/SnapFooter.js +1 -1
- package/dist/cjs/components/Spinner.js +1 -1
- package/dist/cjs/components/Text.js +1 -1
- package/dist/cjs/components/TextHeader.js +1 -1
- package/dist/cjs/components/Textarea.js +1 -1
- package/dist/cjs/components/Title.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/useAppStyles.js +1 -1
- package/dist/cjs/hooks/useAuthState.js +1 -1
- package/dist/cjs/hooks/useCodicentState.js +1 -1
- package/dist/cjs/hooks/useToaster.js +1 -1
- package/dist/cjs/node_modules/@fluentui/keyboard-keys/lib/keys.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-calendar-compat/lib/components/Calendar/calendarNavigationIcons.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-combobox/lib/components/Combobox/useCombobox.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-combobox/lib/components/Option/useOption.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-datepicker-compat/lib/components/DatePicker/useDatePicker.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-field/lib/contexts/FieldContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-shared-contexts/lib/CustomStyleHooksContext/CustomStyleHooksContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-shared-contexts/lib/OverridesContext/OverridesContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-shared-contexts/lib/ProviderContext/ProviderContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-shared-contexts/lib/ThemeClassNameContext/ThemeClassNameContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-tabster/lib/focus/constants.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-timepicker-compat/lib/components/TimePicker/useTimePicker.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-utilities/lib/ssr/SSRContext.js +1 -1
- package/dist/cjs/node_modules/@griffel/core/constants.esm.js +1 -1
- package/dist/cjs/node_modules/@griffel/react/TextDirectionContext.esm.js +1 -1
- package/dist/cjs/node_modules/tabster/dist/tabster.esm.js +17 -21
- 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/HtmlViewer.js +1 -1
- package/dist/cjs/pages/ImageView.js +1 -1
- package/dist/cjs/pages/Login.js +1 -1
- package/dist/cjs/pages/Purchase.js +1 -1
- package/dist/cjs/pages/QrScan.js +1 -1
- package/dist/cjs/pages/Sales.js +1 -1
- package/dist/cjs/pages/SchemaEditor.js +1 -1
- package/dist/cjs/pages/Search.js +1 -1
- package/dist/cjs/pages/Snap.js +1 -1
- package/dist/esm/bootstrap.js +1 -1
- package/dist/esm/components/AiInput.js +1 -1
- package/dist/esm/components/AudioIcon.js +1 -1
- package/dist/esm/components/BulkUploadDialog.js +1 -1
- package/dist/esm/components/Button.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/CompoundButton.js +1 -1
- package/dist/esm/components/Content.js +1 -1
- package/dist/esm/components/Dialog.js +1 -1
- package/dist/esm/components/FileThumbnail.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/Input.js +1 -1
- package/dist/esm/components/Label.js +1 -1
- package/dist/esm/components/LanguageSelector.js +1 -1
- package/dist/esm/components/ListView.js +1 -1
- package/dist/esm/components/Markdown.js +1 -1
- package/dist/esm/components/MessageInput.js +1 -1
- package/dist/esm/components/MessageItem.js +1 -1
- package/dist/esm/components/OfflineMessage.js +1 -1
- package/dist/esm/components/Page.js +1 -1
- package/dist/esm/components/Profile.js +1 -1
- package/dist/esm/components/Prompt.js +1 -1
- package/dist/esm/components/QrCodeDialog.js +1 -1
- package/dist/esm/components/QrScanner.js +1 -1
- package/dist/esm/components/RecordModal.js +1 -1
- package/dist/esm/components/SearchBox.js +1 -1
- package/dist/esm/components/SnapFooter.js +1 -1
- package/dist/esm/components/Spinner.js +1 -1
- package/dist/esm/components/Text.js +1 -1
- package/dist/esm/components/TextHeader.js +1 -1
- package/dist/esm/components/Textarea.js +1 -1
- package/dist/esm/components/Title.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/useAppStyles.js +1 -1
- package/dist/esm/hooks/useAuthState.js +1 -1
- package/dist/esm/hooks/useCodicentState.js +1 -1
- package/dist/esm/hooks/useToaster.js +1 -1
- package/dist/esm/node_modules/@fluentui/keyboard-keys/lib/keys.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-calendar-compat/lib/components/Calendar/calendarNavigationIcons.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-combobox/lib/components/Combobox/useCombobox.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-combobox/lib/components/Listbox/useListbox.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-combobox/lib/components/Option/useOption.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-combobox/lib/contexts/useListboxContextValues.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-datepicker-compat/lib/components/DatePicker/useDatePicker.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-field/lib/contexts/FieldContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-shared-contexts/lib/CustomStyleHooksContext/CustomStyleHooksContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-shared-contexts/lib/OverridesContext/OverridesContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-shared-contexts/lib/ProviderContext/ProviderContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-shared-contexts/lib/ThemeClassNameContext/ThemeClassNameContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-tabster/lib/focus/constants.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-tabster/lib/hooks/useArrowNavigationGroup.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-timepicker-compat/lib/components/TimePicker/useTimePicker.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-utilities/lib/ssr/SSRContext.js +1 -1
- package/dist/esm/node_modules/@griffel/core/constants.esm.js +1 -1
- package/dist/esm/node_modules/@griffel/react/TextDirectionContext.esm.js +1 -1
- package/dist/esm/node_modules/tabster/dist/tabster.esm.js +17 -21
- 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/HtmlViewer.js +1 -1
- package/dist/esm/pages/ImageView.js +1 -1
- package/dist/esm/pages/Login.js +1 -1
- package/dist/esm/pages/Purchase.js +1 -1
- package/dist/esm/pages/QrScan.js +1 -1
- package/dist/esm/pages/Sales.js +1 -1
- package/dist/esm/pages/SchemaEditor.js +1 -1
- package/dist/esm/pages/Search.js +1 -1
- package/dist/esm/pages/Snap.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),o=require("react"),r=require("react-router-dom"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),o=require("react"),r=require("@fluentui/react-components"),t=require("react-router-dom"),n=require("../config/index.js");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js");var i=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons");var a=require("../services/codicent.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js");var s=require("../utils/device.js");require("./AppFrame.js"),require("./Chat.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("../components/Content.js");var l=require("../components/Page.js");require("./QrScan.js");var u=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var c=require("../hooks/useToaster.js"),d=require("../components/MessageInput.js"),p=require("../components/UploadFile.js");require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js");const g=r.makeStyles({main:{flexGrow:1,...r.shorthands.padding("10px"),overflowY:"auto"},container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%"},root:{height:"100%"},item:{height:"auto",width:"auto",flexShrink:1,marginBottom:"1rem"},chat:{flexGrow:1,boxSizing:"border-box",overflow:"hidden",border:"none"},attachmentBar:{display:"none"},iconButton:{width:"24px",height:"24px"},imageCard:{alignContent:"center",borderRadius:r.tokens.borderRadiusLarge,height:"240px",textAlign:"left",position:"relative"}}),m=({state:r})=>{const m=g(),{t:j}=u.default(),[q,h]=o.useState(!1),f=o.useRef(null),S=o.useRef(null),v=o.useRef(null),[C,x]=o.useState(null),[P,b]=o.useState([]),{service:_}=r,[I,w]=t.useSearchParams(),[F,M]=o.useState(void 0),[U,E]=o.useState(),y=c.default(),A=t.useNavigate(),L=o.useCallback((e=>{for(const o of e)_.getFileInfo(o).then((e=>{b((o=>[...o,e]))}))}),[_,b]),k=o.useCallback((e=>{const o=new FormData;o.append("file",e),_.uploadFile(e.name,o).then((e=>{L([e])})).catch((()=>{y.notify(j("Error"),j("Error uploading pasted image"),"")}))}),[_,L,y,j]),T=e=>{h(e)};o.useEffect((()=>{const e=I.get("text"),o=I.get("url"),r=I.get("parentId");e&&(M(e),I.delete("text")),r&&(E(r),I.delete("parentId")),o&&(I.delete("url"),M(((e||"")+" "+o).trim())),w(I,{replace:!0})}),[I,w,M,_,L]);return e.jsx(l.Page,{hideHeader:!0,children:e.jsxs("div",{className:m.container,style:{backgroundImage:`url(${n.getConfigValue("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:[e.jsx(i.default,{title:n.getConfigValue("APP_SAVE_TITLE")?j(n.getConfigValue("APP_SAVE_TITLE")):j("Spara")}),e.jsx(d.default,{disableSend:!0,defaultText:F,onSend:e=>{e=`${e}${C?" "+C:""}${P.length>0?"\n":""}${P.map((e=>`#file:${e.id}`)).join(" ")}`,_.sendMessage(e,U).then((()=>{y.notify(j("Meddelande"),j("Meddelandet är sparat."),""),U&&(E(void 0),A(-1))}))},files:P,onFilesChange:b,isUploading:q,onHandleDefaultFiles:L,onUploadFile:()=>{f.current?.triggerUpload(),console.log("attach-file")},onUploadImage:n.getConfigValue("COMPOSE_SIMPLE_ATTACH_FILE")?void 0:()=>{S.current?.triggerUpload(),console.log("attach-image")},onUploadCamera:n.getConfigValue("COMPOSE_SIMPLE_ATTACH_FILE")?void 0:()=>{v.current?.triggerUpload(),console.log("attach-camera")},getImageUrl:a.CodicentService.getImageUrl,onLocationChange:n.getConfigValue("COMPOSE_HIDE_LOCATION")?void 0:e=>{e?(async()=>{console.log("attach-location");const e=await s.getGpsLocation();e?(y.notify(j("Position"),j("Position tillagd."),""),x(`#gps(${e.coords.latitude},${e.coords.longitude})`)):console.log("Failed to get GPS location")})():(x(null),y.notify(j("Position"),j("Position borttagen."),""),console.log("clear-location"))},hasLocation:!!C,onImagePasted:k}),e.jsx(p.default,{ref:f,onFileUploaded:L,onUploading:T,multiple:!0,codicentService:_}),e.jsx(p.default,{codicentService:_,ref:S,onFileUploaded:L,onUploading:T,multiple:!0,accept:"image/*"}),e.jsx(p.default,{codicentService:_,ref:v,onFileUploaded:L,onUploading:T,multiple:!0,accept:"image/*",capture:"environment"})]})})};exports.Compose=m,exports.default=m;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),n=require("../services/codicent.js");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),n=require("@fluentui/react-components"),t=require("@fluentui/react-icons"),o=require("../services/codicent.js");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js");var a=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js");var s=require("../components/VoiceIcon.js"),i=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var u=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("../components/FileThumbnail.js");var l=require("../components/MessageInput.js"),c=require("../components/UploadFile.js");require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/Content.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var d=require("../components/Page.js");require("../components/QrCodeDialog.js"),require("../components/QrScanner.js");var m=require("../hooks/useLocalization.js");require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("./AppFrame.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("./QrScan.js"),require("react-dom/client");var p=require("react-router-dom");require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var j=require("../hooks/useToaster.js"),g=require("../node_modules/lodash/lodash.js");const h=n.makeStyles({main:{flexGrow:1,...n.shorthands.padding("10px"),overflowY:"auto"},container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%",position:"relative"},root:{height:"100%"},item:{height:"auto",width:"auto",flexShrink:1,marginBottom:"1rem"},chat:{flexGrow:1,boxSizing:"border-box",overflow:"hidden",border:"none"},attachmentBar:{display:"none"},iconButton:{width:"24px",height:"24px"},imageCard:{alignContent:"center",borderRadius:n.tokens.borderRadiusLarge,height:"240px",textAlign:"left",position:"relative"},review:{padding:"10px",wordBreak:"break-word",whiteSpace:"pre-line",maxWidth:"100%",overflowWrap:"break-word"},voiceIcon:{position:"absolute",top:"20px",right:"12px",zIndex:1001,cursor:"pointer"},backButton:{marginBottom:"10px"}}),f=({state:f,voice:q})=>{const v=h(),{t:x}=m.default(),S=p.useNavigate(),[k,b]=r.useState(!1),w=r.useRef(null),C=r.useRef(null),y=r.useRef(null),[I]=r.useState(null),[_,M]=r.useState([]),{service:B}=f,[P,U]=p.useSearchParams(),[A,E]=r.useState(""),[N,T]=r.useState(void 0),F=j.default(),[R,V]=r.useState(void 0),[L,O]=r.useState("info"),$=r.useCallback((e=>{for(const r of e)B.getFileInfo(r).then((e=>{M((r=>[...r,e]))}))}),[B,M]),D=r.useCallback((e=>{const r=new FormData;r.append("file",e),B.uploadFile(e.name,r).then((e=>{$([e])})).catch((()=>{F.notify(x("Error"),x("Error uploading pasted image"),"")}))}),[B,$,F,x]),H=e=>{b(e)};r.useEffect((()=>{const e=P.get("text"),r=P.get("url");e&&(E(e),P.delete("text")),r&&(P.delete("url"),E(((e||"")+" "+r).trim())),U(P,{replace:!0})}),[P,U,E,B,$]);const z=r.useCallback((async e=>{if(!e||e.length<10)return;V(x("Analyserar...")),O("info");const r=await B.chat((e=>`Skapa kort ja/nej-status över hur CRM-aktiviteten som följer, givet dessa punkter: \n1. Namn på kunden finns med? ja/nej \n2. Syftet med mötet finns (varför träffar du kunden, kan täckas av 3 nedan) ja/nej\n3. Vad som framkommer under mötet (viktiga punkter och diskussioner) ja/nej\n4. Nästa steg finns med (hur ni kommer att träffas igen, och om något har sålts) ja/nej. \n\nSvara endast med ja/nej för varje punkt, ett svar per rad i följande exempel i JSON-format:\n{\n "customerName": "true",\n "purpose": "false",\n "meetingNotes": "true",\n "nextSteps": "false",\n "shortSummary": "Syfte med mötet och nästa steg saknas."\n}\n\n---\nTEXT:\n\n${e}`)(e));if(r){const e=new i.default(r.content);try{const r=JSON.parse(e.content);console.log("json",r);let n=0;for(const e in r)"true"===r[e]&&n++;V(x(4===n?"Allt är med":r.shortSummary||"Något saknas")),O(4===n?"success":"warning")}catch{V("Error: "+e.content),O("error")}}}),[B]),G=r.useMemo((()=>g.lodashExports.debounce(z,2e3)),[z]);return r.useEffect((()=>()=>{G.cancel()}),[G]),e.jsx(d.Page,{hideHeader:!0,children:e.jsxs("div",{className:v.container,style:{backgroundImage:`url(${u.getConfigValue("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:[q&&u.getConfigValue("SHOW_VOICE_BUTTON")&&e.jsx("div",{className:v.voiceIcon,children:e.jsx(s.default,{voice:q})}),e.jsx("div",{className:v.backButton,children:e.jsx(n.Button,{appearance:"subtle",icon:e.jsx(t.ArrowLeft24Regular,{}),onClick:()=>S(-1),children:x("Tillbaka")})}),e.jsx(a.default,{title:u.getConfigValue("APP_SAVE_TITLE")?x(u.getConfigValue("APP_SAVE_TITLE")):x("Spara")}),e.jsx(l.default,{defaultText:A,onSend:e=>{e=`${e=`#crm\n${e.replace("#log ","")}\nSALESPERSON: ${f.context.name||f.context.user?.email||f.context.nickname||"-"}`}${I?" "+I:""}${_.length>0?"\n":""}${_.map((e=>`#file:${e.id}`)).join(" ")}`,B.sendMessage(e).then((()=>{F.notify(x("Meddelande"),x("Meddelandet är sparat."),"")}))},files:_,onFilesChange:M,isUploading:k,onUploadImage:()=>{C.current?.triggerUpload()},onUploadCamera:()=>{y.current?.triggerUpload()},getImageUrl:o.CodicentService.getImageUrl,hasLocation:!!I,disableSend:!0,rows:9,placeholder:x("Beskriv CRM-aktivitet här..."),onChange:e=>{e!==N&&(T(e),e&&e.trim().length>0?G(e):(V(void 0),G.cancel()))},onImagePasted:D}),R&&e.jsxs("div",{className:v.review,children:[e.jsx("h3",{children:x("Analys")}),e.jsx(n.MessageBar,{intent:L,layout:"multiline",children:e.jsx(n.MessageBarBody,{children:x(R)})})]}),e.jsx(c.default,{ref:w,onFileUploaded:$,onUploading:H,multiple:!0,codicentService:B}),e.jsx(c.default,{codicentService:B,ref:C,onFileUploaded:$,onUploading:H,multiple:!0,accept:"image/*"}),e.jsx(c.default,{codicentService:B,ref:y,onFileUploaded:$,onUploading:H,multiple:!0,accept:"image/*",capture:"environment"})]})})};exports.CrmPage=f,exports.default=f;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("../services/codicent.js");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js");var o=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js");var n=require("../components/VoiceIcon.js"),s=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var a=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js");var i=require("../utils/device.js");require("../components/FileThumbnail.js");var l=require("../components/MessageInput.js"),c=require("../components/UploadFile.js");require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/Content.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var u=require("../components/Page.js");require("../components/QrCodeDialog.js"),require("../components/QrScanner.js");var d=require("../hooks/useLocalization.js");require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("./AppFrame.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("./QrScan.js"),require("react-dom/client");var p=require("react-router-dom");require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var m=require("../hooks/useToaster.js"),g=require("../node_modules/lodash/lodash.js"),h=require("../node_modules/@griffel/react/makeStyles.esm.js"),j=require("../node_modules/@griffel/core/index.esm.js"),f=require("../node_modules/@fluentui/tokens/lib/tokens.js"),x=require("../node_modules/@fluentui/react-text/lib/components/Text/Text.js"),q=require("../node_modules/@fluentui/react-spinner/lib/components/Spinner/Spinner.js"),S=require("../node_modules/@fluentui/react-card/lib/components/Card/Card.js"),v=require("../node_modules/@fluentui/react-button/lib/components/Button/Button.js"),k=require("../node_modules/@fluentui/react-message-bar/lib/components/MessageBar/MessageBar.js"),y=require("../node_modules/@fluentui/react-message-bar/lib/components/MessageBarBody/MessageBarBody.js"),b=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-1.js");const C=h.makeStyles({main:{flexGrow:1,...j.shorthands.padding("10px"),overflowY:"auto"},container:{display:"flex",flexDirection:"row",height:"100%",...j.shorthands.gap("16px"),...j.shorthands.padding("10px")},containerMobile:{display:"flex",flexDirection:"column",height:"100%",...j.shorthands.gap("16px"),...j.shorthands.padding("10px")},inputSection:{display:"flex",flexDirection:"column",flexGrow:1,maxWidth:"640px",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",position:"relative"},inputSectionMobile:{display:"flex",flexDirection:"column",width:"100%",position:"relative"},historySection:{flexBasis:"300px",flexShrink:0,display:"flex",flexDirection:"column",...j.shorthands.gap("8px"),overflowY:"auto",...j.shorthands.padding("8px")},historySectionMobile:{display:"flex",flexDirection:"column",...j.shorthands.gap("8px"),overflowY:"auto",...j.shorthands.padding("8px"),maxHeight:"300px"},historyCard:{...j.shorthands.padding("12px"),cursor:"pointer","&:hover":{backgroundColor:f.tokens.colorNeutralBackground1Hover}},historyCardContent:{display:"flex",flexDirection:"column",...j.shorthands.gap("4px")},historyDate:{fontSize:f.tokens.fontSizeBase200,color:f.tokens.colorNeutralForeground3},historyText:{fontSize:f.tokens.fontSizeBase300,wordBreak:"break-word",whiteSpace:"pre-wrap",maxHeight:"100px",overflow:"hidden",textOverflow:"ellipsis"},review:{padding:"10px",wordBreak:"break-word",whiteSpace:"pre-line",maxWidth:"100%",overflowWrap:"break-word"},voiceIcon:{position:"absolute",top:"20px",right:"12px",zIndex:1001,cursor:"pointer"},historyTitle:{fontSize:f.tokens.fontSizeBase400,fontWeight:f.tokens.fontWeightSemibold,marginBottom:"8px"},emptyState:{textAlign:"center",color:f.tokens.colorNeutralForeground3,padding:"20px"},backButton:{marginBottom:"10px"}}),w=({state:h,voice:j})=>{const f=C(),{t:w}=d.default(),M=p.useNavigate(),[B,_]=r.useState(!1),N=r.useRef(null),T=r.useRef(null),I=r.useRef(null),[E]=r.useState(null),[D,P]=r.useState([]),{service:A}=h,[U,F]=p.useSearchParams(),[$,R]=r.useState(""),[O,L]=r.useState(void 0),V=m.default(),[z,H]=r.useState(void 0),[W,G]=r.useState("info"),[J,Q]=r.useState([]),[Y,K]=r.useState(!1),X=i.isMobileDevice(),Z=r.useCallback((e=>{for(const r of e)A.getFileInfo(r).then((e=>{P((r=>[...r,e]))}))}),[A,P]),ee=r.useCallback((e=>{const r=new FormData;r.append("file",e),A.uploadFile(e.name,r).then((e=>{Z([e])})).catch((()=>{V.notify(w("Error"),w("Error uploading pasted image"),"")}))}),[A,Z,V,w]),re=e=>{_(e)},te=r.useCallback((async()=>{K(!0);try{const e=await A.getMessages(["crm"]);Q(e)}catch(e){console.error("Error loading CRM messages:",e),V.notify(w("Error"),w("Failed to load CRM messages"),"","error")}finally{K(!1)}}),[A,V,w]);r.useEffect((()=>{te()}),[te]),r.useEffect((()=>{const e=U.get("text"),r=U.get("url");e&&(R(e),U.delete("text")),r&&(U.delete("url"),R(((e||"")+" "+r).trim())),F(U,{replace:!0})}),[U,F,R,A,Z]);const oe=e=>{e=`${e=`#crm\n${e.replace("#log ","")}\nSALESPERSON: ${h.context.name||h.context.user?.email||h.context.nickname||"-"}`}${E?" "+E:""}${D.length>0?"\n":""}${D.map((e=>`#file:${e.id}`)).join(" ")}`,A.sendMessage(e).then((()=>{V.notify(w("Meddelande"),w("Meddelandet är sparat."),""),te(),L(""),H(void 0)}))},ne=r.useCallback((async e=>{if(!e||e.length<10)return;H(w("Analyserar...")),G("info");const r=await A.chat((e=>`Skapa kort ja/nej-status över hur CRM-aktiviteten som följer, givet dessa punkter: \n1. Namn på kunden finns med? ja/nej \n2. Syftet med mötet finns (varför träffar du kunden, kan täckas av 3 nedan) ja/nej\n3. Vad som framkommer under mötet (viktiga punkter och diskussioner) ja/nej\n4. Nästa steg finns med (hur ni kommer att träffas igen, och om något har sålts) ja/nej. \n\nSvara endast med ja/nej för varje punkt, ett svar per rad i följande exempel i JSON-format:\n{\n "customerName": "true",\n "purpose": "false",\n "meetingNotes": "true",\n "nextSteps": "false",\n "shortSummary": "Syfte med mötet och nästa steg saknas."\n}\n\n---\nTEXT:\n\n${e}`)(e));if(r){const e=new s.default(r.content);try{const r=JSON.parse(e.content);console.log("json",r);let t=0;for(const e in r)"true"===r[e]&&t++;H(w(4===t?"Allt är med":r.shortSummary||"Något saknas")),G(4===t?"success":"warning")}catch{H("Error: "+e.content),G("error")}}}),[A,w]),se=r.useMemo((()=>g.lodashExports.debounce(ne,2e3)),[ne]);r.useEffect((()=>()=>{se.cancel()}),[se]);const ae=e=>{const r=new Date,t=new Date(e),o=r.getTime()-t.getTime(),n=Math.floor(o/6e4),s=Math.floor(o/36e5),a=Math.floor(o/864e5);return n<1?w("Just now"):n<60?`${n} ${w("minutes ago")}`:s<24?`${s} ${w("hours ago")}`:a<7?`${a} ${w("days ago")}`:t.toLocaleDateString()},ie=e=>{const r=e.split("\n").filter((e=>!e.startsWith("#")&&!e.startsWith("SALESPERSON:")&&e.trim().length>0)).join("\n");return r.substring(0,150)+(r.length>150?"...":"")},le=()=>e.jsxs("div",{className:X?f.historySectionMobile:f.historySection,children:[e.jsx(x.Text,{className:f.historyTitle,children:w("Tidigare sparade")}),Y?e.jsx("div",{className:f.emptyState,children:e.jsx(q.Spinner,{size:"small"})}):0===J.length?e.jsx("div",{className:f.emptyState,children:e.jsx(x.Text,{children:w("Inga sparade meddelanden än")})}):J.map((r=>e.jsx(S.Card,{className:f.historyCard,onClick:()=>(e=>{const r=ie(e.content);L(r)})(r),children:e.jsxs("div",{className:f.historyCardContent,children:[e.jsx(x.Text,{className:f.historyDate,children:ae(r.createdAt)}),e.jsx(x.Text,{className:f.historyText,children:ie(r.content)})]})},r.id)))]});return e.jsx(u.Page,{hideHeader:!0,children:e.jsxs("div",{className:X?f.containerMobile:f.container,children:[!X&&le(),e.jsxs("div",{className:X?f.inputSectionMobile:f.inputSection,style:X?void 0:{backgroundImage:`url(${a.getConfigValue("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:[j&&a.getConfigValue("SHOW_VOICE_BUTTON")&&e.jsx("div",{className:f.voiceIcon,children:e.jsx(n.default,{voice:j})}),e.jsx("div",{className:f.backButton,children:e.jsx(v.Button,{appearance:"subtle",icon:e.jsx(b.ArrowLeft24Regular,{}),onClick:()=>M(-1),children:w("Tillbaka")})}),e.jsx(o.default,{title:a.getConfigValue("APP_SAVE_TITLE")?w(a.getConfigValue("APP_SAVE_TITLE")):w("Spara")}),e.jsx(l.default,{defaultText:$,onSend:oe,files:D,onFilesChange:P,isUploading:B,onUploadImage:()=>{T.current?.triggerUpload()},onUploadCamera:()=>{I.current?.triggerUpload()},getImageUrl:t.CodicentService.getImageUrl,hasLocation:!!E,disableSend:!0,rows:9,placeholder:w("Beskriv CRM-aktivitet här..."),onChange:e=>{e!==O&&(L(e),e&&e.trim().length>0?se(e):(H(void 0),se.cancel()))},onImagePasted:ee}),z&&e.jsxs("div",{className:f.review,children:[e.jsx("h3",{children:w("Analys")}),e.jsx(k.MessageBar,{intent:W,layout:"multiline",children:e.jsx(y.MessageBarBody,{children:w(z)})})]}),e.jsx(c.default,{ref:N,onFileUploaded:Z,onUploading:re,multiple:!0,codicentService:A}),e.jsx(c.default,{codicentService:A,ref:T,onFileUploaded:Z,onUploading:re,multiple:!0,accept:"image/*"}),e.jsx(c.default,{codicentService:A,ref:I,onFileUploaded:Z,onUploading:re,multiple:!0,accept:"image/*",capture:"environment"})]}),X&&le()]})})};exports.CrmPagePersistent=w,exports.default=w;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("@fluentui/react-components"),o=require("@fluentui/react-icons"),n=require("../services/codicent.js");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js");var s=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js");var a=require("../components/VoiceIcon.js"),i=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var l=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js");var c=require("../utils/device.js");require("../components/FileThumbnail.js");var u=require("../components/MessageInput.js"),d=require("../components/UploadFile.js");require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/Content.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var p=require("../components/Page.js");require("../components/QrCodeDialog.js"),require("../components/QrScanner.js");var m=require("../hooks/useLocalization.js");require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("./AppFrame.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("./QrScan.js"),require("react-dom/client");var h=require("react-router-dom");require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var g=require("../hooks/useToaster.js"),j=require("../node_modules/lodash/lodash.js");const f=t.makeStyles({main:{flexGrow:1,...t.shorthands.padding("10px"),overflowY:"auto"},container:{display:"flex",flexDirection:"row",height:"100%",...t.shorthands.gap("16px"),...t.shorthands.padding("10px")},containerMobile:{display:"flex",flexDirection:"column",height:"100%",...t.shorthands.gap("16px"),...t.shorthands.padding("10px")},inputSection:{display:"flex",flexDirection:"column",flexGrow:1,maxWidth:"640px",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",position:"relative"},inputSectionMobile:{display:"flex",flexDirection:"column",width:"100%",position:"relative"},historySection:{flexBasis:"300px",flexShrink:0,display:"flex",flexDirection:"column",...t.shorthands.gap("8px"),overflowY:"auto",...t.shorthands.padding("8px")},historySectionMobile:{display:"flex",flexDirection:"column",...t.shorthands.gap("8px"),overflowY:"auto",...t.shorthands.padding("8px"),maxHeight:"300px"},historyCard:{...t.shorthands.padding("12px"),cursor:"pointer","&:hover":{backgroundColor:t.tokens.colorNeutralBackground1Hover}},historyCardContent:{display:"flex",flexDirection:"column",...t.shorthands.gap("4px")},historyDate:{fontSize:t.tokens.fontSizeBase200,color:t.tokens.colorNeutralForeground3},historyText:{fontSize:t.tokens.fontSizeBase300,wordBreak:"break-word",whiteSpace:"pre-wrap",maxHeight:"100px",overflow:"hidden",textOverflow:"ellipsis"},review:{padding:"10px",wordBreak:"break-word",whiteSpace:"pre-line",maxWidth:"100%",overflowWrap:"break-word"},voiceIcon:{position:"absolute",top:"20px",right:"12px",zIndex:1001,cursor:"pointer"},historyTitle:{fontSize:t.tokens.fontSizeBase400,fontWeight:t.tokens.fontWeightSemibold,marginBottom:"8px"},emptyState:{textAlign:"center",color:t.tokens.colorNeutralForeground3,padding:"20px"},backButton:{marginBottom:"10px"}}),x=({state:x,voice:v})=>{const S=f(),{t:q}=m.default(),k=h.useNavigate(),[y,w]=r.useState(!1),C=r.useRef(null),b=r.useRef(null),M=r.useRef(null),[N]=r.useState(null),[T,B]=r.useState([]),{service:I}=x,[E,_]=h.useSearchParams(),[D,P]=r.useState(""),[A,U]=r.useState(void 0),F=g.default(),[$,R]=r.useState(void 0),[O,L]=r.useState("info"),[V,z]=r.useState([]),[H,W]=r.useState(!1),G=c.isMobileDevice(),J=r.useCallback((e=>{for(const r of e)I.getFileInfo(r).then((e=>{B((r=>[...r,e]))}))}),[I,B]),Q=r.useCallback((e=>{const r=new FormData;r.append("file",e),I.uploadFile(e.name,r).then((e=>{J([e])})).catch((()=>{F.notify(q("Error"),q("Error uploading pasted image"),"")}))}),[I,J,F,q]),Y=e=>{w(e)},K=r.useCallback((async()=>{W(!0);try{const e=await I.getMessages(["crm"]);z(e)}catch(e){console.error("Error loading CRM messages:",e),F.notify(q("Error"),q("Failed to load CRM messages"),"","error")}finally{W(!1)}}),[I,F,q]);r.useEffect((()=>{K()}),[K]),r.useEffect((()=>{const e=E.get("text"),r=E.get("url");e&&(P(e),E.delete("text")),r&&(E.delete("url"),P(((e||"")+" "+r).trim())),_(E,{replace:!0})}),[E,_,P,I,J]);const X=e=>{e=`${e=`#crm\n${e.replace("#log ","")}\nSALESPERSON: ${x.context.name||x.context.user?.email||x.context.nickname||"-"}`}${N?" "+N:""}${T.length>0?"\n":""}${T.map((e=>`#file:${e.id}`)).join(" ")}`,I.sendMessage(e).then((()=>{F.notify(q("Meddelande"),q("Meddelandet är sparat."),""),K(),U(""),R(void 0)}))},Z=r.useCallback((async e=>{if(!e||e.length<10)return;R(q("Analyserar...")),L("info");const r=await I.chat((e=>`Skapa kort ja/nej-status över hur CRM-aktiviteten som följer, givet dessa punkter: \n1. Namn på kunden finns med? ja/nej \n2. Syftet med mötet finns (varför träffar du kunden, kan täckas av 3 nedan) ja/nej\n3. Vad som framkommer under mötet (viktiga punkter och diskussioner) ja/nej\n4. Nästa steg finns med (hur ni kommer att träffas igen, och om något har sålts) ja/nej. \n\nSvara endast med ja/nej för varje punkt, ett svar per rad i följande exempel i JSON-format:\n{\n "customerName": "true",\n "purpose": "false",\n "meetingNotes": "true",\n "nextSteps": "false",\n "shortSummary": "Syfte med mötet och nästa steg saknas."\n}\n\n---\nTEXT:\n\n${e}`)(e));if(r){const e=new i.default(r.content);try{const r=JSON.parse(e.content);console.log("json",r);let t=0;for(const e in r)"true"===r[e]&&t++;R(q(4===t?"Allt är med":r.shortSummary||"Något saknas")),L(4===t?"success":"warning")}catch{R("Error: "+e.content),L("error")}}}),[I,q]),ee=r.useMemo((()=>j.lodashExports.debounce(Z,2e3)),[Z]);r.useEffect((()=>()=>{ee.cancel()}),[ee]);const re=e=>{const r=new Date,t=new Date(e),o=r.getTime()-t.getTime(),n=Math.floor(o/6e4),s=Math.floor(o/36e5),a=Math.floor(o/864e5);return n<1?q("Just now"):n<60?`${n} ${q("minutes ago")}`:s<24?`${s} ${q("hours ago")}`:a<7?`${a} ${q("days ago")}`:t.toLocaleDateString()},te=e=>{const r=e.split("\n").filter((e=>!e.startsWith("#")&&!e.startsWith("SALESPERSON:")&&e.trim().length>0)).join("\n");return r.substring(0,150)+(r.length>150?"...":"")},oe=()=>e.jsxs("div",{className:G?S.historySectionMobile:S.historySection,children:[e.jsx(t.Text,{className:S.historyTitle,children:q("Tidigare sparade")}),H?e.jsx("div",{className:S.emptyState,children:e.jsx(t.Spinner,{size:"small"})}):0===V.length?e.jsx("div",{className:S.emptyState,children:e.jsx(t.Text,{children:q("Inga sparade meddelanden än")})}):V.map((r=>e.jsx(t.Card,{className:S.historyCard,onClick:()=>(e=>{const r=te(e.content);U(r)})(r),children:e.jsxs("div",{className:S.historyCardContent,children:[e.jsx(t.Text,{className:S.historyDate,children:re(r.createdAt)}),e.jsx(t.Text,{className:S.historyText,children:te(r.content)})]})},r.id)))]});return e.jsx(p.Page,{hideHeader:!0,children:e.jsxs("div",{className:G?S.containerMobile:S.container,children:[!G&&oe(),e.jsxs("div",{className:G?S.inputSectionMobile:S.inputSection,style:G?void 0:{backgroundImage:`url(${l.getConfigValue("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:[v&&l.getConfigValue("SHOW_VOICE_BUTTON")&&e.jsx("div",{className:S.voiceIcon,children:e.jsx(a.default,{voice:v})}),e.jsx("div",{className:S.backButton,children:e.jsx(t.Button,{appearance:"subtle",icon:e.jsx(o.ArrowLeft24Regular,{}),onClick:()=>k(-1),children:q("Tillbaka")})}),e.jsx(s.default,{title:l.getConfigValue("APP_SAVE_TITLE")?q(l.getConfigValue("APP_SAVE_TITLE")):q("Spara")}),e.jsx(u.default,{defaultText:D,onSend:X,files:T,onFilesChange:B,isUploading:y,onUploadImage:()=>{b.current?.triggerUpload()},onUploadCamera:()=>{M.current?.triggerUpload()},getImageUrl:n.CodicentService.getImageUrl,hasLocation:!!N,disableSend:!0,rows:9,placeholder:q("Beskriv CRM-aktivitet här..."),onChange:e=>{e!==A&&(U(e),e&&e.trim().length>0?ee(e):(R(void 0),ee.cancel()))},onImagePasted:Q}),$&&e.jsxs("div",{className:S.review,children:[e.jsx("h3",{children:q("Analys")}),e.jsx(t.MessageBar,{intent:O,layout:"multiline",children:e.jsx(t.MessageBarBody,{children:q($)})})]}),e.jsx(d.default,{ref:C,onFileUploaded:J,onUploading:Y,multiple:!0,codicentService:I}),e.jsx(d.default,{codicentService:I,ref:b,onFileUploaded:J,onUploading:Y,multiple:!0,accept:"image/*"}),e.jsx(d.default,{codicentService:I,ref:M,onFileUploaded:J,onUploading:Y,multiple:!0,accept:"image/*",capture:"environment"})]}),G&&oe()]})})};exports.CrmPagePersistent=x,exports.default=x;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("../components/Markdown.js");require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js");var s=require("../components/Title.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("../components/Markdown.js");require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js");var s=require("../components/Title.js"),i=require("../components/Text.js");require("../components/Spinner.js");var o=require("@fluentui/react-components");require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js");var n=require("react");require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var t=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js");var a=require("../utils/helpers.js");require("./AppFrame.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./Sales.js"),require("./Purchase.js");var u=require("../components/Content.js"),c=require("../components/Page.js");require("./QrScan.js");var l=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client");var m=require("react-router-dom");require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js");const d=o.makeStyles({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"}});exports.default=()=>{const{t:j,tAsync:p}=l.default(),[q]=m.useSearchParams(),g=m.useNavigate(),h=q.get("id"),x=d(),[f,v]=n.useState(""),[C,S]=n.useState(!1);return n.useEffect((()=>{(async()=>{const e=t.getConfigValue("FORM_ACCEPT_MARKDOWN");if(e){S(!0);const r=await p(e);S(!1),v(r.replace("{{code}}",a.formatGuidToShorterReadableCode(h||"")))}})()}),[p,h]),e.jsx(c.Page,{hideFooter:!0,hideHeader:!0,children:e.jsx("div",{className:x.container,style:{backgroundImage:`url(${t.getConfigValue("FORM_BACKGROUND_IMAGE_URL")})`},children:e.jsxs(u.default,{children:[C&&e.jsx(i.Text,{children:j("Översätter...")}),t.getConfigValue("FORM_ACCEPT_MARKDOWN")&&f&&!C&&e.jsx(r.default,{content:f}),!t.getConfigValue("FORM_ACCEPT_MARKDOWN")&&e.jsxs(e.Fragment,{children:[e.jsx(s.Title,{children:j("Din kod för formuläret")}),e.jsx("p",{className:x.instructionParagraph,children:j("Instruktioner:")}),e.jsxs("ol",{className:x.orderedList,children:[e.jsx("li",{children:j("Skriv ner eller kopiera den kod som visas nedan, du behöver den för att identifiera din session.")}),e.jsx("li",{children:j("Klicka på 'Starta' för att komma igång med chatten.")})]}),e.jsx(i.Text,{size:500,children:j("Din kod är (skriv ner den):")}),e.jsx(i.Text,{size:600,style:{userSelect:"all"},children:a.formatGuidToShorterReadableCode(h||"")})]}),h&&e.jsx(o.Button,{appearance:"primary",onClick:()=>g(`/chat?fid=${h}`),children:j("Starta")})]})})})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react");require("../components/Markdown.js"),require("../components/Textarea.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),n=require("@fluentui/react-components");require("../components/Markdown.js"),require("../components/Textarea.js");var t=require("../components/Button.js");require("../components/CompoundButton.js");var o=require("../components/Title.js");require("../components/Spinner.js");var a=require("../components/Label.js"),i=require("../components/Input.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons");var s=require("../hooks/useStateWithLocalStorage.js");require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var l=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js");var u=require("../utils/helpers.js");require("./AppFrame.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js");var c=require("../components/Content.js"),d=require("../components/Page.js");require("./QrScan.js");var p=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("react-router-dom"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js");const m=n.makeStyles({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"}});exports.default=({state:j})=>{const q=m(),{service:h}=j,{t:g}=p.default(),[k,v]=s.default(j.context.selectedApp+"_forms",[]),[x,f]=r.useState(),[b,w]=r.useState(),[S,C]=r.useState(!1),[y,$]=r.useState(),L=n.useId("form-dropdown");r.useEffect((()=>{h.getForms().then((e=>{e.sort(((e,r)=>e.name.localeCompare(r.name))),v(e)}))}),[h,g,v]);const B=void 0!==navigator.share;return e.jsx(d.Page,{children:e.jsx("div",{className:q.container,style:{backgroundImage:`url(${l.getConfigValue("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:e.jsxs(c.default,{children:[e.jsx(o.Title,{children:g("Skapa länk till formulär")}),e.jsx("p",{className:q.instructionParagraph,children:g("Instruktioner")}),e.jsxs("ol",{className:q.orderedList,children:[e.jsx("li",{children:g("Välj ett formulär från rullgardinsmenyn nedan. Detta formulär kommer att användas för den genererade länken.")}),e.jsx("li",{children:g("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.")}),e.jsx("li",{children:g("När länken visas, kan du klicka på kopiera-ikonen för att kopiera länken till ditt urklipp.")}),e.jsx("li",{children:g("Om din enhet stödjer det, kan du även använda dela-knappen för att dela länken direkt.")}),e.jsx("li",{children:g("Kom ihåg att spara (skriva ner) koden")})]}),e.jsx("label",{id:L,className:q.instructionParagraph,children:g("Välj formulär")}),e.jsx(n.Dropdown,{"aria-labelledby":L,placeholder:"-",onOptionSelect:(e,r)=>$(r.optionValue),children:k.map((r=>e.jsxs(n.Option,{value:r.name,text:`${r.title} (${r.name})`,children:[`${r.title} (${r.name})`," "]},r.name)))}),e.jsx(t.Button,{appearance:"primary",disabled:!y,onClick:()=>{const e=k.find((e=>e.name===y));e?.url?h.sendMessage(`#ss-link #${y}`).then((r=>{const n=new Date(Date.now()+2592e5);h.generateApiToken(n).then((n=>{const t=e.url.includes("?")?"&":"?",o=`${e.url}${t}token=${n}`;f(o);const a=u.formatGuidToShorterReadableCode(r);w(a)}))})):h.sendMessage(`#ss-link #${y}`).then((e=>{const r=`${window.location.protocol}//${window.location.hostname}${window.location.port?":"+window.location.port:""}${window.location.pathname}`;f(`${r}#/formaccept?id=${e}`);const n=u.formatGuidToShorterReadableCode(e);w(n)}))},children:g("Skapa länk")}),x&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:q.generatedLinkTitle,children:g("Här är din genererade länk (du kan kopiera eller dela den):")}),e.jsx("div",{className:q.inputAndButton,children:e.jsx(i.Input,{className:q.input,value:x,readOnly:!0,onFocus:e=>e.target.select()})}),e.jsx("br",{}),e.jsxs("div",{className:q.inputAndButton,children:[e.jsx(t.Button,{appearance:"primary",title:g("Kopiera länk"),icon:"CopyRegular",onClick:()=>{x&&(navigator.clipboard.writeText(x),C(!0),setTimeout((()=>{C(!1),f(void 0)}),2e3))},children:g("Kopiera")}),B&&e.jsx(t.Button,{appearance:"primary",title:g("Dela länk"),icon:"ShareRegular",onClick:()=>{x&&(navigator.share({url:x}),setTimeout((()=>{f(void 0)}),2e3))},children:g("Dela")})]}),S&&e.jsx(a.Label,{children:g("Länk kopierad!")})]})]})})})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@fluentui/react-components"),s=require("react");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js");var i=require("../components/Text.js");require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./AppFrame.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("../components/Content.js");var t=require("../components/Page.js");require("./QrScan.js"),require("../hooks/useLocalization.js"),require("../components/FileThumbnail.js"),require("react-dom/client"),require("react-router-dom"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js");var n=require("../components/HtmlView.js");require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js");exports.default=({state:o})=>{const c=window.location.hash.match(/^#\/html\/(.+)$/),u=c?decodeURIComponent(c[1]):"",[a,l]=s.useState(),[d,j]=s.useState(!1),[m,q]=s.useState(),{service:p}=o;return s.useEffect((()=>{u&&p?(j(!0),q(void 0),p.getMessagesFast([u],void 0,1).then((e=>{if(0===e.length)return void q(`No messages found with tag: ${u}`);const r=e[0].content;l((e=>{const r=e.indexOf("```html");if(-1!==r){const s=e.indexOf("```",r+7);return-1===s?e.substring(r+7):e.substring(r+7,s)}const s=[/<!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 r of s){const s=e.match(r);if(s)return s[0]}if(e.includes("<html")||e.includes("<!DOCTYPE")||e.includes("<div")||e.includes("<p>")||e.includes("<span")){const r=["<!DOCTYPE","<html","<div","<body","<article","<section"];let s=-1;for(const i of r){const r=e.indexOf(i);-1!==r&&(-1===s||r<s)&&(s=r)}if(-1!==s){let r=e.substring(s);const i=["</html>","</body>","</div>"];for(const e of i){const s=r.lastIndexOf(e);if(-1!==s){r=r.substring(0,s+e.length);break}}return r}return e}return e})(r))})).catch((e=>{console.error("Error fetching message:",e),q(`Error fetching message: ${e.message||"Unknown error"}`)})).finally((()=>{j(!1)}))):q("No tag provided or service unavailable")}),[u,p]),d?e.jsx(t.Page,{hideHeader:!0,hideFooter:!0,children:e.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:e.jsx(r.Spinner,{})})}):m?e.jsx(t.Page,{hideHeader:!0,hideFooter:!0,children:e.jsxs("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh",flexDirection:"column",gap:"20px"},children:[e.jsx(i.Text,{children:m}),e.jsxs(i.Text,{children:["Tag: ",u]})]})}):a?e.jsx(n.default,{html:a,onDismiss:()=>window.history.back()}):e.jsx(t.Page,{hideHeader:!0,hideFooter:!0,children:e.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:e.jsx(i.Text,{children:"No HTML content available"})})})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("react-router-dom"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@fluentui/react-components"),n=require("@fluentui/react-icons"),o=require("react"),r=require("react-router-dom"),s=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js");var i=require("../services/codicent.js");const a=t.makeStyles({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)"}}});exports.default=({state:l})=>{const c=a(),[u]=r.useSearchParams(),d=r.useNavigate(),[m,v]=o.useState([]),[g,p]=o.useState(0),[h,x]=o.useState(),[w,f]=o.useState(null),[b,y]=o.useState(null),{service:E}=l,[j,S]=o.useState(1),[q,L]=o.useState({x:0,y:0}),[k,C]=o.useState(!1),[A,I]=o.useState({x:0,y:0});o.useEffect((()=>{const e=e=>{"Escape"===e.key&&d(-1)},t=e=>{f(e.touches[0].clientX)},n=e=>{y(e.touches[0].clientX)},o=()=>{if(null!==w&&null!==b){const e=w-b;e>50?_(1):e<-50&&_(-1)}f(null),y(null)};return window.addEventListener("keydown",e),window.addEventListener("touchstart",t),window.addEventListener("touchmove",n),window.addEventListener("touchend",o),()=>{window.removeEventListener("keydown",e),window.removeEventListener("touchstart",t),window.removeEventListener("touchmove",n),window.removeEventListener("touchend",o)}}),[d,w,b]),o.useEffect((()=>{x(i.CodicentService.getFileUrl(m[g]))}),[m,g]),o.useEffect((()=>{const e=u.get("id"),t=u.get("file");e&&t&&E.getMessageContent(e).then((e=>{const n=s.default.findFileIds(e.content);Promise.all(n.map((e=>E.getFileInfo(e)))).then((e=>{v(e.filter((e=>e.contentType.startsWith("image"))).map((e=>e.id)));const n=m.indexOf(t);n>=0&&p(n)}))})).catch((()=>{}))}),[u,E]),o.useEffect((()=>{S(1),L({x:0,y:0})}),[g]),o.useEffect((()=>{const e=e=>{e.preventDefault();const t=-.01*e.deltaY;S((e=>Math.min(Math.max(1,e+t),5)))},t=e=>{const t=e;j>1&&(C(!0),I({x:t.clientX-q.x,y:t.clientY-q.y}))},n=e=>{const t=e;k&&L({x:t.clientX-A.x,y:t.clientY-A.y})},o=()=>{C(!1)},r=document.querySelector(`.${c.image}`);return r&&(r.addEventListener("wheel",e),r.addEventListener("mousedown",t),window.addEventListener("mousemove",n),window.addEventListener("mouseup",o)),()=>{r&&(r.removeEventListener("wheel",e),r.removeEventListener("mousedown",t),window.removeEventListener("mousemove",n),window.removeEventListener("mouseup",o))}}),[j,q,k,A,c.image]);const _=e=>{if(g+e<0||g+e>=m.length)return;const t=(g+e+m.length)%m.length;p(t)};return e.jsxs("div",{className:c.content,children:[e.jsx(t.Button,{icon:e.jsx(n.Dismiss24Regular,{}),className:c.closeButton,onClick:()=>d(-1)}),e.jsx(t.Image,{className:c.image,src:h,alt:"Codicent Image",fit:"contain",width:"100%",height:"100%",style:{transform:`translate(${q.x}px, ${q.y}px) scale(${j})`,touchAction:"none"}}),m.length>1&&e.jsxs(e.Fragment,{children:[0!==g&&e.jsx("a",{className:c.prev,onClick:()=>_(-1),children:"❮"}),g<m.length-1&&e.jsx("a",{className:c.next,onClick:()=>_(1),children:"❯"})]})]})};
|
package/dist/cjs/pages/Login.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react");require("../services/codicent.js"),require("../components/Markdown.js"),require("../components/Textarea.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),s=require("@fluentui/react-components");require("../services/codicent.js"),require("../components/Markdown.js"),require("../components/Textarea.js");var i=require("../components/Button.js");require("../components/CompoundButton.js");var n=require("../components/Title.js"),t=require("../components/Text.js");require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var o=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("../components/FileThumbnail.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/Content.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/Page.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js");var a=require("../hooks/useLocalization.js");require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("./AppFrame.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("./QrScan.js"),require("react-dom/client"),require("react-router-dom"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var u=require("../hooks/useAppStyles.js");const l=s.makeStyles({container:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100vh",backgroundPosition:"calc(50% - 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",gap:"20px",padding:"0 20px"},button:{minWidth:"15rem"},input:{minWidth:"15rem",marginBottom:"10px"},image:{maxHeight:"200px"}});exports.default=({state:c})=>{const{loginWithRedirect:m,loginPasswordless:g}=c.auth,p=l(),j=u.default(),{t:q}=a.default(),[d,h]=r.useState(""),[C,_]=r.useState(!1),x=o.getConfigValue("LOGIN_REDIRECT"),f=o.getConfigValue("AUTH0_PASSWORDLESS_ENABLED");r.useEffect((()=>{x&&m()}),[x]);return x?e.jsxs("div",{className:p.container,style:{backgroundImage:`url(${o.getConfigValue("HOME_BACKGROUND_IMAGE_URL")})`},children:[e.jsx(n.Title,{children:`${q("Välkommen till")} ${o.getConfigValue("INDEX_TITLE")}!`}),e.jsx(t.Text,{size:400,children:q("Omdirigerar till inloggning...")})]}):e.jsxs("div",{className:p.container,style:{backgroundImage:`url(${o.getConfigValue("HOME_BACKGROUND_IMAGE_URL")})`},children:[o.getConfigValue("LOGIN_LOGO_URL")&&e.jsx(s.Image,{src:o.getConfigValue("LOGIN_LOGO_URL"),alt:o.getConfigValue("INDEX_TITLE"),className:p.image}),!o.getConfigValue("LOGIN_HIDE_WELCOME")&&e.jsx(n.Title,{children:`${q("Välkommen till")} ${o.getConfigValue("INDEX_TITLE")}!`}),e.jsx(t.Text,{size:400,children:q(o.getConfigValue("LOGIN_WELCOME_TEXT")||"Logga in, eller registrera ett konto, för att komma igång.")}),f?e.jsxs(e.Fragment,{children:[e.jsx(s.Input,{className:p.input,type:"email",placeholder:q("Ange din e-postadress"),value:d,onChange:e=>h(e.target.value),disabled:C}),e.jsx(i.Button,{className:s.mergeClasses(j.button,p.button),size:"large",appearance:"primary",onClick:async()=>{if(d.trim()){_(!0);try{await g(d)}catch(e){console.error("Passwordless login failed:",e)}finally{_(!1)}}},disabled:!d.trim()||C,children:q(C?"Skickar...":"Skicka inloggningslänk")})]}):e.jsxs(e.Fragment,{children:[e.jsx(i.Button,{className:s.mergeClasses(j.button,p.button),size:"large",appearance:"primary",onClick:()=>m(),children:q("Logga in")}),!o.getConfigValue("HIDE_REGISTER_BUTTON")&&e.jsx(i.Button,{className:s.mergeClasses(j.button,p.button),size:"large",appearance:"primary",onClick:()=>m({authorizationParams:{screen_hint:"signup"}}),children:q("Registrera")})]})]})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),s=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@fluentui/react-components"),s=require("react"),i=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js");var n=require("../components/Button.js");require("../components/CompoundButton.js");var o=require("../components/Title.js"),t=require("../components/Text.js"),a=require("../components/Spinner.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var c=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./AppFrame.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("../components/Content.js"),require("../components/Page.js"),require("./QrScan.js"),require("../hooks/useLocalization.js"),require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js");const u=r.makeStyles({container:{display:"flex",flexDirection:"column",alignItems:"center",gap:"20px",padding:"20px"},pricing:{padding:"20px",paddingLeft:"30px",border:"1px solid #ccc",borderRadius:"8px",backgroundColor:r.tokens.colorNeutralBackground1}}),l=({state:r})=>{const l=u(),[j,d]=s.useState(!1),{service:p,stateMachine:m}=r,{updateContext:q}=m;s.useEffect((()=>{new URLSearchParams(window.location.search).get("session_id")&&q({hasValidPurchase:void 0})}),[]);return e.jsxs("div",{className:l.container,children:[e.jsx(o.Title,{children:"Starta ditt abonnemang"}),e.jsx("div",{className:l.pricing,children:e.jsxs("ul",{children:[e.jsx("li",{children:e.jsx(t.Text,{size:400,children:"Kreditkort krävs inte"})}),e.jsx("li",{children:e.jsx(t.Text,{size:400,children:"Gratis de 2 första månaderna"})}),e.jsx("li",{children:e.jsx(t.Text,{size:400,children:"Därefter 89 kr/månad"})})]})}),e.jsx(n.Button,{appearance:"primary",onClick:async()=>{try{d(!0),await p.redirectToCheckout(c.getConfigValue("STRIPE_PRICE_ID"))}catch(e){console.error("Purchase error:",e)}finally{d(!1)}},disabled:j,children:j?e.jsx(a.Spinner,{size:"tiny"}):"Starta abonnemang"}),e.jsx("div",{children:e.jsxs(t.Text,{size:400,children:["Har du redan ett abonnemang? Kanske har du loggat in med fel konto. ",e.jsx(i.Link,{to:"/logout",children:"Logga ut"})," och sedan in igen för att komma igång."]})})]})};exports.Purchase=l,exports.default=l;
|
package/dist/cjs/pages/QrScan.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),n=require("react"),r=require("@fluentui/react-components"),a=require("../components/QrScanner.js"),t=require("../components/Page.js"),s=require("../components/TextHeader.js"),o=require("../hooks/useLocalization.js");const i=r.makeStyles({container:{backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%",touchAction:"pan-y",margin:"0 auto",maxWidth:"800px",display:"flex",flexDirection:"column",alignItems:"center"},flashOverlay:{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"transparent",transition:"background-color 0.2s ease-out",pointerEvents:"none",zIndex:3},scannerContainer:{display:"flex",justifyContent:"center",alignItems:"center",flex:1,width:"100%"}});exports.default=({title:c,singleShot:l,onScanned:u,onBack:d,backgroundImageUrl:g,audioUrl:f="/audio/camera.mp3"})=>{const x=i(),{t:h}=o.default(),[m,p]=n.useState(),j=n.useMemo((()=>new Audio(f)),[f]),[k,y]=n.useState(!1),[S,v]=n.useState(!1),b=n.useRef(void 0),B=n.useCallback((async e=>{if(e!==b.current){b.current=e,v(!0),console.log("Scanned result:",e),j.play(),y(!0),setTimeout((()=>y(!1)),100),setTimeout((()=>v(!1)),1e3);try{await u(e),!0===l&&d&&d()}catch(e){console.error("Error handling scanned result:",e),p(e instanceof Error?e.message:String(e))}}}),[j,u,l,d]),C=n.useCallback((e=>{console.log("QR Scanner Error:",e),p(e)}),[]);return e.jsx(t.Page,{hideHeader:!0,children:e.jsxs("div",{className:x.container,style:g?{backgroundImage:`url('${g}')`}:void 0,children:[e.jsx("div",{className:x.flashOverlay,style:{backgroundColor:k?"#ffffff":"transparent"}}),m&&e.jsxs(r.MessageBar,{intent:"error",children:[e.jsxs(r.MessageBarBody,{children:[e.jsx(r.MessageBarTitle,{children:h("Fel")}),m]}),e.jsx(r.MessageBarActions,{containerAction:e.jsx(r.Button,{appearance:"transparent",icon:"DismissRegular"}),children:e.jsx(r.Button,{onClick:()=>p(void 0),children:h("OK")})})]}),e.jsx(s.default,{title:c||h("Skanna")}),e.jsx("div",{className:x.scannerContainer,children:e.jsx(a.default,{onScan:e=>{S||B(e)},onError:C})})]})})};
|
package/dist/cjs/pages/Sales.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),o=require("react"),r=require("react-router-dom");require("../components/Markdown.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),o=require("react"),r=require("@fluentui/react-components"),t=require("react-router-dom");require("../components/Markdown.js");var n=require("../components/Textarea.js"),s=require("../components/Button.js");require("../components/CompoundButton.js");var a=require("../components/Text.js");require("../components/Spinner.js");var i=require("../components/Input.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js");var l=require("../components/Dialog.js");require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var c=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./AppFrame.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Purchase.js"),require("../components/Content.js");var u=require("../components/Page.js");require("./QrScan.js");var d=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var p=require("../components/QrCodeDialog.js");require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js");const m=r.makeStyles({root:{display:"flex",flexDirection:"column",height:"100%",touchAction:"pan-y"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",color:r.tokens.colorNeutralForegroundOnBrand,...r.shorthands.padding("10px","20px")},logo:{maxWidth:"100px",maxHeight:"50px",height:"auto",cursor:"pointer"},inputContainer:{display:"flex",justifyContent:"flex-end",alignItems:"center",maxWidth:"300px",width:"200px",paddingLeft:"10px"},dashboard:{display:"flex",justifyContent:"space-around",width:"100%",marginTop:"20px"},statBox:{...r.shorthands.padding("10px"),...r.shorthands.borderRadius("12px"),minWidth:"50px",textAlign:"center",color:"white"},buttonContainer:{display:"flex",flexDirection:"column",height:"100%",justifyContent:"center",gap:"30px",alignItems:"center",...r.shorthands.padding("20px")},actionButton:{width:"14rem",minWidth:"15rem",height:"3rem"},textAreaContainer:{display:"flex",flexDirection:"column",gap:"10px"},opened:{backgroundColor:"#1a5614"},not_home:{backgroundColor:"#f44336"},sales:{backgroundColor:"#2196F3"},call_back:{backgroundColor:"#FF9800"},backButton:{position:"absolute",top:"10px",left:"10px",zIndex:1e3}}),g={opened:"#1a5614",not_home:"#f44336",sales:"#2196F3",call_back:"#FF9800"},j=()=>{const j=m(),{t:h}=d.default(),x=t.useNavigate(),[q,f]=o.useState(""),[C,v]=o.useState(),[k,b]=o.useState({opened:0,not_home:0,sales:0,call_back:0}),[w,_]=o.useState([]),[y,S]=o.useState(!1),[I,A]=o.useState(""),[D,B]=o.useState(""),[P,F]=o.useState(""),[N,$]=o.useState(!1),[M,T]=o.useState(!1),[O,L]=o.useState(!1),H={backgroundColor:c.getConfigValue("APP_HEADER_COLOR")||r.tokens.colorBrandBackground},V=o.useCallback((()=>new Promise((e=>{navigator.geolocation?navigator.geolocation.getCurrentPosition((o=>{const r=`#position (${o.coords.latitude},${o.coords.longitude})`;e(r)})):e(void 0)}))),[v]);o.useEffect((()=>{window.Codicent.getDataMessages({codicent:c.getConfigValue("APP_NAME"),tags:["sales_code"]}).then((e=>{e=e.filter((e=>"1"!==e.data.inactive)),_(e)})).catch(console.error),V()}),[]);const z=async()=>{if(!q)return;const e=["not_home","sales","call_back","opened"],o=new Date;o.setHours(0,0,0,0);const r={...k};for(const t of e){const e=await window.Codicent.getMessages({search:`#${t} #sales_code_${q}`,afterTimestamp:o,length:1e4});r[t]=e.filter((e=>e.content.includes(`#${t} `)&&e.content.includes(`#sales_code_${q}`))).length}b(r)},R=async(e,o="")=>{const r=await V();console.log("Got position",r);const t=`@${c.getConfigValue("APP_NAME")} #sales_code_${q} #${e} ${r||""} ${o.trim().length>0?"#comment ":""}${o}`.trim();await window.Codicent.postMessage({message:t}),z()};return e.jsx(u.Page,{hideHeader:!0,children:e.jsxs("div",{className:j.root,children:[e.jsx("div",{className:j.backButton,children:e.jsx(s.Button,{appearance:"subtle",icon:"ArrowLeft24Regular",onClick:()=>x(-1),children:h("Tillbaka")})}),e.jsxs("div",{className:j.header,style:H,children:[e.jsx(r.Image,{src:D||c.getConfigValue("APP_ICON_URL")||"https://via.placeholder.com/100",className:j.logo,onClick:()=>{D?L(!0):P&&T(!0)}}),e.jsx("div",{className:j.inputContainer,children:e.jsx(i.Input,{value:q,onChange:e=>f(e.target.value),onBlur:()=>{const e=w.find((e=>e.data.code===q));if(e)B(`https://codicent.com/app/GetImage?fileId=${e.fileId}&width=100`),F(e.data.link),$(!0),z();else{const e=w.find((e=>e.data.code2===q.toUpperCase()));e?(B(`https://codicent.com/app/GetImage?fileId=${e.fileIds&&e.fileIds.length>1?e.fileIds[1]:e.fileId}&width=100`),F(e.data.link2),$(!0),z()):($(!1),alert(h("Fel försäljningskod!")))}},placeholder:h("Fyll i försäljningskod"),maxLength:16,size:"large"})})]}),N&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:j.dashboard,children:Object.keys(k).map((o=>{return e.jsx("div",{className:(t=o,r.mergeClasses(j.statBox,j[t])),children:e.jsx(a.Text,{weight:"bold",size:400,children:k[o]})},o);var t}))}),e.jsx("div",{className:j.buttonContainer,children:Object.entries(g).map((([o,r])=>e.jsx(s.Button,{size:"large",className:j.actionButton,style:{backgroundColor:r,color:"white"},onClick:()=>{R(o),"opened"===o&&S(!0),"sales"===o&&T(!0)},children:o.charAt(0).toUpperCase()+o.slice(1).replace("_"," ")},o)))}),e.jsxs(l.Dialog,{open:y,children:[e.jsx(l.DialogTitle,{children:h("Skriv in avvikelse")}),e.jsx(l.DialogContent,{children:e.jsx("div",{className:j.textAreaContainer,children:e.jsx(n.Textarea,{value:I,onChange:e=>A(e.target.value),placeholder:h("Skriv din text här..."),rows:4,size:"large"})})}),e.jsx(l.DialogActions,{children:e.jsx(s.Button,{appearance:"primary",onClick:()=>{R("anomaly",`\n${I}`),S(!1),A("")},children:h("Spara")})})]}),e.jsxs(l.Dialog,{open:M,children:[e.jsx(l.DialogTitle,{children:h("Godkännande")}),e.jsx(l.DialogContent,{children:h("Är kunden över 23 år?")}),e.jsxs(l.DialogActions,{children:[e.jsx(s.Button,{appearance:"primary",onClick:()=>window.open(P,"_blank"),children:h("OK")}),e.jsx(s.Button,{appearance:"secondary",onClick:()=>T(!1),children:h("Avbryt")})]})]})]}),e.jsx(p.QrCodeDialog,{isOpen:O,onDismiss:()=>L(!1),imageUrl:D})]})})};exports.Sales=j,exports.default=j;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),i=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),i=require("@fluentui/react-components"),n=require("@fluentui/react-icons"),l=require("../components/Content.js"),r=require("../components/Header.js");const s=[{key:"string",text:"Text/Sträng"},{key:"boolean",text:"Ja/Nej (boolean)"},{key:"array",text:"Val (array)"}],o={string:[{key:"",text:"Ingen"},{key:"photo",text:"Foto"},{key:"color",text:"Färg"},{key:"date",text:"Datum"},{key:"time",text:"Tid"},{key:"title",text:"Titel"}],boolean:[{key:"",text:"Ingen"},{key:"open",text:"Öppna/stäng"}],array:[{key:"",text:"Ingen"}]};function a(e){const t={$schema:"http://json-schema.org/draft-07/schema#",type:"object",...e};return JSON.stringify(t,null,2)}exports.default=function(){const[d,p]=t.useState({title:"",description:"","ui:options":{icon:""},properties:{}}),[c,x]=t.useState(""),[u,h]=t.useState(null),[y,m]=t.useState(!1),[f,g]=t.useState(""),[j,v]=t.useState(null),[b,k]=t.useState(!1),C=!!c.trim()&&!Object.prototype.hasOwnProperty.call(d.properties,c);function S(e,t,i){p({...d,properties:{...d.properties,[e]:{...d.properties[e],[t]:i}}})}return e.jsxs(e.Fragment,{children:[e.jsx(r.Header,{title:"Codicent Schema Editor"}),e.jsx(l.default,{children:e.jsx("div",{style:{display:"flex",justifyContent:"center",width:"100%"},children:e.jsxs("div",{style:{maxWidth:700,width:"100%",display:"flex",flexDirection:"column",gap:16,overflowY:"auto",maxHeight:"calc(100vh - 80px)"},children:[e.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:e.jsx(i.Button,{appearance:"secondary",onClick:()=>m(!0),children:"Importera JSON"})}),y&&e.jsx("div",{style:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",background:"rgba(0,0,0,0.3)",zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsxs("div",{style:{background:"#fff",padding:24,borderRadius:8,minWidth:350,maxWidth:600,boxShadow:"0 2px 16px rgba(0,0,0,0.2)",display:"flex",flexDirection:"column",gap:16},children:[e.jsx("h4",{children:"Importera schema från JSON"}),e.jsx("textarea",{value:f,onChange:e=>g(e.target.value),rows:12,style:{width:"100%",fontFamily:"monospace",fontSize:14},placeholder:"Klistra in JSON här..."}),j&&e.jsx("div",{style:{color:"red"},children:j}),e.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:[e.jsx(i.Button,{onClick:()=>m(!1),children:"Avbryt"}),e.jsx(i.Button,{appearance:"primary",onClick:function(){v(null);try{let e=JSON.parse(f);const{$schema:t,type:i,...n}=e;let l={...n};l["ui:options"]||(l["ui:options"]={icon:""}),l["ui:options"].icon||(l["ui:options"].icon=""),l.properties||(l.properties={}),p(l),m(!1),g("")}catch(e){v("Ogiltig JSON: "+e.message)}},children:"Importera"})]})]})}),e.jsx("h3",{children:"Schema"}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[e.jsx("label",{children:"Titel"}),e.jsx(i.Input,{value:d.title,onChange:e=>p({...d,title:e.target.value})})]}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[e.jsx("label",{children:"Beskrivning"}),e.jsx(i.Input,{value:d.description,onChange:e=>p({...d,description:e.target.value})})]}),e.jsx("hr",{}),e.jsx("h3",{children:"Fält"}),e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[e.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4},children:[e.jsx("label",{children:"Fältnamn (unikt id)"}),e.jsx(i.Input,{value:c,onChange:e=>x(e.target.value)})]}),e.jsx(i.Button,{onClick:function(){C&&(p((e=>({...e,properties:{...e.properties,[c]:{title:"",type:"string",description:""}}}))),x(""))},disabled:!C,appearance:C?"primary":"secondary",children:"Lägg till fält"})]}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:8},children:Object.keys(d.properties).map(((t,l,r)=>{const s=d.properties[t];return e.jsxs("div",{style:{border:"1px solid #ccc",padding:8,margin:8,borderRadius:4,display:"flex",alignItems:"center",gap:8},children:[e.jsx(i.Button,{icon:e.jsx(n.Edit16Regular,{}),size:"small",title:"Redigera",onClick:()=>h(t),style:{minWidth:28,padding:0}}),e.jsx(i.Button,{icon:e.jsx(n.ArrowUp16Regular,{}),size:"small",title:"Flytta upp",onClick:()=>function(e){const t=Object.keys(d.properties),i=t.indexOf(e);if(i>0){const e=[...t];[e[i-1],e[i]]=[e[i],e[i-1]];const n={};e.forEach((e=>{n[e]=d.properties[e]})),p({...d,properties:n})}}(t),disabled:0===l,style:{minWidth:28,padding:0}}),e.jsx(i.Button,{icon:e.jsx(n.ArrowDown16Regular,{}),size:"small",title:"Flytta ner",onClick:()=>function(e){const t=Object.keys(d.properties),i=t.indexOf(e);if(i<t.length-1){const e=[...t];[e[i+1],e[i]]=[e[i],e[i+1]];const n={};e.forEach((e=>{n[e]=d.properties[e]})),p({...d,properties:n})}}(t),disabled:l===r.length-1,style:{minWidth:28,padding:0}}),e.jsx("span",{style:{fontFamily:"Courier"},children:t}),e.jsx("span",{children:s.title}),e.jsx("span",{children:s.type}),e.jsx(i.Button,{icon:e.jsx(n.Delete16Regular,{}),size:"small",title:"Ta bort",onClick:()=>function(e){const{[e]:t,...i}=d.properties;p({...d,properties:i}),u===e&&h(null)}(t),style:{marginLeft:"auto",minWidth:28,padding:0}})]},t)}))}),u&&d.properties[u]&&e.jsx("div",{style:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",background:"rgba(0,0,0,0.3)",zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsxs("div",{style:{background:"#fff",padding:24,borderRadius:8,minWidth:350,maxWidth:600,boxShadow:"0 2px 16px rgba(0,0,0,0.2)",display:"flex",flexDirection:"column",gap:16},children:[e.jsxs("h4",{children:["Redigera fält: ",u]}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[e.jsx("label",{htmlFor:"field-title",style:{marginBottom:2},children:"Titel"}),e.jsx(i.Input,{id:"field-title",value:d.properties[u].title,onChange:e=>S(u,"title",e.target.value),style:{minWidth:0,width:340,maxWidth:"100%"}})]}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[e.jsx("label",{htmlFor:"field-description",style:{marginBottom:2},children:"Beskrivning"}),e.jsx(i.Input,{id:"field-description",value:d.properties[u].description,onChange:e=>S(u,"description",e.target.value),style:{minWidth:0,width:400,maxWidth:"100%"}})]}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[e.jsx("label",{htmlFor:"field-type",style:{marginBottom:2},children:"Typ"}),e.jsx(i.Dropdown,{id:"field-type",value:d.properties[u].type,onOptionSelect:(e,t)=>t&&S(u,"type",t.optionValue),style:{width:160},children:s.map((t=>e.jsx(i.Option,{value:t.key,children:t.text},t.key)))})]}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[e.jsx("label",{htmlFor:"field-format",style:{marginBottom:2},children:"Format"}),e.jsx(i.Dropdown,{id:"field-format",value:d.properties[u].format||"",onOptionSelect:(e,t)=>t&&S(u,"format",t.optionValue),style:{width:180},children:(o[d.properties[u].type]||[]).map((t=>e.jsx(i.Option,{value:t.key,children:t.text},t.key)))})]}),"array"===d.properties[u].type&&e.jsxs("label",{children:["Enum-värden (kommaseparerade)",e.jsx(i.Input,{value:d.properties[u].items&&d.properties[u].items.enum.join(", ")||"",onChange:e=>{return t=u,i=e.target.value,void p({...d,properties:{...d.properties,[t]:{...d.properties[t],items:{enum:i.split(",").map((e=>e.trim()))}}}});var t,i}})]}),e.jsx("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:e.jsx(i.Button,{appearance:"secondary",onClick:()=>h(null),children:"Klar"})})]})}),e.jsx("hr",{}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[e.jsx("h3",{style:{margin:0},children:"Schema JSON"}),e.jsx(i.Button,{appearance:"secondary",size:"small",onClick:()=>{navigator.clipboard.writeText(a(d)),k(!0),setTimeout((()=>k(!1)),1200)},children:"Kopiera"}),b&&e.jsx("span",{style:{color:"green",fontSize:13},children:"Kopierat!"})]}),e.jsx("pre",{style:{background:"#eee",padding:8,borderRadius:4},children:a(d)})]})})})]})};
|
package/dist/cjs/pages/Search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("../components/Markdown.js");require("../components/Textarea.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("@fluentui/react-components"),o=require("../components/Markdown.js");require("../components/Textarea.js");var n=require("../components/Button.js");require("../components/CompoundButton.js");var s=require("../components/Title.js");require("../components/Spinner.js"),require("../components/TextHeader.js");var i=require("../components/TypingIndicator.js");require("../components/Dialog.js");var a=require("../components/ChatInput.js");require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons");var u=require("../hooks/useStateWithLocalStorage.js"),c=require("../services/codicent.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var l=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./AppFrame.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Login.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("../components/Content.js");var p=require("../components/Page.js");require("./QrScan.js");var d=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("react-router-dom"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var m=require("../hooks/useChat.js"),g=require("../hooks/useTemplateVariables.js");require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js");const j=t.makeStyles({chatContainer:{width:"100%",flex:1,maxWidth:"800px",height:"100%",backgroundColor:"#ffffff",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},"@media (max-width: 480px)":{},backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",overflowY:"auto",marginBottom:"16px"},chatMessages:{display:"flex",flexDirection:"column",flex:1,padding:"16px",overflowY:"auto",touchAction:"pan-y"},inputArea:{display:"flex",flexDirection:"column",justifyContent:"start",alignItems:"center",height:"100%",padding:"0 16px"},promptButtons:{display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"start",alignItems:"center",gap:"8px",marginTop:"8px",marginLeft:"6px",marginRight:"2px",marginBottom:"12px"},answerArea:{width:"100%",marginLeft:"12px",marginRight:"12px",padding:"12px",borderRadius:"16px",marginBottom:"24px"},title:{marginLeft:"12px",padding:"16px"}});exports.default=({state:q})=>{const f=j(),{t:h}=d.default(),{messages:x,isBotTyping:C,handleSend:v,newChat:A}=m.useChat(q.stateMachine),S=r.useRef(null),{service:T}=q;l.getConfigValue("CHAT_BOT_BACKGROUND_COLOR")||t.tokens.colorBrandBackground2;const[w,_]=u.default(q.context.selectedApp+"_searchprompts",["Leta information","Vad kan jag göra?","Sök supportställe"]),[b,y]=r.useState(),[N,O]=r.useState(null),[k,I]=r.useState(!1);g.useTemplateVariables(T.uploadFile);r.useEffect((()=>{C&&I(!0)}),[C]),r.useEffect((()=>{A();const e=l.getConfigValue("APP_CONFIG"),r=l.getConfigValue("APP_BUTTONS");r?e.apps[r].questions&&_(e.apps[r].questions.map((e=>h(e)))):console.error("APP_BUTTONS is not defined in the configuration."),void 0!==l.getConfigValue("ANONYMOUS_CODICENT")&&void 0!==l.getConfigValue("ANONYMOUS_TOKEN")?(T.codicent=l.getConfigValue("ANONYMOUS_CODICENT"),T.setToken(l.getConfigValue("ANONYMOUS_TOKEN"))):console.error("Anonymous Codicent or Token is not defined in the configuration.")}),[A,T,_,h]),r.useEffect((()=>{setTimeout((()=>{S.current?.scrollIntoView({behavior:"smooth"})}),10)}),[x]);const B=e=>{y(e),v(e)};return r.useEffect((()=>{const e=x.filter((e=>"bot"===e.sender));let r=e.length>0?e[e.length-1]:null;O({...r,createdAt:new Date}),r&&I(!1)}),[x]),e.jsx(p.Page,{hideHeader:!0,hideFooter:!0,children:e.jsxs("div",{id:"search-container",className:f.chatContainer,style:{backgroundImage:`url(${l.getConfigValue("CHAT_BACKGROUND_IMAGE_URL")})`},children:[e.jsx("div",{className:f.title,children:e.jsx(s.Title,{children:h(l.getConfigValue("APP_SEARCH_TITLE")||"Frågor")})}),e.jsxs("div",{className:f.inputArea,children:[e.jsx(a.default,{noMemory:!0,defaultText:b,codicent:q.context.selectedApp,disableSend:C,onSend:B,rows:3,getImageUrl:c.CodicentService.getImageUrl,getFileInfo:e=>T.getFileInfo(e),selectAll:!0}),e.jsx("div",{className:f.promptButtons,children:w.length>0&&w.map(((r,t)=>e.jsx(n.Button,{onClick:()=>B(r),size:"large",appearance:"primary",shape:"circular",children:r},`search-prompt-${t}`)))}),k&&e.jsx(i.default,{}),N&&!C&&e.jsxs("div",{className:f.answerArea,children:[e.jsx("div",{ref:S}),e.jsx(o.default,{content:N.content})]})]})]})})};
|