codicent-app-sdk 0.3.75 → 0.3.77

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 (111) hide show
  1. package/README.md +1 -0
  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.d.ts.map +1 -1
  6. package/dist/cjs/components/ChatMessage.js +1 -1
  7. package/dist/cjs/components/CombinedPlaceholderDialog.js +1 -1
  8. package/dist/cjs/components/Footer.js +1 -1
  9. package/dist/cjs/components/Header.js +1 -1
  10. package/dist/cjs/components/HtmlView.js +1 -1
  11. package/dist/cjs/components/MessageInput.js +1 -1
  12. package/dist/cjs/components/MessageItem.js +1 -1
  13. package/dist/cjs/components/Profile.js +1 -1
  14. package/dist/cjs/components/Prompt.d.ts.map +1 -1
  15. package/dist/cjs/components/Prompt.js +1 -1
  16. package/dist/cjs/components/SnapFooter.js +1 -1
  17. package/dist/cjs/components/TextHeader.js +1 -1
  18. package/dist/cjs/components/TypingIndicator.js +1 -1
  19. package/dist/cjs/components/UploadFile.js +1 -1
  20. package/dist/cjs/components/UrlProcessor.js +1 -1
  21. package/dist/cjs/components/VoiceIcon.js +1 -1
  22. package/dist/cjs/config/index.d.ts +2 -0
  23. package/dist/cjs/config/index.d.ts.map +1 -1
  24. package/dist/cjs/config/index.js +1 -1
  25. package/dist/cjs/hooks/index.d.ts +1 -1
  26. package/dist/cjs/hooks/index.d.ts.map +1 -1
  27. package/dist/cjs/hooks/useAuthState.js +1 -1
  28. package/dist/cjs/hooks/useCodicentState.js +1 -1
  29. package/dist/cjs/hooks/useLocalization.d.ts +13 -2
  30. package/dist/cjs/hooks/useLocalization.d.ts.map +1 -1
  31. package/dist/cjs/hooks/useLocalization.js +1 -1
  32. package/dist/cjs/hooks/useLocalizationStub.d.ts +1 -0
  33. package/dist/cjs/hooks/useLocalizationStub.d.ts.map +1 -0
  34. package/dist/cjs/index.js +1 -1
  35. package/dist/cjs/node_modules/i18next/dist/esm/i18next.js +1 -1
  36. package/dist/cjs/node_modules/react-i18next/dist/es/context.js +1 -1
  37. package/dist/cjs/node_modules/react-i18next/dist/es/defaults.js +1 -1
  38. package/dist/cjs/node_modules/react-i18next/dist/es/i18nInstance.js +1 -1
  39. package/dist/cjs/node_modules/react-i18next/dist/es/initReactI18next.js +1 -1
  40. package/dist/cjs/node_modules/react-i18next/dist/es/unescape.js +1 -1
  41. package/dist/cjs/node_modules/react-i18next/dist/es/useTranslation.js +1 -1
  42. package/dist/cjs/node_modules/react-i18next/dist/es/utils.js +1 -1
  43. package/dist/cjs/pages/AppFrame.js +1 -1
  44. package/dist/cjs/pages/CrmPage.js +1 -1
  45. package/dist/cjs/pages/FormAccept.js +1 -1
  46. package/dist/cjs/pages/FormInvite.js +1 -1
  47. package/dist/cjs/pages/Login.js +1 -1
  48. package/dist/cjs/pages/Sales.js +1 -1
  49. package/dist/cjs/pages/Search.js +1 -1
  50. package/dist/cjs/pages/Snap.js +1 -1
  51. package/dist/cjs/services/index.d.ts +1 -0
  52. package/dist/cjs/services/index.d.ts.map +1 -1
  53. package/dist/cjs/services/translationService.d.ts +37 -0
  54. package/dist/cjs/services/translationService.d.ts.map +1 -0
  55. package/dist/cjs/services/translationService.js +1 -0
  56. package/dist/esm/components/AiInput.js +1 -1
  57. package/dist/esm/components/AudioIcon.js +1 -1
  58. package/dist/esm/components/ChatInput.js +1 -1
  59. package/dist/esm/components/ChatMessage.d.ts.map +1 -1
  60. package/dist/esm/components/ChatMessage.js +1 -1
  61. package/dist/esm/components/CombinedPlaceholderDialog.js +1 -1
  62. package/dist/esm/components/Footer.js +1 -1
  63. package/dist/esm/components/Header.js +1 -1
  64. package/dist/esm/components/HtmlView.js +1 -1
  65. package/dist/esm/components/MessageInput.js +1 -1
  66. package/dist/esm/components/MessageItem.js +1 -1
  67. package/dist/esm/components/Profile.js +1 -1
  68. package/dist/esm/components/Prompt.d.ts.map +1 -1
  69. package/dist/esm/components/Prompt.js +1 -1
  70. package/dist/esm/components/SnapFooter.js +1 -1
  71. package/dist/esm/components/TextHeader.js +1 -1
  72. package/dist/esm/components/TypingIndicator.js +1 -1
  73. package/dist/esm/components/UploadFile.js +1 -1
  74. package/dist/esm/components/UrlProcessor.js +1 -1
  75. package/dist/esm/components/VoiceIcon.js +1 -1
  76. package/dist/esm/config/index.d.ts +2 -0
  77. package/dist/esm/config/index.d.ts.map +1 -1
  78. package/dist/esm/config/index.js +1 -1
  79. package/dist/esm/hooks/index.d.ts +1 -1
  80. package/dist/esm/hooks/index.d.ts.map +1 -1
  81. package/dist/esm/hooks/useAuthState.js +1 -1
  82. package/dist/esm/hooks/useCodicentState.js +1 -1
  83. package/dist/esm/hooks/useLocalization.d.ts +13 -2
  84. package/dist/esm/hooks/useLocalization.d.ts.map +1 -1
  85. package/dist/esm/hooks/useLocalization.js +1 -1
  86. package/dist/esm/hooks/useLocalizationStub.d.ts +1 -0
  87. package/dist/esm/hooks/useLocalizationStub.d.ts.map +1 -0
  88. package/dist/esm/index.js +1 -1
  89. package/dist/esm/node_modules/i18next/dist/esm/i18next.js +1 -1
  90. package/dist/esm/node_modules/react-i18next/dist/es/context.js +1 -1
  91. package/dist/esm/node_modules/react-i18next/dist/es/defaults.js +1 -1
  92. package/dist/esm/node_modules/react-i18next/dist/es/i18nInstance.js +1 -1
  93. package/dist/esm/node_modules/react-i18next/dist/es/initReactI18next.js +1 -1
  94. package/dist/esm/node_modules/react-i18next/dist/es/unescape.js +1 -1
  95. package/dist/esm/node_modules/react-i18next/dist/es/useTranslation.js +1 -1
  96. package/dist/esm/node_modules/react-i18next/dist/es/utils.js +1 -1
  97. package/dist/esm/pages/AppFrame.js +1 -1
  98. package/dist/esm/pages/CrmPage.js +1 -1
  99. package/dist/esm/pages/FormAccept.js +1 -1
  100. package/dist/esm/pages/FormInvite.js +1 -1
  101. package/dist/esm/pages/Login.js +1 -1
  102. package/dist/esm/pages/Sales.js +1 -1
  103. package/dist/esm/pages/Search.js +1 -1
  104. package/dist/esm/pages/Snap.js +1 -1
  105. package/dist/esm/services/index.d.ts +1 -0
  106. package/dist/esm/services/index.d.ts.map +1 -1
  107. package/dist/esm/services/translationService.d.ts +37 -0
  108. package/dist/esm/services/translationService.d.ts.map +1 -0
  109. package/dist/esm/services/translationService.js +1 -0
  110. package/dist/index.d.ts +56 -7
  111. package/package.json +1 -3
@@ -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");var s=require("../components/Title.js"),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("react"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var o=require("../config/index.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 t=require("../utils/helpers.js");require("./AppFrame.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./Sales.js"),require("../stores/chatStore.js");var n=require("../hooks/useLocalization.js");require("../hooks/useAppStyles.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");var a=require("../components/Content.js");require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var u=require("../components/Page.js"),l=require("react-router-dom"),c=require("../node_modules/@griffel/react/makeStyles.esm.js"),d=require("../node_modules/@fluentui/react-button/lib/components/Button/Button.js");const m=c.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:c}=n.default(),[j]=l.useSearchParams(),p=l.useNavigate(),q=j.get("id"),g=m();return e.jsx(u.Page,{hideFooter:!0,hideHeader:!0,children:e.jsx("div",{className:g.container,style:{backgroundImage:`url(${o.getConfigValue("FORM_BACKGROUND_IMAGE_URL")})`},children:e.jsxs(a.default,{children:[o.getConfigValue("FORM_ACCEPT_MARKDOWN")&&e.jsx(r.default,{content:o.getConfigValue("FORM_ACCEPT_MARKDOWN").replace("{{code}}",t.formatGuidToShorterReadableCode(q||""))}),!o.getConfigValue("FORM_ACCEPT_MARKDOWN")&&e.jsxs(e.Fragment,{children:[e.jsx(s.Title,{children:c("Din kod för formuläret")}),e.jsx("p",{className:g.instructionParagraph,children:c("Instruktioner:")}),e.jsxs("ol",{className:g.orderedList,children:[e.jsx("li",{children:c("Skriv ner eller kopiera den kod som visas nedan, du behöver den för att identifiera din session.")}),e.jsx("li",{children:c("Klicka på 'Starta' för att komma igång med chatten.")})]}),e.jsx(i.Text,{size:500,children:c("Din kod är (skriv ner den):")}),e.jsx(i.Text,{size:600,style:{userSelect:"all"},children:t.formatGuidToShorterReadableCode(q||"")})]}),q&&e.jsx(d.Button,{appearance:"primary",onClick:()=>p(`/chat?fid=${q}`),children:c("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");var s=require("../components/Title.js"),i=require("../components/Text.js");require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("react"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var o=require("../config/index.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 t=require("../utils/helpers.js");require("./AppFrame.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./Sales.js"),require("../stores/chatStore.js"),require("../hooks/useAppStyles.js");var n=require("../hooks/useLocalization.js");require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.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");var a=require("../components/Content.js");require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var u=require("../components/Page.js"),l=require("react-router-dom"),c=require("../node_modules/@griffel/react/makeStyles.esm.js"),d=require("../node_modules/@fluentui/react-button/lib/components/Button/Button.js");const m=c.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:c}=n.default(),[j]=l.useSearchParams(),p=l.useNavigate(),q=j.get("id"),g=m();return e.jsx(u.Page,{hideFooter:!0,hideHeader:!0,children:e.jsx("div",{className:g.container,style:{backgroundImage:`url(${o.getConfigValue("FORM_BACKGROUND_IMAGE_URL")})`},children:e.jsxs(a.default,{children:[o.getConfigValue("FORM_ACCEPT_MARKDOWN")&&e.jsx(r.default,{content:o.getConfigValue("FORM_ACCEPT_MARKDOWN").replace("{{code}}",t.formatGuidToShorterReadableCode(q||""))}),!o.getConfigValue("FORM_ACCEPT_MARKDOWN")&&e.jsxs(e.Fragment,{children:[e.jsx(s.Title,{children:c("Din kod för formuläret")}),e.jsx("p",{className:g.instructionParagraph,children:c("Instruktioner:")}),e.jsxs("ol",{className:g.orderedList,children:[e.jsx("li",{children:c("Skriv ner eller kopiera den kod som visas nedan, du behöver den för att identifiera din session.")}),e.jsx("li",{children:c("Klicka på 'Starta' för att komma igång med chatten.")})]}),e.jsx(i.Text,{size:500,children:c("Din kod är (skriv ner den):")}),e.jsx(i.Text,{size:600,style:{userSelect:"all"},children:t.formatGuidToShorterReadableCode(q||"")})]}),q&&e.jsx(d.Button,{appearance:"primary",onClick:()=>p(`/chat?fid=${q}`),children:c("Starta")})]})})})};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react");require("../components/Markdown.js"),require("../components/Textarea.js");var n=require("../components/Button.js"),o=require("../components/Title.js");require("../components/Spinner.js");var t=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");var a=require("../hooks/useStateWithLocalStorage.js");require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var s=require("../config/index.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 l=require("../utils/helpers.js");require("./AppFrame.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormAccept.js"),require("./Sales.js"),require("../stores/chatStore.js");var u=require("../hooks/useLocalization.js");require("../hooks/useAppStyles.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");var c=require("../components/Content.js");require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var d=require("../components/Page.js"),p=require("../node_modules/@griffel/react/makeStyles.esm.js"),m=require("../node_modules/@fluentui/react-utilities/lib/hooks/useId.js"),j=require("../node_modules/@fluentui/react-combobox/lib/components/Dropdown/Dropdown.js"),h=require("../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js");const k=p.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:p})=>{const q=k(),{service:g}=p,{t:x}=u.default(),[v,f]=a.default(p.context.selectedApp+"_forms",[]),[b,w]=r.useState(),[S,y]=r.useState(),[_,C]=r.useState(!1),[I,L]=r.useState(),B=m.useId("form-dropdown");r.useEffect((()=>{g.getForms().then((e=>{e.sort(((e,r)=>e.name.localeCompare(r.name))),f(e)}))}),[g,x,f]);const T=void 0!==navigator.share;return e.jsx(d.Page,{children:e.jsx("div",{className:q.container,style:{backgroundImage:`url(${s.getConfigValue("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:e.jsxs(c.default,{children:[e.jsx(o.Title,{children:x("Skapa länk till formulär")}),e.jsx("p",{className:q.instructionParagraph,children:x("Instruktioner")}),e.jsxs("ol",{className:q.orderedList,children:[e.jsx("li",{children:x("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:x("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:x("När länken visas, kan du klicka på kopiera-ikonen för att kopiera länken till ditt urklipp.")}),e.jsx("li",{children:x("Om din enhet stödjer det, kan du även använda dela-knappen för att dela länken direkt.")}),e.jsx("li",{children:x("Kom ihåg att spara (skriva ner) koden")})]}),e.jsx("label",{id:B,className:q.instructionParagraph,children:x("Välj formulär")}),e.jsx(j.Dropdown,{"aria-labelledby":B,placeholder:"-",onOptionSelect:(e,r)=>L(r.optionValue),children:v.map((r=>e.jsxs(h.Option,{value:r.name,text:`${r.title} (${r.name})`,children:[`${r.title} (${r.name})`," "]},r.name)))}),e.jsx(n.Button,{appearance:"primary",disabled:!I,onClick:()=>{g.sendMessage(`#ss-link #${I}`).then((e=>{const r=`${window.location.protocol}//${window.location.hostname}${window.location.port?":"+window.location.port:""}${window.location.pathname}`;w(`${r}#/formaccept?id=${e}`);const n=l.formatGuidToShorterReadableCode(e);y(n)}))},children:x("Skapa länk")}),b&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:q.generatedLinkTitle,children:x("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:b,readOnly:!0,onFocus:e=>e.target.select()})}),e.jsx("br",{}),e.jsxs("div",{className:q.inputAndButton,children:[e.jsx(n.Button,{appearance:"primary",title:x("Kopiera länk"),icon:"CopyRegular",onClick:()=>{b&&(navigator.clipboard.writeText(b),C(!0),setTimeout((()=>{C(!1),w(void 0)}),2e3))},children:x("Kopiera")}),T&&e.jsx(n.Button,{appearance:"primary",title:x("Dela länk"),icon:"ShareRegular",onClick:()=>{b&&(navigator.share({url:b}),setTimeout((()=>{w(void 0)}),2e3))},children:x("Dela")})]}),_&&e.jsx(t.Label,{children:x("Länk kopierad!")})]})]})})})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react");require("../components/Markdown.js"),require("../components/Textarea.js");var n=require("../components/Button.js"),o=require("../components/Title.js");require("../components/Spinner.js");var t=require("../components/Label.js"),i=require("../components/Input.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js");var a=require("../hooks/useStateWithLocalStorage.js");require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var s=require("../config/index.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 l=require("../utils/helpers.js");require("./AppFrame.js"),require("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormAccept.js"),require("./Sales.js"),require("../stores/chatStore.js"),require("../hooks/useAppStyles.js");var u=require("../hooks/useLocalization.js");require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.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");var c=require("../components/Content.js");require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var d=require("../components/Page.js"),p=require("../node_modules/@griffel/react/makeStyles.esm.js"),m=require("../node_modules/@fluentui/react-utilities/lib/hooks/useId.js"),j=require("../node_modules/@fluentui/react-combobox/lib/components/Dropdown/Dropdown.js"),h=require("../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js");const k=p.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:p})=>{const q=k(),{service:g}=p,{t:x}=u.default(),[v,f]=a.default(p.context.selectedApp+"_forms",[]),[b,w]=r.useState(),[S,y]=r.useState(),[_,C]=r.useState(!1),[I,L]=r.useState(),B=m.useId("form-dropdown");r.useEffect((()=>{g.getForms().then((e=>{e.sort(((e,r)=>e.name.localeCompare(r.name))),f(e)}))}),[g,x,f]);const T=void 0!==navigator.share;return e.jsx(d.Page,{children:e.jsx("div",{className:q.container,style:{backgroundImage:`url(${s.getConfigValue("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:e.jsxs(c.default,{children:[e.jsx(o.Title,{children:x("Skapa länk till formulär")}),e.jsx("p",{className:q.instructionParagraph,children:x("Instruktioner")}),e.jsxs("ol",{className:q.orderedList,children:[e.jsx("li",{children:x("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:x("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:x("När länken visas, kan du klicka på kopiera-ikonen för att kopiera länken till ditt urklipp.")}),e.jsx("li",{children:x("Om din enhet stödjer det, kan du även använda dela-knappen för att dela länken direkt.")}),e.jsx("li",{children:x("Kom ihåg att spara (skriva ner) koden")})]}),e.jsx("label",{id:B,className:q.instructionParagraph,children:x("Välj formulär")}),e.jsx(j.Dropdown,{"aria-labelledby":B,placeholder:"-",onOptionSelect:(e,r)=>L(r.optionValue),children:v.map((r=>e.jsxs(h.Option,{value:r.name,text:`${r.title} (${r.name})`,children:[`${r.title} (${r.name})`," "]},r.name)))}),e.jsx(n.Button,{appearance:"primary",disabled:!I,onClick:()=>{g.sendMessage(`#ss-link #${I}`).then((e=>{const r=`${window.location.protocol}//${window.location.hostname}${window.location.port?":"+window.location.port:""}${window.location.pathname}`;w(`${r}#/formaccept?id=${e}`);const n=l.formatGuidToShorterReadableCode(e);y(n)}))},children:x("Skapa länk")}),b&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:q.generatedLinkTitle,children:x("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:b,readOnly:!0,onFocus:e=>e.target.select()})}),e.jsx("br",{}),e.jsxs("div",{className:q.inputAndButton,children:[e.jsx(n.Button,{appearance:"primary",title:x("Kopiera länk"),icon:"CopyRegular",onClick:()=>{b&&(navigator.clipboard.writeText(b),C(!0),setTimeout((()=>{C(!1),w(void 0)}),2e3))},children:x("Kopiera")}),T&&e.jsx(n.Button,{appearance:"primary",title:x("Dela länk"),icon:"ShareRegular",onClick:()=>{b&&(navigator.share({url:b}),setTimeout((()=>{w(void 0)}),2e3))},children:x("Dela")})]}),_&&e.jsx(t.Label,{children:x("Länk kopierad!")})]})]})})})};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react");require("../services/codicent.js"),require("../components/Markdown.js"),require("../components/Textarea.js");var s=require("../components/Button.js"),i=require("../components/Title.js"),n=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("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var o=require("../config/index.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("./AppFrame.js"),require("./Snap.js"),require("./Search.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("../stores/chatStore.js");var t=require("../hooks/useLocalization.js"),a=require("../hooks/useAppStyles.js"),u=require("../node_modules/@griffel/react/makeStyles.esm.js"),l=require("../node_modules/@fluentui/react-image/lib/components/Image/Image.js"),c=require("../node_modules/@griffel/core/mergeClasses.esm.js");const m=u.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"},image:{maxHeight:"200px"}});exports.default=({state:u})=>{const{loginWithRedirect:g}=u.auth,j=m(),p=a.default(),{t:q}=t.default(),d=o.getConfigValue("LOGIN_REDIRECT");return r.useEffect((()=>{d&&g()}),[d]),d?e.jsxs("div",{className:j.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(n.Text,{size:400,children:q("Omdirigerar till inloggning...")})]}):e.jsxs("div",{className:j.container,style:{backgroundImage:`url(${o.getConfigValue("HOME_BACKGROUND_IMAGE_URL")})`},children:[o.getConfigValue("LOGIN_LOGO_URL")&&e.jsx(l.Image,{src:o.getConfigValue("LOGIN_LOGO_URL"),alt:o.getConfigValue("INDEX_TITLE"),className:j.image}),!o.getConfigValue("LOGIN_HIDE_WELCOME")&&e.jsx(i.Title,{children:`${q("Välkommen till")} ${o.getConfigValue("INDEX_TITLE")}!`}),e.jsx(n.Text,{size:400,children:q(o.getConfigValue("LOGIN_WELCOME_TEXT")||"Logga in, eller registrera ett konto, för att komma igång.")}),e.jsx(s.Button,{className:c.mergeClasses(p.button,j.button),size:"large",appearance:"primary",onClick:()=>g(),children:q("Logga in")}),!o.getConfigValue("HIDE_REGISTER_BUTTON")&&e.jsx(s.Button,{className:c.mergeClasses(p.button,j.button),size:"large",appearance:"primary",onClick:()=>g({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");require("../services/codicent.js"),require("../components/Markdown.js"),require("../components/Textarea.js");var s=require("../components/Button.js"),i=require("../components/Title.js"),n=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("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var o=require("../config/index.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("./AppFrame.js"),require("./Snap.js"),require("./Search.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("../stores/chatStore.js");var t=require("../hooks/useAppStyles.js"),a=require("../hooks/useLocalization.js"),u=require("../node_modules/@griffel/react/makeStyles.esm.js"),l=require("../node_modules/@fluentui/react-image/lib/components/Image/Image.js"),c=require("../node_modules/@griffel/core/mergeClasses.esm.js");const m=u.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"},image:{maxHeight:"200px"}});exports.default=({state:u})=>{const{loginWithRedirect:g}=u.auth,j=m(),p=t.default(),{t:q}=a.default(),d=o.getConfigValue("LOGIN_REDIRECT");return r.useEffect((()=>{d&&g()}),[d]),d?e.jsxs("div",{className:j.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(n.Text,{size:400,children:q("Omdirigerar till inloggning...")})]}):e.jsxs("div",{className:j.container,style:{backgroundImage:`url(${o.getConfigValue("HOME_BACKGROUND_IMAGE_URL")})`},children:[o.getConfigValue("LOGIN_LOGO_URL")&&e.jsx(l.Image,{src:o.getConfigValue("LOGIN_LOGO_URL"),alt:o.getConfigValue("INDEX_TITLE"),className:j.image}),!o.getConfigValue("LOGIN_HIDE_WELCOME")&&e.jsx(i.Title,{children:`${q("Välkommen till")} ${o.getConfigValue("INDEX_TITLE")}!`}),e.jsx(n.Text,{size:400,children:q(o.getConfigValue("LOGIN_WELCOME_TEXT")||"Logga in, eller registrera ett konto, för att komma igång.")}),e.jsx(s.Button,{className:c.mergeClasses(p.button,j.button),size:"large",appearance:"primary",onClick:()=>g(),children:q("Logga in")}),!o.getConfigValue("HIDE_REGISTER_BUTTON")&&e.jsx(s.Button,{className:c.mergeClasses(p.button,j.button),size:"large",appearance:"primary",onClick:()=>g({authorizationParams:{screen_hint:"signup"}}),children:q("Registrera")})]})};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),o=require("react");require("../components/Markdown.js");var s=require("../components/Textarea.js"),t=require("../components/Button.js"),n=require("../components/Text.js");require("../components/Spinner.js");var r=require("../components/Input.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js");var a=require("../components/Dialog.js");require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var i=require("../config/index.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("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("../stores/chatStore.js");var l=require("../hooks/useLocalization.js");require("../hooks/useAppStyles.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");var c=require("../components/Page.js"),d=require("../node_modules/@griffel/react/makeStyles.esm.js"),u=require("../node_modules/@fluentui/tokens/lib/tokens.js"),p=require("../node_modules/@griffel/core/index.esm.js"),m=require("../node_modules/@fluentui/react-image/lib/components/Image/Image.js"),g=require("../node_modules/@griffel/core/mergeClasses.esm.js");const h=d.makeStyles({root:{display:"flex",flexDirection:"column",height:"100%",touchAction:"pan-y"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",backgroundColor:i.getConfigValue("APP_HEADER_COLOR")||u.tokens.colorBrandBackground,color:u.tokens.colorNeutralForegroundOnBrand,...p.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:{...p.shorthands.padding("10px"),...p.shorthands.borderRadius("12px"),minWidth:"50px",textAlign:"center",color:"white"},buttonContainer:{display:"flex",flexDirection:"column",height:"100%",justifyContent:"center",gap:"30px",alignItems:"center",...p.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"}}),j={opened:"#1a5614",not_home:"#f44336",sales:"#2196F3",call_back:"#FF9800"},x=()=>{const d=h(),{t:u}=l.default(),[p,x]=o.useState(""),[f,q]=o.useState(),[C,v]=o.useState({opened:0,not_home:0,sales:0,call_back:0}),[k,_]=o.useState([]),[b,w]=o.useState(!1),[y,I]=o.useState(""),[S,A]=o.useState(""),[F,D]=o.useState(""),[P,$]=o.useState(!1),[B,N]=o.useState(!1),M=o.useCallback((()=>new Promise((e=>{navigator.geolocation?navigator.geolocation.getCurrentPosition((o=>{const s=`#position (${o.coords.latitude},${o.coords.longitude})`;e(s)})):e(void 0)}))),[q]);o.useEffect((()=>{window.Codicent.getDataMessages({codicent:i.getConfigValue("APP_NAME"),tags:["sales_code"]}).then((e=>{e=e.filter((e=>"1"!==e.data.inactive)),_(e)})).catch(console.error),M()}),[]);const T=async()=>{if(!p)return;const e=["not_home","sales","call_back","opened"],o=new Date;o.setHours(0,0,0,0);const s={...C};for(const t of e){const e=await window.Codicent.getMessages({search:`#${t} #sales_code_${p}`,afterTimestamp:o,length:1e4});s[t]=e.filter((e=>e.content.includes(`#${t} `)&&e.content.includes(`#sales_code_${p}`))).length}v(s)},O=async(e,o="")=>{const s=await M();console.log("Got position",s);const t=`@${i.getConfigValue("APP_NAME")} #sales_code_${p} #${e} ${s||""} ${o.trim().length>0?"#comment ":""}${o}`.trim();await window.Codicent.postMessage({message:t}),T()};return e.jsx(c.Page,{hideHeader:!0,children:e.jsxs("div",{className:d.root,children:[e.jsxs("div",{className:d.header,children:[e.jsx(m.Image,{src:S||i.getConfigValue("APP_ICON_URL")||"https://via.placeholder.com/100",className:d.logo,onClick:()=>F&&N(!0)}),e.jsx("div",{className:d.inputContainer,children:e.jsx(r.Input,{value:p,onChange:e=>x(e.target.value),onBlur:()=>{const e=k.find((e=>e.data.code===p));if(e)A(`https://codicent.com/app/GetImage?fileId=${e.fileId}&width=100`),D(e.data.link),$(!0),T();else{const e=k.find((e=>e.data.code2===p.toUpperCase()));e?(A(`https://codicent.com/app/GetImage?fileId=${e.fileIds&&e.fileIds.length>1?e.fileIds[1]:e.fileId}&width=100`),D(e.data.link2),$(!0),T()):($(!1),alert(u("Fel försäljningskod!")))}},placeholder:u("Fyll i försäljningskod"),maxLength:16,size:"large"})})]}),P&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:d.dashboard,children:Object.keys(C).map((o=>{return e.jsx("div",{className:(s=o,g.mergeClasses(d.statBox,d[s])),children:e.jsx(n.Text,{weight:"bold",size:400,children:C[o]})},o);var s}))}),e.jsx("div",{className:d.buttonContainer,children:Object.entries(j).map((([o,s])=>e.jsx(t.Button,{size:"large",className:d.actionButton,style:{backgroundColor:s,color:"white"},onClick:()=>{O(o),"opened"===o&&w(!0),"sales"===o&&N(!0)},children:o.charAt(0).toUpperCase()+o.slice(1).replace("_"," ")},o)))}),e.jsxs(a.Dialog,{open:b,children:[e.jsx(a.DialogTitle,{children:u("Skriv in avvikelse")}),e.jsx(a.DialogContent,{children:e.jsx("div",{className:d.textAreaContainer,children:e.jsx(s.Textarea,{value:y,onChange:e=>I(e.target.value),placeholder:u("Skriv din text här..."),rows:4,size:"large"})})}),e.jsx(a.DialogActions,{children:e.jsx(t.Button,{appearance:"primary",onClick:()=>{O("anomaly",`\n${y}`),w(!1),I("")},children:u("Spara")})})]}),e.jsxs(a.Dialog,{open:B,children:[e.jsx(a.DialogTitle,{children:u("Godkännande")}),e.jsx(a.DialogContent,{children:u("Är kunden över 23 år?")}),e.jsxs(a.DialogActions,{children:[e.jsx(t.Button,{appearance:"primary",onClick:()=>window.open(F,"_blank"),children:u("OK")}),e.jsx(t.Button,{appearance:"secondary",onClick:()=>N(!1),children:u("Avbryt")})]})]})]})]})})};exports.Sales=x,exports.default=x;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),o=require("react");require("../components/Markdown.js");var s=require("../components/Textarea.js"),t=require("../components/Button.js"),n=require("../components/Text.js");require("../components/Spinner.js");var r=require("../components/Input.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var i=require("../config/index.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("./Snap.js"),require("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("../stores/chatStore.js"),require("../hooks/useAppStyles.js");var a=require("../hooks/useLocalization.js"),l=require("../components/Dialog.js");require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.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");var c=require("../components/Page.js"),d=require("../node_modules/@griffel/react/makeStyles.esm.js"),u=require("../node_modules/@fluentui/tokens/lib/tokens.js"),p=require("../node_modules/@griffel/core/index.esm.js"),m=require("../node_modules/@fluentui/react-image/lib/components/Image/Image.js"),g=require("../node_modules/@griffel/core/mergeClasses.esm.js");const h=d.makeStyles({root:{display:"flex",flexDirection:"column",height:"100%",touchAction:"pan-y"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",backgroundColor:i.getConfigValue("APP_HEADER_COLOR")||u.tokens.colorBrandBackground,color:u.tokens.colorNeutralForegroundOnBrand,...p.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:{...p.shorthands.padding("10px"),...p.shorthands.borderRadius("12px"),minWidth:"50px",textAlign:"center",color:"white"},buttonContainer:{display:"flex",flexDirection:"column",height:"100%",justifyContent:"center",gap:"30px",alignItems:"center",...p.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"}}),j={opened:"#1a5614",not_home:"#f44336",sales:"#2196F3",call_back:"#FF9800"},x=()=>{const d=h(),{t:u}=a.default(),[p,x]=o.useState(""),[f,q]=o.useState(),[C,v]=o.useState({opened:0,not_home:0,sales:0,call_back:0}),[k,_]=o.useState([]),[b,w]=o.useState(!1),[y,I]=o.useState(""),[S,A]=o.useState(""),[F,D]=o.useState(""),[P,$]=o.useState(!1),[B,N]=o.useState(!1),M=o.useCallback((()=>new Promise((e=>{navigator.geolocation?navigator.geolocation.getCurrentPosition((o=>{const s=`#position (${o.coords.latitude},${o.coords.longitude})`;e(s)})):e(void 0)}))),[q]);o.useEffect((()=>{window.Codicent.getDataMessages({codicent:i.getConfigValue("APP_NAME"),tags:["sales_code"]}).then((e=>{e=e.filter((e=>"1"!==e.data.inactive)),_(e)})).catch(console.error),M()}),[]);const T=async()=>{if(!p)return;const e=["not_home","sales","call_back","opened"],o=new Date;o.setHours(0,0,0,0);const s={...C};for(const t of e){const e=await window.Codicent.getMessages({search:`#${t} #sales_code_${p}`,afterTimestamp:o,length:1e4});s[t]=e.filter((e=>e.content.includes(`#${t} `)&&e.content.includes(`#sales_code_${p}`))).length}v(s)},O=async(e,o="")=>{const s=await M();console.log("Got position",s);const t=`@${i.getConfigValue("APP_NAME")} #sales_code_${p} #${e} ${s||""} ${o.trim().length>0?"#comment ":""}${o}`.trim();await window.Codicent.postMessage({message:t}),T()};return e.jsx(c.Page,{hideHeader:!0,children:e.jsxs("div",{className:d.root,children:[e.jsxs("div",{className:d.header,children:[e.jsx(m.Image,{src:S||i.getConfigValue("APP_ICON_URL")||"https://via.placeholder.com/100",className:d.logo,onClick:()=>F&&N(!0)}),e.jsx("div",{className:d.inputContainer,children:e.jsx(r.Input,{value:p,onChange:e=>x(e.target.value),onBlur:()=>{const e=k.find((e=>e.data.code===p));if(e)A(`https://codicent.com/app/GetImage?fileId=${e.fileId}&width=100`),D(e.data.link),$(!0),T();else{const e=k.find((e=>e.data.code2===p.toUpperCase()));e?(A(`https://codicent.com/app/GetImage?fileId=${e.fileIds&&e.fileIds.length>1?e.fileIds[1]:e.fileId}&width=100`),D(e.data.link2),$(!0),T()):($(!1),alert(u("Fel försäljningskod!")))}},placeholder:u("Fyll i försäljningskod"),maxLength:16,size:"large"})})]}),P&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:d.dashboard,children:Object.keys(C).map((o=>{return e.jsx("div",{className:(s=o,g.mergeClasses(d.statBox,d[s])),children:e.jsx(n.Text,{weight:"bold",size:400,children:C[o]})},o);var s}))}),e.jsx("div",{className:d.buttonContainer,children:Object.entries(j).map((([o,s])=>e.jsx(t.Button,{size:"large",className:d.actionButton,style:{backgroundColor:s,color:"white"},onClick:()=>{O(o),"opened"===o&&w(!0),"sales"===o&&N(!0)},children:o.charAt(0).toUpperCase()+o.slice(1).replace("_"," ")},o)))}),e.jsxs(l.Dialog,{open:b,children:[e.jsx(l.DialogTitle,{children:u("Skriv in avvikelse")}),e.jsx(l.DialogContent,{children:e.jsx("div",{className:d.textAreaContainer,children:e.jsx(s.Textarea,{value:y,onChange:e=>I(e.target.value),placeholder:u("Skriv din text här..."),rows:4,size:"large"})})}),e.jsx(l.DialogActions,{children:e.jsx(t.Button,{appearance:"primary",onClick:()=>{O("anomaly",`\n${y}`),w(!1),I("")},children:u("Spara")})})]}),e.jsxs(l.Dialog,{open:B,children:[e.jsx(l.DialogTitle,{children:u("Godkännande")}),e.jsx(l.DialogContent,{children:u("Är kunden över 23 år?")}),e.jsxs(l.DialogActions,{children:[e.jsx(t.Button,{appearance:"primary",onClick:()=>window.open(F,"_blank"),children:u("OK")}),e.jsx(t.Button,{appearance:"secondary",onClick:()=>N(!1),children:u("Avbryt")})]})]})]})]})})};exports.Sales=x,exports.default=x;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("../components/Markdown.js");require("../components/Textarea.js");var o=require("../components/Button.js"),n=require("../components/Title.js");require("../components/Spinner.js"),require("../components/TextHeader.js");var i=require("../components/TypingIndicator.js");require("../components/Dialog.js");var s=require("../components/ChatInput.js");require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js");var a=require("../hooks/useStateWithLocalStorage.js"),l=require("../services/codicent.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var u=require("../config/index.js");require("../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("./Snap.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js");var c=require("../hooks/useChat.js"),p=require("../hooks/useLocalization.js"),d=require("../hooks/useTemplateVariables.js");require("../hooks/useAppStyles.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");var m=require("../components/Page.js"),g=require("../node_modules/@griffel/react/makeStyles.esm.js"),f=require("../node_modules/@fluentui/tokens/lib/tokens.js");const j=g.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",backgroundColor:u.getConfigValue("CHAT_BOT_BACKGROUND_COLOR")||f.tokens.colorBrandBackground2,padding:"12px",borderRadius:"16px",marginBottom:"24px"},title:{marginLeft:"12px",padding:"16px"}});exports.default=({state:g})=>{const f=j(),{t:x}=p.default(),{messages:h,isBotTyping:q,handleSend:C,newChat:v}=c.useChat(g.stateMachine),A=r.useRef(null),{service:T}=g,[_,S]=a.default(g.context.selectedApp+"_searchprompts",["Leta information","Vad kan jag göra?","Sök supportställe"]),[b,w]=r.useState(),[k,y]=r.useState(null),[N,O]=r.useState(!1);d.useTemplateVariables(T.uploadFile);r.useEffect((()=>{q&&O(!0)}),[q]),r.useEffect((()=>{v();const e=u.getConfigValue("APP_CONFIG"),r=u.getConfigValue("APP_BUTTONS");r?e.apps[r].questions&&S(e.apps[r].questions.map((e=>x(e)))):console.error("APP_BUTTONS is not defined in the configuration."),void 0!==u.getConfigValue("ANONYMOUS_CODICENT")&&void 0!==u.getConfigValue("ANONYMOUS_TOKEN")?(T.codicent=u.getConfigValue("ANONYMOUS_CODICENT"),T.setToken(u.getConfigValue("ANONYMOUS_TOKEN"))):console.error("Anonymous Codicent or Token is not defined in the configuration.")}),[v,T,S,x]),r.useEffect((()=>{setTimeout((()=>{A.current?.scrollIntoView({behavior:"smooth"})}),10)}),[h]);const I=e=>{w(e),C(e)};return r.useEffect((()=>{const e=h.filter((e=>"bot"===e.sender));let r=e.length>0?e[e.length-1]:null;y({...r,createdAt:new Date}),r&&O(!1)}),[h]),e.jsx(m.Page,{hideHeader:!0,hideFooter:!0,children:e.jsxs("div",{id:"search-container",className:f.chatContainer,style:{backgroundImage:`url(${u.getConfigValue("CHAT_BACKGROUND_IMAGE_URL")})`},children:[e.jsx("div",{className:f.title,children:e.jsx(n.Title,{children:x(u.getConfigValue("APP_SEARCH_TITLE")||"Frågor")})}),e.jsxs("div",{className:f.inputArea,children:[e.jsx(s.default,{noMemory:!0,defaultText:b,codicent:g.context.selectedApp,disableSend:q,onSend:I,rows:3,getImageUrl:l.CodicentService.getImageUrl,getFileInfo:e=>T.getFileInfo(e),selectAll:!0}),e.jsx("div",{className:f.promptButtons,children:_.length>0&&_.map(((r,t)=>e.jsx(o.Button,{onClick:()=>I(r),size:"large",appearance:"primary",shape:"circular",children:r},`search-prompt-${t}`)))}),N&&e.jsx(i.default,{}),k&&!q&&e.jsxs("div",{className:f.answerArea,children:[e.jsx("div",{ref:A}),e.jsx(t.default,{content:k.content})]})]})]})})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("../components/Markdown.js");require("../components/Textarea.js");var o=require("../components/Button.js"),n=require("../components/Title.js");require("../components/Spinner.js"),require("../components/TextHeader.js");var i=require("../components/TypingIndicator.js"),s=require("../hooks/useStateWithLocalStorage.js"),a=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("../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("./Snap.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js");var u=require("../hooks/useChat.js"),c=require("../hooks/useTemplateVariables.js");require("../hooks/useAppStyles.js");var p=require("../hooks/useLocalization.js");require("../components/Dialog.js");var d=require("../components/ChatInput.js");require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.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");var m=require("../components/Page.js"),g=require("../node_modules/@griffel/react/makeStyles.esm.js"),f=require("../node_modules/@fluentui/tokens/lib/tokens.js");const j=g.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",backgroundColor:l.getConfigValue("CHAT_BOT_BACKGROUND_COLOR")||f.tokens.colorBrandBackground2,padding:"12px",borderRadius:"16px",marginBottom:"24px"},title:{marginLeft:"12px",padding:"16px"}});exports.default=({state:g})=>{const f=j(),{t:x}=p.default(),{messages:h,isBotTyping:q,handleSend:C,newChat:v}=u.useChat(g.stateMachine),A=r.useRef(null),{service:T}=g,[_,S]=s.default(g.context.selectedApp+"_searchprompts",["Leta information","Vad kan jag göra?","Sök supportställe"]),[b,w]=r.useState(),[k,y]=r.useState(null),[N,O]=r.useState(!1);c.useTemplateVariables(T.uploadFile);r.useEffect((()=>{q&&O(!0)}),[q]),r.useEffect((()=>{v();const e=l.getConfigValue("APP_CONFIG"),r=l.getConfigValue("APP_BUTTONS");r?e.apps[r].questions&&S(e.apps[r].questions.map((e=>x(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.")}),[v,T,S,x]),r.useEffect((()=>{setTimeout((()=>{A.current?.scrollIntoView({behavior:"smooth"})}),10)}),[h]);const I=e=>{w(e),C(e)};return r.useEffect((()=>{const e=h.filter((e=>"bot"===e.sender));let r=e.length>0?e[e.length-1]:null;y({...r,createdAt:new Date}),r&&O(!1)}),[h]),e.jsx(m.Page,{hideHeader:!0,hideFooter:!0,children:e.jsxs("div",{id:"search-container",className:f.chatContainer,style:{backgroundImage:`url(${l.getConfigValue("CHAT_BACKGROUND_IMAGE_URL")})`},children:[e.jsx("div",{className:f.title,children:e.jsx(n.Title,{children:x(l.getConfigValue("APP_SEARCH_TITLE")||"Frågor")})}),e.jsxs("div",{className:f.inputArea,children:[e.jsx(d.default,{noMemory:!0,defaultText:b,codicent:g.context.selectedApp,disableSend:q,onSend:I,rows:3,getImageUrl:a.CodicentService.getImageUrl,getFileInfo:e=>T.getFileInfo(e),selectAll:!0}),e.jsx("div",{className:f.promptButtons,children:_.length>0&&_.map(((r,t)=>e.jsx(o.Button,{onClick:()=>I(r),size:"large",appearance:"primary",shape:"circular",children:r},`search-prompt-${t}`)))}),N&&e.jsx(i.default,{}),k&&!q&&e.jsxs("div",{className:f.answerArea,children:[e.jsx("div",{ref:A}),e.jsx(t.default,{content:k.content})]})]})]})})};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),o=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js");var r=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 s=require("../components/CombinedPlaceholderDialog.js");require("../components/ChatMessage.js"),require("../components/Header.js"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.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("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("../stores/chatStore.js");var i=require("../hooks/useLocalization.js"),n=require("../hooks/useTemplateVariables.js");require("../hooks/useAppStyles.js"),require("../components/FileThumbnail.js");var a=require("../components/MessageInput.js");require("../components/UploadFile.js");var l=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");const c=require("../node_modules/@griffel/react/makeStyles.esm.js").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:u,audio:d})=>{const p=c(),{service:m}=u,[h,g]=t.useState(null),[j,x]=t.useState(!0),f=t.useRef(null),w=t.useRef(null),[b]=o.useSearchParams(),v=b.get("extra"),q=b.get("template"),[y,C]=t.useState(""),[S]=t.useState("log"),k=t.useMemo((()=>new Audio("/audio/camera.mp3")),[]),[I,F]=t.useState(!1),T=o.useNavigate(),{t:z}=i.default(),{extractTemplateVariables:V}=n.useTemplateVariables(m.uploadFile),[E,$]=t.useState(V(q||"")),[M,P]=t.useState(E.length>0),[_,B]=t.useState(""),[N,A]=t.useState(100),H=t.useCallback((()=>E.map((e=>`#${e.value}`)).join(" ")),[E]);t.useEffect((()=>{const e=H();B(`${v?" #"+v:""}${e.length>0?" "+e:""}`.trim())}),[E,v,H]),t.useEffect((()=>{if(window.visualViewport){const e=()=>{const e=window.visualViewport?window.innerHeight-window.visualViewport.height:0;A(e>150?e+20:100)};return window.visualViewport.addEventListener("resize",e),e(),()=>{window.visualViewport&&window.visualViewport.removeEventListener("resize",e)}}}),[]);const D=async e=>{try{const t=new FormData;t.append("file",e);const o=await m.uploadFile(e.name,t),r=H(),s=`${S?" #"+S:""}${v?" #"+v:""}${r.length>0?" "+r:""} #photo #file:${o}`;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:f,autoPlay:!0,playsInline:!0,className:p.video}),e.jsx("canvas",{ref:w,width:"640",height:"480",className:p.canvas}),!h&&e.jsx(r.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(a.default,{defaultText:y,onSend:async()=>{if(""===y.trim())return;const e=H(),t=`${S?" #"+S:""}${v?" #"+v:""}${e.length>0?" "+e:""} ${y}`;try{await m.sendMessage(t),C("")}catch(e){alert(z("Failed to send message: ")+e)}},rows:4,onChange:C,disableSend:!0})})}),e.jsx("div",{className:p.bottomButtons,children:e.jsx(l.default,{audio:d,onHome:()=>T("/"),onTakePhoto:()=>{const e=w.current,t=f.current;if(e&&t){e.width=t.videoWidth,e.height=t.videoHeight;const o=e.getContext("2d");o&&(k.play(),F(!0),setTimeout((()=>F(!1)),100),o.drawImage(t,0,0,e.width,e.height),e.toBlob((e=>{if(e){const t=new File([e],"snapshot.png",{type:"image/png"});D(t)}})))}},onSwichCamera:()=>{x((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),f.current&&(f.current.srcObject=t,f.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(s.CombinedPlaceholderDialog,{open:M,templateVariables:E,filePlaceholders:[],onTemplateVariablesChange:$,onFilePlaceholdersChange:()=>{},onConfirm:()=>P(!1),onCancel:()=>{P(!1),T(-1)},uploadFile:m.uploadFile})]})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),o=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js");var r=require("../components/Text.js");require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.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("./Search.js"),require("./Login.js"),require("./CrmPage.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("../stores/chatStore.js");var s=require("../hooks/useTemplateVariables.js");require("../hooks/useAppStyles.js");var i=require("../hooks/useLocalization.js");require("../components/Dialog.js"),require("../components/ChatInput.js");var n=require("../components/CombinedPlaceholderDialog.js");require("../components/ChatMessage.js"),require("../components/Header.js"),require("../components/FileThumbnail.js");var a=require("../components/MessageInput.js");require("../components/UploadFile.js");var l=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");const c=require("../node_modules/@griffel/react/makeStyles.esm.js").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:u,audio:d})=>{const p=c(),{service:m}=u,[h,g]=t.useState(null),[j,x]=t.useState(!0),f=t.useRef(null),w=t.useRef(null),[b]=o.useSearchParams(),v=b.get("extra"),q=b.get("template"),[y,C]=t.useState(""),[S]=t.useState("log"),k=t.useMemo((()=>new Audio("/audio/camera.mp3")),[]),[I,F]=t.useState(!1),T=o.useNavigate(),{t:z}=i.default(),{extractTemplateVariables:V}=s.useTemplateVariables(m.uploadFile),[E,$]=t.useState(V(q||"")),[M,P]=t.useState(E.length>0),[_,B]=t.useState(""),[N,A]=t.useState(100),H=t.useCallback((()=>E.map((e=>`#${e.value}`)).join(" ")),[E]);t.useEffect((()=>{const e=H();B(`${v?" #"+v:""}${e.length>0?" "+e:""}`.trim())}),[E,v,H]),t.useEffect((()=>{if(window.visualViewport){const e=()=>{const e=window.visualViewport?window.innerHeight-window.visualViewport.height:0;A(e>150?e+20:100)};return window.visualViewport.addEventListener("resize",e),e(),()=>{window.visualViewport&&window.visualViewport.removeEventListener("resize",e)}}}),[]);const D=async e=>{try{const t=new FormData;t.append("file",e);const o=await m.uploadFile(e.name,t),r=H(),s=`${S?" #"+S:""}${v?" #"+v:""}${r.length>0?" "+r:""} #photo #file:${o}`;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:f,autoPlay:!0,playsInline:!0,className:p.video}),e.jsx("canvas",{ref:w,width:"640",height:"480",className:p.canvas}),!h&&e.jsx(r.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(a.default,{defaultText:y,onSend:async()=>{if(""===y.trim())return;const e=H(),t=`${S?" #"+S:""}${v?" #"+v:""}${e.length>0?" "+e:""} ${y}`;try{await m.sendMessage(t),C("")}catch(e){alert(z("Failed to send message: ")+e)}},rows:4,onChange:C,disableSend:!0})})}),e.jsx("div",{className:p.bottomButtons,children:e.jsx(l.default,{audio:d,onHome:()=>T("/"),onTakePhoto:()=>{const e=w.current,t=f.current;if(e&&t){e.width=t.videoWidth,e.height=t.videoHeight;const o=e.getContext("2d");o&&(k.play(),F(!0),setTimeout((()=>F(!1)),100),o.drawImage(t,0,0,e.width,e.height),e.toBlob((e=>{if(e){const t=new File([e],"snapshot.png",{type:"image/png"});D(t)}})))}},onSwichCamera:()=>{x((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),f.current&&(f.current.srcObject=t,f.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(n.CombinedPlaceholderDialog,{open:M,templateVariables:E,filePlaceholders:[],onTemplateVariablesChange:$,onFilePlaceholdersChange:()=>{},onConfirm:()=>P(!1),onCancel:()=>{P(!1),T(-1)},uploadFile:m.uploadFile})]})};
@@ -1,3 +1,4 @@
1
1
  export { CodicentService } from "./codicent";
2
2
  export * from "./codicent";
3
+ export * from "./translationService";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { CodicentService } from "./codicent";
2
+ export interface TranslationService {
3
+ /**
4
+ * Auto-translate text using AI service
5
+ */
6
+ translateText: (text: string, targetLanguage: string, service?: CodicentService) => Promise<string>;
7
+ /**
8
+ * Save translation to localStorage
9
+ */
10
+ saveTranslation: (key: string, value: string, language: string) => void;
11
+ /**
12
+ * Get stored translations from localStorage
13
+ */
14
+ getStoredTranslations: (language?: string) => Record<string, any>;
15
+ /**
16
+ * Clear stored translations
17
+ */
18
+ clearStoredTranslations: (language?: string) => void;
19
+ }
20
+ /**
21
+ * Auto-translate text using Codicent AI service
22
+ */
23
+ export declare const translateText: (text: string, targetLanguage: string, service?: CodicentService) => Promise<string>;
24
+ /**
25
+ * Save translation to localStorage
26
+ */
27
+ export declare const saveTranslation: (key: string, value: string, language: string) => void;
28
+ /**
29
+ * Get stored translations from localStorage
30
+ */
31
+ export declare const getStoredTranslations: (language?: string) => Record<string, any>;
32
+ /**
33
+ * Clear stored translations
34
+ */
35
+ export declare const clearStoredTranslations: (language?: string) => void;
36
+ export declare const translationService: TranslationService;
37
+ //# sourceMappingURL=translationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translationService.d.ts","sourceRoot":"","sources":["../../../src/services/translationService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,aAAa,EAAE,CACb,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,eAAe,KACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAErB;;OAEG;IACH,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAExE;;OAEG;IACH,qBAAqB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAElE;;OAEG;IACH,uBAAuB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACtD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,SAClB,MAAM,kBACI,MAAM,YACZ,eAAe,KACxB,OAAO,CAAC,MAAM,CAuBhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,QACrB,MAAM,SACJ,MAAM,YACH,MAAM,KACf,IAiBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,cACrB,MAAM,KAChB,MAAM,CAAC,MAAM,EAAE,GAAG,CAgBpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,cAAe,MAAM,KAAG,IAuB3D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,kBAKhC,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";const t=async(t,a,e)=>{if(!e)return console.warn("[TranslationService] No CodicentService provided for auto-translation"),t;try{const r=`Translate the following text to ${a}. Return only the translation, no explanation:\n\n${t}`,o=(await e.sendMessage(r)).trim().replace(/^["']|["']$/g,"");return console.log(`🌐 [TranslationService] Auto-translated "${t}" to "${o}"`),o}catch(a){return console.error("[TranslationService] Auto-translation failed:",a),t}},a=(t,a,e)=>{try{const r=JSON.parse(localStorage.getItem("app-translations")||"{}");r[e]||(r[e]={}),r[e][t]=a,localStorage.setItem("app-translations",JSON.stringify(r)),console.log(`💾 [TranslationService] Saved translation for ${e}: ${t} = ${a}`)}catch(t){console.error("[TranslationService] Failed to save translation:",t)}},e=t=>{try{const a=JSON.parse(localStorage.getItem("app-translations")||"{}");return t?a[t]||{}:a}catch(t){return console.error("[TranslationService] Failed to get stored translations:",t),{}}},r=t=>{try{if(t){const a=JSON.parse(localStorage.getItem("app-translations")||"{}");delete a[t],localStorage.setItem("app-translations",JSON.stringify(a))}else localStorage.removeItem("app-translations");console.log("🗑️ [TranslationService] Cleared stored translations"+(t?` for ${t}`:""))}catch(t){console.error("[TranslationService] Failed to clear stored translations:",t)}},o={translateText:t,saveTranslation:a,getStoredTranslations:e,clearStoredTranslations:r};exports.clearStoredTranslations=r,exports.getStoredTranslations=e,exports.saveTranslation=a,exports.translateText=t,exports.translationService=o;
@@ -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"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import{Text as a}from"./Text.js";import{Spinner as m}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"../services/codicent.js";import p from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.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/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import l from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import{makeStyles as n}from"../node_modules/@griffel/react/makeStyles.esm.js";import{useId as c}from"../node_modules/@fluentui/react-utilities/lib/hooks/useId.js";import{Combobox as d}from"../node_modules/@fluentui/react-combobox/lib/components/Combobox/Combobox.js";import{Option as j}from"../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js";const f=n({root:{display:"grid",gridTemplateRows:"repeat(1fr)",justifyItems:"start",gap:"2px",maxWidth:"400px",padding:"8px"},combo:{width:"100%"},horizonal:{display:"flex",flexDirection:"row",verticalAlign:"middle"}}),g=n=>{const{id:g,options:u,title:b,placeholder:h,onChangeValue:x,value:w="",prompt:v,service:y}=n,C=c(g+"-combo"),[S,_]=i([...u||[]]),[k,T]=i(),[z,I]=i(!1),F=f(),{t:A}=l();r((()=>{x(k)}),[k,x]);return o("div",{id:g,className:F.root,children:[o("div",{className:F.horizonal,children:[e(a,{size:400,id:C,children:b}),v&&o(t,{children:[!z&&e(s,{icon:"WandRegular",title:A("Autoskapa"),style:{fontSize:16,marginLeft:6},onClick:async()=>{I(!0),await(async o=>{if(o){const e=await y.chat(o);if(e){const o=new p(e.content).content;x(o)}}})(v),I(!1)},appearance:"transparent",size:"small"}),z&&e(m,{size:"extra-small",style:{marginLeft:12},children:A("Arbetar...")})]})]}),o(d,{className:F.combo,"aria-labelledby":C,freeform:!0,placeholder:h||A("Välj..."),onChange:o=>{const e=o.target.value;T(e);const t=(u||[]).filter((o=>0===o.toLowerCase().indexOf(e.toLowerCase())));_(t)},onOptionSelect:(o,e)=>{e.optionText&&(u||[]).includes(e.optionText);T(e.optionText)},size:"large",value:w,children:[k?e(j,{text:k,children:A("Sök efter ")+k},"freeform"):null,S.map((o=>e(j,{children:o},o)))]})]})};export{g 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"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import{Text as a}from"./Text.js";import{Spinner as m}from"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"../services/codicent.js";import p from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.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/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import l from"../hooks/useLocalization.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import{makeStyles as n}from"../node_modules/@griffel/react/makeStyles.esm.js";import{useId as c}from"../node_modules/@fluentui/react-utilities/lib/hooks/useId.js";import{Combobox as d}from"../node_modules/@fluentui/react-combobox/lib/components/Combobox/Combobox.js";import{Option as j}from"../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js";const f=n({root:{display:"grid",gridTemplateRows:"repeat(1fr)",justifyItems:"start",gap:"2px",maxWidth:"400px",padding:"8px"},combo:{width:"100%"},horizonal:{display:"flex",flexDirection:"row",verticalAlign:"middle"}}),g=n=>{const{id:g,options:u,title:b,placeholder:h,onChangeValue:x,value:w="",prompt:v,service:y}=n,C=c(g+"-combo"),[S,_]=i([...u||[]]),[k,T]=i(),[z,I]=i(!1),F=f(),{t:A}=l();r((()=>{x(k)}),[k,x]);return o("div",{id:g,className:F.root,children:[o("div",{className:F.horizonal,children:[e(a,{size:400,id:C,children:b}),v&&o(t,{children:[!z&&e(s,{icon:"WandRegular",title:A("Autoskapa"),style:{fontSize:16,marginLeft:6},onClick:async()=>{I(!0),await(async o=>{if(o){const e=await y.chat(o);if(e){const o=new p(e.content).content;x(o)}}})(v),I(!1)},appearance:"transparent",size:"small"}),z&&e(m,{size:"extra-small",style:{marginLeft:12},children:A("Arbetar...")})]})]}),o(d,{className:F.combo,"aria-labelledby":C,freeform:!0,placeholder:h||A("Välj..."),onChange:o=>{const e=o.target.value;T(e);const t=(u||[]).filter((o=>0===o.toLowerCase().indexOf(e.toLowerCase())));_(t)},onOptionSelect:(o,e)=>{e.optionText&&(u||[]).includes(e.optionText);T(e.optionText)},size:"large",value:w,children:[k?e(j,{text:k,children:A("Sök efter ")+k},"freeform"):null,S.map((o=>e(j,{children:o},o)))]})]})};export{g as default};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.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 s from"../utils/withWakeLock.js";import"../_virtual/index.js";import"../config/index.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import"../hooks/useLocalization.js";import i from"../hooks/useAppStyles.js";import{Mic24Regular as t,MicPulse24Filled as r,MicRecord24Filled as e}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";const p=s((({isSoundCaptured:s,stopRecording:t})=>{const{pointer:p}=i();return o(s?r:e,{onClick:t,className:p})})),a=({audio:s,disabled:r})=>{const{isRecording:e,isSoundCaptured:a,startRecording:m,stopRecording:n}=s,{pointer:j}=i();return r?o(t,{}):e?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"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.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 s from"../utils/withWakeLock.js";import"../_virtual/index.js";import"../config/index.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import t from"../hooks/useAppStyles.js";import{Mic24Regular as i,MicPulse24Filled as r,MicRecord24Filled as e}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";const p=s((({isSoundCaptured:s,stopRecording:i})=>{const{pointer:p}=t();return o(s?r:e,{onClick:i,className:p})})),a=({audio:s,disabled:r})=>{const{isRecording:e,isSoundCaptured:a,startRecording:m,stopRecording:n}=s,{pointer:j}=t();return r?o(i,{}):e?o(p,{isSoundCaptured:a,stopRecording:n}):o(i,{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{FileThumbnail as a}from"./FileThumbnail.js";import s from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"./Markdown.js";import{Textarea as l}from"./Textarea.js";import"./Button.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 n}from"../config/index.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import p from"../hooks/useLocalization.js";import m from"../hooks/useAppStyles.js";import{makeStyles as c}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Button as d}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{Spinner as u}from"../node_modules/@fluentui/react-spinner/lib/components/Spinner/Spinner.js";import{SendRegular as f,SendFilled as g}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js";import{mergeClasses as j}from"../node_modules/@griffel/core/mergeClasses.esm.js";import{tokens as h}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{AddRegular as b}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js";const x=c({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:h.colorNeutralBackground2,borderRadius:h.borderRadiusMedium,"&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:h.colorNeutralStroke1,borderRadius:"3px"}},hiddenInput:{display:"none"},button:{color:h.colorNeutralForeground2,"&:hover":{color:h.colorBrandBackground,backgroundColor:"transparent"}}}),_=({onSend:c,disableSend:h,onSelectFiles:_,getImageUrl:S,getFileInfo:k,codicent:v,defaultText:T,rows:w,noMemory:y,selectAll:N,id:D})=>{const C=x(),[B,F]=s("chatInput-"+v,""),I=o(null),[E,O]=i([]),[A,H]=i([]),[U,P]=i(!1),[L,W]=i([]),{t:R}=p(),M=m();r((()=>{T&&F(T)}),[F,T]),r((()=>{!0===y&&F("")}),[y,F]);const z=()=>{if(""===B.trim()&&0===L.length)return;const e=E.length>0?" #"+E.join(" #"):"",t=A.length>0?"\n#file:"+A.join("\n#file:"):"";c(e+B+t),F(""),O([]),H([]),W([])};return e("div",{className:C.inputContainer,children:[t("input",{title:R("Välj fil att ladda upp"),type:"file",ref:I,className:C.hiddenInput,onChange:async e=>{const t=e.target.files;if(t&&t.length>0&&_){P(!0);try{const e=await _(t),o=await Promise.all(e.map((e=>k(e))));H((t=>[...t,...e])),W((e=>[...e,...o]))}catch(e){console.error("Failed to upload files",e)}finally{P(!1),I.current&&(I.current.value="")}}},multiple:!0,accept:"image/*,.pdf,.doc,.docx,.xls,.xlsx,.txt"}),L.length>0&&t("div",{className:C.fileList,children:L.map((e=>t(a,{file:e,getImageUrl:S,onDelete:()=>{return t=e.id,H((e=>e.filter((e=>e!==t)))),void W((e=>e.filter((e=>e.id!==t))));var t}},e.id)))}),e("div",{className:C.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(),_))try{P(!0);const e=new DataTransfer;e.items.add(o);const t=await _(e.files),i=await Promise.all(t.map((e=>k(e))));H((e=>[...e,...t])),W((e=>[...e,...i]))}catch(e){console.error("Failed to upload pasted image",e)}finally{P(!1)}}},children:[t(l,{size:"large",id:D||"chat-input",placeholder:R(n("APP_CHAT_TEXT_PLACEHOLDER")||"Skriv ditt meddelande här..."),value:B,onChange:e=>F(e.target.value),onKeyDown:e=>{h||"Enter"!==e.key||e.shiftKey||(e.preventDefault(),z())},autoFocus:!1,rows:w||4,onFocus:e=>{if(!0===N){e.target.select()}}}),e("div",{className:C.actionButtonRow,children:[t("div",{children:!n("HIDE_CHAT_ADD_FILE_BUTTON")&&_&&t(d,{appearance:"subtle",size:"small",title:R("Lägg till fil"),icon:t(U?u:b,{}),onClick:()=>I.current?.click(),className:C.button})}),t(d,{appearance:n("SHOW_SEND_BUTTON_TEXT")?"primary":"subtle",size:n("SHOW_SEND_BUTTON_TEXT")?"small":"large",title:R("Skicka"),disabled:h,icon:""===B.trim()&&0===L.length?t(f,{}):t(g,{}),onClick:z,className:n("SEND_BUTTON_ROUND_BACKGROUND")?j(M.roundButton,C.button):n("SHOW_SEND_BUTTON_TEXT")?void 0:C.button,children:n("SHOW_SEND_BUTTON_TEXT")&&t("span",{children:R("Skicka")})})]})]})]})};export{_ 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{FileThumbnail as a}from"./FileThumbnail.js";import s from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"./Markdown.js";import{Textarea as l}from"./Textarea.js";import"./Button.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 n}from"../config/index.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import p from"../hooks/useAppStyles.js";import m from"../hooks/useLocalization.js";import{makeStyles as c}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Button as d}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{Spinner as u}from"../node_modules/@fluentui/react-spinner/lib/components/Spinner/Spinner.js";import{SendRegular as f,SendFilled as g}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js";import{mergeClasses as j}from"../node_modules/@griffel/core/mergeClasses.esm.js";import{tokens as h}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{AddRegular as b}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js";const x=c({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:h.colorNeutralBackground2,borderRadius:h.borderRadiusMedium,"&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:h.colorNeutralStroke1,borderRadius:"3px"}},hiddenInput:{display:"none"},button:{color:h.colorNeutralForeground2,"&:hover":{color:h.colorBrandBackground,backgroundColor:"transparent"}}}),_=({onSend:c,disableSend:h,onSelectFiles:_,getImageUrl:S,getFileInfo:k,codicent:v,defaultText:T,rows:w,noMemory:y,selectAll:N,id:D})=>{const C=x(),[B,F]=s("chatInput-"+v,""),I=o(null),[E,O]=i([]),[A,H]=i([]),[U,P]=i(!1),[L,W]=i([]),{t:R}=m(),M=p();r((()=>{T&&F(T)}),[F,T]),r((()=>{!0===y&&F("")}),[y,F]);const z=()=>{if(""===B.trim()&&0===L.length)return;const e=E.length>0?" #"+E.join(" #"):"",t=A.length>0?"\n#file:"+A.join("\n#file:"):"";c(e+B+t),F(""),O([]),H([]),W([])};return e("div",{className:C.inputContainer,children:[t("input",{title:R("Välj fil att ladda upp"),type:"file",ref:I,className:C.hiddenInput,onChange:async e=>{const t=e.target.files;if(t&&t.length>0&&_){P(!0);try{const e=await _(t),o=await Promise.all(e.map((e=>k(e))));H((t=>[...t,...e])),W((e=>[...e,...o]))}catch(e){console.error("Failed to upload files",e)}finally{P(!1),I.current&&(I.current.value="")}}},multiple:!0,accept:"image/*,.pdf,.doc,.docx,.xls,.xlsx,.txt"}),L.length>0&&t("div",{className:C.fileList,children:L.map((e=>t(a,{file:e,getImageUrl:S,onDelete:()=>{return t=e.id,H((e=>e.filter((e=>e!==t)))),void W((e=>e.filter((e=>e.id!==t))));var t}},e.id)))}),e("div",{className:C.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(),_))try{P(!0);const e=new DataTransfer;e.items.add(o);const t=await _(e.files),i=await Promise.all(t.map((e=>k(e))));H((e=>[...e,...t])),W((e=>[...e,...i]))}catch(e){console.error("Failed to upload pasted image",e)}finally{P(!1)}}},children:[t(l,{size:"large",id:D||"chat-input",placeholder:R(n("APP_CHAT_TEXT_PLACEHOLDER")||"Skriv ditt meddelande här..."),value:B,onChange:e=>F(e.target.value),onKeyDown:e=>{h||"Enter"!==e.key||e.shiftKey||(e.preventDefault(),z())},autoFocus:!1,rows:w||4,onFocus:e=>{if(!0===N){e.target.select()}}}),e("div",{className:C.actionButtonRow,children:[t("div",{children:!n("HIDE_CHAT_ADD_FILE_BUTTON")&&_&&t(d,{appearance:"subtle",size:"small",title:R("Lägg till fil"),icon:t(U?u:b,{}),onClick:()=>I.current?.click(),className:C.button})}),t(d,{appearance:n("SHOW_SEND_BUTTON_TEXT")?"primary":"subtle",size:n("SHOW_SEND_BUTTON_TEXT")?"small":"large",title:R("Skicka"),disabled:h,icon:""===B.trim()&&0===L.length?t(f,{}):t(g,{}),onClick:z,className:n("SEND_BUTTON_ROUND_BACKGROUND")?j(M.roundButton,C.button):n("SHOW_SEND_BUTTON_TEXT")?void 0:C.button,children:n("SHOW_SEND_BUTTON_TEXT")&&t("span",{children:R("Skicka")})})]})]})]})};export{_ as default};
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessage.d.ts","sourceRoot":"","sources":["../../../src/components/ChatMessage.tsx"],"names":[],"mappings":"AAoBA,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAgDD,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAyD3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ChatMessage.d.ts","sourceRoot":"","sources":["../../../src/components/ChatMessage.tsx"],"names":[],"mappings":"AAoBA,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAgDD,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0F3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import"react";import"../services/codicent.js";import o from"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./Header.js";import r from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as i}from"../config/index.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import n from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as a}from"../node_modules/@griffel/react/makeStyles.esm.js";import{mergeClasses as p}from"../node_modules/@griffel/core/mergeClasses.esm.js";import{tokens as m}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Text as l}from"../node_modules/@fluentui/react-text/lib/components/Text/Text.js";import{ChannelRegular as d}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js";const c=a({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"}}),u=({sender:a,content:u,isNew:g,children:j,showSuggestions:f,onSuggestionClicked:_})=>{const h=c(),{t:x}=n();let b=[];if("bot"===a&&u.includes("#suggested_questions")){const e=u.split("#suggested_questions");u=e[0],b=e[1].split("\n").filter((e=>""!==e.trim())).map((e=>e.trim()))}const C=new r(u);let w=C.content;"user"===a&&C.content.includes("---")&&(w=C.content.split("---")[0]);const T=C.content.startsWith("Error code: ")?x("Ett fel uppstod 😟 => starta en ny chatt"):null;return e("div",{className:p(h.message,"user"===a?h.user:h.bot),children:t("div",{className:p(h.messageContent,"user"===a?h.userMessage:h.botMessage,g&&h.newMessage),style:{backgroundColor:"user"===a?i("CHAT_USER_BACKGROUND_COLOR")||m.colorBrandBackground:i("CHAT_BOT_BACKGROUND_COLOR")||m.colorBrandBackground2,color:"user"===a?i("CHAT_USER_TEXT_COLOR")||m.colorNeutralForegroundInverted:i("CHAT_BOT_TEXT_COLOR")||m.colorNeutralForeground1},children:[t(l,{size:400,children:[T,!T&&e(o,{content:w}),C.files.length>0&&e(d,{}),f&&b&&b.length>0&&e("div",{style:{marginTop:"8px",display:"flex",gap:"8px",flexWrap:"wrap"},children:b.map(((t,o)=>e(s,{size:"small",shape:"circular",onClick:()=>_?.(t),style:{textAlign:"left"},children:t},o)))})]}),j]})})};export{u as default};
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import"react";import"../services/codicent.js";import o from"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./Header.js";import r from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as i}from"../config/index.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import n from"../hooks/useLocalization.js";import{makeStyles as a}from"../node_modules/@griffel/react/makeStyles.esm.js";import{mergeClasses as p}from"../node_modules/@griffel/core/mergeClasses.esm.js";import{tokens as m}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Text as l}from"../node_modules/@fluentui/react-text/lib/components/Text/Text.js";import{ChannelRegular as d}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js";const c=a({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"}}),u=({sender:a,content:u,isNew:g,children:j,showSuggestions:f,onSuggestionClicked:_})=>{const h=c(),{t:x}=n();let b=[];if("bot"===a&&u.includes("#suggested_questions")){const e=u.split("#suggested_questions");u=e[0],b=e[1].split("\n").filter((e=>""!==e.trim())).map((e=>e.trim()))}const C=new r(u);let w=C.content;"user"===a&&C.content.includes("---")&&(w=C.content.split("---")[0]);const T=C.content.startsWith("Error code: ")?x("Ett fel uppstod 😟 => starta en ny chatt"):null;return e("div",{className:p(h.message,"user"===a?h.user:h.bot),children:t("div",{className:p(h.messageContent,"user"===a?h.userMessage:h.botMessage,g&&h.newMessage),style:{backgroundColor:"user"===a?i("CHAT_USER_BACKGROUND_COLOR")||m.colorBrandBackground:i("CHAT_BOT_BACKGROUND_COLOR")||m.colorBrandBackground2,color:"user"===a?i("CHAT_USER_TEXT_COLOR")||m.colorNeutralForegroundInverted:i("CHAT_BOT_TEXT_COLOR")||m.colorNeutralForeground1},children:[t(l,{size:400,children:[T,!T&&e(o,{content:w}),C.files.length>0&&e(d,{}),f&&b&&b.length>0&&e("div",{style:{marginTop:"8px",display:"flex",gap:"8px",flexWrap:"wrap"},children:b.map(((t,o)=>e(s,{size:"small",shape:"circular",onClick:()=>_?.(t),style:{textAlign:"left"},children:t},o)))})]}),j]})})};export{u as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as o}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as i}from"./Textarea.js";import{Button as r}from"./Button.js";import{Text as t}from"./Text.js";import"./Spinner.js";import{Label as a}from"./Label.js";import"./TextHeader.js";import"./TypingIndicator.js";import{Dialog as s,DialogTitle as l,DialogContent as n,DialogActions as p}from"./Dialog.js";import"./ChatInput.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import m from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as c}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as d}from"../node_modules/@griffel/core/index.esm.js";import{tokens as j}from"../node_modules/@fluentui/tokens/lib/tokens.js";const g=c({container:{display:"flex",flexDirection:"column",...d.gap("12px")},section:{display:"flex",flexDirection:"column",...d.gap("8px")},field:{display:"flex",flexDirection:"column",...d.gap("4px")},fileItem:{display:"flex",alignItems:"center",...d.gap("8px")},label:{fontWeight:j.fontWeightSemibold},textarea:{minHeight:"100px",resize:"vertical"},dialogSurface:{backgroundColor:j.colorNeutralBackground1,boxShadow:j.shadow16},dialogBody:{backgroundColor:"transparent"}}),f=({open:c,templateVariables:d,filePlaceholders:j,onTemplateVariablesChange:f,onFilePlaceholdersChange:h,onConfirm:u,onCancel:x,uploadFile:v})=>{const b=g(),{t:y}=m();return e(s,{open:c,children:[o(l,{children:y("Fyll i information")}),o(n,{children:e("div",{className:b.container,children:[d.length>0&&o("div",{className:b.section,children:d.map(((r,t)=>e("div",{className:b.field,children:[o(a,{className:b.label,children:r.name}),o(i,{className:b.textarea,value:r.value,onChange:e=>{const o=[...d];o[t].value=e.target.value,f(o)}})]},t)))}),j.length>0&&o("div",{className:b.section,children:j.map(((i,a)=>e("div",{className:b.fileItem,children:[o(t,{weight:"semibold",children:i.description}),o(r,{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],r=new FormData;r.append("file",o);const t=await v(o.name,r),a=[...j];a[e].fileId=t,h(a)}})(a),children:i.fileId?y("Fil vald"):y("Välj fil")})]},a)))})]})}),e(p,{children:[o(r,{appearance:"secondary",onClick:x,children:y("Avbryt")}),o(r,{appearance:"primary",onClick:u,children:y("OK")})]})]})};export{f as CombinedPlaceholderDialog};
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as i}from"./Textarea.js";import{Button as r}from"./Button.js";import{Text as t}from"./Text.js";import"./Spinner.js";import{Label as a}from"./Label.js";import"./TextHeader.js";import"./TypingIndicator.js";import{Dialog as s,DialogTitle as l,DialogContent as n,DialogActions as p}from"./Dialog.js";import"./ChatInput.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import m from"../hooks/useLocalization.js";import{makeStyles as c}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as d}from"../node_modules/@griffel/core/index.esm.js";import{tokens as j}from"../node_modules/@fluentui/tokens/lib/tokens.js";const g=c({container:{display:"flex",flexDirection:"column",...d.gap("12px")},section:{display:"flex",flexDirection:"column",...d.gap("8px")},field:{display:"flex",flexDirection:"column",...d.gap("4px")},fileItem:{display:"flex",alignItems:"center",...d.gap("8px")},label:{fontWeight:j.fontWeightSemibold},textarea:{minHeight:"100px",resize:"vertical"},dialogSurface:{backgroundColor:j.colorNeutralBackground1,boxShadow:j.shadow16},dialogBody:{backgroundColor:"transparent"}}),f=({open:c,templateVariables:d,filePlaceholders:j,onTemplateVariablesChange:f,onFilePlaceholdersChange:h,onConfirm:u,onCancel:x,uploadFile:v})=>{const b=g(),{t:y}=m();return e(s,{open:c,children:[o(l,{children:y("Fyll i information")}),o(n,{children:e("div",{className:b.container,children:[d.length>0&&o("div",{className:b.section,children:d.map(((r,t)=>e("div",{className:b.field,children:[o(a,{className:b.label,children:r.name}),o(i,{className:b.textarea,value:r.value,onChange:e=>{const o=[...d];o[t].value=e.target.value,f(o)}})]},t)))}),j.length>0&&o("div",{className:b.section,children:j.map(((i,a)=>e("div",{className:b.fileItem,children:[o(t,{weight:"semibold",children:i.description}),o(r,{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],r=new FormData;r.append("file",o);const t=await v(o.name,r),a=[...j];a[e].fileId=t,h(a)}})(a),children:i.fileId?y("Fil vald"):y("Välj fil")})]},a)))})]})}),e(p,{children:[o(r,{appearance:"secondary",onClick:x,children:y("Avbryt")}),o(r,{appearance:"primary",onClick:u,children:y("OK")})]})]})};export{f as CombinedPlaceholderDialog};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useState as t,useEffect as s}from"react";import{useLocation as i,Link as n}from"react-router-dom";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.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 r}from"../config/index.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import a from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as l}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as c}from"../node_modules/@griffel/core/index.esm.js";import{tokens as m}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Home24Filled as p,Home24Regular as d}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-8.js";import{Chat24Filled as u,Chat24Regular as j}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js";import{AddSquare24Filled as h,AddSquare24Regular as g,Apps24Filled as _,Apps24Regular as f}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-0.js";import{ClipboardDay24Filled as T,ClipboardDay24Regular as b}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-4.js";import{SlideText24Filled as k,SlideText24Regular as x}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js";import{Whiteboard24Filled as O,Whiteboard24Regular as N}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-18.js";const v=l({footer:{...c.padding("14px"),backgroundColor:r("APP_FOOTER_COLOR")||m.colorBrandBackground,color:r("APP_FOOTER_TEXT_COLOR")||m.colorNeutralForegroundOnBrand,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:m.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...c.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none",color:r("APP_FOOTER_SELECTED_COLOR")||void 0},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"}}),C=()=>{const l=v(),c=i(),[m,C]=t(null),{t:I}=a();return s((()=>{const e=c.pathname;"/"===e?C("home"):"/chat"===e?C("chat"):"/new"===e?C("save"):"/menu"===e?C("menu"):"/log"===e?C("log"):"/canvas"===e?C("canvas"):"/snap"===e&&C("snap")}),[c]),s((()=>{m&&console.log(`footer-button: ${m}`)}),[m]),e("footer",{className:l.footer,children:o("div",{className:l.container,children:[o(n,{to:"/",className:`${l.link} ${"home"===m?"selected":""}`,onClick:()=>C("home"),children:[e("home"===m?p:d,{}),e("p",{className:l.buttonText,children:I("Hem")})]}),!r("HIDE_CHAT_BUTTON")&&o(n,{to:"/chat",className:`${l.link} ${"chat"===m?"selected":""}`,onClick:()=>C("chat"),children:[e("chat"===m?u:j,{}),e("p",{className:l.buttonText,children:I("Chatt")})]}),!r("HIDE_SAVE_BUTTON")&&o(n,{to:"/new",className:`${l.link} ${"save"===m?"selected":""}`,onClick:()=>C("save"),children:[e("save"===m?h:g,{}),e("p",{className:l.buttonText,children:I(r("APP_SAVE_TITLE")||"Spara")})]}),r("SHOW_SNAP_BUTTON")&&o(n,{to:"/snap",className:`${l.link} ${"snap"===m?"selected":""}`,onClick:()=>C("snap"),children:[e("snap"===m?T:b,{}),e("p",{className:l.buttonText,children:I("Snap")})]}),r("SHOW_LOGBOOK_BUTTON")&&o(n,{to:"/log",className:`${l.link} ${"log"===m?"selected":""}`,onClick:()=>C("log"),children:[e("log"===m?k:x,{}),e("p",{className:l.buttonText,children:I(r("APP_LOGBOOK_TITLE")||"Loggbok")})]}),r("SHOW_CANVAS_BUTTON")&&o(n,{to:"/canvas",className:`${l.link} ${"canvas"===m?"selected":""}`,onClick:()=>C("canvas"),children:[e("canvas"===m?O:N,{}),e("p",{className:l.buttonText,children:I("Kanvas")})]}),!r("HIDE_MENU_BUTTON")&&o(n,{to:"/menu",className:`${l.link} ${"menu"===m?"selected":""}`,onClick:()=>C("menu"),children:[e("menu"===m?_:f,{}),e("p",{className:l.buttonText,children:I("Meny")})]})]})})};export{C as Footer,C as default};
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useState as t,useEffect as s}from"react";import{useLocation as i,Link as n}from"react-router-dom";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.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 r}from"../config/index.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import a from"../hooks/useLocalization.js";import{makeStyles as l}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as c}from"../node_modules/@griffel/core/index.esm.js";import{tokens as m}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Home24Filled as p,Home24Regular as d}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-8.js";import{Chat24Filled as u,Chat24Regular as j}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js";import{AddSquare24Filled as h,AddSquare24Regular as g,Apps24Filled as _,Apps24Regular as f}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-0.js";import{ClipboardDay24Filled as T,ClipboardDay24Regular as b}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-4.js";import{SlideText24Filled as k,SlideText24Regular as x}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js";import{Whiteboard24Filled as O,Whiteboard24Regular as N}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-18.js";const v=l({footer:{...c.padding("14px"),backgroundColor:r("APP_FOOTER_COLOR")||m.colorBrandBackground,color:r("APP_FOOTER_TEXT_COLOR")||m.colorNeutralForegroundOnBrand,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:m.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...c.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none",color:r("APP_FOOTER_SELECTED_COLOR")||void 0},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"}}),C=()=>{const l=v(),c=i(),[m,C]=t(null),{t:I}=a();return s((()=>{const e=c.pathname;"/"===e?C("home"):"/chat"===e?C("chat"):"/new"===e?C("save"):"/menu"===e?C("menu"):"/log"===e?C("log"):"/canvas"===e?C("canvas"):"/snap"===e&&C("snap")}),[c]),s((()=>{m&&console.log(`footer-button: ${m}`)}),[m]),e("footer",{className:l.footer,children:o("div",{className:l.container,children:[o(n,{to:"/",className:`${l.link} ${"home"===m?"selected":""}`,onClick:()=>C("home"),children:[e("home"===m?p:d,{}),e("p",{className:l.buttonText,children:I("Hem")})]}),!r("HIDE_CHAT_BUTTON")&&o(n,{to:"/chat",className:`${l.link} ${"chat"===m?"selected":""}`,onClick:()=>C("chat"),children:[e("chat"===m?u:j,{}),e("p",{className:l.buttonText,children:I("Chatt")})]}),!r("HIDE_SAVE_BUTTON")&&o(n,{to:"/new",className:`${l.link} ${"save"===m?"selected":""}`,onClick:()=>C("save"),children:[e("save"===m?h:g,{}),e("p",{className:l.buttonText,children:I(r("APP_SAVE_TITLE")||"Spara")})]}),r("SHOW_SNAP_BUTTON")&&o(n,{to:"/snap",className:`${l.link} ${"snap"===m?"selected":""}`,onClick:()=>C("snap"),children:[e("snap"===m?T:b,{}),e("p",{className:l.buttonText,children:I("Snap")})]}),r("SHOW_LOGBOOK_BUTTON")&&o(n,{to:"/log",className:`${l.link} ${"log"===m?"selected":""}`,onClick:()=>C("log"),children:[e("log"===m?k:x,{}),e("p",{className:l.buttonText,children:I(r("APP_LOGBOOK_TITLE")||"Loggbok")})]}),r("SHOW_CANVAS_BUTTON")&&o(n,{to:"/canvas",className:`${l.link} ${"canvas"===m?"selected":""}`,onClick:()=>C("canvas"),children:[e("canvas"===m?O:N,{}),e("p",{className:l.buttonText,children:I("Kanvas")})]}),!r("HIDE_MENU_BUTTON")&&o(n,{to:"/menu",className:`${l.link} ${"menu"===m?"selected":""}`,onClick:()=>C("menu"),children:[e("menu"===m?_:f,{}),e("p",{className:l.buttonText,children:I("Meny")})]})]})})};export{C as Footer,C as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as o}from"react/jsx-runtime";import{Link as i}from"react-router-dom";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import t from"./VoiceIcon.js";import r 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 s}from"../config/index.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/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as m}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as a}from"../node_modules/@griffel/core/index.esm.js";import{tokens as p}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Image as n}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{Title3 as l}from"../node_modules/@fluentui/react-text/lib/components/presets/Title3/Title3.js";import{Settings24Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-13.js";const d=m({header:{...a.padding("14px"),backgroundColor:s("APP_HEADER_COLOR")||p.colorBrandBackground,color:s("APP_HEADER_TEXT_COLOR")||p.colorNeutralForegroundOnBrand,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"}}),j=({imageUrl:m,title:a,audio:p,voice:j})=>{const g=d();return e("header",{className:g.header,children:[e("div",{className:g.headerItem,children:[m&&o(n,{className:g.logo,alt:"Logo",src:m,height:40}),a&&o(l,{children:a})]}),e("div",{className:g.headerItem,children:[p&&s("SHOW_MICROPHONE_BUTTON")&&o(r,{audio:p,disabled:j?.isConnected}),j&&s("SHOW_VOICE_BUTTON")&&o(t,{voice:j,disabled:p?.isRecording}),s("SHOW_SETTINGS_BUTTON")&&o(i,{to:"/menu",className:g.link,children:o(c,{})})]})]})};export{j as Header};
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import{Link as i}from"react-router-dom";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.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 t}from"../config/index.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/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import r from"./VoiceIcon.js";import s 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{makeStyles as m}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as a}from"../node_modules/@griffel/core/index.esm.js";import{tokens as p}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Image as n}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{Title3 as l}from"../node_modules/@fluentui/react-text/lib/components/presets/Title3/Title3.js";import{Settings24Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-13.js";const d=m({header:{...a.padding("14px"),backgroundColor:t("APP_HEADER_COLOR")||p.colorBrandBackground,color:t("APP_HEADER_TEXT_COLOR")||p.colorNeutralForegroundOnBrand,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"}}),j=({imageUrl:m,title:a,audio:p,voice:j})=>{const g=d();return e("header",{className:g.header,children:[e("div",{className:g.headerItem,children:[m&&o(n,{className:g.logo,alt:"Logo",src:m,height:40}),a&&o(l,{children:a})]}),e("div",{className:g.headerItem,children:[p&&t("SHOW_MICROPHONE_BUTTON")&&o(s,{audio:p,disabled:j?.isConnected}),j&&t("SHOW_VOICE_BUTTON")&&o(r,{voice:j,disabled:p?.isRecording}),t("SHOW_SETTINGS_BUTTON")&&o(i,{to:"/menu",className:g.link,children:o(c,{})})]})]})};export{j as Header};
@@ -1 +1 @@
1
- import{jsxs as t,jsx as e}from"react/jsx-runtime";import{useRef as o,useState as r}from"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.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"../config/index.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"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import i from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as n}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Menu as s}from"../node_modules/@fluentui/react-menu/lib/components/Menu/Menu.js";import{MenuTrigger as a}from"../node_modules/@fluentui/react-menu/lib/components/MenuTrigger/MenuTrigger.js";import{Button as l}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{MoreHorizontal24Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";import{MenuPopover as m}from"../node_modules/@fluentui/react-menu/lib/components/MenuPopover/MenuPopover.js";import{MenuList as p}from"../node_modules/@fluentui/react-menu/lib/components/MenuList/MenuList.js";import{MenuItem as u}from"../node_modules/@fluentui/react-menu/lib/components/MenuItem/MenuItem.js";import{PrintRegular as d}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js";import{DismissRegular as h,CopyRegular as g}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js";const f=n({container:{position:"relative",width:"100%",height:"100%"},iframe:{position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:1e3,backgroundColor:"white",borderRadius:"0",border:"none",width:"100%",height:"100%",transformOrigin:"0 0"},iframe2:{position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:0,backgroundColor:"white",borderRadius:"0",border:"none",width:"100%",height:"100%",transformOrigin:"0 0"},menuButton:{position:"absolute",top:"10px",right:"10px",zIndex:1100}}),j=({html:n,onDismiss:j})=>{const b=o(null),w=o(null),[y,M]=r(1),v=f(),{t:x}=i();return t("div",{className:v.container,onTouchStart:t=>{if(2===t.touches.length){const e=t.touches[0],o=t.touches[1],r=Math.sqrt(Math.pow(o.clientX-e.clientX,2)+Math.pow(o.clientY-e.clientY,2));b.current?.setAttribute("data-initial-distance",r.toString()),b.current?.setAttribute("data-initial-scale",y.toString())}},onTouchMove:t=>{if(2===t.touches.length){const e=t.touches[0],o=t.touches[1],r=parseFloat(b.current?.getAttribute("data-initial-distance")||"0"),i=parseFloat(b.current?.getAttribute("data-initial-scale")||"1"),n=Math.sqrt(Math.pow(o.clientX-e.clientX,2)+Math.pow(o.clientY-e.clientY,2));if(r>0){const t=Math.min(Math.max(i*(n/r),.5),3);M(t),b.current&&(b.current.style.transform=`scale(${t})`),w.current&&(w.current.style.transform=`scale(${t})`)}}},onTouchEnd:()=>{b.current?.removeAttribute("data-initial-distance"),b.current?.removeAttribute("data-initial-scale")},children:[e("iframe",{ref:b,className:v.iframe,title:"html",srcDoc:n}),e("iframe",{ref:w,className:v.iframe2,title:"html",srcDoc:n})," ",t(s,{children:[e(a,{children:e(l,{icon:e(c,{}),className:v.menuButton})}),e(m,{children:t(p,{children:[e(u,{icon:e(h,{}),onClick:j,children:x("Stäng")}),e(u,{icon:e(d,{}),onClick:()=>{b.current&&b.current.contentWindow?.print()},children:x("Skriv ut")}),e(u,{icon:e(g,{}),onClick:async()=>{if(w.current)try{const t=w.current,e=t.contentWindow,o=t.contentDocument||e?.document;if(!o||!e)return;o.querySelectorAll("canvas").forEach((t=>{const e=o.createElement("img");e.src=t.toDataURL("image/png"),e.style.cssText=window.getComputedStyle(t).cssText,e.width=t.width,e.height=t.height,t.parentNode?.insertBefore(e,t),t.parentNode?.removeChild(t)}));let r="";Array.from(o.styleSheets).forEach((t=>{try{Array.from(t.cssRules||[]).forEach((t=>{r+=t.cssText+"\n"}))}catch(t){console.warn("Could not access stylesheet",t)}}));o.body.querySelectorAll("*").forEach((t=>{const o=e.getComputedStyle(t);let r="";if(["fontFamily","fontSize","fontWeight","color","backgroundColor","margin","padding","border","textAlign","lineHeight","letterSpacing","display","width","height"].forEach((t=>{o[t]&&"initial"!==o[t]&&"none"!==o[t]&&"normal"!==o[t]&&(r+=`${String(t)}:${o[t]};`)})),r){const e=t.getAttribute("style")||"";t.setAttribute("style",e+r)}}));const i=o.createElement("style");i.textContent=r,o.head.appendChild(i);const n=o.documentElement.outerHTML,s=o.body.innerText,a=document.createElement("div");a.innerHTML=n;const l=window.location.href;if(a.querySelectorAll("img").forEach((t=>{!t.src||t.src.startsWith("http")||t.src.startsWith("data:")||(t.src=new URL(t.src,l).href)})),navigator.clipboard&&window.ClipboardItem){const t=new Blob([a.outerHTML],{type:"text/html"}),e=new Blob([s],{type:"text/plain"}),o=new ClipboardItem({"text/html":t,"text/plain":e});await navigator.clipboard.write([o])}else{const t=e.getSelection();if(t){t.removeAllRanges();const e=o.createRange();e.selectNodeContents(o.body),t.addRange(e),o.execCommand("copy"),t.removeAllRanges()}}}catch(t){console.error("Copy failed:",t),navigator.clipboard.writeText(n)}},children:x("Kopiera")})]})})]})]})};export{j as default};
1
+ import{jsxs as t,jsx as e}from"react/jsx-runtime";import{useRef as o,useState as r}from"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.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"../config/index.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"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import i from"../hooks/useLocalization.js";import{makeStyles as n}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Menu as s}from"../node_modules/@fluentui/react-menu/lib/components/Menu/Menu.js";import{MenuTrigger as a}from"../node_modules/@fluentui/react-menu/lib/components/MenuTrigger/MenuTrigger.js";import{Button as l}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{MoreHorizontal24Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";import{MenuPopover as m}from"../node_modules/@fluentui/react-menu/lib/components/MenuPopover/MenuPopover.js";import{MenuList as p}from"../node_modules/@fluentui/react-menu/lib/components/MenuList/MenuList.js";import{MenuItem as u}from"../node_modules/@fluentui/react-menu/lib/components/MenuItem/MenuItem.js";import{PrintRegular as d}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js";import{DismissRegular as h,CopyRegular as g}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js";const f=n({container:{position:"relative",width:"100%",height:"100%"},iframe:{position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:1e3,backgroundColor:"white",borderRadius:"0",border:"none",width:"100%",height:"100%",transformOrigin:"0 0"},iframe2:{position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:0,backgroundColor:"white",borderRadius:"0",border:"none",width:"100%",height:"100%",transformOrigin:"0 0"},menuButton:{position:"absolute",top:"10px",right:"10px",zIndex:1100}}),j=({html:n,onDismiss:j})=>{const b=o(null),w=o(null),[y,M]=r(1),v=f(),{t:x}=i();return t("div",{className:v.container,onTouchStart:t=>{if(2===t.touches.length){const e=t.touches[0],o=t.touches[1],r=Math.sqrt(Math.pow(o.clientX-e.clientX,2)+Math.pow(o.clientY-e.clientY,2));b.current?.setAttribute("data-initial-distance",r.toString()),b.current?.setAttribute("data-initial-scale",y.toString())}},onTouchMove:t=>{if(2===t.touches.length){const e=t.touches[0],o=t.touches[1],r=parseFloat(b.current?.getAttribute("data-initial-distance")||"0"),i=parseFloat(b.current?.getAttribute("data-initial-scale")||"1"),n=Math.sqrt(Math.pow(o.clientX-e.clientX,2)+Math.pow(o.clientY-e.clientY,2));if(r>0){const t=Math.min(Math.max(i*(n/r),.5),3);M(t),b.current&&(b.current.style.transform=`scale(${t})`),w.current&&(w.current.style.transform=`scale(${t})`)}}},onTouchEnd:()=>{b.current?.removeAttribute("data-initial-distance"),b.current?.removeAttribute("data-initial-scale")},children:[e("iframe",{ref:b,className:v.iframe,title:"html",srcDoc:n}),e("iframe",{ref:w,className:v.iframe2,title:"html",srcDoc:n})," ",t(s,{children:[e(a,{children:e(l,{icon:e(c,{}),className:v.menuButton})}),e(m,{children:t(p,{children:[e(u,{icon:e(h,{}),onClick:j,children:x("Stäng")}),e(u,{icon:e(d,{}),onClick:()=>{b.current&&b.current.contentWindow?.print()},children:x("Skriv ut")}),e(u,{icon:e(g,{}),onClick:async()=>{if(w.current)try{const t=w.current,e=t.contentWindow,o=t.contentDocument||e?.document;if(!o||!e)return;o.querySelectorAll("canvas").forEach((t=>{const e=o.createElement("img");e.src=t.toDataURL("image/png"),e.style.cssText=window.getComputedStyle(t).cssText,e.width=t.width,e.height=t.height,t.parentNode?.insertBefore(e,t),t.parentNode?.removeChild(t)}));let r="";Array.from(o.styleSheets).forEach((t=>{try{Array.from(t.cssRules||[]).forEach((t=>{r+=t.cssText+"\n"}))}catch(t){console.warn("Could not access stylesheet",t)}}));o.body.querySelectorAll("*").forEach((t=>{const o=e.getComputedStyle(t);let r="";if(["fontFamily","fontSize","fontWeight","color","backgroundColor","margin","padding","border","textAlign","lineHeight","letterSpacing","display","width","height"].forEach((t=>{o[t]&&"initial"!==o[t]&&"none"!==o[t]&&"normal"!==o[t]&&(r+=`${String(t)}:${o[t]};`)})),r){const e=t.getAttribute("style")||"";t.setAttribute("style",e+r)}}));const i=o.createElement("style");i.textContent=r,o.head.appendChild(i);const n=o.documentElement.outerHTML,s=o.body.innerText,a=document.createElement("div");a.innerHTML=n;const l=window.location.href;if(a.querySelectorAll("img").forEach((t=>{!t.src||t.src.startsWith("http")||t.src.startsWith("data:")||(t.src=new URL(t.src,l).href)})),navigator.clipboard&&window.ClipboardItem){const t=new Blob([a.outerHTML],{type:"text/html"}),e=new Blob([s],{type:"text/plain"}),o=new ClipboardItem({"text/html":t,"text/plain":e});await navigator.clipboard.write([o])}else{const t=e.getSelection();if(t){t.removeAllRanges();const e=o.createRange();e.selectNodeContents(o.body),t.addRange(e),o.execCommand("copy"),t.removeAllRanges()}}}catch(t){console.error("Copy failed:",t),navigator.clipboard.writeText(n)}},children:x("Kopiera")})]})})]})]})};export{j as default};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as o,useEffect as a}from"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as r}from"./Textarea.js";import{Button as i}from"./Button.js";import{Spinner as s}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 l from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as n}from"../config/index.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 as p}from"./FileThumbnail.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import m from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import c from"../hooks/useToaster.js";import{makeStyles as d}from"../node_modules/@griffel/react/makeStyles.esm.js";import{tokens as g}from"../node_modules/@fluentui/tokens/lib/tokens.js";const f=d({container:{display:"flex",padding:"8px",width:"100%",position:"relative"},textareaWrapper:{position:"relative",flexGrow:1,display:"flex",flexDirection:"column",maxWidth:"100%"},textarea:{width:"100%",paddingBottom:"40px"},actionButtonRow:{position:"absolute",left:"8px",bottom:"8px",right:"8px",zIndex:1,display:"flex",justifyContent:"space-between"},leftButtonGroup:{display:"flex",gap:"4px"},actionButton:{color:g.colorNeutralForeground2,"&:hover":{color:g.colorBrandBackground,backgroundColor:"transparent"}},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px",margin:"0 -4px",maxWidth:"100%",boxSizing:"border-box","&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:g.colorNeutralStroke1,borderRadius:"3px"}}}),u=({defaultText:d,onSend:g,onLocationChange:u,hasLocation:j,files:h=[],onFilesChange:v,onUploadFile:b,onUploadImage:x,onUploadCamera:y,getImageUrl:k,isUploading:w,rows:S,size:C,disableSend:T,placeholder:_,onChange:B,onImagePasted:D,onHandleDefaultFiles:N})=>{const[F,I]=o(""),[z,A]=o([]),L=f(),U=c(),{t:W}=m();a((()=>{B?.(F)}),[F,B]),a((()=>{const e=new l(d||"");I(e.content||""),A(e.tags||[]),e.files.length>0&&N?.(e.files)}),[d]);const E=async()=>{if(""===F.trim()&&0===h.length)return void U.notify(W("Meddelandet får inte vara tomt"),"","","error");const e=z.length>0?`#${z.join(" #")} `:"#log ";g(e+F),I("");const t=new l(d||"");A(t.tags||[]),v?.([])};return e("div",{className:L.container,onDrop:async e=>{if(e.preventDefault(),!v)return;const t=Array.from(e.dataTransfer.files);if(t.length>0)if(D&&t.every((e=>e.type&&e.type.startsWith("image/"))))for(const e of t)D(e);else v(t)},onDragOver:e=>{e.preventDefault()},children:t("div",{className:L.textareaWrapper,children:[k&&h.length>0&&t("div",{className:L.fileList,children:[h.map((t=>e(p,{file:t,getImageUrl:k,onDelete:()=>{return e=t.id,void v?.(h.filter((t=>t.id!==e)));var e}},t.id))),w&&e(s,{})]}),e(r,{size:"large",resize:"vertical",rows:S||7,value:F,onChange:e=>I(e.target.value),placeholder:_||W("Skriv vad du vill spara här..."),onKeyDown:e=>{!0!==T?"Enter"!==e.key||e.shiftKey||(e.preventDefault(),E()):"Enter"===e.key&&e.ctrlKey&&(e.preventDefault(),E())},onPaste:e=>{if(!v&&!D)return;const t=e.clipboardData.items;for(const o of t)if("file"===o.kind){const t=o.getAsFile();t&&(D&&t.type.startsWith("image/")?(e.preventDefault(),D(t)):v&&(e.preventDefault(),v([t])))}},className:L.textarea}),t("div",{className:L.actionButtonRow,children:[t("div",{className:L.leftButtonGroup,children:[b&&e(i,{appearance:"transparent",icon:x?"AttachRegular":"AddRegular",size:"small",title:W("Lägg till fil"),onClick:b,className:L.actionButton}),x&&e(i,{appearance:"transparent",icon:"ImageRegular",size:"small",title:W("Lägg till bild"),onClick:x,className:L.actionButton}),y&&e(i,{appearance:"transparent",icon:"CameraRegular",size:"small",title:W("Ta kort"),onClick:y,className:L.actionButton}),u&&e(i,{appearance:"transparent",icon:j?"LocationFilled":"LocationRegular",size:"small",title:W("Spara plats"),onClick:()=>u(!j),className:L.actionButton})]}),e(i,{appearance:n("SHOW_SAVE_BUTTON_TEXT")?"primary":"subtle",onClick:E,icon:"SendFilled",iconPosition:"before",title:W("Spara"),size:C||(n("SHOW_SAVE_BUTTON_TEXT")?"small":"large"),children:n("SHOW_SAVE_BUTTON_TEXT")&&e("span",{children:W("Spara")})})]})]})})};export{u as default};
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as o,useEffect as a}from"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as r}from"./Textarea.js";import{Button as i}from"./Button.js";import{Spinner as s}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 l from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as n}from"../config/index.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 as p}from"./FileThumbnail.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"../pages/AppFrame.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import m from"../hooks/useToaster.js";import c from"../hooks/useLocalization.js";import{makeStyles as d}from"../node_modules/@griffel/react/makeStyles.esm.js";import{tokens as g}from"../node_modules/@fluentui/tokens/lib/tokens.js";const f=d({container:{display:"flex",padding:"8px",width:"100%",position:"relative"},textareaWrapper:{position:"relative",flexGrow:1,display:"flex",flexDirection:"column",maxWidth:"100%"},textarea:{width:"100%",paddingBottom:"40px"},actionButtonRow:{position:"absolute",left:"8px",bottom:"8px",right:"8px",zIndex:1,display:"flex",justifyContent:"space-between"},leftButtonGroup:{display:"flex",gap:"4px"},actionButton:{color:g.colorNeutralForeground2,"&:hover":{color:g.colorBrandBackground,backgroundColor:"transparent"}},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px",margin:"0 -4px",maxWidth:"100%",boxSizing:"border-box","&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:g.colorNeutralStroke1,borderRadius:"3px"}}}),u=({defaultText:d,onSend:g,onLocationChange:u,hasLocation:j,files:h=[],onFilesChange:v,onUploadFile:b,onUploadImage:x,onUploadCamera:y,getImageUrl:k,isUploading:w,rows:S,size:C,disableSend:T,placeholder:_,onChange:B,onImagePasted:D,onHandleDefaultFiles:N})=>{const[F,I]=o(""),[z,A]=o([]),L=f(),U=m(),{t:W}=c();a((()=>{B?.(F)}),[F,B]),a((()=>{const e=new l(d||"");I(e.content||""),A(e.tags||[]),e.files.length>0&&N?.(e.files)}),[d]);const E=async()=>{if(""===F.trim()&&0===h.length)return void U.notify(W("Meddelandet får inte vara tomt"),"","","error");const e=z.length>0?`#${z.join(" #")} `:"#log ";g(e+F),I("");const t=new l(d||"");A(t.tags||[]),v?.([])};return e("div",{className:L.container,onDrop:async e=>{if(e.preventDefault(),!v)return;const t=Array.from(e.dataTransfer.files);if(t.length>0)if(D&&t.every((e=>e.type&&e.type.startsWith("image/"))))for(const e of t)D(e);else v(t)},onDragOver:e=>{e.preventDefault()},children:t("div",{className:L.textareaWrapper,children:[k&&h.length>0&&t("div",{className:L.fileList,children:[h.map((t=>e(p,{file:t,getImageUrl:k,onDelete:()=>{return e=t.id,void v?.(h.filter((t=>t.id!==e)));var e}},t.id))),w&&e(s,{})]}),e(r,{size:"large",resize:"vertical",rows:S||7,value:F,onChange:e=>I(e.target.value),placeholder:_||W("Skriv vad du vill spara här..."),onKeyDown:e=>{!0!==T?"Enter"!==e.key||e.shiftKey||(e.preventDefault(),E()):"Enter"===e.key&&e.ctrlKey&&(e.preventDefault(),E())},onPaste:e=>{if(!v&&!D)return;const t=e.clipboardData.items;for(const o of t)if("file"===o.kind){const t=o.getAsFile();t&&(D&&t.type.startsWith("image/")?(e.preventDefault(),D(t)):v&&(e.preventDefault(),v([t])))}},className:L.textarea}),t("div",{className:L.actionButtonRow,children:[t("div",{className:L.leftButtonGroup,children:[b&&e(i,{appearance:"transparent",icon:x?"AttachRegular":"AddRegular",size:"small",title:W("Lägg till fil"),onClick:b,className:L.actionButton}),x&&e(i,{appearance:"transparent",icon:"ImageRegular",size:"small",title:W("Lägg till bild"),onClick:x,className:L.actionButton}),y&&e(i,{appearance:"transparent",icon:"CameraRegular",size:"small",title:W("Ta kort"),onClick:y,className:L.actionButton}),u&&e(i,{appearance:"transparent",icon:j?"LocationFilled":"LocationRegular",size:"small",title:W("Spara plats"),onClick:()=>u(!j),className:L.actionButton})]}),e(i,{appearance:n("SHOW_SAVE_BUTTON_TEXT")?"primary":"subtle",onClick:E,icon:"SendFilled",iconPosition:"before",title:W("Spara"),size:C||(n("SHOW_SAVE_BUTTON_TEXT")?"small":"large"),children:n("SHOW_SAVE_BUTTON_TEXT")&&e("span",{children:W("Spara")})})]})]})})};export{u as default};