codicent-app-sdk 0.5.7 → 0.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/AiInput.js +1 -1
- package/dist/cjs/components/AudioIcon.js +1 -1
- package/dist/cjs/components/ChatInput.js +1 -1
- package/dist/cjs/components/ChatMessage.js +1 -1
- package/dist/cjs/components/CombinedPlaceholderDialog.js +1 -1
- package/dist/cjs/components/Footer.js +1 -1
- package/dist/cjs/components/Header.js +1 -1
- package/dist/cjs/components/HtmlView.js +1 -1
- package/dist/cjs/components/MessageInput.js +1 -1
- package/dist/cjs/components/MessageItem.js +1 -1
- package/dist/cjs/components/Profile.js +1 -1
- package/dist/cjs/components/Prompt.js +1 -1
- package/dist/cjs/components/SnapFooter.js +1 -1
- package/dist/cjs/components/TextHeader.js +1 -1
- package/dist/cjs/components/TypingIndicator.js +1 -1
- package/dist/cjs/components/UploadFile.js +1 -1
- package/dist/cjs/components/UrlProcessor.js +1 -1
- package/dist/cjs/components/VoiceIcon.js +1 -1
- package/dist/cjs/components/audit/AuditAnswerCell.d.ts +15 -0
- package/dist/cjs/components/audit/AuditAnswerCell.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditAnswerCell.js +1 -0
- package/dist/cjs/components/audit/AuditBulkExportDialog.d.ts +16 -0
- package/dist/cjs/components/audit/AuditBulkExportDialog.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditBulkExportDialog.js +1 -0
- package/dist/cjs/components/audit/AuditBulkUploadDialog.d.ts +15 -0
- package/dist/cjs/components/audit/AuditBulkUploadDialog.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditBulkUploadDialog.js +1 -0
- package/dist/cjs/components/audit/AuditCircularProgress.d.ts +15 -0
- package/dist/cjs/components/audit/AuditCircularProgress.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditCircularProgress.js +1 -0
- package/dist/cjs/components/audit/AuditFilterBar.d.ts +15 -0
- package/dist/cjs/components/audit/AuditFilterBar.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditFilterBar.js +1 -0
- package/dist/cjs/components/audit/AuditFilterChips.d.ts +17 -0
- package/dist/cjs/components/audit/AuditFilterChips.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditFilterChips.js +1 -0
- package/dist/cjs/components/audit/AuditGroupsProgress.d.ts +12 -0
- package/dist/cjs/components/audit/AuditGroupsProgress.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditGroupsProgress.js +1 -0
- package/dist/cjs/components/audit/AuditHorizontalProgress.d.ts +16 -0
- package/dist/cjs/components/audit/AuditHorizontalProgress.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditHorizontalProgress.js +1 -0
- package/dist/cjs/components/audit/AuditRequirementDialog.d.ts +16 -0
- package/dist/cjs/components/audit/AuditRequirementDialog.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditRequirementDialog.js +1 -0
- package/dist/cjs/components/audit/AuditRoleIndicator.d.ts +13 -0
- package/dist/cjs/components/audit/AuditRoleIndicator.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditRoleIndicator.js +1 -0
- package/dist/cjs/components/audit/AuditSearchBar.d.ts +13 -0
- package/dist/cjs/components/audit/AuditSearchBar.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditSearchBar.js +1 -0
- package/dist/cjs/components/audit/AuditSortPresets.d.ts +12 -0
- package/dist/cjs/components/audit/AuditSortPresets.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditSortPresets.js +1 -0
- package/dist/cjs/components/audit/AuditSummaryDashboard.d.ts +13 -0
- package/dist/cjs/components/audit/AuditSummaryDashboard.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditSummaryDashboard.js +1 -0
- package/dist/cjs/components/audit/AuditUnitExportDialog.d.ts +18 -0
- package/dist/cjs/components/audit/AuditUnitExportDialog.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditUnitExportDialog.js +1 -0
- package/dist/cjs/components/audit/AuditUnitImportDialog.d.ts +13 -0
- package/dist/cjs/components/audit/AuditUnitImportDialog.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditUnitImportDialog.js +1 -0
- package/dist/cjs/components/audit/AuditUnitSwitcher.d.ts +20 -0
- package/dist/cjs/components/audit/AuditUnitSwitcher.d.ts.map +1 -0
- package/dist/cjs/components/audit/AuditUnitSwitcher.js +1 -0
- package/dist/cjs/components/audit/index.d.ts +20 -0
- package/dist/cjs/components/audit/index.d.ts.map +1 -0
- package/dist/cjs/components/index.d.ts +1 -0
- package/dist/cjs/components/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.d.ts +12 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/useAuditFilters.d.ts +17 -0
- package/dist/cjs/hooks/useAuditFilters.d.ts.map +1 -0
- package/dist/cjs/hooks/useAuditFilters.js +1 -0
- package/dist/cjs/hooks/useAuditManagerData.d.ts +25 -0
- package/dist/cjs/hooks/useAuditManagerData.d.ts.map +1 -0
- package/dist/cjs/hooks/useAuditManagerData.js +1 -0
- package/dist/cjs/hooks/useAuditManagerFilters.d.ts +16 -0
- package/dist/cjs/hooks/useAuditManagerFilters.d.ts.map +1 -0
- package/dist/cjs/hooks/useAuditManagerFilters.js +1 -0
- package/dist/cjs/hooks/useAuditRequirementsFilters.d.ts +17 -0
- package/dist/cjs/hooks/useAuditRequirementsFilters.d.ts.map +1 -0
- package/dist/cjs/hooks/useAuditRequirementsFilters.js +1 -0
- package/dist/cjs/hooks/useAuditRoleCheck.d.ts +26 -0
- package/dist/cjs/hooks/useAuditRoleCheck.d.ts.map +1 -0
- package/dist/cjs/hooks/useAuditRoleCheck.js +1 -0
- package/dist/cjs/hooks/useAuditState.d.ts +34 -0
- package/dist/cjs/hooks/useAuditState.d.ts.map +1 -0
- package/dist/cjs/hooks/useAuditState.js +1 -0
- package/dist/cjs/hooks/useAuthState.js +1 -1
- package/dist/cjs/hooks/useCodicentState.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/pages/AppFrame.js +1 -1
- package/dist/cjs/pages/Chat.js +1 -1
- package/dist/cjs/pages/Compose.js +1 -1
- package/dist/cjs/pages/CrmPage.js +1 -1
- package/dist/cjs/pages/CrmPagePersistent.js +1 -1
- package/dist/cjs/pages/FormAccept.js +1 -1
- package/dist/cjs/pages/FormInvite.js +1 -1
- package/dist/cjs/pages/Home.js +1 -1
- package/dist/cjs/pages/HtmlViewer.js +1 -1
- package/dist/cjs/pages/ListPage.js +1 -1
- package/dist/cjs/pages/Login.js +1 -1
- package/dist/cjs/pages/Menu.js +1 -1
- package/dist/cjs/pages/Purchase.js +1 -1
- package/dist/cjs/pages/Sales.js +1 -1
- package/dist/cjs/pages/Search.js +1 -1
- package/dist/cjs/pages/Snap.js +1 -1
- package/dist/cjs/types/audit.d.ts +358 -0
- package/dist/cjs/types/audit.d.ts.map +1 -0
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/utils/auditExport.d.ts +37 -0
- package/dist/cjs/utils/auditExport.d.ts.map +1 -0
- package/dist/cjs/utils/auditExport.js +1 -0
- package/dist/cjs/utils/auditUtils.d.ts +59 -0
- package/dist/cjs/utils/auditUtils.d.ts.map +1 -0
- package/dist/cjs/utils/auditUtils.js +1 -0
- package/dist/cjs/utils/index.d.ts +2 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/esm/components/AiInput.js +1 -1
- package/dist/esm/components/AudioIcon.js +1 -1
- package/dist/esm/components/ChatInput.js +1 -1
- package/dist/esm/components/ChatMessage.js +1 -1
- package/dist/esm/components/CombinedPlaceholderDialog.js +1 -1
- package/dist/esm/components/Footer.js +1 -1
- package/dist/esm/components/Header.js +1 -1
- package/dist/esm/components/HtmlView.js +1 -1
- package/dist/esm/components/MessageInput.js +1 -1
- package/dist/esm/components/MessageItem.js +1 -1
- package/dist/esm/components/Profile.js +1 -1
- package/dist/esm/components/Prompt.js +1 -1
- package/dist/esm/components/SnapFooter.js +1 -1
- package/dist/esm/components/TextHeader.js +1 -1
- package/dist/esm/components/TypingIndicator.js +1 -1
- package/dist/esm/components/UploadFile.js +1 -1
- package/dist/esm/components/UrlProcessor.js +1 -1
- package/dist/esm/components/VoiceIcon.js +1 -1
- package/dist/esm/components/audit/AuditAnswerCell.d.ts +15 -0
- package/dist/esm/components/audit/AuditAnswerCell.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditAnswerCell.js +1 -0
- package/dist/esm/components/audit/AuditBulkExportDialog.d.ts +16 -0
- package/dist/esm/components/audit/AuditBulkExportDialog.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditBulkExportDialog.js +1 -0
- package/dist/esm/components/audit/AuditBulkUploadDialog.d.ts +15 -0
- package/dist/esm/components/audit/AuditBulkUploadDialog.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditBulkUploadDialog.js +1 -0
- package/dist/esm/components/audit/AuditCircularProgress.d.ts +15 -0
- package/dist/esm/components/audit/AuditCircularProgress.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditCircularProgress.js +1 -0
- package/dist/esm/components/audit/AuditFilterBar.d.ts +15 -0
- package/dist/esm/components/audit/AuditFilterBar.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditFilterBar.js +1 -0
- package/dist/esm/components/audit/AuditFilterChips.d.ts +17 -0
- package/dist/esm/components/audit/AuditFilterChips.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditFilterChips.js +1 -0
- package/dist/esm/components/audit/AuditGroupsProgress.d.ts +12 -0
- package/dist/esm/components/audit/AuditGroupsProgress.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditGroupsProgress.js +1 -0
- package/dist/esm/components/audit/AuditHorizontalProgress.d.ts +16 -0
- package/dist/esm/components/audit/AuditHorizontalProgress.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditHorizontalProgress.js +1 -0
- package/dist/esm/components/audit/AuditRequirementDialog.d.ts +16 -0
- package/dist/esm/components/audit/AuditRequirementDialog.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditRequirementDialog.js +1 -0
- package/dist/esm/components/audit/AuditRoleIndicator.d.ts +13 -0
- package/dist/esm/components/audit/AuditRoleIndicator.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditRoleIndicator.js +1 -0
- package/dist/esm/components/audit/AuditSearchBar.d.ts +13 -0
- package/dist/esm/components/audit/AuditSearchBar.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditSearchBar.js +1 -0
- package/dist/esm/components/audit/AuditSortPresets.d.ts +12 -0
- package/dist/esm/components/audit/AuditSortPresets.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditSortPresets.js +1 -0
- package/dist/esm/components/audit/AuditSummaryDashboard.d.ts +13 -0
- package/dist/esm/components/audit/AuditSummaryDashboard.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditSummaryDashboard.js +1 -0
- package/dist/esm/components/audit/AuditUnitExportDialog.d.ts +18 -0
- package/dist/esm/components/audit/AuditUnitExportDialog.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditUnitExportDialog.js +1 -0
- package/dist/esm/components/audit/AuditUnitImportDialog.d.ts +13 -0
- package/dist/esm/components/audit/AuditUnitImportDialog.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditUnitImportDialog.js +1 -0
- package/dist/esm/components/audit/AuditUnitSwitcher.d.ts +20 -0
- package/dist/esm/components/audit/AuditUnitSwitcher.d.ts.map +1 -0
- package/dist/esm/components/audit/AuditUnitSwitcher.js +1 -0
- package/dist/esm/components/audit/index.d.ts +20 -0
- package/dist/esm/components/audit/index.d.ts.map +1 -0
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.d.ts +12 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/useAuditFilters.d.ts +17 -0
- package/dist/esm/hooks/useAuditFilters.d.ts.map +1 -0
- package/dist/esm/hooks/useAuditFilters.js +1 -0
- package/dist/esm/hooks/useAuditManagerData.d.ts +25 -0
- package/dist/esm/hooks/useAuditManagerData.d.ts.map +1 -0
- package/dist/esm/hooks/useAuditManagerData.js +1 -0
- package/dist/esm/hooks/useAuditManagerFilters.d.ts +16 -0
- package/dist/esm/hooks/useAuditManagerFilters.d.ts.map +1 -0
- package/dist/esm/hooks/useAuditManagerFilters.js +1 -0
- package/dist/esm/hooks/useAuditRequirementsFilters.d.ts +17 -0
- package/dist/esm/hooks/useAuditRequirementsFilters.d.ts.map +1 -0
- package/dist/esm/hooks/useAuditRequirementsFilters.js +1 -0
- package/dist/esm/hooks/useAuditRoleCheck.d.ts +26 -0
- package/dist/esm/hooks/useAuditRoleCheck.d.ts.map +1 -0
- package/dist/esm/hooks/useAuditRoleCheck.js +1 -0
- package/dist/esm/hooks/useAuditState.d.ts +34 -0
- package/dist/esm/hooks/useAuditState.d.ts.map +1 -0
- package/dist/esm/hooks/useAuditState.js +1 -0
- package/dist/esm/hooks/useAuthState.js +1 -1
- package/dist/esm/hooks/useCodicentState.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/pages/AppFrame.js +1 -1
- package/dist/esm/pages/Chat.js +1 -1
- package/dist/esm/pages/Compose.js +1 -1
- package/dist/esm/pages/CrmPage.js +1 -1
- package/dist/esm/pages/CrmPagePersistent.js +1 -1
- package/dist/esm/pages/FormAccept.js +1 -1
- package/dist/esm/pages/FormInvite.js +1 -1
- package/dist/esm/pages/Home.js +1 -1
- package/dist/esm/pages/HtmlViewer.js +1 -1
- package/dist/esm/pages/ListPage.js +1 -1
- package/dist/esm/pages/Login.js +1 -1
- package/dist/esm/pages/Menu.js +1 -1
- package/dist/esm/pages/Purchase.js +1 -1
- package/dist/esm/pages/Sales.js +1 -1
- package/dist/esm/pages/Search.js +1 -1
- package/dist/esm/pages/Snap.js +1 -1
- package/dist/esm/types/audit.d.ts +358 -0
- package/dist/esm/types/audit.d.ts.map +1 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/utils/auditExport.d.ts +37 -0
- package/dist/esm/utils/auditExport.d.ts.map +1 -0
- package/dist/esm/utils/auditExport.js +1 -0
- package/dist/esm/utils/auditUtils.d.ts +59 -0
- package/dist/esm/utils/auditUtils.d.ts.map +1 -0
- package/dist/esm/utils/auditUtils.js +1 -0
- package/dist/esm/utils/index.d.ts +2 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/index.d.ts +799 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as t,Fragment as
|
|
1
|
+
import{jsx as o,jsxs as t,Fragment as i}from"react/jsx-runtime";import e from"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{Title as r}from"../components/Title.js";import{Text as s}from"../components/Text.js";import"../components/Spinner.js";import{makeStyles as n,Button as m}from"@fluentui/react-components";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import{useState as p,useEffect as a}from"react";import"@fluentui/react-icons";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as c}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import{formatGuidToShorterReadableCode as d}from"../utils/helpers.js";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./Sales.js";import{useSearchParams as l,useNavigate as j}from"react-router-dom";import"./Purchase.js";import u from"../components/Content.js";import{Page as g}from"../components/Page.js";import"./QrScan.js";import h from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const f=n({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"}}),A=()=>{const{t:n,tAsync:A}=h(),[C]=l(),k=j(),S=C.get("id"),P=f(),[M,b]=p(""),[v,D]=p(!1);return a((()=>{(async()=>{const o=c("FORM_ACCEPT_MARKDOWN");if(o){D(!0);const t=await A(o);D(!1),b(t.replace("{{code}}",d(S||"")))}})()}),[A,S]),o(g,{hideFooter:!0,hideHeader:!0,children:o("div",{className:P.container,style:{backgroundImage:`url(${c("FORM_BACKGROUND_IMAGE_URL")})`},children:t(u,{children:[v&&o(s,{children:n("Översätter...")}),c("FORM_ACCEPT_MARKDOWN")&&M&&!v&&o(e,{content:M}),!c("FORM_ACCEPT_MARKDOWN")&&t(i,{children:[o(r,{children:n("Din kod för formuläret")}),o("p",{className:P.instructionParagraph,children:n("Instruktioner:")}),t("ol",{className:P.orderedList,children:[o("li",{children:n("Skriv ner eller kopiera den kod som visas nedan, du behöver den för att identifiera din session.")}),o("li",{children:n("Klicka på 'Starta' för att komma igång med chatten.")})]}),o(s,{size:500,children:n("Din kod är (skriv ner den):")}),o(s,{size:600,style:{userSelect:"all"},children:d(S||"")})]}),S&&o(m,{appearance:"primary",onClick:()=>k(`/chat?fid=${S}`),children:n("Starta")})]})})})};export{A as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as
|
|
1
|
+
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useState as n,useEffect as i}from"react";import{makeStyles as r,useId as a,Dropdown as s,Option as m}from"@fluentui/react-components";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as p}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as l}from"../components/Title.js";import"../components/Spinner.js";import{Label as c}from"../components/Label.js";import{Input as d}from"../components/Input.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import u from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as j}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import{formatGuidToShorterReadableCode as g}from"../utils/helpers.js";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormAccept.js";import"./Sales.js";import"react-router-dom";import"./Purchase.js";import h from"../components/Content.js";import{Page as k}from"../components/Page.js";import"./QrScan.js";import f from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const v=r({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"}}),A=({state:r})=>{const A=v(),{service:w}=r,{t:b}=f(),[C,S]=u(r.context.selectedApp+"_forms",[]),[x,P]=n(),[y,D]=n(),[B,L]=n(!1),[$,M]=n(),I=a("form-dropdown");i((()=>{w.getForms().then((o=>{o.sort(((o,t)=>o.name.localeCompare(t.name))),S(o)}))}),[w,b,S]);const _=void 0!==navigator.share;return o(k,{children:o("div",{className:A.container,style:{backgroundImage:`url(${j("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:t(h,{children:[o(l,{children:b("Skapa länk till formulär")}),o("p",{className:A.instructionParagraph,children:b("Instruktioner")}),t("ol",{className:A.orderedList,children:[o("li",{children:b("Välj ett formulär från rullgardinsmenyn nedan. Detta formulär kommer att användas för den genererade länken.")}),o("li",{children:b("Klicka på 'Skapa länk' för att generera en unik länk. Länken visar var aktiv och kan användas för att svara på formuläret.")}),o("li",{children:b("När länken visas, kan du klicka på kopiera-ikonen för att kopiera länken till ditt urklipp.")}),o("li",{children:b("Om din enhet stödjer det, kan du även använda dela-knappen för att dela länken direkt.")}),o("li",{children:b("Kom ihåg att spara (skriva ner) koden")})]}),o("label",{id:I,className:A.instructionParagraph,children:b("Välj formulär")}),o(s,{"aria-labelledby":I,placeholder:"-",onOptionSelect:(o,t)=>M(t.optionValue),children:C.map((o=>t(m,{value:o.name,text:`${o.title} (${o.name})`,children:[`${o.title} (${o.name})`," "]},o.name)))}),o(p,{appearance:"primary",disabled:!$,onClick:()=>{const o=C.find((o=>o.name===$));o?.url?w.sendMessage(`#ss-link #${$}`).then((t=>{const e=new Date(Date.now()+2592e5);w.generateApiToken(e).then((e=>{const n=o.url.includes("?")?"&":"?",i=`${o.url}${n}token=${e}`;P(i);const r=g(t);D(r)}))})):w.sendMessage(`#ss-link #${$}`).then((o=>{const t=`${window.location.protocol}//${window.location.hostname}${window.location.port?":"+window.location.port:""}${window.location.pathname}`;P(`${t}#/formaccept?id=${o}`);const e=g(o);D(e)}))},children:b("Skapa länk")}),x&&t(e,{children:[o("p",{className:A.generatedLinkTitle,children:b("Här är din genererade länk (du kan kopiera eller dela den):")}),o("div",{className:A.inputAndButton,children:o(d,{className:A.input,value:x,readOnly:!0,onFocus:o=>o.target.select()})}),o("br",{}),t("div",{className:A.inputAndButton,children:[o(p,{appearance:"primary",title:b("Kopiera länk"),icon:"CopyRegular",onClick:()=>{x&&(navigator.clipboard.writeText(x),L(!0),setTimeout((()=>{L(!1),P(void 0)}),2e3))},children:b("Kopiera")}),_&&o(p,{appearance:"primary",title:b("Dela länk"),icon:"ShareRegular",onClick:()=>{x&&(navigator.share({url:x}),setTimeout((()=>{P(void 0)}),2e3))},children:b("Dela")})]}),B&&o(c,{children:b("Länk kopierad!")})]})]})})})};export{A as default};
|
package/dist/esm/pages/Home.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{useState as n,useEffect as i}from"react";import{makeStyles as r,shorthands as a,Tooltip as s,Button as l,Image as c,Menu as p,MenuTrigger as m,MenuButton as d,MenuPopover as u,MenuList as h,MenuItem as g}from"@fluentui/react-components";import*as f from"@fluentui/react-icons";import{Edit24Regular as b,Chat24Regular as v,Target24Regular as j,Database24Regular as x,Sparkle24Regular as k,Briefcase24Regular as C,Rocket24Regular as w}from"@fluentui/react-icons";import{Link as y}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as S}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as I}from"../components/Title.js";import{Text as A}from"../components/Text.js";import{Spinner as N}from"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import D from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import z from"../components/Content.js";import{Page as M}from"../components/Page.js";import"./QrScan.js";import P from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import B from"../hooks/useCodicentState.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import{UrlProcessor as _}from"../components/UrlProcessor.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import T from"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";const W=t=>{if(!t)return null;const o=f[t];if(o&&("function"==typeof o||"object"==typeof o))try{return e(o,{})}catch{return null}return null},L=t=>{switch(t){case"Start Your CV AI Assistant":return e(w,{});case"Smart CV Matching":return e(C,{});case"Enhance & Optimize CVs":return e(k,{});case"View CV Database":return e(x,{});case"Create Job Requirements":return e(j,{});case"Chat with CV AI":return e(v,{});default:return null}},$=r({main:{flexGrow:1,...a.padding("10px"),overflowY:"auto",touchAction:"pan-y"},editButton:{position:"absolute",top:"80px",right:"16px",zIndex:10,background:"transparent",boxShadow:"none",border:"none",cursor:"pointer",padding:0,pointerEvents:"auto"},root:{height:"100%",backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",pointerEvents:"none"},item:{height:"auto",width:"auto",flexShrink:1},buttonsList:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",flexDirection:"column",alignItems:"center",gap:"1.5rem",...a.padding("10px"),paddingTop:"30px",pointerEvents:"auto"},buttonContent:{display:"flex",alignItems:"center",gap:"8px"},buttonContentColumn:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"4px",width:"100%"},buttonContentRow:{display:"flex",alignItems:"center",gap:"8px","& > svg":{flexShrink:0,width:"24px"}},buttonSubtitle:{fontSize:"0.85em",opacity:.75,fontWeight:"normal",marginTop:"2px",paddingLeft:"32px"},menuPopover:{minWidth:"16rem",borderRadius:"12px",...a.padding("6px"),boxShadow:"0 8px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.10)"},menuItemIconBadge:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"8px",backgroundColor:"var(--colorBrandBackground2)",color:"var(--colorBrandForeground2)",flexShrink:0},menuItemTitle:{fontWeight:"500",fontSize:"0.95em"},menuItemSubtitle:{fontSize:"0.78em",opacity:.6,paddingLeft:"42px"},welcomeInfo:{display:"flex",flexDirection:"column",gap:"8px",alignItems:"center",textAlign:"center",maxWidth:"20rem",pointerEvents:"auto"},scrollableContent:{overflowY:"auto"}}),E=({state:r,audio:a,voice:f,buttons:v,backgroundImageUrl:j,welcomeText:x,slogan:k,indexTitle:C,developerMode:w,onEditClick:E,buttonStyles:F={},appName:V})=>{const{selectedApp:R,nickname:H,apps:U,name:O}=r.context,{service:Q,error:Y,stateMachine:q,currentStateName:K,fixAppUrl:G}=r,J=$(),[X,Z]=D("app-buttons_"+R,[]),[ee,te]=n(!1),[oe,ne]=n(!1),[ie,re]=n([]),[ae,se]=n(""),[le,ce]=n(""),[pe,me]=n(""),[de,ue]=n(new Set),{updating:he,welcomeStatusText:ge}=B(q),{t:fe}=P();i((()=>{void 0!==v?Z(v):R&&Q.getAppButtons().then((e=>Z(e))).catch(console.warn)}),[Q,Z,R,v]);const be=e=>{e.preventDefault(),e.stopPropagation()},ve=!R||"hasAccess"!==K,je=!R||"hasAccess"!==K,xe=R&&"hasAccess"===K,ke=!R&&"hasAccess"===K&&U.length>1,Ce=!Y&&!R&&!V,we="noAccess"===K&&(1===U.length||!!V),ye=R&&"hasAccess"===K;return e(M,{hideHeader:ve,hideFooter:je,audio:a,voice:f,children:t("div",{className:J.root,style:{backgroundImage:j?`url(${j})`:void 0},children:[w&&E&&"hasAccess"===K&&e("div",{className:J.editButton,children:e(s,{content:fe("Edit settings")||"Edit settings",relationship:"label",children:e(l,{appearance:"subtle",icon:e(b,{}),"aria-label":fe("Edit settings")||"Edit settings",onClick:E,size:"small"})})}),e("div",{className:J.item,children:e("div",{className:J.item,children:t("div",{className:J.buttonsList,children:[ke&&t(o,{children:[e(I,{children:fe("Välkommen, vart vill du gå?")}),U.map(((o,n)=>e("div",{children:e(S,{size:"large",appearance:"primary",onClick:()=>q.setSelectedApp(o.id),children:t("div",{className:J.buttonContent,children:[o.logo&&e(c,{src:o.logo,height:24}),o.title||o.id]})})},"codicent_button_"+n)))]}),Ce&&t(o,{children:[e(I,{children:fe("Skapa ny?")}),e(A,{size:400,children:fe("Här går du vidare för att skapa din egna privata digitala assistent.")}),e(S,{size:"large",appearance:"primary",onClick:()=>q.update(),children:fe("Kör!")})]}),we&&e("div",{children:t(z,{children:[e(I,{children:`${fe("Välkommen till")} ${C}`}),!ee&&e(A,{size:400,children:fe("Du är inte medlem än. Skicka begäran för att komma in!")}),!ee&&e(S,{size:"large",appearance:"primary",onClick:async()=>{if(te(!0),!V)return console.error("appName prop not provided."),alert("appName not defined."),void te(!1);await Q.requestInvite(H,V)?alert(fe("Begäran skickad! Du får åtkomst när ägaren godkänner.")):(te(!1),alert(fe("Misslyckades att skicka begäran. Försök igen senare.")))},children:fe("Skicka begäran")}),!ee&&t(A,{size:300,children:[fe("Har du redan ett abonnemang? Då kanske har du loggat in med fel konto.")," ",e(y,{to:"/logout",children:fe("Logga ut")})," ",fe("och sedan in igen för att komma igång.")]}),ee&&e(A,{size:400,children:fe("Begäran skickad till ägaren.")}),ee&&e(S,{size:"large",onClick:()=>{window.location.href="./"},children:fe("Kontrollera åtkomst")})]})}),ye&&t("div",{className:J.welcomeInfo,children:[e(A,{weight:"semibold",size:500,align:"center",children:x?x.replace("{{username}}",O||H||""):fe("Välkommen")}),k&&e(A,{weight:"semibold",italic:!0,size:400,align:"center",children:k}),he&&e(N,{}),!he&&ge&&e(A,{size:400,align:"center",children:fe(ge)})]}),xe&&X.map(((o,n)=>{const i="file_drop"===o.type,r="multi_option"===o.type,a=o.options&&Array.isArray(o.options)?o.options:[],s=e=>{const t=e.replace("upload:","").split(":");if(t.length>=4){se(t[0]?.trim()||""),ce(t[1]?.trim()||""),me(t[2]?.trim()||"");const e=t[3]?.trim()||"";re(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}else{se(""),ce(""),me("");const e=t[0]?.trim()||"";re(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}ne(!0)},l=(e,t)=>{if(e.startsWith("voice:")){const t=e.replace("voice:","").trim();t&&f?.updateInstructions(t),f?.connectConversation()}else e.startsWith("upload:")?s(e):e.startsWith("app:")?t(e.replace("app:",G("/app/index.html?token={token}&app={app}&nickname={nickname}")).trim()):t(e)};return e("div",{children:i?e("div",{className:`${J.item} ${de.has(n)?"dragActive":""}`,style:{width:"16rem",minWidth:"15rem",border:`2px dashed ${F.textColor||"#ccc"}`,backgroundColor:de.has(n)?F.activeColor||void 0:F.backgroundColor||void 0,color:F.textColor||void 0,borderRadius:"8px",padding:"1.2rem 1rem",textAlign:"center",cursor:"pointer"},onDragEnter:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ue((e=>new Set(e.add(t))))})(e,n),onDragLeave:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ue((e=>{const o=new Set(e);return o.delete(t),o}))})(e,n),onDragOver:be,onDrop:e=>(async(e,t,o)=>{e.preventDefault(),e.stopPropagation(),ue((e=>{const t=new Set(e);return t.delete(o),t}));const n=Array.from(e.dataTransfer.files);if(0===n.length)return;let i=[];if(t.url.startsWith("upload:")){const e=t.url.replace("upload:","").split(":"),o=(e.length>=4?e[3]:e[0])?.trim()||"";i=o?o.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[]}for(const e of n)try{const t=new FormData;t.append("file",e);const o=await Q.uploadFile(e.name,t);if(!o)continue;const n=i.length>0?i.map((e=>`#${e}`)).join(" "):"#index #summarize";await Q.sendMessage(`@${R} ${n}\n\n${e.name}\n#file:${o}\n`)}catch(t){console.error("Error processing file:",e.name,t)}})(e,o,n),onClick:()=>o.url.startsWith("upload:")&&s(o.url),children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[W(o.icon)||L(o.title),e("span",{children:fe(o.title)})]}),e("div",{className:J.buttonSubtitle,children:de.has(n)?fe("Drop files here..."):fe("Drag files here or click")})]})}):r?t(p,{children:[e(m,{children:e(d,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:F.backgroundColor||void 0,color:F.textColor||void 0,padding:"1.2rem 1rem"},children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[W(o.icon)||L(o.title),e("span",{children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.buttonSubtitle,children:fe(o.subtitle)})]})})}),e(u,{className:J.menuPopover,children:e(h,{children:a.map(((o,i)=>e(_,{service:Q,children:n=>e(g,{onClick:()=>l(o.url,n),children:t("div",{children:[t("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[W(o.icon)&&e("div",{className:J.menuItemIconBadge,children:W(o.icon)}),e("span",{className:J.menuItemTitle,children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.menuItemSubtitle,children:fe(o.subtitle)})]})})},`option_${n}_${i}`)))})})]}):e(_,{service:Q,children:n=>e(S,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:F.backgroundColor||void 0,color:F.textColor||void 0,padding:"1.2rem 1rem"},onClick:()=>l(o.url,n),children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[W(o.icon)||L(o.title),e("span",{children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.buttonSubtitle,children:fe(o.subtitle)})]})})})},"button_"+n)}))]})})}),Y&&e("div",{className:"error",children:Y}),e(T,{project:R||"",hidden:!oe,onDismiss:()=>{ne(!1),se(""),ce(""),me(""),re([])},sendMessage:async e=>{try{return await Q.sendMessage(e)}catch{return}},onUploaded:()=>{ne(!1),se(""),ce(""),me(""),re([])},service:Q,tags:ie,title:ae,description:le,dropText:pe})]})})};export{E as Home,E as default};
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{useState as n,useEffect as i}from"react";import{makeStyles as r,shorthands as a,Tooltip as s,Button as l,Image as c,Menu as p,MenuTrigger as m,MenuButton as d,MenuPopover as u,MenuList as h,MenuItem as g}from"@fluentui/react-components";import*as f from"@fluentui/react-icons";import{Edit24Regular as j,Chat24Regular as b,Target24Regular as v,Database24Regular as x,Sparkle24Regular as k,Briefcase24Regular as C,Rocket24Regular as w}from"@fluentui/react-icons";import{Link as y}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as S}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as A}from"../components/Title.js";import{Text as I}from"../components/Text.js";import{Spinner as D}from"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import N from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import z from"../components/Content.js";import{Page as P}from"../components/Page.js";import"./QrScan.js";import B from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import M from"../hooks/useCodicentState.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import{UrlProcessor as _}from"../components/UrlProcessor.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import T from"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const E=t=>{if(!t)return null;const o=f[t];if(o&&("function"==typeof o||"object"==typeof o))try{return e(o,{})}catch{return null}return null},F=t=>{switch(t){case"Start Your CV AI Assistant":return e(w,{});case"Smart CV Matching":return e(C,{});case"Enhance & Optimize CVs":return e(k,{});case"View CV Database":return e(x,{});case"Create Job Requirements":return e(v,{});case"Chat with CV AI":return e(b,{});default:return null}},W=r({main:{flexGrow:1,...a.padding("10px"),overflowY:"auto",touchAction:"pan-y"},editButton:{position:"absolute",top:"80px",right:"16px",zIndex:10,background:"transparent",boxShadow:"none",border:"none",cursor:"pointer",padding:0,pointerEvents:"auto"},root:{height:"100%",backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",pointerEvents:"none"},item:{height:"auto",width:"auto",flexShrink:1},buttonsList:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",flexDirection:"column",alignItems:"center",gap:"1.5rem",...a.padding("10px"),paddingTop:"30px",pointerEvents:"auto"},buttonContent:{display:"flex",alignItems:"center",gap:"8px"},buttonContentColumn:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"4px",width:"100%"},buttonContentRow:{display:"flex",alignItems:"center",gap:"8px","& > svg":{flexShrink:0,width:"24px"}},buttonSubtitle:{fontSize:"0.85em",opacity:.75,fontWeight:"normal",marginTop:"2px",paddingLeft:"32px"},menuPopover:{minWidth:"16rem",borderRadius:"12px",...a.padding("6px"),boxShadow:"0 8px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.10)"},menuItemIconBadge:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"8px",backgroundColor:"var(--colorBrandBackground2)",color:"var(--colorBrandForeground2)",flexShrink:0},menuItemTitle:{fontWeight:"500",fontSize:"0.95em"},menuItemSubtitle:{fontSize:"0.78em",opacity:.6,paddingLeft:"42px"},welcomeInfo:{display:"flex",flexDirection:"column",gap:"8px",alignItems:"center",textAlign:"center",maxWidth:"20rem",pointerEvents:"auto"},scrollableContent:{overflowY:"auto"}}),L=({state:r,audio:a,voice:f,buttons:b,backgroundImageUrl:v,welcomeText:x,slogan:k,indexTitle:C,developerMode:w,onEditClick:L,buttonStyles:$={},appName:R})=>{const{selectedApp:V,nickname:U,apps:H,name:q}=r.context,{service:O,error:Q,stateMachine:Y,currentStateName:G,fixAppUrl:K}=r,J=W(),[X,Z]=N("app-buttons_"+V,[]),[ee,te]=n(!1),[oe,ne]=n(!1),[ie,re]=n([]),[ae,se]=n(""),[le,ce]=n(""),[pe,me]=n(""),[de,ue]=n(new Set),{updating:he,welcomeStatusText:ge}=M(Y),{t:fe}=B();i((()=>{void 0!==b?Z(b):V&&O.getAppButtons().then((e=>Z(e))).catch(console.warn)}),[O,Z,V,b]);const je=e=>{e.preventDefault(),e.stopPropagation()},be=!V||"hasAccess"!==G,ve=!V||"hasAccess"!==G,xe=V&&"hasAccess"===G,ke=!V&&"hasAccess"===G&&H.length>1,Ce=!Q&&!V&&!R,we="noAccess"===G&&(1===H.length||!!R),ye=V&&"hasAccess"===G;return e(P,{hideHeader:be,hideFooter:ve,audio:a,voice:f,children:t("div",{className:J.root,style:{backgroundImage:v?`url(${v})`:void 0},children:[w&&L&&"hasAccess"===G&&e("div",{className:J.editButton,children:e(s,{content:fe("Edit settings")||"Edit settings",relationship:"label",children:e(l,{appearance:"subtle",icon:e(j,{}),"aria-label":fe("Edit settings")||"Edit settings",onClick:L,size:"small"})})}),e("div",{className:J.item,children:e("div",{className:J.item,children:t("div",{className:J.buttonsList,children:[ke&&t(o,{children:[e(A,{children:fe("Välkommen, vart vill du gå?")}),H.map(((o,n)=>e("div",{children:e(S,{size:"large",appearance:"primary",onClick:()=>Y.setSelectedApp(o.id),children:t("div",{className:J.buttonContent,children:[o.logo&&e(c,{src:o.logo,height:24}),o.title||o.id]})})},"codicent_button_"+n)))]}),Ce&&t(o,{children:[e(A,{children:fe("Skapa ny?")}),e(I,{size:400,children:fe("Här går du vidare för att skapa din egna privata digitala assistent.")}),e(S,{size:"large",appearance:"primary",onClick:()=>Y.update(),children:fe("Kör!")})]}),we&&e("div",{children:t(z,{children:[e(A,{children:`${fe("Välkommen till")} ${C}`}),!ee&&e(I,{size:400,children:fe("Du är inte medlem än. Skicka begäran för att komma in!")}),!ee&&e(S,{size:"large",appearance:"primary",onClick:async()=>{if(te(!0),!R)return console.error("appName prop not provided."),alert("appName not defined."),void te(!1);await O.requestInvite(U,R)?alert(fe("Begäran skickad! Du får åtkomst när ägaren godkänner.")):(te(!1),alert(fe("Misslyckades att skicka begäran. Försök igen senare.")))},children:fe("Skicka begäran")}),!ee&&t(I,{size:300,children:[fe("Har du redan ett abonnemang? Då kanske har du loggat in med fel konto.")," ",e(y,{to:"/logout",children:fe("Logga ut")})," ",fe("och sedan in igen för att komma igång.")]}),ee&&e(I,{size:400,children:fe("Begäran skickad till ägaren.")}),ee&&e(S,{size:"large",onClick:()=>{window.location.href="./"},children:fe("Kontrollera åtkomst")})]})}),ye&&t("div",{className:J.welcomeInfo,children:[e(I,{weight:"semibold",size:500,align:"center",children:x?x.replace("{{username}}",q||U||""):fe("Välkommen")}),k&&e(I,{weight:"semibold",italic:!0,size:400,align:"center",children:k}),he&&e(D,{}),!he&&ge&&e(I,{size:400,align:"center",children:fe(ge)})]}),xe&&X.map(((o,n)=>{const i="file_drop"===o.type,r="multi_option"===o.type,a=o.options&&Array.isArray(o.options)?o.options:[],s=e=>{const t=e.replace("upload:","").split(":");if(t.length>=4){se(t[0]?.trim()||""),ce(t[1]?.trim()||""),me(t[2]?.trim()||"");const e=t[3]?.trim()||"";re(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}else{se(""),ce(""),me("");const e=t[0]?.trim()||"";re(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}ne(!0)},l=(e,t)=>{if(e.startsWith("voice:")){const t=e.replace("voice:","").trim();t&&f?.updateInstructions(t),f?.connectConversation()}else e.startsWith("upload:")?s(e):e.startsWith("app:")?t(e.replace("app:",K("/app/index.html?token={token}&app={app}&nickname={nickname}")).trim()):t(e)};return e("div",{children:i?e("div",{className:`${J.item} ${de.has(n)?"dragActive":""}`,style:{width:"16rem",minWidth:"15rem",border:`2px dashed ${$.textColor||"#ccc"}`,backgroundColor:de.has(n)?$.activeColor||void 0:$.backgroundColor||void 0,color:$.textColor||void 0,borderRadius:"8px",padding:"1.2rem 1rem",textAlign:"center",cursor:"pointer"},onDragEnter:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ue((e=>new Set(e.add(t))))})(e,n),onDragLeave:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ue((e=>{const o=new Set(e);return o.delete(t),o}))})(e,n),onDragOver:je,onDrop:e=>(async(e,t,o)=>{e.preventDefault(),e.stopPropagation(),ue((e=>{const t=new Set(e);return t.delete(o),t}));const n=Array.from(e.dataTransfer.files);if(0===n.length)return;let i=[];if(t.url.startsWith("upload:")){const e=t.url.replace("upload:","").split(":"),o=(e.length>=4?e[3]:e[0])?.trim()||"";i=o?o.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[]}for(const e of n)try{const t=new FormData;t.append("file",e);const o=await O.uploadFile(e.name,t);if(!o)continue;const n=i.length>0?i.map((e=>`#${e}`)).join(" "):"#index #summarize";await O.sendMessage(`@${V} ${n}\n\n${e.name}\n#file:${o}\n`)}catch(t){console.error("Error processing file:",e.name,t)}})(e,o,n),onClick:()=>o.url.startsWith("upload:")&&s(o.url),children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[E(o.icon)||F(o.title),e("span",{children:fe(o.title)})]}),e("div",{className:J.buttonSubtitle,children:de.has(n)?fe("Drop files here..."):fe("Drag files here or click")})]})}):r?t(p,{children:[e(m,{children:e(d,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:$.backgroundColor||void 0,color:$.textColor||void 0,padding:"1.2rem 1rem"},children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[E(o.icon)||F(o.title),e("span",{children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.buttonSubtitle,children:fe(o.subtitle)})]})})}),e(u,{className:J.menuPopover,children:e(h,{children:a.map(((o,i)=>e(_,{service:O,children:n=>e(g,{onClick:()=>l(o.url,n),children:t("div",{children:[t("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[E(o.icon)&&e("div",{className:J.menuItemIconBadge,children:E(o.icon)}),e("span",{className:J.menuItemTitle,children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.menuItemSubtitle,children:fe(o.subtitle)})]})})},`option_${n}_${i}`)))})})]}):e(_,{service:O,children:n=>e(S,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:$.backgroundColor||void 0,color:$.textColor||void 0,padding:"1.2rem 1rem"},onClick:()=>l(o.url,n),children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[E(o.icon)||F(o.title),e("span",{children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.buttonSubtitle,children:fe(o.subtitle)})]})})})},"button_"+n)}))]})})}),Q&&e("div",{className:"error",children:Q}),e(T,{project:V||"",hidden:!oe,onDismiss:()=>{ne(!1),se(""),ce(""),me(""),re([])},sendMessage:async e=>{try{return await O.sendMessage(e)}catch{return}},onUploaded:()=>{ne(!1),se(""),ce(""),me(""),re([])},service:O,tags:ie,title:ae,description:le,dropText:pe})]})})};export{L as Home,L as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as t}from"react/jsx-runtime";import{Spinner as e}from"@fluentui/react-components";import{useState as
|
|
1
|
+
import{jsx as o,jsxs as t}from"react/jsx-runtime";import{Spinner as e}from"@fluentui/react-components";import{useState as i,useEffect as s}from"react";import{useNavigate as n}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{Text as r}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import"../components/Content.js";import{Page as m}from"../components/Page.js";import"./QrScan.js";import"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import p from"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const a=({state:a})=>{const c=window.location.hash.match(/^#\/html\/(.+)$/),l=c?decodeURIComponent(c[1]):"",d=n(),[u,j]=i(),[h,g]=i(!1),[f,v]=i(),{service:y}=a;return s((()=>{l&&y?(g(!0),v(void 0),y.getMessagesFast([l],void 0,1).then((o=>{if(0===o.length)return void v(`No messages found with tag: ${l}`);const t=o[0].content;j((o=>{const t=o.indexOf("```html");if(-1!==t){const e=o.indexOf("```",t+7);return-1===e?o.substring(t+7):o.substring(t+7,e)}const e=[/<!DOCTYPE[^>]*>[\s\S]*?<\/html>/i,/<html[^>]*>[\s\S]*?<\/html>/i,/<div[^>]*>[\s\S]*?<\/div>/i,/<body[^>]*>[\s\S]*?<\/body>/i,/<article[^>]*>[\s\S]*?<\/article>/i,/<section[^>]*>[\s\S]*?<\/section>/i];for(const t of e){const e=o.match(t);if(e)return e[0]}if(o.includes("<html")||o.includes("<!DOCTYPE")||o.includes("<div")||o.includes("<p>")||o.includes("<span")){const t=["<!DOCTYPE","<html","<div","<body","<article","<section"];let e=-1;for(const i of t){const t=o.indexOf(i);-1!==t&&(-1===e||t<e)&&(e=t)}if(-1!==e){let t=o.substring(e);const i=["</html>","</body>","</div>"];for(const o of i){const e=t.lastIndexOf(o);if(-1!==e){t=t.substring(0,e+o.length);break}}return t}return o}return o})(t))})).catch((o=>{console.error("Error fetching message:",o),v(`Error fetching message: ${o.message||"Unknown error"}`)})).finally((()=>{g(!1)}))):v("No tag provided or service unavailable")}),[l,y]),h?o(m,{hideHeader:!0,hideFooter:!0,children:o("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:o(e,{})})}):f?o(m,{hideHeader:!0,hideFooter:!0,children:t("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh",flexDirection:"column",gap:"20px"},children:[o(r,{children:f}),t(r,{children:["Tag: ",l]})]})}):u?o("div",{style:{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden"},children:o(p,{html:u,onDismiss:()=>d(-1)})}):o(m,{hideHeader:!0,hideFooter:!0,children:o("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:o(r,{children:"No HTML content available"})})})};export{a as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as o,useRef as n,useMemo as r,useEffect as a,useCallback as i}from"react";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{makeStyles as s,Button as c,Dialog as l,DialogSurface as m,DialogBody as d,DialogTitle as p,DialogContent as u,DialogActions as g}from"@fluentui/react-components";import"../components/Spinner.js";import f from"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import{ArrowLeft24Regular as h,ArrowClockwise24Regular as j,ArrowDownload24Regular as x,Add24Regular as w}from"@fluentui/react-icons";import"../services/codicent.js";import{dataCache as y}from"../services/dataCache.js";import C from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{exportToExcel as S}from"../utils/excelExport.js";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import{useSearchParams as v,useNavigate as b}from"react-router-dom";import"./Purchase.js";import"../components/Content.js";import{Page as k}from"../components/Page.js";import"./QrScan.js";import A from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import{useUserRoles as M}from"../hooks/useUserRoles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import D from"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import I from"../components/ListView.js";import{RecordModal as T}from"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import{l as $}from"../node_modules/lodash/lodash.js";const _=s({container:{width:"100%",flex:1,maxWidth:"100%",height:"100%",minHeight:0,backgroundColor:"#ffffff",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},touchAction:"pan-y",paddingLeft:"0",paddingRight:"0"},listContainer:{overflow:"hidden",flex:1,minHeight:0,marginTop:"10px"},headerRow:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"10px",flexWrap:"wrap"},buttonGroup:{display:"flex",gap:"8px",flexWrap:"wrap"},addButton:{minWidth:"auto",whiteSpace:"nowrap"},recordsCount:{fontSize:"14px",color:"#666",marginTop:"8px"},backButton:{marginBottom:"10px"},searchBox:{marginTop:"8px"},loadMoreContainer:{display:"flex",justifyContent:"center",padding:"16px 0",borderTop:"1px solid #e0e0e0",marginTop:"4px"}}),N=500,E=({state:s,getColumnDefs:E,filterData:P})=>{const[R,B]=v(),L=R.get("tag")||"logbook",F=R.get("title")||"",O=R.get("contentTitle"),H="true"===R.get("loadAll"),U="true"===R.get("canAdd"),W="true"===R.get("canEdit"),q="false"!==R.get("canExport"),V=R.get("addUrl")||"",z=R.get("q")||"",[J,Q]=o(z),[G,K]=o(z),{service:X}=s,[Y,Z]=o([]),[ee,te]=o(!1),[oe,ne]=o(!1),[re,ae]=o(!1),ie=n(null),se=n(z),ce=n(""),le=n(!0),[me,de]=o(0),[pe,ue]=o(null),ge=_(),{t:fe}=A(),he=b(),{getCurrentUserName:je}=M(X,s.context.nickname,s.context.selectedApp),xe=r((()=>(O?[{key:O,title:O,maxWidth:250}]:E?E(L):[]).map((e=>({...e,title:e.title?fe(e.title):void 0})))),[O,L,fe,E]),[we,ye]=o(!1),[Ce,Se]=o(null),[ve,be]=o(!1),[ke,Ae]=o(null),Me=r((()=>`listpage_searches_${L}`),[L]),De=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):[]}catch{return[]}},[Ie,Te]=o((()=>De(Me)));a((()=>{Te(De(Me))}),[Me]);const $e=i((e=>{const t=e.trim();t&&Te((e=>{const o=[t,...e.filter((e=>e!==t))].slice(0,20);try{localStorage.setItem(Me,JSON.stringify(o))}catch{}return o}))}),[Me]),_e=i((e=>{Te((t=>{const o=t.filter((t=>t!==e));try{localStorage.setItem(Me,JSON.stringify(o))}catch{}return o}))}),[Me]),Ne=r((()=>$.debounce((e=>K(e)),500)),[K]);a((()=>()=>{Ne.cancel()}),[Ne]);const Ee=i((e=>{Q(e),Ne(e)}),[Ne]),Pe=i((e=>{$e(e)}),[$e]);a((()=>{if(!R.get("q")){const e=R.get(`filter_${L}`);if(e){let t=e;if("%USERNAME%"===t){const e=je();if(!e)return;t=e}Q(t),K(t),se.current=t}}}),[L,R,je]),a((()=>{const e=R.get("q")||"";e!==se.current&&(Q(e),K(e),se.current=e,ce.current="")}),[R]),a((()=>(ie.current&&clearTimeout(ie.current),ie.current=setTimeout((()=>{if(se.current!==J){const e={title:F,tag:L};O&&(e.contentTitle=O),J&&(e.q=J),H&&(e.loadAll="true"),B(e,{replace:!0}),se.current=J}}),500),()=>{ie.current&&clearTimeout(ie.current)})),[J,L,F,O,H,B]),a((()=>{le.current=!0;const e=`${L}-${O}-${H}-${me}-${G}`;if(e===ce.current)return;ce.current=e;const t=O?`${L}-${G}-${O}`:`${L}-${G||"all"}`,o=y.get(t);if(!o){if(ne(!1),te(!0),O)X.getMessagesFast([L],G).then((e=>{if(!le.current)return void te(!1);const o=e.map((e=>{const t=new Date(e.createdAt).toLocaleString();return{id:e.id,data:{[O]:new C(e.content).content,createdAt:t},fileId:null,fileIds:[],tags:[L],mentions:[X.codicent],createdAt:t}}));y.set(t,o),le.current&&Z(o)})).catch(console.warn).finally((()=>te(!1)));else{const e=G||"",o=H||e?void 0:N;X.readDataMessages(L,e,void 0,0,o).then((o=>{y.set(t,o),le.current?(Z(o),ne(!H&&!e&&o.length===N)):te(!1)})).catch(console.warn).finally((()=>te(!1)))}return()=>{le.current=!1}}if(Z(o),ne(!H&&!O&&o.length>=N),!O&&!G&&o.length>0){const e=o.reduce(((e,t)=>t.createdAt>e?t.createdAt:e),o[0].createdAt);X.readDataMessages(L,"",void 0,void 0,void 0,e).then((e=>{le.current&&Z((o=>{const n=new Set(o.map((e=>e.id))),r=e.filter((e=>!n.has(e.id)));if(0===r.length)return o;const a=[...r,...o];return y.set(t,a),a}))})).catch(console.warn)}}),[X,L,O,H,G,me]);const Re=r((()=>{const e={};R.forEach(((t,o)=>{o.startsWith("filter_")&&(e[o.replace("filter_","")]=t)}));let t=Y.map(((e,t)=>({item:e,index:t})));for(const[o,n]of Object.entries(e)){const e=n.replace("%USERNAME%",je()),r=s.context.nickname||"";t=t.filter((({item:t})=>{const n=t.data[o];return null!=n&&(String(n).includes(e)||String(n).includes(r))}))}if(P){const e=P(t.map((({item:e})=>e)),L),o=new Set(e.map((e=>e.id)));t=t.filter((({item:e})=>o.has(e.id)))}return t.map((({item:e,index:t})=>({...e.data,createdAt:e.createdAt,_id:e.id,originalMessageId:e.originalMessageId||e.id,_index:t})))}),[Y,R,s.context.nickname,je,P,L]),Be=r((()=>{const e=(J||"").trim().toLowerCase();if(!e)return Re;const t=xe.filter((e=>!e.hidden)).map((e=>e.key));return Re.filter((o=>{for(const n of t)if(Array.isArray(n))for(const t of n){const n=o[t];if(null!=n&&String(n).toLowerCase().includes(e))return!0}else{const t=o[n];if(null!=t&&String(t).toLowerCase().includes(e))return!0}return!1}))}),[Re,J,xe]),Le=i((()=>{y.clearPattern(L),ce.current="",de((e=>e+1))}),[L]),Fe=i((async()=>{ae(!0);try{const e=await X.readDataMessages(L,"",void 0,Y.length,N),t=[...Y,...e];Z(t),y.set(`${L}-all`,t),ne(e.length===N)}catch(e){console.warn(e)}finally{ae(!1)}}),[Y,X,L]),Oe=i((e=>{ue(e)}),[]),He=()=>{be(!1),Ae(null)},Ue=i((async()=>{const e=`${L}_${(new Date).toISOString().split("T")[0]}`.replace(/[/\\:*?"<>|]/g,"_");const t=null!==pe?pe:Be;await S(t,xe,e,fe)||console.warn("No data to export")}),[pe,Be,xe,L,fe]),We=r((()=>null!==pe?pe.length:Be.length),[pe,Be]);return e(k,{hideHeader:!0,children:t("div",{className:ge.container,children:[e("div",{className:ge.backButton,children:e(c,{appearance:"subtle",icon:e(h,{}),onClick:()=>he(-1),children:fe("Tillbaka")})}),t("div",{className:ge.headerRow,children:[e(f,{title:fe(F||"Loggbok")}),t("div",{className:ge.buttonGroup,children:[e(c,{appearance:"subtle",icon:e(j,{}),onClick:Le,title:fe("Refresh"),children:fe("Refresh")}),q&&e(c,{appearance:"subtle",icon:e(x,{}),onClick:Ue,title:fe("Export to Excel"),children:fe("Export to Excel")}),(U||V)&&e(c,{appearance:"primary",icon:e(w,{}),onClick:U?()=>{Se(null),ye(!0)}:()=>window.open(V,"_blank"),className:ge.addButton,children:fe("Add Record")})]})]}),e("div",{className:ge.searchBox,children:e(D,{placeholder:fe("Sök")+"...",value:J,onChange:Ee,recentSearches:Ie,onCommitSearch:Pe,onRemoveRecentSearch:_e})}),!ee&&t("div",{className:ge.recordsCount,children:[fe("Total"),": ",We," ",fe("records"),We!==Y.length&&` (${fe("filtered from")} ${Y.length})`]}),t("div",{className:ge.listContainer,children:[ee&&e("p",{children:fe("Söker")+"..."}),!ee&&e(I,{data:Be,columns:xe,canEdit:W,onEdit:(e,t)=>{const o=Y[t];o&&(Se({data:{...o.data},index:t}),ye(!0))},onDelete:(e,t)=>{const o=Y[t];o&&(Ae({index:t,id:o.id}),be(!0))},onToggleCheckbox:async(e,t,o,n)=>{const r=Y[n];if(r){const e=Array.isArray(t)?t[0]:t,a={...r.data,[e]:String(o)},i=await X.updateDataMessage(r.id,a);Z((e=>{const t=[...e];return t[n]={...r,id:i,data:a},t})),y.clearPattern(L)}},onEnumChange:async(e,t,o,n)=>{const r=Y[n];if(r){const e=Array.isArray(t)?t[0]:t,a={...r.data,[e]:o},i=await X.updateDataMessage(r.id,a);Z((e=>{const t=[...e];return t[n]={...r,id:i,data:a},t})),y.clearPattern(L)}},onFilteredDataChange:Oe})]}),oe&&!J.trim()&&e("div",{className:ge.loadMoreContainer,children:e(c,{appearance:"primary",size:"medium",onClick:Fe,disabled:re,children:re?fe("Laddar..."):fe("Visa fler")+` (${Y.length} ${fe("laddade")})`})}),e(T,{open:we,onClose:()=>ye(!1),onSave:async e=>{if(Ce){const t=Y[Ce.index];if(t){const o={};for(const t in e){const n=e[t];o[t]=null==n?"":String(n)}const n=await X.updateDataMessage(t.id,o);Z((e=>{const r=[...e];return r[Ce.index]={...t,id:n,data:o},r})),y.clearPattern(L)}}else{const t={};for(const o in e){const n=e[o];t[o]=null==n?"":String(n)}const o={id:await X.createDataMessage(L,t),data:t,createdAt:(new Date).toISOString(),fileId:null,fileIds:[],tags:[L],mentions:[X.codicent]};Z((e=>[o,...e])),y.clearPattern(L)}},columns:xe,initialData:Ce?.data}),e(l,{open:ve,onOpenChange:(e,t)=>!t.open&&He(),children:e(m,{children:t(d,{children:[e(p,{children:fe("Confirm Delete")}),e(u,{children:fe("Are you sure you want to delete this record? This action cannot be undone.")}),t(g,{children:[e(c,{appearance:"secondary",onClick:He,children:fe("Cancel")}),e(c,{appearance:"primary",onClick:async()=>{if(ke)try{await X.deleteDataMessage(ke.id),Z((e=>e.filter(((e,t)=>t!==ke.index)))),y.clearPattern(L)}catch(e){console.error("Failed to delete record:",e)}finally{be(!1),Ae(null)}},children:fe("Delete")})]})]})})})]})})};export{E as ListPage,E as default};
|
|
1
|
+
import{jsx as t,jsxs as e}from"react/jsx-runtime";import{useState as o,useRef as n,useMemo as r,useEffect as i,useCallback as a}from"react";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{makeStyles as s,Button as c,Dialog as l,DialogSurface as m,DialogBody as p,DialogTitle as d,DialogContent as u,DialogActions as g}from"@fluentui/react-components";import"../components/Spinner.js";import h from"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import{ArrowLeft24Regular as f,ArrowClockwise24Regular as j,ArrowDownload24Regular as x,Add24Regular as w}from"@fluentui/react-icons";import"../services/codicent.js";import{dataCache as C}from"../services/dataCache.js";import y from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{exportToExcel as A}from"../utils/excelExport.js";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import{useSearchParams as S,useNavigate as v}from"react-router-dom";import"./Purchase.js";import"../components/Content.js";import{Page as k}from"../components/Page.js";import"./QrScan.js";import b from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import{useUserRoles as D}from"../hooks/useUserRoles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import M from"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import I from"../components/ListView.js";import{RecordModal as T}from"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";import{l as $}from"../node_modules/lodash/lodash.js";const _=s({container:{width:"100%",flex:1,maxWidth:"100%",height:"100%",minHeight:0,backgroundColor:"#ffffff",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},touchAction:"pan-y",paddingLeft:"0",paddingRight:"0"},listContainer:{overflow:"hidden",flex:1,minHeight:0,marginTop:"10px"},headerRow:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"10px",flexWrap:"wrap"},buttonGroup:{display:"flex",gap:"8px",flexWrap:"wrap"},addButton:{minWidth:"auto",whiteSpace:"nowrap"},recordsCount:{fontSize:"14px",color:"#666",marginTop:"8px"},backButton:{marginBottom:"10px"},searchBox:{marginTop:"8px"},loadMoreContainer:{display:"flex",justifyContent:"center",padding:"16px 0",borderTop:"1px solid #e0e0e0",marginTop:"4px"}}),P=500,E=({state:s,getColumnDefs:E,filterData:B})=>{const[N,R]=S(),F=N.get("tag")||"logbook",L=N.get("title")||"",U=N.get("contentTitle"),H="true"===N.get("loadAll"),O="true"===N.get("canAdd"),W="true"===N.get("canEdit"),q="false"!==N.get("canExport"),z=N.get("addUrl")||"",V=N.get("q")||"",[G,J]=o(V),[Q,K]=o(V),{service:X}=s,[Y,Z]=o([]),[tt,et]=o(!1),[ot,nt]=o(!1),[rt,it]=o(!1),at=n(null),st=n(V),ct=n(""),lt=n(!0),[mt,pt]=o(0),[dt,ut]=o(null),gt=_(),{t:ht}=b(),ft=v(),{getCurrentUserName:jt}=D(X,s.context.nickname,s.context.selectedApp),xt=r((()=>(U?[{key:U,title:U,maxWidth:250}]:E?E(F):[]).map((t=>({...t,title:t.title?ht(t.title):void 0})))),[U,F,ht,E]),[wt,Ct]=o(!1),[yt,At]=o(null),[St,vt]=o(!1),[kt,bt]=o(null),Dt=r((()=>`listpage_searches_${F}`),[F]),Mt=t=>{try{const e=localStorage.getItem(t);return e?JSON.parse(e):[]}catch{return[]}},[It,Tt]=o((()=>Mt(Dt)));i((()=>{Tt(Mt(Dt))}),[Dt]);const $t=a((t=>{const e=t.trim();e&&Tt((t=>{const o=[e,...t.filter((t=>t!==e))].slice(0,20);try{localStorage.setItem(Dt,JSON.stringify(o))}catch{}return o}))}),[Dt]),_t=a((t=>{Tt((e=>{const o=e.filter((e=>e!==t));try{localStorage.setItem(Dt,JSON.stringify(o))}catch{}return o}))}),[Dt]),Pt=r((()=>$.debounce((t=>K(t)),500)),[K]);i((()=>()=>{Pt.cancel()}),[Pt]);const Et=a((t=>{J(t),Pt(t)}),[Pt]),Bt=a((t=>{$t(t)}),[$t]);i((()=>{if(!N.get("q")){const t=N.get(`filter_${F}`);if(t){let e=t;if("%USERNAME%"===e){const t=jt();if(!t)return;e=t}J(e),K(e),st.current=e}}}),[F,N,jt]),i((()=>{const t=N.get("q")||"";t!==st.current&&(J(t),K(t),st.current=t,ct.current="")}),[N]),i((()=>(at.current&&clearTimeout(at.current),at.current=setTimeout((()=>{if(st.current!==G){const t={title:L,tag:F};U&&(t.contentTitle=U),G&&(t.q=G),H&&(t.loadAll="true"),R(t,{replace:!0}),st.current=G}}),500),()=>{at.current&&clearTimeout(at.current)})),[G,F,L,U,H,R]),i((()=>{lt.current=!0;const t=`${F}-${U}-${H}-${mt}-${Q}`;if(t===ct.current)return;ct.current=t;const e=U?`${F}-${Q}-${U}`:`${F}-${Q||"all"}`,o=C.get(e);if(!o){if(nt(!1),et(!0),U)X.getMessagesFast([F],Q).then((t=>{if(!lt.current)return void et(!1);const o=t.map((t=>{const e=new Date(t.createdAt).toLocaleString();return{id:t.id,data:{[U]:new y(t.content).content,createdAt:e},fileId:null,fileIds:[],tags:[F],mentions:[X.codicent],createdAt:e}}));C.set(e,o),lt.current&&Z(o)})).catch(console.warn).finally((()=>et(!1)));else{const t=Q||"",o=H||t?void 0:P;X.readDataMessages(F,t,void 0,0,o).then((o=>{C.set(e,o),lt.current?(Z(o),nt(!H&&!t&&o.length===P)):et(!1)})).catch(console.warn).finally((()=>et(!1)))}return()=>{lt.current=!1}}if(Z(o),nt(!H&&!U&&o.length>=P),!U&&!Q&&o.length>0){const t=o.reduce(((t,e)=>e.createdAt>t?e.createdAt:t),o[0].createdAt);X.readDataMessages(F,"",void 0,void 0,void 0,t).then((t=>{lt.current&&Z((o=>{const n=new Set(o.map((t=>t.id))),r=t.filter((t=>!n.has(t.id)));if(0===r.length)return o;const i=[...r,...o];return C.set(e,i),i}))})).catch(console.warn)}}),[X,F,U,H,Q,mt]);const Nt=r((()=>{const t={};N.forEach(((e,o)=>{o.startsWith("filter_")&&(t[o.replace("filter_","")]=e)}));let e=Y.map(((t,e)=>({item:t,index:e})));for(const[o,n]of Object.entries(t)){const t=n.replace("%USERNAME%",jt()),r=s.context.nickname||"";e=e.filter((({item:e})=>{const n=e.data[o];return null!=n&&(String(n).includes(t)||String(n).includes(r))}))}if(B){const t=B(e.map((({item:t})=>t)),F),o=new Set(t.map((t=>t.id)));e=e.filter((({item:t})=>o.has(t.id)))}return e.map((({item:t,index:e})=>({...t.data,createdAt:t.createdAt,_id:t.id,originalMessageId:t.originalMessageId||t.id,_index:e})))}),[Y,N,s.context.nickname,jt,B,F]),Rt=r((()=>{const t=(G||"").trim().toLowerCase();if(!t)return Nt;const e=xt.filter((t=>!t.hidden)).map((t=>t.key));return Nt.filter((o=>{for(const n of e)if(Array.isArray(n))for(const e of n){const n=o[e];if(null!=n&&String(n).toLowerCase().includes(t))return!0}else{const e=o[n];if(null!=e&&String(e).toLowerCase().includes(t))return!0}return!1}))}),[Nt,G,xt]),Ft=a((()=>{C.clearPattern(F),ct.current="",pt((t=>t+1))}),[F]),Lt=a((async()=>{it(!0);try{const t=await X.readDataMessages(F,"",void 0,Y.length,P),e=[...Y,...t];Z(e),C.set(`${F}-all`,e),nt(t.length===P)}catch(t){console.warn(t)}finally{it(!1)}}),[Y,X,F]),Ut=a((t=>{ut(t)}),[]),Ht=()=>{vt(!1),bt(null)},Ot=a((async()=>{const t=`${F}_${(new Date).toISOString().split("T")[0]}`.replace(/[/\\:*?"<>|]/g,"_");const e=null!==dt?dt:Rt;await A(e,xt,t,ht)||console.warn("No data to export")}),[dt,Rt,xt,F,ht]),Wt=r((()=>null!==dt?dt.length:Rt.length),[dt,Rt]);return t(k,{hideHeader:!0,children:e("div",{className:gt.container,children:[t("div",{className:gt.backButton,children:t(c,{appearance:"subtle",icon:t(f,{}),onClick:()=>ft(-1),children:ht("Tillbaka")})}),e("div",{className:gt.headerRow,children:[t(h,{title:ht(L||"Loggbok")}),e("div",{className:gt.buttonGroup,children:[t(c,{appearance:"subtle",icon:t(j,{}),onClick:Ft,title:ht("Refresh"),children:ht("Refresh")}),q&&t(c,{appearance:"subtle",icon:t(x,{}),onClick:Ot,title:ht("Export to Excel"),children:ht("Export to Excel")}),(O||z)&&t(c,{appearance:"primary",icon:t(w,{}),onClick:O?()=>{At(null),Ct(!0)}:()=>window.open(z,"_blank"),className:gt.addButton,children:ht("Add Record")})]})]}),t("div",{className:gt.searchBox,children:t(M,{placeholder:ht("Sök")+"...",value:G,onChange:Et,recentSearches:It,onCommitSearch:Bt,onRemoveRecentSearch:_t})}),!tt&&e("div",{className:gt.recordsCount,children:[ht("Total"),": ",Wt," ",ht("records"),Wt!==Y.length&&` (${ht("filtered from")} ${Y.length})`]}),e("div",{className:gt.listContainer,children:[tt&&t("p",{children:ht("Söker")+"..."}),!tt&&t(I,{data:Rt,columns:xt,canEdit:W,onEdit:(t,e)=>{const o=Y[e];o&&(At({data:{...o.data},index:e}),Ct(!0))},onDelete:(t,e)=>{const o=Y[e];o&&(bt({index:e,id:o.id}),vt(!0))},onToggleCheckbox:async(t,e,o,n)=>{const r=Y[n];if(r){const t=Array.isArray(e)?e[0]:e,i={...r.data,[t]:String(o)},a=await X.updateDataMessage(r.id,i);Z((t=>{const e=[...t];return e[n]={...r,id:a,data:i},e})),C.clearPattern(F)}},onEnumChange:async(t,e,o,n)=>{const r=Y[n];if(r){const t=Array.isArray(e)?e[0]:e,i={...r.data,[t]:o},a=await X.updateDataMessage(r.id,i);Z((t=>{const e=[...t];return e[n]={...r,id:a,data:i},e})),C.clearPattern(F)}},onFilteredDataChange:Ut})]}),ot&&!G.trim()&&t("div",{className:gt.loadMoreContainer,children:t(c,{appearance:"primary",size:"medium",onClick:Lt,disabled:rt,children:rt?ht("Laddar..."):ht("Visa fler")+` (${Y.length} ${ht("laddade")})`})}),t(T,{open:wt,onClose:()=>Ct(!1),onSave:async t=>{if(yt){const e=Y[yt.index];if(e){const o={};for(const e in t){const n=t[e];o[e]=null==n?"":String(n)}const n=await X.updateDataMessage(e.id,o);Z((t=>{const r=[...t];return r[yt.index]={...e,id:n,data:o},r})),C.clearPattern(F)}}else{const e={};for(const o in t){const n=t[o];e[o]=null==n?"":String(n)}const o={id:await X.createDataMessage(F,e),data:e,createdAt:(new Date).toISOString(),fileId:null,fileIds:[],tags:[F],mentions:[X.codicent]};Z((t=>[o,...t])),C.clearPattern(F)}},columns:xt,initialData:yt?.data}),t(l,{open:St,onOpenChange:(t,e)=>!e.open&&Ht(),children:t(m,{children:e(p,{children:[t(d,{children:ht("Confirm Delete")}),t(u,{children:ht("Are you sure you want to delete this record? This action cannot be undone.")}),e(g,{children:[t(c,{appearance:"secondary",onClick:Ht,children:ht("Cancel")}),t(c,{appearance:"primary",onClick:async()=>{if(kt)try{await X.deleteDataMessage(kt.id),Z((t=>t.filter(((t,e)=>e!==kt.index)))),C.clearPattern(F)}catch(t){console.error("Failed to delete record:",t)}finally{vt(!1),bt(null)}},children:ht("Delete")})]})]})})})]})})};export{E as ListPage,E as default};
|
package/dist/esm/pages/Login.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,jsx as t,Fragment as
|
|
1
|
+
import{jsxs as o,jsx as t,Fragment as i}from"react/jsx-runtime";import e,{useState as r}from"react";import{makeStyles as s,Image as n,Input as m,mergeClasses as a}from"@fluentui/react-components";import"../services/codicent.js";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as p}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as c}from"../components/Title.js";import{Text as l}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as d}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/Page.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import u from"../hooks/useLocalization.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"react-router-dom";import"./Purchase.js";import"./QrScan.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import j from"../hooks/useAppStyles.js";const g=s({container:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100vh",backgroundPosition:"calc(50% - 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",gap:"20px",padding:"0 20px"},button:{minWidth:"15rem"},input:{minWidth:"15rem",marginBottom:"10px"},image:{maxHeight:"200px"}}),h=({state:s})=>{const{loginWithRedirect:h,loginPasswordless:_}=s.auth,A=g(),I=j(),{t:E}=u(),[k,C]=r(""),[b,f]=r(!1),L=d("LOGIN_REDIRECT"),D=d("AUTH0_PASSWORDLESS_ENABLED");e.useEffect((()=>{L&&h()}),[L]);return o("div",L?{className:A.container,style:{backgroundImage:`url(${d("HOME_BACKGROUND_IMAGE_URL")})`},children:[t(c,{children:`${E("Välkommen till")} ${d("INDEX_TITLE")}!`}),t(l,{size:400,children:E("Omdirigerar till inloggning...")})]}:{className:A.container,style:{backgroundImage:`url(${d("HOME_BACKGROUND_IMAGE_URL")})`},children:[d("LOGIN_LOGO_URL")&&t(n,{src:d("LOGIN_LOGO_URL"),alt:d("INDEX_TITLE"),className:A.image}),!d("LOGIN_HIDE_WELCOME")&&t(c,{children:`${E("Välkommen till")} ${d("INDEX_TITLE")}!`}),t(l,{size:400,children:E(d("LOGIN_WELCOME_TEXT")||"Logga in, eller registrera ett konto, för att komma igång.")}),o(i,D?{children:[t(m,{className:A.input,type:"email",placeholder:E("Ange din e-postadress"),value:k,onChange:o=>C(o.target.value),disabled:b}),t(p,{className:a(I.button,A.button),size:"large",appearance:"primary",onClick:async()=>{if(k.trim()){f(!0);try{await _(k)}catch(o){console.error("Passwordless login failed:",o)}finally{f(!1)}}},disabled:!k.trim()||b,children:E(b?"Skickar...":"Skicka inloggningslänk")})]}:{children:[t(p,{className:a(I.button,A.button),size:"large",appearance:"primary",onClick:()=>h(),children:E("Logga in")}),!d("HIDE_REGISTER_BUTTON")&&t(p,{className:a(I.button,A.button),size:"large",appearance:"primary",onClick:()=>h({authorizationParams:{screen_hint:"signup"}}),children:E("Registrera")})]})]})};export{h as default};
|
package/dist/esm/pages/Menu.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{makeStyles as i,Image as n}from"@fluentui/react-components";import{useNavigate as r}from"react-router-dom";import s from"../components/Markdown.js";import"../components/Textarea.js";import{Button as p}from"../components/Button.js";import"../components/CompoundButton.js";import"../components/Spinner.js";import
|
|
1
|
+
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{makeStyles as i,Image as n}from"@fluentui/react-components";import{useNavigate as r}from"react-router-dom";import s from"../components/Markdown.js";import"../components/Textarea.js";import{Button as p}from"../components/Button.js";import"../components/CompoundButton.js";import"../components/Spinner.js";import m from"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"react";import"@fluentui/react-icons";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import"../components/Content.js";import{Page as a}from"../components/Page.js";import"./QrScan.js";import c from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import l from"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import d from"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import{LanguageSelector as u}from"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const j=i({container:{backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%",touchAction:"pan-y",margin:"0 auto",maxWidth:"800px"},menu_items:{overflowY:"auto",height:"calc(100vh - 130px)",paddingLeft:"10px",paddingRight:"10px"},divider:{fontSize:"20px",fontWeight:"bold",marginTop:"32px",marginBottom:"20px"},appButton:{margin:"2px"}}),g=({state:i,title:g,aboutText:h,version:f,backgroundImageUrl:v,showHelpButton:A,showLogbookButton:C,stripeCustomerPortal:x,showAppSelector:b=!0})=>{const S=r(),k=l(),w=j(),{auth:B}=i,{t:P}=c(),M=h?h.replace("{{version}}",(()=>{const o=new Date,t=o.toISOString().split("T")[0],e=o.getHours().toString().padStart(2,"0");return f||`v${t}.${e}`})()):void 0;return o(a,{hideHeader:!0,children:t("div",{className:w.container,style:{backgroundImage:v?`url(${v})`:void 0},children:[o(m,{title:g||P("Meny")}),t("div",{className:w.menu_items,children:[o(d,{state:i}),o(u,{}),o("hr",{}),o(p,{icon:"ChevronRightFilled",size:"large",className:k.menuButton,onClick:()=>{B.logout(),i.stateMachine.logout()},iconPosition:"after",appearance:"transparent",children:P("Logga ut")}),x&&o(p,{icon:"Payment24Regular",size:"large",className:k.menuButton,onClick:()=>window.location.href=x,iconPosition:"after",appearance:"transparent",children:P("Abonnemang")}),b&&i.context.apps&&i.context.apps.length>1&&t(e,{children:[o("h3",{children:P("Mina codicents")}),i.context.apps.map((t=>o(p,{className:w.appButton,image:t.logo?o(n,{src:t.logo,height:"24px"}):void 0,onClick:()=>i.stateMachine.setSelectedApp(t.id),title:t.title||t.id,children:t.title||t.id},t.id)))]}),C&&t(e,{children:[o("hr",{}),o(p,{className:k.menuButton,icon:"ChevronRightFilled",size:"large",appearance:"subtle",iconPosition:"after",onClick:()=>S("/log"),children:P("Loggboken")})]}),o("hr",{}),M&&o(s,{content:M}),A&&t(e,{children:[o("h3",{children:P("Behöver du hjälp?")}),o(p,{icon:"QuestionCircle24Regular",className:k.button,size:"large",appearance:"subtle",onClick:()=>S("/help"),children:P("Visa hjälp")})]})]})]})})};export{g as Menu,g as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,jsx as t}from"react/jsx-runtime";import{makeStyles as
|
|
1
|
+
import{jsxs as o,jsx as t}from"react/jsx-runtime";import{makeStyles as i,tokens as e}from"@fluentui/react-components";import{useState as r,useEffect as s}from"react";import{Link as n}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as m}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as p}from"../components/Title.js";import{Text as a}from"../components/Text.js";import{Spinner as c}from"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as d}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"../components/Content.js";import"../components/Page.js";import"./QrScan.js";import"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const l=i({container:{display:"flex",flexDirection:"column",alignItems:"center",gap:"20px",padding:"20px"},pricing:{padding:"20px",paddingLeft:"30px",border:"1px solid #ccc",borderRadius:"8px",backgroundColor:e.colorNeutralBackground1}}),j=({state:i})=>{const e=l(),[j,u]=r(!1),{service:g,stateMachine:h}=i,{updateContext:f}=h;s((()=>{new URLSearchParams(window.location.search).get("session_id")&&f({hasValidPurchase:void 0})}),[]);return o("div",{className:e.container,children:[t(p,{children:"Starta ditt abonnemang"}),t("div",{className:e.pricing,children:o("ul",{children:[t("li",{children:t(a,{size:400,children:"Kreditkort krävs inte"})}),t("li",{children:t(a,{size:400,children:"Gratis de 2 första månaderna"})}),t("li",{children:t(a,{size:400,children:"Därefter 89 kr/månad"})})]})}),t(m,{appearance:"primary",onClick:async()=>{try{u(!0),await g.redirectToCheckout(d("STRIPE_PRICE_ID"))}catch(o){console.error("Purchase error:",o)}finally{u(!1)}},disabled:j,children:j?t(c,{size:"tiny"}):"Starta abonnemang"}),t("div",{children:o(a,{size:400,children:["Har du redan ett abonnemang? Kanske har du loggat in med fel konto. ",t(n,{to:"/logout",children:"Logga ut"})," och sedan in igen för att komma igång."]})})]})};export{j as Purchase,j as default};
|
package/dist/esm/pages/Sales.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as
|
|
1
|
+
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{useState as i,useCallback as n,useEffect as s}from"react";import{makeStyles as r,tokens as a,shorthands as p,Image as c,mergeClasses as m}from"@fluentui/react-components";import{useNavigate as l}from"react-router-dom";import"../components/Markdown.js";import{Textarea as d}from"../components/Textarea.js";import{Button as u}from"../components/Button.js";import"../components/CompoundButton.js";import{Text as j}from"../components/Text.js";import"../components/Spinner.js";import{Input as h}from"../components/Input.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import{Dialog as g,DialogTitle as f,DialogContent as x,DialogActions as C}from"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as k}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Purchase.js";import"../components/Content.js";import{Page as b}from"../components/Page.js";import"./QrScan.js";import w from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import{QrCodeDialog as v}from"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const A=r({root:{display:"flex",flexDirection:"column",height:"100%",touchAction:"pan-y"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",color:a.colorNeutralForegroundOnBrand,...p.padding("10px","20px")},logo:{maxWidth:"100px",maxHeight:"50px",height:"auto",cursor:"pointer"},inputContainer:{display:"flex",justifyContent:"flex-end",alignItems:"center",maxWidth:"300px",width:"200px",paddingLeft:"10px"},dashboard:{display:"flex",justifyContent:"space-around",width:"100%",marginTop:"20px"},statBox:{...p.padding("10px"),...p.borderRadius("12px"),minWidth:"50px",textAlign:"center",color:"white"},buttonContainer:{display:"flex",flexDirection:"column",height:"100%",justifyContent:"center",gap:"30px",alignItems:"center",...p.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}}),_={opened:"#1a5614",not_home:"#f44336",sales:"#2196F3",call_back:"#FF9800"},y=()=>{const r=A(),{t:p}=w(),y=l(),[I,P]=i(""),[B,D]=i(),[F,S]=i({opened:0,not_home:0,sales:0,call_back:0}),[M,$]=i([]),[N,L]=i(!1),[U,H]=i(""),[O,R]=i(""),[T,z]=i(""),[E,G]=i(!1),[W,Q]=i(!1),[V,q]=i(!1),K={backgroundColor:k("APP_HEADER_COLOR")||a.colorBrandBackground},J=n((()=>new Promise((o=>{navigator.geolocation?navigator.geolocation.getCurrentPosition((t=>{const e=`#position (${t.coords.latitude},${t.coords.longitude})`;o(e)})):o(void 0)}))),[D]);s((()=>{window.Codicent.getDataMessages({codicent:k("APP_NAME"),tags:["sales_code"]}).then((o=>{o=o.filter((o=>"1"!==o.data.inactive)),$(o)})).catch(console.error),J()}),[]);const X=async()=>{if(!I)return;const o=["not_home","sales","call_back","opened"],t=new Date;t.setHours(0,0,0,0);const e={...F};for(const i of o){const o=await window.Codicent.getMessages({search:`#${i} #sales_code_${I}`,afterTimestamp:t,length:1e4});e[i]=o.filter((o=>o.content.includes(`#${i} `)&&o.content.includes(`#sales_code_${I}`))).length}S(e)},Y=async(o,t="")=>{const e=await J();console.log("Got position",e);const i=`@${k("APP_NAME")} #sales_code_${I} #${o} ${e||""} ${t.trim().length>0?"#comment ":""}${t}`.trim();await window.Codicent.postMessage({message:i}),X()};return o(b,{hideHeader:!0,children:t("div",{className:r.root,children:[o("div",{className:r.backButton,children:o(u,{appearance:"subtle",icon:"ArrowLeft24Regular",onClick:()=>y(-1),children:p("Tillbaka")})}),t("div",{className:r.header,style:K,children:[o(c,{src:O||k("APP_ICON_URL")||"https://via.placeholder.com/100",className:r.logo,onClick:()=>{O?q(!0):T&&Q(!0)}}),o("div",{className:r.inputContainer,children:o(h,{value:I,onChange:o=>P(o.target.value),onBlur:()=>{const o=M.find((o=>o.data.code===I));if(o)R(`https://codicent.com/app/GetImage?fileId=${o.fileId}&width=100`),z(o.data.link),G(!0),X();else{const o=M.find((o=>o.data.code2===I.toUpperCase()));o?(R(`https://codicent.com/app/GetImage?fileId=${o.fileIds&&o.fileIds.length>1?o.fileIds[1]:o.fileId}&width=100`),z(o.data.link2),G(!0),X()):(G(!1),alert(p("Fel försäljningskod!")))}},placeholder:p("Fyll i försäljningskod"),maxLength:16,size:"large"})})]}),E&&t(e,{children:[o("div",{className:r.dashboard,children:Object.keys(F).map((t=>{return o("div",{className:(e=t,m(r.statBox,r[e])),children:o(j,{weight:"bold",size:400,children:F[t]})},t);var e}))}),o("div",{className:r.buttonContainer,children:Object.entries(_).map((([t,e])=>o(u,{size:"large",className:r.actionButton,style:{backgroundColor:e,color:"white"},onClick:()=>{Y(t),"opened"===t&&L(!0),"sales"===t&&Q(!0)},children:t.charAt(0).toUpperCase()+t.slice(1).replace("_"," ")},t)))}),t(g,{open:N,children:[o(f,{children:p("Skriv in avvikelse")}),o(x,{children:o("div",{className:r.textAreaContainer,children:o(d,{value:U,onChange:o=>H(o.target.value),placeholder:p("Skriv din text här..."),rows:4,size:"large"})})}),o(C,{children:o(u,{appearance:"primary",onClick:()=>{Y("anomaly",`\n${U}`),L(!1),H("")},children:p("Spara")})})]}),t(g,{open:W,children:[o(f,{children:p("Godkännande")}),o(x,{children:p("Är kunden över 23 år?")}),t(C,{children:[o(u,{appearance:"primary",onClick:()=>window.open(T,"_blank"),children:p("OK")}),o(u,{appearance:"secondary",onClick:()=>Q(!1),children:p("Avbryt")})]})]})]}),o(v,{isOpen:V,onDismiss:()=>q(!1),imageUrl:O})]})})};export{y as Sales,y as default};
|
package/dist/esm/pages/Search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as t}from"react/jsx-runtime";import{useRef as e,useState as
|
|
1
|
+
import{jsx as o,jsxs as t}from"react/jsx-runtime";import{useRef as e,useState as i,useEffect as r}from"react";import{makeStyles as n,tokens as s}from"@fluentui/react-components";import p from"../components/Markdown.js";import"../components/Textarea.js";import{Button as m}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as a}from"../components/Title.js";import"../components/Spinner.js";import"../components/TextHeader.js";import c from"../components/TypingIndicator.js";import"../components/Dialog.js";import l from"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import d from"../hooks/useStateWithLocalStorage.js";import{CodicentService as u}from"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as j}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"react-router-dom";import"./Purchase.js";import"../components/Content.js";import{Page as g}from"../components/Page.js";import"./QrScan.js";import h from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import{useChat as f}from"../hooks/useChat.js";import{useTemplateVariables as x}from"../hooks/useTemplateVariables.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const A=n({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"}}),C=({state:n})=>{const C=A(),{t:w}=h(),{messages:S,isBotTyping:T,handleSend:v,newChat:_}=f(n.stateMachine),k=e(null),{service:b}=n;j("CHAT_BOT_BACKGROUND_COLOR")||s.colorBrandBackground2;const[B,I]=d(n.context.selectedApp+"_searchprompts",["Leta information","Vad kan jag göra?","Sök supportställe"]),[N,P]=i(),[y,O]=i(null),[D,M]=i(!1);x(b.uploadFile);r((()=>{T&&M(!0)}),[T]),r((()=>{_();const o=j("APP_CONFIG"),t=j("APP_BUTTONS");t?o.apps[t].questions&&I(o.apps[t].questions.map((o=>w(o)))):console.error("APP_BUTTONS is not defined in the configuration."),void 0!==j("ANONYMOUS_CODICENT")&&void 0!==j("ANONYMOUS_TOKEN")?(b.codicent=j("ANONYMOUS_CODICENT"),b.setToken(j("ANONYMOUS_TOKEN"))):console.error("Anonymous Codicent or Token is not defined in the configuration.")}),[_,b,I,w]),r((()=>{setTimeout((()=>{k.current?.scrollIntoView({behavior:"smooth"})}),10)}),[S]);const U=o=>{P(o),v(o)};return r((()=>{const o=S.filter((o=>"bot"===o.sender));let t=o.length>0?o[o.length-1]:null;O({...t,createdAt:new Date}),t&&M(!1)}),[S]),o(g,{hideHeader:!0,hideFooter:!0,children:t("div",{id:"search-container",className:C.chatContainer,style:{backgroundImage:`url(${j("CHAT_BACKGROUND_IMAGE_URL")})`},children:[o("div",{className:C.title,children:o(a,{children:w(j("APP_SEARCH_TITLE")||"Frågor")})}),t("div",{className:C.inputArea,children:[o(l,{noMemory:!0,defaultText:N,codicent:n.context.selectedApp,disableSend:T,onSend:U,rows:3,getImageUrl:u.getImageUrl,getFileInfo:o=>b.getFileInfo(o),selectAll:!0}),o("div",{className:C.promptButtons,children:B.length>0&&B.map(((t,e)=>o(m,{onClick:()=>U(t),size:"large",appearance:"primary",shape:"circular",children:t},`search-prompt-${e}`)))}),D&&o(c,{}),y&&!T&&t("div",{className:C.answerArea,children:[o("div",{ref:k}),o(p,{content:y.content})]})]})]})})};export{C as default};
|
package/dist/esm/pages/Snap.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as e,useRef as i,useMemo as n,useCallback as r,useEffect as s}from"react";import{makeStyles as a}from"@fluentui/react-components";import{useSearchParams as p,useNavigate as m}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{Text as c}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import{CombinedPlaceholderDialog as l}from"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import"../components/Content.js";import"../components/Page.js";import"./QrScan.js";import d from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import{useTemplateVariables as u}from"../hooks/useTemplateVariables.js";import"../hooks/useAppStyles.js";import
|
|
1
|
+
import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as e,useRef as i,useMemo as n,useCallback as r,useEffect as s}from"react";import{makeStyles as a}from"@fluentui/react-components";import{useSearchParams as p,useNavigate as m}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/CompoundButton.js";import{Text as c}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import{CombinedPlaceholderDialog as l}from"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import"../components/Content.js";import"../components/Page.js";import"./QrScan.js";import d from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import{useTemplateVariables as u}from"../hooks/useTemplateVariables.js";import"../hooks/useAppStyles.js";import g from"../components/MessageInput.js";import"../components/UploadFile.js";import h from"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const j=a({container:{position:"relative",height:"100vh",width:"100vw",overflow:"auto"},flashOverlay:{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"transparent",transition:"background-color 0.2s ease-out",pointerEvents:"none",zIndex:3},video:{position:"absolute",top:0,left:0,width:"100%",height:"100%",objectFit:"cover",zIndex:1},canvas:{display:"none"},bottomControls:{position:"fixed",bottom:"100px",width:"100%",display:"flex",justifyContent:"center",alignItems:"center",zIndex:2,boxSizing:"border-box"},controlContainer:{width:"100%",maxWidth:"600px",position:"relative"},sendButton:{position:"absolute",right:"10px",bottom:"10px",width:"50px",height:"50px",borderRadius:"50%",backgroundColor:"#0078d4",color:"white",border:"none",cursor:"pointer",display:"flex",justifyContent:"center",alignItems:"center"},topControls:{position:"fixed",top:"20px",width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",zIndex:2,padding:"0 10px",boxSizing:"border-box"},backButton:{width:"60px",height:"60px",borderRadius:"50%",backgroundColor:"transparent",color:"white",border:"none",cursor:"pointer"},input:{padding:"5px",width:"200px",fontSize:"larger",backgroundColor:"#fff8"},bottomButtons:{position:"fixed",bottom:"0px",width:"100%",display:"flex",justifyContent:"space-around",alignItems:"center",zIndex:2,boxSizing:"border-box"},iconButton:{width:"60px",height:"60px",borderRadius:"50%",backgroundColor:"transparent",color:"white",border:"none",cursor:"pointer"},centerText:{position:"fixed",top:"30%",left:"50%",transform:"translate(-50%, -50%)",zIndex:2,textAlign:"center"}}),w=({state:a,audio:w})=>{const f=j(),{service:x}=a,[b,v]=e(null),[C,y]=e(!0),k=i(null),A=i(null),[I]=p(),F=I.get("extra"),S=I.get("template"),[P,B]=e(""),[z]=e("log"),M=n((()=>new Audio("/audio/camera.mp3")),[]),[T,D]=e(!1),V=m(),{t:$}=d(),{extractTemplateVariables:E}=u(x.uploadFile),[H,L]=e(E(S||"")),[N,_]=e(H.length>0),[U,R]=e(""),[O,Q]=e(100),W=r((()=>H.map((o=>`#${o.value}`)).join(" ")),[H]);s((()=>{const o=W();R(`${F?" #"+F:""}${o.length>0?" "+o:""}`.trim())}),[H,F,W]),s((()=>{if(window.visualViewport){const o=()=>{const o=window.visualViewport?window.innerHeight-window.visualViewport.height:0;Q(o>150?o+20:100)};return window.visualViewport.addEventListener("resize",o),o(),()=>{window.visualViewport&&window.visualViewport.removeEventListener("resize",o)}}}),[]);const q=async o=>{try{const t=new FormData;t.append("file",o);const e=await x.uploadFile(o.name,t),i=W(),n=`${z?" #"+z:""}${F?" #"+F:""}${i.length>0?" "+i:""} #photo #file:${e}`;await x.sendMessage(n)}catch(o){alert($("Failed to send image:")+" "+o)}};return s((()=>()=>{b&&b.getTracks().forEach((o=>o.stop()))}),[b]),o("div",{className:f.container,children:[t("div",{className:f.flashOverlay,style:{backgroundColor:T?"#ffffff":"transparent"}}),t("video",{ref:k,autoPlay:!0,playsInline:!0,className:f.video}),t("canvas",{ref:A,width:"640",height:"480",className:f.canvas}),!b&&t(c,{weight:"semibold",size:400,className:f.centerText,children:$("Klicka på Byt kamera för att starta!")}),t("div",{className:f.bottomControls,style:{bottom:`${O}px`},children:t("div",{className:f.controlContainer,children:t(g,{onSend:async()=>{if(""===P.trim())return;const o=W(),t=`${z?" #"+z:""}${F?" #"+F:""}${o.length>0?" "+o:""} ${P}`;try{await x.sendMessage(t),B("")}catch(o){alert($("Failed to send message: ")+o)}},rows:4,onChange:B})})}),t("div",{className:f.bottomButtons,children:t(h,{audio:w,onHome:()=>V("/"),onTakePhoto:()=>{const o=A.current,t=k.current;if(o&&t){o.width=t.videoWidth,o.height=t.videoHeight;const e=o.getContext("2d");e&&(M.play(),D(!0),setTimeout((()=>D(!1)),100),e.drawImage(t,0,0,o.width,o.height),o.toBlob((o=>{if(o){const t=new File([o],"snapshot.png",{type:"image/png"});q(t)}})))}},onSwichCamera:()=>{y((o=>!o)),(async()=>{b&&b.getTracks().forEach((o=>o.stop()));const o={video:{facingMode:C?"user":"environment"},audio:!1};try{const t=await navigator.mediaDevices.getUserMedia(o);v(t),k.current&&(k.current.srcObject=t,k.current.play())}catch(o){console.error("Error accessing the camera: ",o),o instanceof Error?alert($("Error accessing the camera:")+" "+o.message):alert($("Error accessing the camera"))}})()},tag:U})}),t(l,{open:N,templateVariables:H,filePlaceholders:[],onTemplateVariablesChange:L,onFilePlaceholdersChange:()=>{},onConfirm:()=>_(!1),onCancel:()=>{_(!1),V(-1)},uploadFile:x.uploadFile})]})};export{w as default};
|