codicent-app-sdk 0.4.0 → 0.4.2

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