codicent-app-sdk 0.4.14 → 0.4.17

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.
Files changed (97) hide show
  1. package/README.md +556 -521
  2. package/dist/cjs/components/AiInput.js +1 -1
  3. package/dist/cjs/components/AudioIcon.js +1 -1
  4. package/dist/cjs/components/ChatInput.js +1 -1
  5. package/dist/cjs/components/ChatMessage.js +1 -1
  6. package/dist/cjs/components/CombinedPlaceholderDialog.js +1 -1
  7. package/dist/cjs/components/DataMessagePicker.d.ts +33 -0
  8. package/dist/cjs/components/DataMessagePicker.d.ts.map +1 -0
  9. package/dist/cjs/components/DataMessagePicker.js +1 -0
  10. package/dist/cjs/components/Footer.js +1 -1
  11. package/dist/cjs/components/Header.js +1 -1
  12. package/dist/cjs/components/HtmlView.js +1 -1
  13. package/dist/cjs/components/MermaidChart.d.ts.map +1 -1
  14. package/dist/cjs/components/MermaidChart.js +1 -1
  15. package/dist/cjs/components/MessageInput.js +1 -1
  16. package/dist/cjs/components/MessageItem.js +1 -1
  17. package/dist/cjs/components/Profile.js +1 -1
  18. package/dist/cjs/components/Prompt.js +1 -1
  19. package/dist/cjs/components/SnapFooter.js +1 -1
  20. package/dist/cjs/components/TextHeader.js +1 -1
  21. package/dist/cjs/components/TypingIndicator.js +1 -1
  22. package/dist/cjs/components/UploadFile.js +1 -1
  23. package/dist/cjs/components/UrlProcessor.js +1 -1
  24. package/dist/cjs/components/VoiceIcon.js +1 -1
  25. package/dist/cjs/components/index.d.ts +2 -0
  26. package/dist/cjs/components/index.d.ts.map +1 -1
  27. package/dist/cjs/config/index.d.ts.map +1 -1
  28. package/dist/cjs/config/index.js +1 -1
  29. package/dist/cjs/hooks/useAuthState.js +1 -1
  30. package/dist/cjs/hooks/useCodicentState.js +1 -1
  31. package/dist/cjs/hooks/useLocalization.d.ts.map +1 -1
  32. package/dist/cjs/hooks/useLocalization.js +1 -1
  33. package/dist/cjs/hooks/useTools.d.ts.map +1 -1
  34. package/dist/cjs/hooks/useTools.js +1 -1
  35. package/dist/cjs/index.js +1 -1
  36. package/dist/cjs/pages/AppFrame.js +1 -1
  37. package/dist/cjs/pages/Chat.js +1 -1
  38. package/dist/cjs/pages/Compose.js +1 -1
  39. package/dist/cjs/pages/CrmPage.js +1 -1
  40. package/dist/cjs/pages/CrmPagePersistent.js +1 -1
  41. package/dist/cjs/pages/FormAccept.js +1 -1
  42. package/dist/cjs/pages/FormInvite.js +1 -1
  43. package/dist/cjs/pages/HtmlViewer.js +1 -1
  44. package/dist/cjs/pages/Login.js +1 -1
  45. package/dist/cjs/pages/Purchase.js +1 -1
  46. package/dist/cjs/pages/Sales.js +1 -1
  47. package/dist/cjs/pages/Search.js +1 -1
  48. package/dist/cjs/pages/Snap.js +1 -1
  49. package/dist/esm/components/AiInput.js +1 -1
  50. package/dist/esm/components/AudioIcon.js +1 -1
  51. package/dist/esm/components/ChatInput.js +1 -1
  52. package/dist/esm/components/ChatMessage.js +1 -1
  53. package/dist/esm/components/CombinedPlaceholderDialog.js +1 -1
  54. package/dist/esm/components/DataMessagePicker.d.ts +33 -0
  55. package/dist/esm/components/DataMessagePicker.d.ts.map +1 -0
  56. package/dist/esm/components/DataMessagePicker.js +1 -0
  57. package/dist/esm/components/Footer.js +1 -1
  58. package/dist/esm/components/Header.js +1 -1
  59. package/dist/esm/components/HtmlView.js +1 -1
  60. package/dist/esm/components/MermaidChart.d.ts.map +1 -1
  61. package/dist/esm/components/MermaidChart.js +1 -1
  62. package/dist/esm/components/MessageInput.js +1 -1
  63. package/dist/esm/components/MessageItem.js +1 -1
  64. package/dist/esm/components/Profile.js +1 -1
  65. package/dist/esm/components/Prompt.js +1 -1
  66. package/dist/esm/components/SnapFooter.js +1 -1
  67. package/dist/esm/components/TextHeader.js +1 -1
  68. package/dist/esm/components/TypingIndicator.js +1 -1
  69. package/dist/esm/components/UploadFile.js +1 -1
  70. package/dist/esm/components/UrlProcessor.js +1 -1
  71. package/dist/esm/components/VoiceIcon.js +1 -1
  72. package/dist/esm/components/index.d.ts +2 -0
  73. package/dist/esm/components/index.d.ts.map +1 -1
  74. package/dist/esm/config/index.d.ts.map +1 -1
  75. package/dist/esm/config/index.js +1 -1
  76. package/dist/esm/hooks/useAuthState.js +1 -1
  77. package/dist/esm/hooks/useCodicentState.js +1 -1
  78. package/dist/esm/hooks/useLocalization.d.ts.map +1 -1
  79. package/dist/esm/hooks/useLocalization.js +1 -1
  80. package/dist/esm/hooks/useTools.d.ts.map +1 -1
  81. package/dist/esm/hooks/useTools.js +1 -1
  82. package/dist/esm/index.js +1 -1
  83. package/dist/esm/pages/AppFrame.js +1 -1
  84. package/dist/esm/pages/Chat.js +1 -1
  85. package/dist/esm/pages/Compose.js +1 -1
  86. package/dist/esm/pages/CrmPage.js +1 -1
  87. package/dist/esm/pages/CrmPagePersistent.js +1 -1
  88. package/dist/esm/pages/FormAccept.js +1 -1
  89. package/dist/esm/pages/FormInvite.js +1 -1
  90. package/dist/esm/pages/HtmlViewer.js +1 -1
  91. package/dist/esm/pages/Login.js +1 -1
  92. package/dist/esm/pages/Purchase.js +1 -1
  93. package/dist/esm/pages/Sales.js +1 -1
  94. package/dist/esm/pages/Search.js +1 -1
  95. package/dist/esm/pages/Snap.js +1 -1
  96. package/dist/index.d.ts +263 -233
  97. package/package.json +1 -1
@@ -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"),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"),require("../components/CookieBanner.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
+ "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/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const j=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:d,tAsync:p}=l.default(),[q]=m.useSearchParams(),g=m.useNavigate(),h=q.get("id"),x=j(),[f,v]=n.useState(""),[C,k]=n.useState(!1);return n.useEffect((()=>{(async()=>{const e=t.getConfigValue("FORM_ACCEPT_MARKDOWN");if(e){k(!0);const r=await p(e);k(!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:d("Ö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:d("Din kod för formuläret")}),e.jsx("p",{className:x.instructionParagraph,children:d("Instruktioner:")}),e.jsxs("ol",{className:x.orderedList,children:[e.jsx("li",{children:d("Skriv ner eller kopiera den kod som visas nedan, du behöver den för att identifiera din session.")}),e.jsx("li",{children:d("Klicka på 'Starta' för att komma igång med chatten.")})]}),e.jsx(i.Text,{size:500,children:d("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:d("Starta")})]})})})};
@@ -1 +1 @@
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"),require("../components/CookieBanner.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(),B=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 L=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:B,className:q.instructionParagraph,children:g("Välj formulär")}),e.jsx(n.Dropdown,{"aria-labelledby":B,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")}),L&&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
+ "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/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const 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(),B=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 L=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:B,className:q.instructionParagraph,children:g("Välj formulär")}),e.jsx(n.Dropdown,{"aria-labelledby":B,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")}),L&&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("@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 n=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 t=require("../components/HtmlView.js");require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");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(n.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(n.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(t.default,{html:a,onDismiss:()=>window.history.back()}):e.jsx(n.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
+ "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 n=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"),require("../components/DataMessagePicker.js");var t=require("../components/HtmlView.js");require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");exports.default=({state:o})=>{const a=window.location.hash.match(/^#\/html\/(.+)$/),c=a?decodeURIComponent(a[1]):"",[u,l]=s.useState(),[d,j]=s.useState(!1),[m,q]=s.useState(),{service:p}=o;return s.useEffect((()=>{c&&p?(j(!0),q(void 0),p.getMessagesFast([c],void 0,1).then((e=>{if(0===e.length)return void q(`No messages found with tag: ${c}`);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")}),[c,p]),d?e.jsx(n.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(n.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: ",c]})]})}):u?e.jsx(t.default,{html:u,onDismiss:()=>window.history.back()}):e.jsx(n.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"),r=require("react"),s=require("@fluentui/react-components");require("../services/codicent.js"),require("../components/Markdown.js"),require("../components/Textarea.js");var n=require("../components/Button.js");require("../components/CompoundButton.js");var i=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("../components/CookieBanner.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(i.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(i.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(n.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(n.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(n.Button,{className:s.mergeClasses(j.button,p.button),size:"large",appearance:"primary",onClick:()=>m({authorizationParams:{screen_hint:"signup"}}),children:q("Registrera")})]})]})};
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 n=require("../components/Button.js");require("../components/CompoundButton.js");var i=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/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/Page.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js");var a=require("../hooks/useLocalization.js");require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("./AppFrame.js"),require("./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(i.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(i.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(n.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(n.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(n.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("@fluentui/react-components"),s=require("react"),n=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js");var i=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"),require("../components/CookieBanner.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(i.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(n.Link,{to:"/logout",children:"Logga ut"})," och sedan in igen för att komma igång."]})})]})};exports.Purchase=l,exports.default=l;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@fluentui/react-components"),s=require("react"),n=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js");var i=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/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const 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,p]=s.useState(!1),{service:d,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(i.Button,{appearance:"primary",onClick:async()=>{try{p(!0),await d.redirectToCheckout(c.getConfigValue("STRIPE_PRICE_ID"))}catch(e){console.error("Purchase error:",e)}finally{p(!1)}},disabled:j,children:j?e.jsx(a.Spinner,{size:"tiny"}):"Starta abonnemang"}),e.jsx("div",{children:e.jsxs(t.Text,{size:400,children:["Har du redan ett abonnemang? Kanske har du loggat in med fel konto. ",e.jsx(n.Link,{to:"/logout",children:"Logga ut"})," och sedan in igen för att komma igång."]})})]})};exports.Purchase=l,exports.default=l;
@@ -1 +1 @@
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"),require("../components/CookieBanner.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,C]=o.useState(""),[f,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(""),[B,D]=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:B||c.getConfigValue("APP_ICON_URL")||"https://via.placeholder.com/100",className:j.logo,onClick:()=>{B?L(!0):P&&T(!0)}}),e.jsx("div",{className:j.inputContainer,children:e.jsx(i.Input,{value:q,onChange:e=>C(e.target.value),onBlur:()=>{const e=w.find((e=>e.data.code===q));if(e)D(`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?(D(`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:B})]})})};exports.Sales=j,exports.default=j;
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/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var p=require("../components/QrCodeDialog.js");require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const m=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,C]=o.useState(""),[f,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,D]=o.useState(""),[A,B]=o.useState(""),[P,F]=o.useState(""),[M,N]=o.useState(!1),[$,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:A||c.getConfigValue("APP_ICON_URL")||"https://via.placeholder.com/100",className:j.logo,onClick:()=>{A?L(!0):P&&T(!0)}}),e.jsx("div",{className:j.inputContainer,children:e.jsx(i.Input,{value:q,onChange:e=>C(e.target.value),onBlur:()=>{const e=w.find((e=>e.data.code===q));if(e)B(`https://codicent.com/app/GetImage?fileId=${e.fileId}&width=100`),F(e.data.link),N(!0),z();else{const e=w.find((e=>e.data.code2===q.toUpperCase()));e?(B(`https://codicent.com/app/GetImage?fileId=${e.fileIds&&e.fileIds.length>1?e.fileIds[1]:e.fileId}&width=100`),F(e.data.link2),N(!0),z()):(N(!1),alert(h("Fel försäljningskod!")))}},placeholder:h("Fyll i försäljningskod"),maxLength:16,size:"large"})})]}),M&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className: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=>D(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),D("")},children:h("Spara")})})]}),e.jsxs(l.Dialog,{open:$,children:[e.jsx(l.DialogTitle,{children:h("Godkännande")}),e.jsx(l.DialogContent,{children:h("Är kunden över 23 år?")}),e.jsxs(l.DialogActions,{children:[e.jsx(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:A})]})})};exports.Sales=j,exports.default=j;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("@fluentui/react-components"),o=require("../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"),require("../components/CookieBanner.js");const j=t.makeStyles({chatContainer:{width:"100%",flex:1,maxWidth:"800px",height:"100%",backgroundColor:"#ffffff",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},"@media (max-width: 480px)":{},backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",overflowY:"auto",marginBottom:"16px"},chatMessages:{display:"flex",flexDirection:"column",flex:1,padding:"16px",overflowY:"auto",touchAction:"pan-y"},inputArea:{display:"flex",flexDirection:"column",justifyContent:"start",alignItems:"center",height:"100%",padding:"0 16px"},promptButtons:{display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"start",alignItems:"center",gap:"8px",marginTop:"8px",marginLeft:"6px",marginRight:"2px",marginBottom:"12px"},answerArea:{width:"100%",marginLeft:"12px",marginRight:"12px",padding:"12px",borderRadius:"16px",marginBottom:"24px"},title:{marginLeft:"12px",padding:"16px"}});exports.default=({state:q})=>{const f=j(),{t:h}=d.default(),{messages:x,isBotTyping:C,handleSend:v,newChat:A}=m.useChat(q.stateMachine),S=r.useRef(null),{service:T}=q;l.getConfigValue("CHAT_BOT_BACKGROUND_COLOR")||t.tokens.colorBrandBackground2;const[w,_]=u.default(q.context.selectedApp+"_searchprompts",["Leta information","Vad kan jag göra?","Sök supportställe"]),[b,k]=r.useState(),[y,N]=r.useState(null),[O,I]=r.useState(!1);g.useTemplateVariables(T.uploadFile);r.useEffect((()=>{C&&I(!0)}),[C]),r.useEffect((()=>{A();const e=l.getConfigValue("APP_CONFIG"),r=l.getConfigValue("APP_BUTTONS");r?e.apps[r].questions&&_(e.apps[r].questions.map((e=>h(e)))):console.error("APP_BUTTONS is not defined in the configuration."),void 0!==l.getConfigValue("ANONYMOUS_CODICENT")&&void 0!==l.getConfigValue("ANONYMOUS_TOKEN")?(T.codicent=l.getConfigValue("ANONYMOUS_CODICENT"),T.setToken(l.getConfigValue("ANONYMOUS_TOKEN"))):console.error("Anonymous Codicent or Token is not defined in the configuration.")}),[A,T,_,h]),r.useEffect((()=>{setTimeout((()=>{S.current?.scrollIntoView({behavior:"smooth"})}),10)}),[x]);const B=e=>{k(e),v(e)};return r.useEffect((()=>{const e=x.filter((e=>"bot"===e.sender));let r=e.length>0?e[e.length-1]:null;N({...r,createdAt:new Date}),r&&I(!1)}),[x]),e.jsx(p.Page,{hideHeader:!0,hideFooter:!0,children:e.jsxs("div",{id:"search-container",className:f.chatContainer,style:{backgroundImage:`url(${l.getConfigValue("CHAT_BACKGROUND_IMAGE_URL")})`},children:[e.jsx("div",{className:f.title,children:e.jsx(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}`)))}),O&&e.jsx(i.default,{}),y&&!C&&e.jsxs("div",{className:f.answerArea,children:[e.jsx("div",{ref:S}),e.jsx(o.default,{content:y.content})]})]})]})})};
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/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const j=t.makeStyles({chatContainer:{width:"100%",flex:1,maxWidth:"800px",height:"100%",backgroundColor:"#ffffff",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},"@media (max-width: 480px)":{},backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",overflowY:"auto",marginBottom:"16px"},chatMessages:{display:"flex",flexDirection:"column",flex:1,padding:"16px",overflowY:"auto",touchAction:"pan-y"},inputArea:{display:"flex",flexDirection:"column",justifyContent:"start",alignItems:"center",height:"100%",padding:"0 16px"},promptButtons:{display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"start",alignItems:"center",gap:"8px",marginTop:"8px",marginLeft:"6px",marginRight:"2px",marginBottom:"12px"},answerArea:{width:"100%",marginLeft:"12px",marginRight:"12px",padding:"12px",borderRadius:"16px",marginBottom:"24px"},title:{marginLeft:"12px",padding:"16px"}});exports.default=({state:q})=>{const f=j(),{t:h}=d.default(),{messages:x,isBotTyping:C,handleSend:v,newChat:A}=m.useChat(q.stateMachine),S=r.useRef(null),{service:T}=q;l.getConfigValue("CHAT_BOT_BACKGROUND_COLOR")||t.tokens.colorBrandBackground2;const[w,_]=u.default(q.context.selectedApp+"_searchprompts",["Leta information","Vad kan jag göra?","Sök supportställe"]),[b,k]=r.useState(),[y,N]=r.useState(null),[O,I]=r.useState(!1);g.useTemplateVariables(T.uploadFile);r.useEffect((()=>{C&&I(!0)}),[C]),r.useEffect((()=>{A();const e=l.getConfigValue("APP_CONFIG"),r=l.getConfigValue("APP_BUTTONS");r?e.apps[r].questions&&_(e.apps[r].questions.map((e=>h(e)))):console.error("APP_BUTTONS is not defined in the configuration."),void 0!==l.getConfigValue("ANONYMOUS_CODICENT")&&void 0!==l.getConfigValue("ANONYMOUS_TOKEN")?(T.codicent=l.getConfigValue("ANONYMOUS_CODICENT"),T.setToken(l.getConfigValue("ANONYMOUS_TOKEN"))):console.error("Anonymous Codicent or Token is not defined in the configuration.")}),[A,T,_,h]),r.useEffect((()=>{setTimeout((()=>{S.current?.scrollIntoView({behavior:"smooth"})}),10)}),[x]);const B=e=>{k(e),v(e)};return r.useEffect((()=>{const e=x.filter((e=>"bot"===e.sender));let r=e.length>0?e[e.length-1]:null;N({...r,createdAt:new Date}),r&&I(!1)}),[x]),e.jsx(p.Page,{hideHeader:!0,hideFooter:!0,children:e.jsxs("div",{id:"search-container",className:f.chatContainer,style:{backgroundImage:`url(${l.getConfigValue("CHAT_BACKGROUND_IMAGE_URL")})`},children:[e.jsx("div",{className:f.title,children:e.jsx(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}`)))}),O&&e.jsx(i.default,{}),y&&!C&&e.jsxs("div",{className:f.answerArea,children:[e.jsx("div",{ref:S}),e.jsx(o.default,{content:y.content})]})]})]})})};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("@fluentui/react-components"),o=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js");var s=require("../components/Text.js");require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js");var i=require("../components/CombinedPlaceholderDialog.js");require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./AppFrame.js"),require("./Chat.js"),require("./Compose.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"),require("../components/Page.js"),require("./QrScan.js");var n=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var a=require("../hooks/useTemplateVariables.js");require("../hooks/useAppStyles.js");var c=require("../components/MessageInput.js");require("../components/UploadFile.js");var u=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"),require("../components/CookieBanner.js");const l=r.makeStyles({container:{position:"relative",height:"100vh",width:"100vw",overflow:"auto"},flashOverlay:{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"transparent",transition:"background-color 0.2s ease-out",pointerEvents:"none",zIndex:3},video:{position:"absolute",top:0,left:0,width:"100%",height:"100%",objectFit:"cover",zIndex:1},canvas:{display:"none"},bottomControls:{position:"fixed",bottom:"100px",width:"100%",display:"flex",justifyContent:"center",alignItems:"center",zIndex:2,boxSizing:"border-box"},controlContainer:{width:"100%",maxWidth:"600px",position:"relative"},sendButton:{position:"absolute",right:"10px",bottom:"10px",width:"50px",height:"50px",borderRadius:"50%",backgroundColor:"#0078d4",color:"white",border:"none",cursor:"pointer",display:"flex",justifyContent:"center",alignItems:"center"},topControls:{position:"fixed",top:"20px",width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",zIndex:2,padding:"0 10px",boxSizing:"border-box"},backButton:{width:"60px",height:"60px",borderRadius:"50%",backgroundColor:"transparent",color:"white",border:"none",cursor:"pointer"},input:{padding:"5px",width:"200px",fontSize:"larger",backgroundColor:"#fff8"},bottomButtons:{position:"fixed",bottom:"0px",width:"100%",display:"flex",justifyContent:"space-around",alignItems:"center",zIndex:2,boxSizing:"border-box"},iconButton:{width:"60px",height:"60px",borderRadius:"50%",backgroundColor:"transparent",color:"white",border:"none",cursor:"pointer"},centerText:{position:"fixed",top:"30%",left:"50%",transform:"translate(-50%, -50%)",zIndex:2,textAlign:"center"}});exports.default=({state:r,audio:d})=>{const p=l(),{service:m}=r,[h,g]=t.useState(null),[j,q]=t.useState(!0),x=t.useRef(null),f=t.useRef(null),[w]=o.useSearchParams(),b=w.get("extra"),v=w.get("template"),[C,y]=t.useState(""),[S]=t.useState("log"),k=t.useMemo((()=>new Audio("/audio/camera.mp3")),[]),[I,F]=t.useState(!1),T=o.useNavigate(),{t:z}=n.default(),{extractTemplateVariables:M}=a.useTemplateVariables(m.uploadFile),[P,V]=t.useState(M(v||"")),[B,E]=t.useState(P.length>0),[$,_]=t.useState(""),[N,D]=t.useState(100),A=t.useCallback((()=>P.map((e=>`#${e.value}`)).join(" ")),[P]);t.useEffect((()=>{const e=A();_(`${b?" #"+b:""}${e.length>0?" "+e:""}`.trim())}),[P,b,A]),t.useEffect((()=>{if(window.visualViewport){const e=()=>{const e=window.visualViewport?window.innerHeight-window.visualViewport.height:0;D(e>150?e+20:100)};return window.visualViewport.addEventListener("resize",e),e(),()=>{window.visualViewport&&window.visualViewport.removeEventListener("resize",e)}}}),[]);const H=async e=>{try{const t=new FormData;t.append("file",e);const r=await m.uploadFile(e.name,t),o=A(),s=`${S?" #"+S:""}${b?" #"+b:""}${o.length>0?" "+o:""} #photo #file:${r}`;await m.sendMessage(s)}catch(e){alert(z("Failed to send image:")+" "+e)}};return t.useEffect((()=>()=>{h&&h.getTracks().forEach((e=>e.stop()))}),[h]),e.jsxs("div",{className:p.container,children:[e.jsx("div",{className:p.flashOverlay,style:{backgroundColor:I?"#ffffff":"transparent"}}),e.jsx("video",{ref:x,autoPlay:!0,playsInline:!0,className:p.video}),e.jsx("canvas",{ref:f,width:"640",height:"480",className:p.canvas}),!h&&e.jsx(s.Text,{weight:"semibold",size:400,className:p.centerText,children:z("Klicka på Byt kamera för att starta!")}),e.jsx("div",{className:p.bottomControls,style:{bottom:`${N}px`},children:e.jsx("div",{className:p.controlContainer,children:e.jsx(c.default,{onSend:async()=>{if(""===C.trim())return;const e=A(),t=`${S?" #"+S:""}${b?" #"+b:""}${e.length>0?" "+e:""} ${C}`;try{await m.sendMessage(t),y("")}catch(e){alert(z("Failed to send message: ")+e)}},rows:4,onChange:y})})}),e.jsx("div",{className:p.bottomButtons,children:e.jsx(u.default,{audio:d,onHome:()=>T("/"),onTakePhoto:()=>{const e=f.current,t=x.current;if(e&&t){e.width=t.videoWidth,e.height=t.videoHeight;const r=e.getContext("2d");r&&(k.play(),F(!0),setTimeout((()=>F(!1)),100),r.drawImage(t,0,0,e.width,e.height),e.toBlob((e=>{if(e){const t=new File([e],"snapshot.png",{type:"image/png"});H(t)}})))}},onSwichCamera:()=>{q((e=>!e)),(async()=>{h&&h.getTracks().forEach((e=>e.stop()));const e={video:{facingMode:j?"user":"environment"},audio:!1};try{const t=await navigator.mediaDevices.getUserMedia(e);g(t),x.current&&(x.current.srcObject=t,x.current.play())}catch(e){console.error("Error accessing the camera: ",e),e instanceof Error?alert(z("Error accessing the camera:")+" "+e.message):alert(z("Error accessing the camera"))}})()},tag:$})}),e.jsx(i.CombinedPlaceholderDialog,{open:B,templateVariables:P,filePlaceholders:[],onTemplateVariablesChange:V,onFilePlaceholdersChange:()=>{},onConfirm:()=>E(!1),onCancel:()=>{E(!1),T(-1)},uploadFile:m.uploadFile})]})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("@fluentui/react-components"),o=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js");var s=require("../components/Text.js");require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js");var i=require("../components/CombinedPlaceholderDialog.js");require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./AppFrame.js"),require("./Chat.js"),require("./Compose.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"),require("../components/Page.js"),require("./QrScan.js");var n=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var a=require("../hooks/useTemplateVariables.js");require("../hooks/useAppStyles.js");var c=require("../components/MessageInput.js");require("../components/UploadFile.js");var u=require("../components/SnapFooter.js");require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const l=t.makeStyles({container:{position:"relative",height:"100vh",width:"100vw",overflow:"auto"},flashOverlay:{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"transparent",transition:"background-color 0.2s ease-out",pointerEvents:"none",zIndex:3},video:{position:"absolute",top:0,left:0,width:"100%",height:"100%",objectFit:"cover",zIndex:1},canvas:{display:"none"},bottomControls:{position:"fixed",bottom:"100px",width:"100%",display:"flex",justifyContent:"center",alignItems:"center",zIndex:2,boxSizing:"border-box"},controlContainer:{width:"100%",maxWidth:"600px",position:"relative"},sendButton:{position:"absolute",right:"10px",bottom:"10px",width:"50px",height:"50px",borderRadius:"50%",backgroundColor:"#0078d4",color:"white",border:"none",cursor:"pointer",display:"flex",justifyContent:"center",alignItems:"center"},topControls:{position:"fixed",top:"20px",width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",zIndex:2,padding:"0 10px",boxSizing:"border-box"},backButton:{width:"60px",height:"60px",borderRadius:"50%",backgroundColor:"transparent",color:"white",border:"none",cursor:"pointer"},input:{padding:"5px",width:"200px",fontSize:"larger",backgroundColor:"#fff8"},bottomButtons:{position:"fixed",bottom:"0px",width:"100%",display:"flex",justifyContent:"space-around",alignItems:"center",zIndex:2,boxSizing:"border-box"},iconButton:{width:"60px",height:"60px",borderRadius:"50%",backgroundColor:"transparent",color:"white",border:"none",cursor:"pointer"},centerText:{position:"fixed",top:"30%",left:"50%",transform:"translate(-50%, -50%)",zIndex:2,textAlign:"center"}});exports.default=({state:t,audio:d})=>{const p=l(),{service:m}=t,[h,g]=r.useState(null),[j,q]=r.useState(!0),x=r.useRef(null),f=r.useRef(null),[w]=o.useSearchParams(),b=w.get("extra"),v=w.get("template"),[C,y]=r.useState(""),[S]=r.useState("log"),k=r.useMemo((()=>new Audio("/audio/camera.mp3")),[]),[I,F]=r.useState(!1),T=o.useNavigate(),{t:M}=n.default(),{extractTemplateVariables:P}=a.useTemplateVariables(m.uploadFile),[z,V]=r.useState(P(v||"")),[B,E]=r.useState(z.length>0),[$,_]=r.useState(""),[N,D]=r.useState(100),A=r.useCallback((()=>z.map((e=>`#${e.value}`)).join(" ")),[z]);r.useEffect((()=>{const e=A();_(`${b?" #"+b:""}${e.length>0?" "+e:""}`.trim())}),[z,b,A]),r.useEffect((()=>{if(window.visualViewport){const e=()=>{const e=window.visualViewport?window.innerHeight-window.visualViewport.height:0;D(e>150?e+20:100)};return window.visualViewport.addEventListener("resize",e),e(),()=>{window.visualViewport&&window.visualViewport.removeEventListener("resize",e)}}}),[]);const H=async e=>{try{const r=new FormData;r.append("file",e);const t=await m.uploadFile(e.name,r),o=A(),s=`${S?" #"+S:""}${b?" #"+b:""}${o.length>0?" "+o:""} #photo #file:${t}`;await m.sendMessage(s)}catch(e){alert(M("Failed to send image:")+" "+e)}};return r.useEffect((()=>()=>{h&&h.getTracks().forEach((e=>e.stop()))}),[h]),e.jsxs("div",{className:p.container,children:[e.jsx("div",{className:p.flashOverlay,style:{backgroundColor:I?"#ffffff":"transparent"}}),e.jsx("video",{ref:x,autoPlay:!0,playsInline:!0,className:p.video}),e.jsx("canvas",{ref:f,width:"640",height:"480",className:p.canvas}),!h&&e.jsx(s.Text,{weight:"semibold",size:400,className:p.centerText,children:M("Klicka på Byt kamera för att starta!")}),e.jsx("div",{className:p.bottomControls,style:{bottom:`${N}px`},children:e.jsx("div",{className:p.controlContainer,children:e.jsx(c.default,{onSend:async()=>{if(""===C.trim())return;const e=A(),r=`${S?" #"+S:""}${b?" #"+b:""}${e.length>0?" "+e:""} ${C}`;try{await m.sendMessage(r),y("")}catch(e){alert(M("Failed to send message: ")+e)}},rows:4,onChange:y})})}),e.jsx("div",{className:p.bottomButtons,children:e.jsx(u.default,{audio:d,onHome:()=>T("/"),onTakePhoto:()=>{const e=f.current,r=x.current;if(e&&r){e.width=r.videoWidth,e.height=r.videoHeight;const t=e.getContext("2d");t&&(k.play(),F(!0),setTimeout((()=>F(!1)),100),t.drawImage(r,0,0,e.width,e.height),e.toBlob((e=>{if(e){const r=new File([e],"snapshot.png",{type:"image/png"});H(r)}})))}},onSwichCamera:()=>{q((e=>!e)),(async()=>{h&&h.getTracks().forEach((e=>e.stop()));const e={video:{facingMode:j?"user":"environment"},audio:!1};try{const r=await navigator.mediaDevices.getUserMedia(e);g(r),x.current&&(x.current.srcObject=r,x.current.play())}catch(e){console.error("Error accessing the camera: ",e),e instanceof Error?alert(M("Error accessing the camera:")+" "+e.message):alert(M("Error accessing the camera"))}})()},tag:$})}),e.jsx(i.CombinedPlaceholderDialog,{open:B,templateVariables:z,filePlaceholders:[],onTemplateVariablesChange:V,onFilePlaceholdersChange:()=>{},onConfirm:()=>E(!1),onCancel:()=>{E(!1),T(-1)},uploadFile:m.uploadFile})]})};
@@ -1 +1 @@
1
- import{jsxs as o,jsx as e,Fragment as t}from"react/jsx-runtime";import{useState as i,useEffect as r}from"react";import{makeStyles as s,useId as a,Combobox as p,Option as m}from"@fluentui/react-components";import"./Markdown.js";import"./Textarea.js";import{Button as n}from"./Button.js";import"./CompoundButton.js";import{Text as l}from"./Text.js";import{Spinner as c}from"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import j from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"./Content.js";import"./Page.js";import"../pages/QrScan.js";import d from"../hooks/useLocalization.js";import"./FileThumbnail.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";const g=s({root:{display:"grid",gridTemplateRows:"repeat(1fr)",justifyItems:"start",gap:"2px",maxWidth:"400px",padding:"8px"},combo:{width:"100%"},horizonal:{display:"flex",flexDirection:"row",verticalAlign:"middle"}}),u=s=>{const{id:u,options:f,title:h,placeholder:x,onChangeValue:w,value:v="",prompt:C,service:b}=s,y=a(u+"-combo"),[S,k]=i([...f||[]]),[T,z]=i(),[L,M]=i(!1),_=g(),{t:F}=d();r((()=>{w(T)}),[T,w]);return o("div",{id:u,className:_.root,children:[o("div",{className:_.horizonal,children:[e(l,{size:400,id:y,children:h}),C&&o(t,{children:[!L&&e(n,{icon:"WandRegular",title:F("Autoskapa"),style:{fontSize:16,marginLeft:6},onClick:async()=>{M(!0),await(async o=>{if(o){const e=await b.chat(o);if(e){const o=new j(e.content).content;w(o)}}})(C),M(!1)},appearance:"transparent",size:"small"}),L&&e(c,{size:"extra-small",style:{marginLeft:12},children:F("Arbetar...")})]})]}),o(p,{className:_.combo,"aria-labelledby":y,freeform:!0,placeholder:x||F("Välj..."),onChange:o=>{const e=o.target.value;z(e);const t=(f||[]).filter((o=>0===o.toLowerCase().indexOf(e.toLowerCase())));k(t)},onOptionSelect:(o,e)=>{e.optionText&&(f||[]).includes(e.optionText);z(e.optionText)},size:"large",value:v,children:[T?e(m,{text:T,children:F("Sök efter ")+T},"freeform"):null,S.map((o=>e(m,{children:o},o)))]})]})};export{u as default};
1
+ import{jsxs as o,jsx as e,Fragment as t}from"react/jsx-runtime";import{useState as i,useEffect as r}from"react";import{makeStyles as s,useId as a,Combobox as p,Option as m}from"@fluentui/react-components";import"./Markdown.js";import"./Textarea.js";import{Button as n}from"./Button.js";import"./CompoundButton.js";import{Text as l}from"./Text.js";import{Spinner as c}from"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import j from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"./Content.js";import"./Page.js";import"../pages/QrScan.js";import d from"../hooks/useLocalization.js";import"./FileThumbnail.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";const g=s({root:{display:"grid",gridTemplateRows:"repeat(1fr)",justifyItems:"start",gap:"2px",maxWidth:"400px",padding:"8px"},combo:{width:"100%"},horizonal:{display:"flex",flexDirection:"row",verticalAlign:"middle"}}),u=s=>{const{id:u,options:f,title:h,placeholder:x,onChangeValue:w,value:v="",prompt:C,service:b}=s,y=a(u+"-combo"),[S,k]=i([...f||[]]),[M,T]=i(),[z,L]=i(!1),P=g(),{t:_}=d();r((()=>{w(M)}),[M,w]);return o("div",{id:u,className:P.root,children:[o("div",{className:P.horizonal,children:[e(l,{size:400,id:y,children:h}),C&&o(t,{children:[!z&&e(n,{icon:"WandRegular",title:_("Autoskapa"),style:{fontSize:16,marginLeft:6},onClick:async()=>{L(!0),await(async o=>{if(o){const e=await b.chat(o);if(e){const o=new j(e.content).content;w(o)}}})(C),L(!1)},appearance:"transparent",size:"small"}),z&&e(c,{size:"extra-small",style:{marginLeft:12},children:_("Arbetar...")})]})]}),o(p,{className:P.combo,"aria-labelledby":y,freeform:!0,placeholder:x||_("Välj..."),onChange:o=>{const e=o.target.value;T(e);const t=(f||[]).filter((o=>0===o.toLowerCase().indexOf(e.toLowerCase())));k(t)},onOptionSelect:(o,e)=>{e.optionText&&(f||[]).includes(e.optionText);T(e.optionText)},size:"large",value:v,children:[M?e(m,{text:M,children:_("Sök efter ")+M},"freeform"):null,S.map((o=>e(m,{children:o},o)))]})]})};export{u as default};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{Mic24Regular as t,MicPulse24Filled as i,MicRecord24Filled as r}from"@fluentui/react-icons";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"@fluentui/react-components";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import s from"../utils/withWakeLock.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import e from"../hooks/useAppStyles.js";const p=s((({isSoundCaptured:t,stopRecording:s})=>{const{pointer:p}=e();return o(t?i:r,{onClick:s,className:p})})),a=({audio:i,disabled:r})=>{const{isRecording:s,isSoundCaptured:a,startRecording:m,stopRecording:n}=i,{pointer:j}=e();return r?o(t,{}):s?o(p,{isSoundCaptured:a,stopRecording:n}):o(t,{onClick:()=>m(""),className:j})};export{a as default};
1
+ import{jsx as o}from"react/jsx-runtime";import{Mic24Regular as t,MicPulse24Filled as s,MicRecord24Filled as i}from"@fluentui/react-icons";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"@fluentui/react-components";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import r from"../utils/withWakeLock.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import e from"../hooks/useAppStyles.js";const p=r((({isSoundCaptured:t,stopRecording:r})=>{const{pointer:p}=e();return o(t?s:i,{onClick:r,className:p})})),a=({audio:s,disabled:i})=>{const{isRecording:r,isSoundCaptured:a,startRecording:m,stopRecording:n}=s,{pointer:j}=e();return i?o(t,{}):r?o(p,{isSoundCaptured:a,stopRecording:n}):o(t,{onClick:()=>m(""),className:j})};export{a as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useRef as o,useState as i,useEffect as r}from"react";import{makeStyles as a,tokens as s,Button as l,Spinner as n,mergeClasses as p}from"@fluentui/react-components";import{AddRegular as m,SendRegular as c,SendFilled as d}from"@fluentui/react-icons";import{FileThumbnail as u}from"./FileThumbnail.js";import g from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"./Markdown.js";import{Textarea as j}from"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as f}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import h from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import b from"../hooks/useAppStyles.js";const x=a({inputContainer:{display:"flex",flexDirection:"column",padding:"8px",width:"100%",position:"relative",gap:"8px"},textareaWrapper:{position:"relative",width:"100%",display:"flex",flexDirection:"column"},actionButtonRow:{position:"absolute",left:"8px",bottom:"8px",right:"8px",zIndex:1,display:"flex",justifyContent:"space-between",alignItems:"center"},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px 0",maxWidth:"100%",boxSizing:"border-box",gap:"4px",minHeight:"72px",backgroundColor:s.colorNeutralBackground2,borderRadius:s.borderRadiusMedium,"&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:s.colorNeutralStroke1,borderRadius:"3px"}},hiddenInput:{display:"none"},button:{color:s.colorNeutralForeground2,"&:hover":{color:s.colorBrandBackground,backgroundColor:"transparent"}}}),v=({onSend:a,disableSend:s,onSelectFiles:v,getImageUrl:w,getFileInfo:S,codicent:T,defaultText:_,rows:k,noMemory:y,selectAll:C,id:D})=>{const N=x(),[B,F]=g("chatInput-"+T,""),I=o(null),[O,E]=i([]),[P,A]=i([]),[H,U]=i(!1),[L,M]=i([]),{t:R}=h(),W=b();r((()=>{_&&F(_)}),[F,_]),r((()=>{!0===y&&F("")}),[y,F]);const z=()=>{if(""===B.trim()&&0===L.length)return;const e=O.length>0?" #"+O.join(" #"):"",t=P.length>0?"\n#file:"+P.join("\n#file:"):"";a(e+B+t),F(""),E([]),A([]),M([])};return e("div",{className:N.inputContainer,children:[t("input",{title:R("Välj fil att ladda upp"),type:"file",ref:I,className:N.hiddenInput,onChange:async e=>{const t=e.target.files;if(t&&t.length>0&&v){U(!0);try{const e=await v(t),o=await Promise.all(e.map((e=>S(e))));A((t=>[...t,...e])),M((e=>[...e,...o]))}catch(e){console.error("Failed to upload files",e)}finally{U(!1),I.current&&(I.current.value="")}}},multiple:!0,accept:"image/*,.pdf,.doc,.docx,.xls,.xlsx,.txt"}),L.length>0&&t("div",{className:N.fileList,children:L.map((e=>t(u,{file:e,getImageUrl:w,onDelete:()=>{return t=e.id,A((e=>e.filter((e=>e!==t)))),void M((e=>e.filter((e=>e.id!==t))));var t}},e.id)))}),e("div",{className:N.textareaWrapper,onPaste:async e=>{for(const t of e.clipboardData.items)if(-1!==t.type.indexOf("image")){const o=t.getAsFile();if(o&&(e.preventDefault(),v))try{U(!0);const e=new DataTransfer;e.items.add(o);const t=await v(e.files),i=await Promise.all(t.map((e=>S(e))));A((e=>[...e,...t])),M((e=>[...e,...i]))}catch(e){console.error("Failed to upload pasted image",e)}finally{U(!1)}}},children:[t(j,{size:"large",id:D||"chat-input",placeholder:R(f("APP_CHAT_TEXT_PLACEHOLDER")||"Skriv ditt meddelande här..."),value:B,onChange:e=>F(e.target.value),onKeyDown:e=>{s||"Enter"!==e.key||e.shiftKey||(e.preventDefault(),z())},autoFocus:!1,rows:k||4,onFocus:e=>{if(!0===C){e.target.select()}}}),e("div",{className:N.actionButtonRow,children:[t("div",{children:!f("HIDE_CHAT_ADD_FILE_BUTTON")&&v&&t(l,{appearance:"subtle",size:"small",title:R("Lägg till fil"),icon:t(H?n:m,{}),onClick:()=>I.current?.click(),className:N.button})}),t(l,{appearance:f("SHOW_SEND_BUTTON_TEXT")?"primary":"subtle",size:f("SHOW_SEND_BUTTON_TEXT")?"small":"large",title:R("Skicka"),disabled:s,icon:""===B.trim()&&0===L.length?t(c,{}):t(d,{}),onClick:z,className:f("SEND_BUTTON_ROUND_BACKGROUND")?p(W.roundButton,N.button):f("SHOW_SEND_BUTTON_TEXT")?void 0:N.button,children:f("SHOW_SEND_BUTTON_TEXT")&&t("span",{children:R("Skicka")})})]})]})]})};export{v as default};
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useRef as o,useState as i,useEffect as r}from"react";import{makeStyles as a,tokens as s,Button as l,Spinner as n,mergeClasses as p}from"@fluentui/react-components";import{AddRegular as m,SendRegular as c,SendFilled as d}from"@fluentui/react-icons";import{FileThumbnail as u}from"./FileThumbnail.js";import g from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"./Markdown.js";import{Textarea as j}from"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as f}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import h from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import b from"../hooks/useAppStyles.js";const x=a({inputContainer:{display:"flex",flexDirection:"column",padding:"8px",width:"100%",position:"relative",gap:"8px"},textareaWrapper:{position:"relative",width:"100%",display:"flex",flexDirection:"column"},actionButtonRow:{position:"absolute",left:"8px",bottom:"8px",right:"8px",zIndex:1,display:"flex",justifyContent:"space-between",alignItems:"center"},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px 0",maxWidth:"100%",boxSizing:"border-box",gap:"4px",minHeight:"72px",backgroundColor:s.colorNeutralBackground2,borderRadius:s.borderRadiusMedium,"&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:s.colorNeutralStroke1,borderRadius:"3px"}},hiddenInput:{display:"none"},button:{color:s.colorNeutralForeground2,"&:hover":{color:s.colorBrandBackground,backgroundColor:"transparent"}}}),v=({onSend:a,disableSend:s,onSelectFiles:v,getImageUrl:w,getFileInfo:S,codicent:T,defaultText:_,rows:k,noMemory:y,selectAll:C,id:D})=>{const N=x(),[B,F]=g("chatInput-"+T,""),I=o(null),[O,E]=i([]),[P,A]=i([]),[H,U]=i(!1),[L,M]=i([]),{t:R}=h(),W=b();r((()=>{_&&F(_)}),[F,_]),r((()=>{!0===y&&F("")}),[y,F]);const z=()=>{if(""===B.trim()&&0===L.length)return;const e=O.length>0?" #"+O.join(" #"):"",t=P.length>0?"\n#file:"+P.join("\n#file:"):"";a(e+B+t),F(""),E([]),A([]),M([])};return e("div",{className:N.inputContainer,children:[t("input",{title:R("Välj fil att ladda upp"),type:"file",ref:I,className:N.hiddenInput,onChange:async e=>{const t=e.target.files;if(t&&t.length>0&&v){U(!0);try{const e=await v(t),o=await Promise.all(e.map((e=>S(e))));A((t=>[...t,...e])),M((e=>[...e,...o]))}catch(e){console.error("Failed to upload files",e)}finally{U(!1),I.current&&(I.current.value="")}}},multiple:!0,accept:"image/*,.pdf,.doc,.docx,.xls,.xlsx,.txt"}),L.length>0&&t("div",{className:N.fileList,children:L.map((e=>t(u,{file:e,getImageUrl:w,onDelete:()=>{return t=e.id,A((e=>e.filter((e=>e!==t)))),void M((e=>e.filter((e=>e.id!==t))));var t}},e.id)))}),e("div",{className:N.textareaWrapper,onPaste:async e=>{for(const t of e.clipboardData.items)if(-1!==t.type.indexOf("image")){const o=t.getAsFile();if(o&&(e.preventDefault(),v))try{U(!0);const e=new DataTransfer;e.items.add(o);const t=await v(e.files),i=await Promise.all(t.map((e=>S(e))));A((e=>[...e,...t])),M((e=>[...e,...i]))}catch(e){console.error("Failed to upload pasted image",e)}finally{U(!1)}}},children:[t(j,{size:"large",id:D||"chat-input",placeholder:R(f("APP_CHAT_TEXT_PLACEHOLDER")||"Skriv ditt meddelande här..."),value:B,onChange:e=>F(e.target.value),onKeyDown:e=>{s||"Enter"!==e.key||e.shiftKey||(e.preventDefault(),z())},autoFocus:!1,rows:k||4,onFocus:e=>{if(!0===C){e.target.select()}}}),e("div",{className:N.actionButtonRow,children:[t("div",{children:!f("HIDE_CHAT_ADD_FILE_BUTTON")&&v&&t(l,{appearance:"subtle",size:"small",title:R("Lägg till fil"),icon:t(H?n:m,{}),onClick:()=>I.current?.click(),className:N.button})}),t(l,{appearance:f("SHOW_SEND_BUTTON_TEXT")?"primary":"subtle",size:f("SHOW_SEND_BUTTON_TEXT")?"small":"large",title:R("Skicka"),disabled:s,icon:""===B.trim()&&0===L.length?t(c,{}):t(d,{}),onClick:z,className:f("SEND_BUTTON_ROUND_BACKGROUND")?p(W.roundButton,N.button):f("SHOW_SEND_BUTTON_TEXT")?void 0:N.button,children:f("SHOW_SEND_BUTTON_TEXT")&&t("span",{children:R("Skicka")})})]})]})]})};export{v as default};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{makeStyles as o,mergeClasses as s,tokens as r,Text as i}from"@fluentui/react-components";import{ChannelRegular as a}from"@fluentui/react-icons";import"react";import"../services/codicent.js";import p from"./Markdown.js";import"./Textarea.js";import{Button as n}from"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./Header.js";import m from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as l}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import c from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";const d=o({message:{display:"flex",marginBottom:"16px",webkitUserSelect:"text",userSelect:"text"},user:{justifyContent:"flex-end"},bot:{justifyContent:"flex-start"},messageContent:{maxWidth:"80%",padding:"12px 16px",borderRadius:"16px",fontSize:"1rem",lineHeight:"1.4",whiteSpace:"pre-wrap",wordBreak:"break-word",overflow:"auto"},userMessage:{borderTopRightRadius:"0"},botMessage:{borderTopLeftRadius:"0"},newMessage:{animation:"$fadeIn 0.5s ease-in-out"}}),g=({sender:o,content:g,isNew:u,children:j,showSuggestions:f,onSuggestionClicked:h})=>{const C=d(),{t:w}=c();let x=[];if("bot"===o&&g.includes("#suggested_questions")){const e=g.split("#suggested_questions");g=e[0],x=e[1].split("\n").filter((e=>""!==e.trim())).map((e=>e.trim()))}const _=new m(g);let b=_.content;"user"===o&&_.content.includes("---")&&(b=_.content.split("---")[0]);const S=_.content.startsWith("Error code: ")?w("Ett fel uppstod 😟 => starta en ny chatt"):null;return e("div",{className:s(C.message,"user"===o?C.user:C.bot),children:t("div",{className:s(C.messageContent,"user"===o?C.userMessage:C.botMessage,u&&C.newMessage),style:{backgroundColor:"user"===o?l("CHAT_USER_BACKGROUND_COLOR")||r.colorBrandBackground:l("CHAT_BOT_BACKGROUND_COLOR")||r.colorBrandBackground2,color:"user"===o?l("CHAT_USER_TEXT_COLOR")||r.colorNeutralForegroundInverted:l("CHAT_BOT_TEXT_COLOR")||r.colorNeutralForeground1},children:[t(i,{size:400,children:[S,!S&&e(p,{content:b}),_.files.length>0&&e(a,{}),f&&x&&x.length>0&&e("div",{style:{marginTop:"8px",display:"flex",gap:"8px",flexWrap:"wrap"},children:x.map(((t,o)=>e(n,{size:"small",shape:"circular",onClick:()=>h?.(t),style:{textAlign:"left"},children:t},o)))})]}),j]})})};export{g as default};
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{makeStyles as o,mergeClasses as s,tokens as r,Text as i}from"@fluentui/react-components";import{ChannelRegular as a}from"@fluentui/react-icons";import"react";import"../services/codicent.js";import p from"./Markdown.js";import"./Textarea.js";import{Button as n}from"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./Header.js";import m from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as l}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import c from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";const d=o({message:{display:"flex",marginBottom:"16px",webkitUserSelect:"text",userSelect:"text"},user:{justifyContent:"flex-end"},bot:{justifyContent:"flex-start"},messageContent:{maxWidth:"80%",padding:"12px 16px",borderRadius:"16px",fontSize:"1rem",lineHeight:"1.4",whiteSpace:"pre-wrap",wordBreak:"break-word",overflow:"auto"},userMessage:{borderTopRightRadius:"0"},botMessage:{borderTopLeftRadius:"0"},newMessage:{animation:"$fadeIn 0.5s ease-in-out"}}),g=({sender:o,content:g,isNew:u,children:j,showSuggestions:f,onSuggestionClicked:h})=>{const C=d(),{t:w}=c();let x=[];if("bot"===o&&g.includes("#suggested_questions")){const e=g.split("#suggested_questions");g=e[0],x=e[1].split("\n").filter((e=>""!==e.trim())).map((e=>e.trim()))}const _=new m(g);let b=_.content;"user"===o&&_.content.includes("---")&&(b=_.content.split("---")[0]);const S=_.content.startsWith("Error code: ")?w("Ett fel uppstod 😟 => starta en ny chatt"):null;return e("div",{className:s(C.message,"user"===o?C.user:C.bot),children:t("div",{className:s(C.messageContent,"user"===o?C.userMessage:C.botMessage,u&&C.newMessage),style:{backgroundColor:"user"===o?l("CHAT_USER_BACKGROUND_COLOR")||r.colorBrandBackground:l("CHAT_BOT_BACKGROUND_COLOR")||r.colorBrandBackground2,color:"user"===o?l("CHAT_USER_TEXT_COLOR")||r.colorNeutralForegroundInverted:l("CHAT_BOT_TEXT_COLOR")||r.colorNeutralForeground1},children:[t(i,{size:400,children:[S,!S&&e(p,{content:b}),_.files.length>0&&e(a,{}),f&&x&&x.length>0&&e("div",{style:{marginTop:"8px",display:"flex",gap:"8px",flexWrap:"wrap"},children:x.map(((t,o)=>e(n,{size:"small",shape:"circular",onClick:()=>h?.(t),style:{textAlign:"left"},children:t},o)))})]}),j]})})};export{g as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as o}from"react/jsx-runtime";import{makeStyles as i,shorthands as t,tokens as r}from"@fluentui/react-components";import"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as a}from"./Textarea.js";import{Button as s}from"./Button.js";import"./CompoundButton.js";import{Text as p}from"./Text.js";import"./Spinner.js";import{Label as l}from"./Label.js";import"./TextHeader.js";import"./TypingIndicator.js";import{Dialog as n,DialogTitle as m,DialogContent as c,DialogActions as d}from"./Dialog.js";import"./ChatInput.js";import"./ChatMessage.js";import"./Header.js";import"@fluentui/react-icons";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import j from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";const g=i({container:{display:"flex",flexDirection:"column",...t.gap("12px")},section:{display:"flex",flexDirection:"column",...t.gap("8px")},field:{display:"flex",flexDirection:"column",...t.gap("4px")},fileItem:{display:"flex",alignItems:"center",...t.gap("8px")},label:{fontWeight:r.fontWeightSemibold},textarea:{minHeight:"100px",resize:"vertical"},dialogSurface:{backgroundColor:r.colorNeutralBackground1,boxShadow:r.shadow16},dialogBody:{backgroundColor:"transparent"}}),u=({open:i,templateVariables:t,filePlaceholders:r,onTemplateVariablesChange:u,onFilePlaceholdersChange:h,onConfirm:f,onCancel:x,uploadFile:v})=>{const C=g(),{t:b}=j();return e(n,{open:i,children:[o(m,{children:b("Fyll i information")}),o(c,{children:e("div",{className:C.container,children:[t.length>0&&o("div",{className:C.section,children:t.map(((i,r)=>e("div",{className:C.field,children:[o(l,{className:C.label,children:i.name}),o(a,{className:C.textarea,value:i.value,onChange:e=>{const o=[...t];o[r].value=e.target.value,u(o)}})]},r)))}),r.length>0&&o("div",{className:C.section,children:r.map(((i,t)=>e("div",{className:C.fileItem,children:[o(p,{weight:"semibold",children:i.description}),o(s,{appearance:"primary",onClick:()=>(async e=>{const o=document.createElement("input");o.type="file";const i=await new Promise((e=>{o.onchange=o=>e(o.target.files),o.click()}));if(i&&i.length>0){const o=i[0],t=new FormData;t.append("file",o);const a=await v(o.name,t),s=[...r];s[e].fileId=a,h(s)}})(t),children:i.fileId?b("Fil vald"):b("Välj fil")})]},t)))})]})}),e(d,{children:[o(s,{appearance:"secondary",onClick:x,children:b("Avbryt")}),o(s,{appearance:"primary",onClick:f,children:b("OK")})]})]})};export{u as CombinedPlaceholderDialog};
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import{makeStyles as i,shorthands as t,tokens as r}from"@fluentui/react-components";import"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as a}from"./Textarea.js";import{Button as s}from"./Button.js";import"./CompoundButton.js";import{Text as p}from"./Text.js";import"./Spinner.js";import{Label as l}from"./Label.js";import"./TextHeader.js";import"./TypingIndicator.js";import{Dialog as n,DialogTitle as m,DialogContent as c,DialogActions as d}from"./Dialog.js";import"./ChatInput.js";import"./ChatMessage.js";import"./Header.js";import"@fluentui/react-icons";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import j from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";const g=i({container:{display:"flex",flexDirection:"column",...t.gap("12px")},section:{display:"flex",flexDirection:"column",...t.gap("8px")},field:{display:"flex",flexDirection:"column",...t.gap("4px")},fileItem:{display:"flex",alignItems:"center",...t.gap("8px")},label:{fontWeight:r.fontWeightSemibold},textarea:{minHeight:"100px",resize:"vertical"},dialogSurface:{backgroundColor:r.colorNeutralBackground1,boxShadow:r.shadow16},dialogBody:{backgroundColor:"transparent"}}),u=({open:i,templateVariables:t,filePlaceholders:r,onTemplateVariablesChange:u,onFilePlaceholdersChange:h,onConfirm:f,onCancel:x,uploadFile:v})=>{const C=g(),{t:b}=j();return e(n,{open:i,children:[o(m,{children:b("Fyll i information")}),o(c,{children:e("div",{className:C.container,children:[t.length>0&&o("div",{className:C.section,children:t.map(((i,r)=>e("div",{className:C.field,children:[o(l,{className:C.label,children:i.name}),o(a,{className:C.textarea,value:i.value,onChange:e=>{const o=[...t];o[r].value=e.target.value,u(o)}})]},r)))}),r.length>0&&o("div",{className:C.section,children:r.map(((i,t)=>e("div",{className:C.fileItem,children:[o(p,{weight:"semibold",children:i.description}),o(s,{appearance:"primary",onClick:()=>(async e=>{const o=document.createElement("input");o.type="file";const i=await new Promise((e=>{o.onchange=o=>e(o.target.files),o.click()}));if(i&&i.length>0){const o=i[0],t=new FormData;t.append("file",o);const a=await v(o.name,t),s=[...r];s[e].fileId=a,h(s)}})(t),children:i.fileId?b("Fil vald"):b("Välj fil")})]},t)))})]})}),e(d,{children:[o(s,{appearance:"secondary",onClick:x,children:b("Avbryt")}),o(s,{appearance:"primary",onClick:f,children:b("OK")})]})]})};export{u as CombinedPlaceholderDialog};
@@ -0,0 +1,33 @@
1
+ import { CodicentService } from "../services/codicent";
2
+ import type { DataMessage } from "../types";
3
+ export interface DataMessagePickerSelection {
4
+ message: DataMessage;
5
+ id: string;
6
+ tag: string;
7
+ label: string;
8
+ searchText: string;
9
+ data: Record<string, string>;
10
+ originalMessageId?: string;
11
+ }
12
+ export interface DataMessagePickerProps {
13
+ service: CodicentService;
14
+ tag: string;
15
+ codicent?: string;
16
+ placeholder?: string;
17
+ value?: string;
18
+ disabled?: boolean;
19
+ debounceMs?: number;
20
+ minSearchLength?: number;
21
+ resultLimit?: number;
22
+ displayKeys?: string[];
23
+ searchKeys?: string[];
24
+ primaryKey?: string;
25
+ secondaryKeys?: string[];
26
+ dataFilters?: Record<string, string>;
27
+ noResultsText?: string;
28
+ onValueChange?: (value: string) => void;
29
+ onSelect?: (selection: DataMessagePickerSelection) => void;
30
+ }
31
+ declare const DataMessagePicker: ({ service, tag, codicent, placeholder, value, disabled, debounceMs, minSearchLength, resultLimit, displayKeys, searchKeys, primaryKey, secondaryKeys, dataFilters, noResultsText, onValueChange, onSelect, }: DataMessagePickerProps) => import("react/jsx-runtime").JSX.Element;
32
+ export default DataMessagePicker;
33
+ //# sourceMappingURL=DataMessagePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataMessagePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DataMessagePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAiF5C,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,WAAW,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,eAAe,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,0BAA0B,KAAK,IAAI,CAAC;CAC5D;AAuGD,QAAA,MAAM,iBAAiB,iNAkBpB,sBAAsB,4CAkOxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import{makeStyles as t,SearchBox as n,Spinner as r}from"@fluentui/react-components";import{useState as l,useRef as a,useMemo as i,useEffect as s}from"react";const c=[],d=["name","title","label","companyName","Company Name","customerName","description"],u=["originalMessageId","OriginalMessageId","originalmessageid"],p=t({root:{position:"relative",width:"100%"},searchBox:{width:"100%"},panel:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:10,backgroundColor:"#ffffff",border:"1px solid #d1d1d1",borderRadius:"8px",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.12)",overflow:"hidden"},statusRow:{display:"flex",alignItems:"center",gap:"8px",padding:"12px",color:"#616161",fontSize:"14px"},errorRow:{padding:"12px",color:"#c50f1f",fontSize:"14px"},resultsList:{maxHeight:"320px",overflowY:"auto"},option:{width:"100%",textAlign:"left",padding:"12px",border:"none",backgroundColor:"#ffffff",borderBottom:"1px solid #f0f0f0",cursor:"pointer",display:"flex",flexDirection:"column",gap:"4px",":hover":{backgroundColor:"#f5f5f5"}},optionActive:{backgroundColor:"#f3f9fd"},optionLabel:{fontSize:"14px",fontWeight:600,color:"#242424",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},optionMeta:{fontSize:"12px",color:"#616161",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}),f=e=>null==e?"":"string"==typeof e?e.trim():Array.isArray(e)?e.map((e=>f(e))).filter(Boolean).join(", "):String(e).trim(),h=e=>{const o=new Set;return e.filter((e=>!(!e||o.has(e))&&(o.add(e),!0)))},m=(e,o)=>f(e[o]),g=(e,o)=>{for(const t of o){const o=m(e,t);if(o)return o}return""},w=e=>g(e,u)||void 0,v=(e,o,t,n=c,r=c,l=c)=>{const a=e.data||{},i=g(a,h([t||"",...n,...r,...d]))||e.id,s=l.map((e=>m(a,e))).filter(Boolean).join(" • "),u=((e,o)=>0===o.length?Object.values(e).map((e=>f(e))).filter(Boolean).join(" "):o.map((o=>m(e,o))).filter(Boolean).join(" "))(a,h([...r,...n]));return{selection:{message:e,id:e.id,tag:o,label:i,searchText:u,data:a,originalMessageId:w(a)},secondaryText:s}},x=({service:t,tag:d,codicent:u,placeholder:f="Search",value:m,disabled:g=!1,debounceMs:w=300,minSearchLength:x=2,resultLimit:y=8,displayKeys:b=c,searchKeys:N=c,primaryKey:S,secondaryKeys:D=c,dataFilters:T,noResultsText:k="No matches found",onValueChange:C,onSelect:L})=>{const M=p(),[A,B]=l(m||""),[z,R]=l([]),[j,I]=l(!1),[K,O]=l(!1),[E,F]=l(-1),[$,H]=l(null),[J,U]=l(!1),V=a(null),W=i((()=>h(b)),[b]),Y=i((()=>h(N)),[N]),q=i((()=>h(D)),[D]),G=i((()=>JSON.stringify(T||{})),[T]);s((()=>{B(m||"")}),[m]),s((()=>{const e=A.trim();if(!e||e.length<x||g)return I(!1),R([]),O(!1),F(-1),H(null),void U(!1);let o=!1;const n=window.setTimeout((async()=>{I(!0),H(null),U(!0);try{const n=await t.readDataMessages(d,e,u,0,Math.max(3*y,y),void 0,void 0,T);if(o)return;const r=n.map((e=>v(e,d,S,W,Y,q))).filter((o=>0===Y.length||o.selection.searchText.toLocaleLowerCase().includes(e.toLocaleLowerCase()))).slice(0,y);R(r),F(r.length>0?0:-1),O(!0)}catch(e){o||(H(e instanceof Error?e.message:"Search failed"),R([]),F(-1),O(!0))}finally{o||I(!1)}}),w);return()=>{o=!0,window.clearTimeout(n)}}),[u,w,g,A,x,W,Y,q,S,y,G,t,d]),s((()=>()=>{null!==V.current&&window.clearTimeout(V.current)}),[]);const P=e=>{B(e.selection.label),O(!1),F(-1),C?.(e.selection.label),L?.(e.selection)},Q=K&&(j||!!$||z.length>0||J&&A.trim().length>=x);return e("div",{className:M.root,children:[o(n,{size:"large",className:M.searchBox,placeholder:f,value:A,disabled:g,onChange:(e,o)=>{return t=o.value,B(t),void C?.(t);var t},onFocus:()=>{null!==V.current&&(window.clearTimeout(V.current),V.current=null),A.trim().length>=x&&(z.length>0||j||$||J)&&O(!0)},onBlur:()=>{V.current=window.setTimeout((()=>{O(!1)}),120)},onKeyDown:e=>{if(K&&0!==z.length)return"ArrowDown"===e.key?(e.preventDefault(),void F((e=>(e+1)%z.length))):"ArrowUp"===e.key?(e.preventDefault(),void F((e=>e<=0?z.length-1:e-1))):"Enter"===e.key&&E>=0?(e.preventDefault(),void P(z[E])):void("Escape"===e.key&&(e.preventDefault(),O(!1),F(-1)));"ArrowDown"===e.key&&A.trim().length>=x&&O(!0)}}),Q?e("div",{className:M.panel,children:[j?e("div",{className:M.statusRow,children:[o(r,{size:"tiny"}),"Searching..."]}):null,!j&&$?o("div",{className:M.errorRow,children:$}):null,j||$||0!==z.length?null:o("div",{className:M.statusRow,children:k}),!j&&!$&&z.length>0?o("div",{className:M.resultsList,children:z.map(((t,n)=>e("button",{type:"button",className:`${M.option} ${n===E?M.optionActive:""}`,onMouseDown:e=>e.preventDefault(),onClick:()=>P(t),children:[o("span",{className:M.optionLabel,children:t.selection.label}),t.secondaryText?o("span",{className:M.optionMeta,children:t.secondaryText}):null]},t.selection.id)))}):null]}):null]})};export{x as default};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as e}from"react/jsx-runtime";import{useState as t,useEffect as i}from"react";import{makeStyles as a,shorthands as s,tokens as r,Badge as n}from"@fluentui/react-components";import{Home24Filled as l,Home24Regular as c,Chat24Filled as p,Chat24Regular as m,AddSquare24Filled as d,AddSquare24Regular as g,ClipboardDay24Filled as u,ClipboardDay24Regular as j,SlideText24Filled as h,SlideText24Regular as v,Whiteboard24Filled as T,Whiteboard24Regular as f,Apps24Filled as x,Apps24Regular as _}from"@fluentui/react-icons";import{useLocation as b,Link as k}from"react-router-dom";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as C}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import O from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";const N=a({footer:{...s.padding("14px"),textAlign:"center",display:"flex",justifyContent:"space-around",alignItems:"center",position:"sticky",bottom:0,zIndex:1e3,paddingBottom:"22px",width:"100%"},container:{display:"flex",justifyContent:"space-around",alignItems:"center",maxWidth:"480px",width:"100%"},button:{color:r.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...s.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none"},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"},logbookIconWrapper:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center"},notificationBadge:{position:"absolute",top:"-4px",right:"-4px"}}),w=()=>{const a=N(),s=b(),[w,y]=t(null),{t:S}=O(),[I,B]=t((()=>"true"===localStorage.getItem("logbook-has-notification"))),E={backgroundColor:C("APP_FOOTER_COLOR")||r.colorBrandBackground,color:C("APP_FOOTER_TEXT_COLOR")||r.colorNeutralForegroundOnBrand},P=C("APP_FOOTER_SELECTED_COLOR")||void 0;return i((()=>{const o=s.pathname;"/"===o?y("home"):"/chat"===o?y("chat"):"/new"===o?y("save"):"/menu"===o?y("menu"):"/log"===o?y("log"):"/canvas"===o?y("canvas"):"/snap"===o&&y("snap")}),[s]),i((()=>{w&&console.log(`footer-button: ${w}`)}),[w]),i((()=>{const o=()=>{B("true"===localStorage.getItem("logbook-has-notification"))};return window.addEventListener("storage",o),window.addEventListener("logbook-notification-changed",o),()=>{window.removeEventListener("storage",o),window.removeEventListener("logbook-notification-changed",o)}}),[]),o("footer",{className:a.footer,style:E,children:e("div",{className:a.container,children:[e(k,{to:"/",className:`${a.link} ${"home"===w?"selected":""}`,onClick:()=>y("home"),style:"home"===w?{color:P}:void 0,children:[o("home"===w?l:c,{}),o("p",{className:a.buttonText,children:S("Hem")})]}),!C("HIDE_CHAT_BUTTON")&&e(k,{to:"/chat",className:`${a.link} ${"chat"===w?"selected":""}`,onClick:()=>y("chat"),style:"chat"===w?{color:P}:void 0,children:[o("chat"===w?p:m,{}),o("p",{className:a.buttonText,children:S(C("APP_CHAT_TITLE")||"Chatt")})]}),!C("HIDE_SAVE_BUTTON")&&e(k,{to:"/new",className:`${a.link} ${"save"===w?"selected":""}`,onClick:()=>y("save"),style:"save"===w?{color:P}:void 0,children:[o("save"===w?d:g,{}),o("p",{className:a.buttonText,children:S(C("APP_SAVE_TITLE")||"Spara")})]}),C("SHOW_SNAP_BUTTON")&&e(k,{to:"/snap",className:`${a.link} ${"snap"===w?"selected":""}`,onClick:()=>y("snap"),style:"snap"===w?{color:P}:void 0,children:[o("snap"===w?u:j,{}),o("p",{className:a.buttonText,children:S("Snap")})]}),C("SHOW_LOGBOOK_BUTTON")&&e(k,{to:"/log",className:`${a.link} ${"log"===w?"selected":""}`,onClick:()=>{y("log"),localStorage.removeItem("logbook-has-notification"),B(!1)},style:"log"===w?{color:P}:void 0,children:[e("div",{className:a.logbookIconWrapper,children:[o("log"===w?h:v,{}),I&&"log"!==w&&o(n,{appearance:"filled",color:"danger",size:"extra-small",className:a.notificationBadge})]}),o("p",{className:a.buttonText,children:S(C("APP_LOGBOOK_TITLE")||"Loggbok")})]}),C("SHOW_CANVAS_BUTTON")&&e(k,{to:"/canvas",className:`${a.link} ${"canvas"===w?"selected":""}`,onClick:()=>y("canvas"),style:"canvas"===w?{color:P}:void 0,children:[o("canvas"===w?T:f,{}),o("p",{className:a.buttonText,children:S("Kanvas")})]}),!C("HIDE_MENU_BUTTON")&&e(k,{to:"/menu",className:`${a.link} ${"menu"===w?"selected":""}`,onClick:()=>y("menu"),style:"menu"===w?{color:P}:void 0,children:[o("menu"===w?x:_,{}),o("p",{className:a.buttonText,children:S("Meny")})]})]})})};export{w as Footer,w as default};
1
+ import{jsx as o,jsxs as e}from"react/jsx-runtime";import{useState as t,useEffect as i}from"react";import{makeStyles as a,shorthands as s,tokens as r,Badge as n}from"@fluentui/react-components";import{Home24Filled as l,Home24Regular as c,Chat24Filled as p,Chat24Regular as m,AddSquare24Filled as d,AddSquare24Regular as g,ClipboardDay24Filled as j,ClipboardDay24Regular as u,SlideText24Filled as h,SlideText24Regular as v,Whiteboard24Filled as T,Whiteboard24Regular as f,Apps24Filled as x,Apps24Regular as _}from"@fluentui/react-icons";import{useLocation as b,Link as k}from"react-router-dom";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as C}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import O from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";const N=a({footer:{...s.padding("14px"),textAlign:"center",display:"flex",justifyContent:"space-around",alignItems:"center",position:"sticky",bottom:0,zIndex:1e3,paddingBottom:"22px",width:"100%"},container:{display:"flex",justifyContent:"space-around",alignItems:"center",maxWidth:"480px",width:"100%"},button:{color:r.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...s.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none"},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"},logbookIconWrapper:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center"},notificationBadge:{position:"absolute",top:"-4px",right:"-4px"}}),w=()=>{const a=N(),s=b(),[w,y]=t(null),{t:S}=O(),[I,P]=t((()=>"true"===localStorage.getItem("logbook-has-notification"))),B={backgroundColor:C("APP_FOOTER_COLOR")||r.colorBrandBackground,color:C("APP_FOOTER_TEXT_COLOR")||r.colorNeutralForegroundOnBrand},E=C("APP_FOOTER_SELECTED_COLOR")||void 0;return i((()=>{const o=s.pathname;"/"===o?y("home"):"/chat"===o?y("chat"):"/new"===o?y("save"):"/menu"===o?y("menu"):"/log"===o?y("log"):"/canvas"===o?y("canvas"):"/snap"===o&&y("snap")}),[s]),i((()=>{w&&console.log(`footer-button: ${w}`)}),[w]),i((()=>{const o=()=>{P("true"===localStorage.getItem("logbook-has-notification"))};return window.addEventListener("storage",o),window.addEventListener("logbook-notification-changed",o),()=>{window.removeEventListener("storage",o),window.removeEventListener("logbook-notification-changed",o)}}),[]),o("footer",{className:a.footer,style:B,children:e("div",{className:a.container,children:[e(k,{to:"/",className:`${a.link} ${"home"===w?"selected":""}`,onClick:()=>y("home"),style:"home"===w?{color:E}:void 0,children:[o("home"===w?l:c,{}),o("p",{className:a.buttonText,children:S("Hem")})]}),!C("HIDE_CHAT_BUTTON")&&e(k,{to:"/chat",className:`${a.link} ${"chat"===w?"selected":""}`,onClick:()=>y("chat"),style:"chat"===w?{color:E}:void 0,children:[o("chat"===w?p:m,{}),o("p",{className:a.buttonText,children:S(C("APP_CHAT_TITLE")||"Chatt")})]}),!C("HIDE_SAVE_BUTTON")&&e(k,{to:"/new",className:`${a.link} ${"save"===w?"selected":""}`,onClick:()=>y("save"),style:"save"===w?{color:E}:void 0,children:[o("save"===w?d:g,{}),o("p",{className:a.buttonText,children:S(C("APP_SAVE_TITLE")||"Spara")})]}),C("SHOW_SNAP_BUTTON")&&e(k,{to:"/snap",className:`${a.link} ${"snap"===w?"selected":""}`,onClick:()=>y("snap"),style:"snap"===w?{color:E}:void 0,children:[o("snap"===w?j:u,{}),o("p",{className:a.buttonText,children:S("Snap")})]}),C("SHOW_LOGBOOK_BUTTON")&&e(k,{to:"/log",className:`${a.link} ${"log"===w?"selected":""}`,onClick:()=>{y("log"),localStorage.removeItem("logbook-has-notification"),P(!1)},style:"log"===w?{color:E}:void 0,children:[e("div",{className:a.logbookIconWrapper,children:[o("log"===w?h:v,{}),I&&"log"!==w&&o(n,{appearance:"filled",color:"danger",size:"extra-small",className:a.notificationBadge})]}),o("p",{className:a.buttonText,children:S(C("APP_LOGBOOK_TITLE")||"Loggbok")})]}),C("SHOW_CANVAS_BUTTON")&&e(k,{to:"/canvas",className:`${a.link} ${"canvas"===w?"selected":""}`,onClick:()=>y("canvas"),style:"canvas"===w?{color:E}:void 0,children:[o("canvas"===w?T:f,{}),o("p",{className:a.buttonText,children:S("Kanvas")})]}),!C("HIDE_MENU_BUTTON")&&e(k,{to:"/menu",className:`${a.link} ${"menu"===w?"selected":""}`,onClick:()=>y("menu"),style:"menu"===w?{color:E}:void 0,children:[o("menu"===w?x:_,{}),o("p",{className:a.buttonText,children:S("Meny")})]})]})})};export{w as Footer,w as default};
@@ -1 +1 @@
1
- import{jsxs as o,jsx as e}from"react/jsx-runtime";import{makeStyles as t,shorthands as i,tokens as r,Image as s,Title3 as a}from"@fluentui/react-components";import{Settings24Regular as p}from"@fluentui/react-icons";import{Link as m}from"react-router-dom";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import n from"./VoiceIcon.js";import l from"./AudioIcon.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as c}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"../hooks/useLocalization.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";const j=t({header:{...i.padding("14px"),textAlign:"center",position:"sticky",top:0,zIndex:1e3,alignItems:"center",height:"64px",display:"flex",justifyContent:"space-between"},logo:{height:"40px",shape:"circular"},link:{textDecoration:"none",color:"inherit"},headerItem:{display:"flex",alignItems:"center",gap:"16px"}}),d=({imageUrl:t,title:i,audio:d,voice:g})=>{const u=j(),h={backgroundColor:c("APP_HEADER_COLOR")||r.colorBrandBackground,color:c("APP_HEADER_TEXT_COLOR")||r.colorNeutralForegroundOnBrand};return o("header",{className:u.header,style:h,children:[o("div",{className:u.headerItem,children:[t&&e(s,{className:u.logo,alt:"Logo",src:t,height:40}),i&&e(a,{children:i})]}),o("div",{className:u.headerItem,children:[d&&c("SHOW_MICROPHONE_BUTTON")&&e(l,{audio:d,disabled:g?.isConnected}),g&&c("SHOW_VOICE_BUTTON")&&e(n,{voice:g,disabled:d?.isRecording}),c("SHOW_SETTINGS_BUTTON")&&e(m,{to:"/menu",className:u.link,children:e(p,{})})]})]})};export{d as Header};
1
+ import{jsxs as o,jsx as e}from"react/jsx-runtime";import{makeStyles as t,shorthands as i,tokens as r,Image as s,Title3 as a}from"@fluentui/react-components";import{Settings24Regular as p}from"@fluentui/react-icons";import{Link as m}from"react-router-dom";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import n from"./VoiceIcon.js";import l from"./AudioIcon.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as c}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"../hooks/useLocalization.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";const j=t({header:{...i.padding("14px"),textAlign:"center",position:"sticky",top:0,zIndex:1e3,alignItems:"center",height:"64px",display:"flex",justifyContent:"space-between"},logo:{height:"40px",shape:"circular"},link:{textDecoration:"none",color:"inherit"},headerItem:{display:"flex",alignItems:"center",gap:"16px"}}),d=({imageUrl:t,title:i,audio:d,voice:g})=>{const u=j(),h={backgroundColor:c("APP_HEADER_COLOR")||r.colorBrandBackground,color:c("APP_HEADER_TEXT_COLOR")||r.colorNeutralForegroundOnBrand};return o("header",{className:u.header,style:h,children:[o("div",{className:u.headerItem,children:[t&&e(s,{className:u.logo,alt:"Logo",src:t,height:40}),i&&e(a,{children:i})]}),o("div",{className:u.headerItem,children:[d&&c("SHOW_MICROPHONE_BUTTON")&&e(l,{audio:d,disabled:g?.isConnected}),g&&c("SHOW_VOICE_BUTTON")&&e(n,{voice:g,disabled:d?.isRecording}),c("SHOW_SETTINGS_BUTTON")&&e(m,{to:"/menu",className:u.link,children:e(p,{})})]})]})};export{d as Header};