codicent-app-sdk 0.5.6 → 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/hooks/useUserRoles.d.ts +1 -1
- package/dist/cjs/hooks/useUserRoles.d.ts.map +1 -1
- package/dist/cjs/hooks/useUserRoles.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/hooks/useUserRoles.d.ts +1 -1
- package/dist/esm/hooks/useUserRoles.d.ts.map +1 -1
- package/dist/esm/hooks/useUserRoles.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 +800 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as t,jsx as i}from"react/jsx-runtime";import{makeStyles as o}from"@fluentui/react-components";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import{Text as r}from"./Text.js";import{Spinner as s}from"./Spinner.js";import"./TextHeader.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"@fluentui/react-icons";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import e from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"./audit/AuditCircularProgress.js";import"./audit/AuditHorizontalProgress.js";import"./audit/AuditRoleIndicator.js";import"./audit/AuditUnitSwitcher.js";import"./audit/AuditAnswerCell.js";import"./audit/AuditSearchBar.js";import"./audit/AuditFilterChips.js";import"./audit/AuditFilterBar.js";import"./audit/AuditGroupsProgress.js";import"./audit/AuditSummaryDashboard.js";import"./audit/AuditRequirementDialog.js";import"./audit/AuditUnitExportDialog.js";import"./audit/AuditUnitImportDialog.js";import"./audit/AuditBulkExportDialog.js";import"./audit/AuditBulkUploadDialog.js";import"./audit/AuditSortPresets.js";import"../pages/AppFrame.js";import"../pages/Canvas.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Menu.js";import"../pages/Log.js";import"../pages/Login.js";import"../pages/Home.js";import"../pages/ListPage.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"react-router-dom";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";const p=o({typingContainer:{display:"flex",gap:"8px"}}),a=()=>{const o=p(),{t:a}=e();return t("div",{className:o.typingContainer,children:[i(s,{size:"extra-small"}),i(r,{size:400,children:a("Tänker...")})]})};export{a as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{forwardRef as i,useState as o,useRef as r,useEffect as s,useImperativeHandle as e}from"react";import{makeStyles as a}from"@fluentui/react-components";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{isMobileDevice as p}from"../utils/device.js";import"exceljs";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import{Spinner as m}from"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"@fluentui/react-icons";import"../services/codicent.js";import"../pages/AppFrame.js";import"../pages/Canvas.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Menu.js";import"../pages/Log.js";import"../pages/Login.js";import"../pages/Home.js";import"../pages/ListPage.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"react-router-dom";import"../pages/Purchase.js";import"./Content.js";import"./Page.js";import"../pages/QrScan.js";import"../hooks/useLocalization.js";import"./FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"./MessageInput.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./AiInput.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"./audit/AuditCircularProgress.js";import"./audit/AuditHorizontalProgress.js";import"./audit/AuditRoleIndicator.js";import"./audit/AuditUnitSwitcher.js";import"./audit/AuditAnswerCell.js";import"./audit/AuditSearchBar.js";import"./audit/AuditFilterChips.js";import"./audit/AuditFilterBar.js";import"./audit/AuditGroupsProgress.js";import"./audit/AuditSummaryDashboard.js";import"./audit/AuditRequirementDialog.js";import"./audit/AuditUnitExportDialog.js";import"./audit/AuditUnitImportDialog.js";import"./audit/AuditBulkExportDialog.js";import"./audit/AuditBulkUploadDialog.js";import"./audit/AuditSortPresets.js";const l=a({imageUpload:{display:"none"},spinner:{marginTop:"10px"}}),n=i((({onFileUploaded:i,accept:a,capture:n,multiple:j=!1,onUploading:u,className:d,id:c,codicentService:g},h)=>{const f=l(),[A,C]=o(!1),w=r(null);s((()=>{u(A)}),[A,u]);const S=async(t,i)=>{const o=new FormData;o.append("file",i),C(!0);try{const i=await g.uploadFile(t,o);return C(!1),i}catch(i){return console.error("Upload failed for file:",t,i),C(!1),null}},v=()=>{w.current?.click()};e(h,(()=>({triggerUpload:v})));const y=n&&p();return t("div",{id:c,className:d,children:A?t(m,{"aria-label":"Uploading...",className:f.spinner}):t("input",{ref:w,type:"file",className:f.imageUpload,onChange:async()=>{try{const t=w.current;if(t&&t.files){const o=[];for(let i=0;i<t.files.length;i++){const r=t.files[i],s=r.name.split("\\").pop()||r.name,e=await S(s,r);e&&o.push(e)}o.length>0&&i(o)}}catch(t){console.error("Error uploading files:",t)}},accept:a,multiple:j,...y?{capture:n}:{}})})}));export{n as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as t,Fragment as i,jsx as o}from"react/jsx-runtime";import{useState as e}from"react";import{CombinedPlaceholderDialog as r}from"./CombinedPlaceholderDialog.js";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"@fluentui/react-components";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./ChatMessage.js";import"./Header.js";import"@fluentui/react-icons";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"./audit/AuditCircularProgress.js";import"./audit/AuditHorizontalProgress.js";import"./audit/AuditRoleIndicator.js";import"./audit/AuditUnitSwitcher.js";import"./audit/AuditAnswerCell.js";import"./audit/AuditSearchBar.js";import"./audit/AuditFilterChips.js";import"./audit/AuditFilterBar.js";import"./audit/AuditGroupsProgress.js";import"./audit/AuditSummaryDashboard.js";import"./audit/AuditRequirementDialog.js";import"./audit/AuditUnitExportDialog.js";import"./audit/AuditUnitImportDialog.js";import"./audit/AuditBulkExportDialog.js";import"./audit/AuditBulkUploadDialog.js";import"./audit/AuditSortPresets.js";import"../pages/AppFrame.js";import"../pages/Canvas.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Menu.js";import"../pages/Log.js";import"../pages/Login.js";import"../pages/Home.js";import"../pages/ListPage.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"react-router-dom";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import{useTemplateVariables as s}from"../hooks/useTemplateVariables.js";import"../hooks/useAppStyles.js";const a=({service:a,children:p})=>{const[m,l]=e(!1),[n,j]=e([]),[d,u]=e([]),[c,g]=e(null),{extractTemplateVariables:h,extractFilePlaceholders:f,replaceTemplateVariables:A,replaceFilePlaceholders:C}=s(a.uploadFile);return t(i,{children:[p((async t=>{g(t);const i=f(t),o=h(t);0!==i.length||0!==o.length?(u(i),j(o),l(!0)):window.location.href=t})),o(r,{open:m,templateVariables:n,filePlaceholders:d,onTemplateVariablesChange:j,onFilePlaceholdersChange:u,onConfirm:async()=>{if(c)try{let t=c;if(d.length>0){d.filter((t=>t.fileId)).length!==d.length&&console.warn("Some file placeholders are missing fileIds:",d.filter((t=>!t.fileId)).map((t=>t.description))),t=C(t,d)}n.length>0&&(t=A(t,n)),l(!1),window.location.href=t}catch(t){console.error("Failed to process URL:",t)}finally{g(null)}},onCancel:()=>{l(!1),g(null),j([]),u([])},uploadFile:a.uploadFile})]})};export{a as UrlProcessor,a as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as t,Fragment as i}from"react/jsx-runtime";import{useMemo as o}from"react";import{MicSparkle24Regular as r,MicSparkle24Filled as s}from"@fluentui/react-icons";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"@fluentui/react-components";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import e from"../utils/withWakeLock.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"exceljs";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./DataMessagePicker.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"./CookieBanner.js";import"./audit/AuditCircularProgress.js";import"./audit/AuditHorizontalProgress.js";import"./audit/AuditRoleIndicator.js";import"./audit/AuditUnitSwitcher.js";import"./audit/AuditAnswerCell.js";import"./audit/AuditSearchBar.js";import"./audit/AuditFilterChips.js";import"./audit/AuditFilterBar.js";import"./audit/AuditGroupsProgress.js";import"./audit/AuditSummaryDashboard.js";import"./audit/AuditRequirementDialog.js";import"./audit/AuditUnitExportDialog.js";import"./audit/AuditUnitImportDialog.js";import"./audit/AuditBulkExportDialog.js";import"./audit/AuditBulkUploadDialog.js";import"./audit/AuditSortPresets.js";import"../pages/AppFrame.js";import"../pages/Canvas.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Menu.js";import"../pages/Log.js";import"../pages/Login.js";import"../pages/Home.js";import"../pages/ListPage.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"react-router-dom";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import a from"../hooks/useAppStyles.js";const p=e(s),m=({voice:s,disabled:m,instructions:n,connectedIcon:j,disconnectedIcon:u,disabledIcon:l})=>{const{isConnected:d,connectConversation:c,disconnectConversation:g,updateInstructions:A}=s,{pointer:C}=a(),h=o((()=>j?e(j):p),[j]),f=u||r,w=async()=>{n&&A(n),await c()};if(m){if(null==l)return t(r,{});if("function"==typeof l){return t(l,{})}return t(i,{children:l})}return d?t(h,{onClick:g,className:C}):t(f,{onClick:w,className:C})};export{m as default};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline cell component for rendering and editing an audit answer.
|
|
3
|
+
* Supports both "checkbox" mode (toggle) and "enum" mode (dropdown select).
|
|
4
|
+
*/
|
|
5
|
+
import React from "react";
|
|
6
|
+
import type { AuditAnswer, ResolvedAuditConfig } from "../../types/audit";
|
|
7
|
+
interface AuditAnswerCellProps {
|
|
8
|
+
answer: AuditAnswer;
|
|
9
|
+
config: ResolvedAuditConfig;
|
|
10
|
+
readonly?: boolean;
|
|
11
|
+
onUpdate?: (requirementId: string, newAnswer: string) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const AuditAnswerCell: React.FC<AuditAnswerCellProps>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=AuditAnswerCell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditAnswerCell.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditAnswerCell.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAsB,MAAM,OAAO,CAAC;AAQ3C,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAQ1E,UAAU,oBAAoB;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAqBD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAsF1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e,jsxs as l}from"react/jsx-runtime";import{useCallback as n}from"react";import{makeStyles as i,tokens as r,Checkbox as t,Select as a,Tooltip as o}from"@fluentui/react-components";import{getEffectiveAnswerOptions as d,calculateAuditTimeRemaining as s,getAuditUrgencyColor as c,isAnswerCompliant as u}from"../../utils/auditUtils.js";const m=i({cell:{display:"flex",flexDirection:"column",gap:"4px"},expiryBadge:{display:"inline-block",fontSize:r.fontSizeBase100,fontWeight:r.fontWeightSemibold,padding:"2px 6px",borderRadius:r.borderRadiusMedium,whiteSpace:"nowrap"},select:{minWidth:"130px"}}),p=({answer:i,config:r,readonly:p=!1,onUpdate:h})=>{const b=m(),g=d(r),x=n(((e,l)=>{if(p||!h)return;const n=!0===l.checked?"yes":"";h(i.requirementId,n)}),[i.requirementId,p,h]),f=n((e=>{!p&&h&&h(i.requirementId,e.target.value)}),[i.requirementId,p,h]),v=s(i.validUntil),y=v?c(v):null,w="checkbox"===r.answerMode?e(t,{checked:u(i.answer,r),onChange:x,disabled:p,label:""}):l(a,{className:b.select,value:i.answer??"",onChange:f,disabled:p,size:"small",children:[e("option",{value:"",children:"—"}),g.map((l=>e("option",{value:l.value,children:l.label},l.value)))]}),k=y&&i.validUntil?e(o,{content:`Valid until: ${new Date(i.validUntil).toLocaleDateString()}`,relationship:"label",children:e("span",{className:b.expiryBadge,style:{backgroundColor:y.background,color:y.text,border:`1px solid ${y.border}`},children:v?.isExpired?"EXPIRED":v?.isUrgent?`${v.days}d`:null!=v?.months&&v.months<=6?`${v.months}mo`:null})}):null;return l("div",{className:b.cell,children:[w,k]})};export{p as AuditAnswerCell};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dialog to bulk-export audit packages for multiple units from the manager view.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
import type { AuditUnitStats, ResolvedAuditConfig } from "../../types/audit";
|
|
6
|
+
interface AuditBulkExportDialogProps {
|
|
7
|
+
open: boolean;
|
|
8
|
+
units: AuditUnitStats[];
|
|
9
|
+
config: ResolvedAuditConfig;
|
|
10
|
+
onDismiss: () => void;
|
|
11
|
+
/** Called with selected unitIds and format */
|
|
12
|
+
onExport: (unitIds: string[], format: "json" | "html") => Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export declare const AuditBulkExportDialog: React.FC<AuditBulkExportDialogProps>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=AuditBulkExportDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditBulkExportDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditBulkExportDialog.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAkBxC,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,UAAU,0BAA0B;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAqBD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA8FtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e,jsxs as n}from"react/jsx-runtime";import{useState as i}from"react";import{makeStyles as a,tokens as l,Dialog as t,DialogSurface as r,DialogBody as o,DialogTitle as c,DialogContent as s,Button as p,Text as d,Checkbox as m,Divider as u,RadioGroup as h,Radio as g,DialogActions as f,Spinner as x}from"@fluentui/react-components";const y=a({unitList:{display:"flex",flexDirection:"column",gap:"4px",maxHeight:"240px",overflowY:"auto",padding:`${l.spacingVerticalXS} 0`},formatGroup:{marginTop:l.spacingVerticalS},selectionActions:{display:"flex",gap:l.spacingHorizontalS,marginBottom:l.spacingVerticalXS}}),S=({open:a,units:S,config:v,onDismiss:C,onExport:k})=>{const z=y(),[b,w]=i(new Set(S.map((e=>e.unitId)))),[N,$]=i("html"),[A,I]=i(!1);return e(t,{open:a,onOpenChange:(e,n)=>{n.open||C()},children:e(r,{style:{maxWidth:"480px"},children:n(o,{children:[e(c,{children:"Bulk Export Audits"}),n(s,{children:[n("div",{className:z.selectionActions,children:[e(p,{size:"small",appearance:"subtle",onClick:()=>w(new Set(S.map((e=>e.unitId)))),children:"Select all"}),e(p,{size:"small",appearance:"subtle",onClick:()=>w(new Set),children:"Deselect all"})]}),n(d,{size:200,style:{color:l.colorNeutralForeground2},children:[b.size," of ",S.length," ",v.terminology.unit.toLowerCase(),"s selected"]}),e("div",{className:z.unitList,children:S.map((n=>e(m,{label:`${n.unitName}${n.marketArea?` (${n.marketArea})`:""}`,checked:b.has(n.unitId),onChange:()=>{return e=n.unitId,w((n=>{const i=new Set(n);return i.has(e)?i.delete(e):i.add(e),i}));var e}},n.unitId)))}),e(u,{style:{margin:`${l.spacingVerticalS} 0`}}),n(h,{className:z.formatGroup,value:N,onChange:(e,n)=>$(n.value),children:[e(g,{value:"html",label:"Offline HTML"}),e(g,{value:"json",label:"JSON"})]})]}),n(f,{children:[e(p,{appearance:"secondary",onClick:C,disabled:A,children:"Cancel"}),e(p,{appearance:"primary",onClick:async()=>{try{I(!0),await k([...b],N),C()}finally{I(!1)}},disabled:0===b.size||A,icon:A?e(x,{size:"tiny"}):void 0,children:A?"Exporting…":`Export ${b.size}`})]})]})})})};export{S as AuditBulkExportDialog};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dialog for bulk uploading requirements from a CSV/JSON file.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
interface AuditBulkUploadDialogProps {
|
|
6
|
+
open: boolean;
|
|
7
|
+
onDismiss: () => void;
|
|
8
|
+
/** Called with raw file text content and detected format */
|
|
9
|
+
onUpload: (content: string, format: "csv" | "json") => Promise<void>;
|
|
10
|
+
title?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const AuditBulkUploadDialog: React.FC<AuditBulkUploadDialogProps>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=AuditBulkUploadDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditBulkUploadDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditBulkUploadDialog.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAA2B,MAAM,OAAO,CAAC;AAkBhD,UAAU,0BAA0B;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6BD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAoHtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useState as n,useRef as o}from"react";import{makeStyles as l,tokens as a,Dialog as i,DialogSurface as t,DialogBody as c,DialogTitle as d,DialogContent as s,Text as p,MessageBar as u,MessageBarBody as f,DialogActions as m,Button as h,Spinner as g}from"@fluentui/react-components";import{ArrowUploadRegular as S}from"@fluentui/react-icons";const N=l({dropZone:{border:`2px dashed ${a.colorNeutralStroke1}`,borderRadius:a.borderRadiusMedium,padding:a.spacingVerticalXL,textAlign:"center",cursor:"pointer",backgroundColor:a.colorNeutralBackground2,":hover":{backgroundColor:a.colorNeutralBackground3}},hidden:{display:"none"},hint:{fontSize:a.fontSizeBase200,color:a.colorNeutralForeground3,marginTop:a.spacingVerticalXS},fileName:{marginTop:a.spacingVerticalS,fontSize:a.fontSizeBase200,color:a.colorNeutralForeground2}}),y=({open:l,onDismiss:y,onUpload:k,title:v="Bulk Upload Requirements",description:C})=>{const b=N(),[x,V]=n(null),[z,B]=n(null),[D,O]=n(null),[T,F]=n(null),[U,j]=n(!1),R=o(null),w=e=>{V(e.name),F(null),B(null),O(null);let r=null;if(e.name.endsWith(".csv"))r="csv";else{if(!e.name.endsWith(".json"))return void F("Only CSV and JSON files are supported.");r="json"}const n=new FileReader;n.onload=e=>{B(e.target?.result),O(r)},n.onerror=()=>F("Failed to read file."),n.readAsText(e)};return e(i,{open:l,onOpenChange:(e,r)=>{r.open||y()},children:e(t,{style:{maxWidth:"440px"},children:r(c,{children:[e(d,{children:v}),r(s,{children:[C&&e(p,{style:{marginBottom:a.spacingVerticalS,display:"block"},children:C}),r("div",{className:b.dropZone,onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault(),e.dataTransfer.files[0]&&w(e.dataTransfer.files[0])},onClick:()=>R.current?.click(),children:[e(S,{style:{fontSize:32,color:a.colorNeutralForeground3}}),e("br",{}),e(p,{children:"Drop a CSV or JSON file here, or click to browse"}),e("input",{ref:R,type:"file",accept:".csv,.json",className:b.hidden,onChange:e=>{e.target.files?.[0]&&w(e.target.files[0]),e.target.value=""}})]}),x&&r(p,{className:b.fileName,children:[x," ",z?"✓":""]}),e(p,{className:b.hint,children:"Supported formats: CSV, JSON"}),T&&e(u,{intent:"error",style:{marginTop:8},children:e(f,{children:T})})]}),r(m,{children:[e(h,{appearance:"secondary",onClick:y,disabled:U,children:"Cancel"}),e(h,{appearance:"primary",onClick:async()=>{if(z&&D)try{j(!0),await k(z,D),y()}catch(e){F(e instanceof Error?e.message:"Upload failed.")}finally{j(!1)}},disabled:!z||U,icon:U?e(g,{size:"tiny"}):void 0,children:U?"Uploading…":"Upload"})]})]})})})};export{y as AuditBulkUploadDialog};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Circular progress ring showing audit compliance rate.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
interface AuditCircularProgressProps {
|
|
6
|
+
/** 0–100 */
|
|
7
|
+
value: number;
|
|
8
|
+
/** Display size in pixels */
|
|
9
|
+
size?: number;
|
|
10
|
+
/** Show numeric percentage label in center */
|
|
11
|
+
showLabel?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare const AuditCircularProgress: React.FC<AuditCircularProgressProps>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=AuditCircularProgress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditCircularProgress.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditCircularProgress.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,0BAA0B;IAClC,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAmBD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA+CtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{makeStyles as o,tokens as r,Text as l}from"@fluentui/react-components";const i=o({root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative"},label:{position:"absolute",fontWeight:r.fontWeightSemibold,fontSize:r.fontSizeBase200,color:r.colorNeutralForeground1}}),n=({value:o,size:n=64,showLabel:s=!0})=>{const a=i(),c=(n-8)/2,h=2*Math.PI*c,d=Math.max(0,Math.min(100,o)),f=h-d/100*h;let u=r.colorPaletteRedBackground3;return d>=100?u=r.colorPaletteGreenBackground3:d>=75&&(u=r.colorPaletteYellowBackground3),e("div",{className:a.root,style:{width:n,height:n},children:[e("svg",{width:n,height:n,style:{transform:"rotate(-90deg)"},children:[t("circle",{cx:n/2,cy:n/2,r:c,stroke:r.colorNeutralBackground4,strokeWidth:8,fill:"none"}),t("circle",{cx:n/2,cy:n/2,r:c,stroke:u,strokeWidth:8,fill:"none",strokeDasharray:h,strokeDashoffset:f,strokeLinecap:"round",style:{transition:"stroke-dashoffset 0.5s ease"}})]}),s&&e(l,{className:a.label,size:200,children:[d,"%"]})]})};export{n as AuditCircularProgress};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collapsible filter panel with group, category, and compliance status dropdowns.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
import type { AuditFilterState, ResolvedAuditConfig } from "../../types/audit";
|
|
6
|
+
interface AuditFilterBarProps {
|
|
7
|
+
filters: AuditFilterState;
|
|
8
|
+
availableGroups: string[];
|
|
9
|
+
availableCategories: string[];
|
|
10
|
+
config: ResolvedAuditConfig;
|
|
11
|
+
onUpdateFilters: (patch: Partial<AuditFilterState>) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const AuditFilterBar: React.FC<AuditFilterBarProps>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=AuditFilterBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditFilterBar.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditFilterBar.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAaxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG/E,UAAU,mBAAmB;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC7D;AAkCD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAyIxD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as i,Fragment as a}from"react/jsx-runtime";import{makeStyles as c,tokens as s,Popover as t,PopoverTrigger as n,Button as l,PopoverSurface as o,Text as r,Checkbox as d,Divider as m}from"@fluentui/react-components";import{FilterRegular as h}from"@fluentui/react-icons";import{getEffectiveAnswerOptions as u}from"../../utils/auditUtils.js";const p=c({surface:{display:"flex",flexDirection:"column",gap:s.spacingVerticalS,padding:s.spacingVerticalM,minWidth:"240px"},section:{display:"flex",flexDirection:"column",gap:"4px"},sectionLabel:{fontWeight:s.fontWeightSemibold,fontSize:s.fontSizeBase200,color:s.colorNeutralForeground2,textTransform:"uppercase",letterSpacing:"0.06em"},checkboxGroup:{display:"flex",flexDirection:"column",gap:"2px",paddingLeft:s.spacingHorizontalS}});function g(e,i){return e.includes(i)?e.filter((e=>e!==i)):[...e,i]}const f=({filters:c,availableGroups:s,availableCategories:f,config:b,onUpdateFilters:x})=>{const v=p(),N=u(b),S=c.groups.length+c.categories.length+c.complianceStatuses.length+c.validityStatuses.length+(c.withComments?1:0)+(c.withPhotos?1:0);return e(t,{trapFocus:!0,positioning:"below-start",children:[i(n,{disableButtonEnhancement:!0,children:e(l,{icon:i(h,{}),appearance:S>0?"primary":"secondary",size:"medium",children:["Filter",S>0?` (${S})`:""]})}),i(o,{children:e("div",{className:v.surface,children:[s.length>0&&e("div",{className:v.section,children:[i(r,{className:v.sectionLabel,children:b.terminology.group}),i("div",{className:v.checkboxGroup,children:s.map((e=>i(d,{label:e,checked:c.groups.includes(e),onChange:()=>x({groups:g(c.groups,e)}),size:"medium"},e)))})]}),f.length>0&&e(a,{children:[i(m,{}),e("div",{className:v.section,children:[i(r,{className:v.sectionLabel,children:b.terminology.category}),i("div",{className:v.checkboxGroup,children:f.map((e=>i(d,{label:e,checked:c.categories.includes(e),onChange:()=>x({categories:g(c.categories,e)}),size:"medium"},e)))})]})]}),i(m,{}),e("div",{className:v.section,children:[i(r,{className:v.sectionLabel,children:"Status"}),i("div",{className:v.checkboxGroup,children:N.map((e=>i(d,{label:e.label,checked:c.complianceStatuses.includes(e.value),onChange:()=>x({complianceStatuses:g(c.complianceStatuses,e.value)}),size:"medium"},e.value)))})]}),i(m,{}),e("div",{className:v.section,children:[i(r,{className:v.sectionLabel,children:"Validity"}),i("div",{className:v.checkboxGroup,children:["valid","expiring-soon","urgent","expired"].map((e=>i(d,{label:"valid"===e?"Valid":"expiring-soon"===e?"Expiring soon":"urgent"===e?"Urgent (≤30 days)":"Expired",checked:c.validityStatuses.includes(e),onChange:()=>x({validityStatuses:g(c.validityStatuses,e)}),size:"medium"},e)))})]}),i(m,{}),e("div",{className:v.checkboxGroup,children:[i(d,{label:"Has comments",checked:c.withComments,onChange:(e,i)=>x({withComments:!0===i.checked})}),i(d,{label:"Has photos",checked:c.withPhotos,onChange:(e,i)=>x({withPhotos:!0===i.checked})})]})]})})]})};export{f as AuditFilterBar};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chip strip showing currently active filter tags with remove buttons.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
import type { AuditFilterState, ResolvedAuditConfig } from "../../types/audit";
|
|
6
|
+
interface AuditFilterChipsProps {
|
|
7
|
+
filters: AuditFilterState;
|
|
8
|
+
config: ResolvedAuditConfig;
|
|
9
|
+
onRemoveGroup?: (group: string) => void;
|
|
10
|
+
onRemoveCategory?: (category: string) => void;
|
|
11
|
+
onRemoveComplianceStatus?: (status: string) => void;
|
|
12
|
+
onRemoveValidityStatus?: (status: string) => void;
|
|
13
|
+
onClearAll: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const AuditFilterChips: React.FC<AuditFilterChipsProps>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=AuditFilterChips.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditFilterChips.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditFilterChips.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,UAAU,qBAAqB;IAC7B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAcD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA0F5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as i}from"react/jsx-runtime";import{makeStyles as a,tokens as l,TagGroup as s,Tag as o,Button as r}from"@fluentui/react-components";import{DismissRegular as t}from"@fluentui/react-icons";const c=a({root:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:l.spacingHorizontalXS},clearBtn:{marginLeft:l.spacingHorizontalS}}),n=({filters:a,config:l,onRemoveGroup:n,onRemoveCategory:m,onRemoveComplianceStatus:p,onRemoveValidityStatus:u,onClearAll:g})=>{const d=c();return a.groups.length>0||a.categories.length>0||a.complianceStatuses.length>0||a.validityStatuses.length>0?e("div",{className:d.root,children:[e(s,{onDismiss:(e,i)=>{const[a,l]=i.value.split(":",2);"group"===a&&n?n(l):"category"===a&&m?m(l):"compliance"===a&&p?p(l):"validity"===a&&u&&u(l)},"aria-label":"Active filters",children:[a.groups.map((a=>e(o,{value:`group:${a}`,dismissible:!0,dismissIcon:i(t,{}),shape:"circular",size:"small",children:[l.terminology.group,": ",a]},`group:${a}`))),a.categories.map((a=>e(o,{value:`category:${a}`,dismissible:!0,dismissIcon:i(t,{}),shape:"circular",size:"small",children:[l.terminology.category,": ",a]},`category:${a}`))),a.complianceStatuses.map((e=>i(o,{value:`compliance:${e}`,dismissible:!0,dismissIcon:i(t,{}),shape:"circular",size:"small",children:e},`compliance:${e}`))),a.validityStatuses.map((e=>i(o,{value:`validity:${e}`,dismissible:!0,dismissIcon:i(t,{}),shape:"circular",size:"small",children:e},`validity:${e}`)))]}),i(r,{size:"small",appearance:"subtle",className:d.clearBtn,onClick:g,children:"Clear all"})]}):null};export{n as AuditFilterChips};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Breakdown of compliance progress per group (e.g. per Standard or Area).
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
import type { AuditAnswer, ResolvedAuditConfig } from "../../types/audit";
|
|
6
|
+
interface AuditGroupsProgressProps {
|
|
7
|
+
answers: AuditAnswer[];
|
|
8
|
+
config: ResolvedAuditConfig;
|
|
9
|
+
}
|
|
10
|
+
export declare const AuditGroupsProgress: React.FC<AuditGroupsProgressProps>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=AuditGroupsProgress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditGroupsProgress.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditGroupsProgress.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI1E,UAAU,wBAAwB;IAChC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAoBD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAwClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as t,jsx as o}from"react/jsx-runtime";import{useMemo as e}from"react";import{makeStyles as r,tokens as a,Text as n}from"@fluentui/react-components";import{isAnswerCompliant as i}from"../../utils/auditUtils.js";import{AuditHorizontalProgress as l}from"./AuditHorizontalProgress.js";const s=r({root:{display:"flex",flexDirection:"column",gap:a.spacingVerticalS},groupRow:{display:"flex",flexDirection:"column",gap:"4px"},header:{fontWeight:a.fontWeightSemibold,fontSize:a.fontSizeBase300,marginBottom:a.spacingVerticalXS}}),m=({answers:r,config:a})=>{const m=s(),c=e((()=>{const t=new Map;for(const o of r){const e=o.group||"(no group)",r=t.get(e)??{total:0,compliant:0};r.total++,i(o.answer,a)&&r.compliant++,t.set(e,r)}return[...t.entries()].map((([t,o])=>({name:t,...o,rate:o.total>0?Math.round(o.compliant/o.total*100):0}))).sort(((t,o)=>t.rate-o.rate))}),[r,a]);return 0===c.length?null:t("div",{className:m.root,children:[t(n,{className:m.header,children:[a.terminology.group," Progress"]}),c.map((t=>o("div",{className:m.groupRow,children:o(l,{value:t.rate,label:t.name,sublabel:`${t.compliant}/${t.total}`})},t.name)))]})};export{m as AuditGroupsProgress};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Horizontal progress bar for showing group / overall compliance progress.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
interface AuditHorizontalProgressProps {
|
|
6
|
+
/** 0–100 */
|
|
7
|
+
value: number;
|
|
8
|
+
/** Optional label shown above */
|
|
9
|
+
label?: string;
|
|
10
|
+
/** Optional sub-label (e.g. "12/16") shown below */
|
|
11
|
+
sublabel?: string;
|
|
12
|
+
height?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare const AuditHorizontalProgress: React.FC<AuditHorizontalProgressProps>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=AuditHorizontalProgress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditHorizontalProgress.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditHorizontalProgress.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,4BAA4B;IACpC,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA0BD,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAyC1E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as r}from"react/jsx-runtime";import{makeStyles as l,tokens as o,Text as a}from"@fluentui/react-components";const t=l({root:{display:"flex",flexDirection:"column",gap:"4px",width:"100%"},track:{width:"100%",backgroundColor:o.colorNeutralBackground4,borderRadius:o.borderRadiusCircular,overflow:"hidden"},fill:{borderRadius:o.borderRadiusCircular,transition:"width 0.4s ease"},header:{display:"flex",justifyContent:"space-between",alignItems:"baseline"}}),i=({value:l,label:i,sublabel:d,height:c=8})=>{const s=t(),n=Math.max(0,Math.min(100,l));let u=o.colorPaletteRedBackground3;return n>=100?u=o.colorPaletteGreenBackground3:n>=75&&(u=o.colorPaletteYellowBackground3),e("div",{className:s.root,children:[(i||d)&&e("div",{className:s.header,children:[i&&r(a,{size:200,weight:"semibold",children:i}),d&&r(a,{size:100,style:{color:o.colorNeutralForeground3},children:d})]}),r("div",{className:s.track,style:{height:c},children:r("div",{className:s.fill,style:{width:`${n}%`,height:c,backgroundColor:u}})})]})};export{i as AuditHorizontalProgress};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detail dialog for a single audit requirement — shows description, answer, comment, photos, and expiry.
|
|
3
|
+
* Both view-only and edit modes.
|
|
4
|
+
*/
|
|
5
|
+
import React from "react";
|
|
6
|
+
import type { AuditAnswer, ResolvedAuditConfig } from "../../types/audit";
|
|
7
|
+
export interface AuditRequirementDialogProps {
|
|
8
|
+
open: boolean;
|
|
9
|
+
answer: AuditAnswer | null;
|
|
10
|
+
config: ResolvedAuditConfig;
|
|
11
|
+
readonly?: boolean;
|
|
12
|
+
onDismiss: () => void;
|
|
13
|
+
onSave?: (requirementId: string, answerValue: string, comment: string, photos: string, complianceDate?: string) => Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export declare const AuditRequirementDialog: React.FC<AuditRequirementDialogProps>;
|
|
16
|
+
//# sourceMappingURL=AuditRequirementDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditRequirementDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditRequirementDialog.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAgC,MAAM,OAAO,CAAC;AAkBrD,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAQ1E,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,CACP,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AA6BD,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAwKxE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e,jsxs as i}from"react/jsx-runtime";import l,{useState as n,useCallback as r}from"react";import{makeStyles as a,tokens as o,Dialog as c,DialogSurface as t,DialogBody as s,DialogTitle as d,Button as p,DialogContent as m,Badge as h,Text as u,Divider as f,Field as v,Textarea as g,DialogActions as w}from"@fluentui/react-components";import{DismissFilled as y}from"@fluentui/react-icons";import{AuditAnswerCell as C}from"./AuditAnswerCell.js";import{calculateAuditTimeRemaining as x,isAnswerCompliant as S,formatValidityPeriod as z}from"../../utils/auditUtils.js";const b=a({content:{display:"flex",flexDirection:"column",gap:o.spacingVerticalM},metaRow:{display:"flex",flexWrap:"wrap",gap:o.spacingHorizontalS,alignItems:"center"},description:{color:o.colorNeutralForeground2,whiteSpace:"pre-wrap"},answerSection:{display:"flex",flexDirection:"column",gap:o.spacingVerticalXS},validityInfo:{fontSize:o.fontSizeBase200,color:o.colorNeutralForeground3}}),N=({open:a,answer:o,config:N,readonly:U=!1,onDismiss:D,onSave:I})=>{const R=b(),[A,E]=n(""),[L,P]=n(""),[V,j]=n(""),[k,q]=n(!1);l.useEffect((()=>{a&&o&&(E(o.answer??""),P(o.comment??""),j(o.photos??""))}),[a,o]);const F=r((async()=>{if(o&&I)try{q(!0),await I(o.requirementId,A,L,V),D()}finally{q(!1)}}),[o,A,L,V,I,D]);if(!o)return null;const M=x(o.validUntil),W=S(A,N);return e(c,{open:a,onOpenChange:(e,i)=>{i.open||D()},children:e(t,{style:{maxWidth:"560px"},children:i(s,{children:[e(d,{action:e(p,{appearance:"subtle",icon:e(y,{}),onClick:D,"aria-label":"Close"}),children:o.title}),e(m,{children:i("div",{className:R.content,children:[i("div",{className:R.metaRow,children:[o.group&&e(h,{appearance:"tint",color:"informative",size:"medium",children:o.group}),o.category&&e(h,{appearance:"tint",color:"subtle",size:"medium",children:o.category}),null!=o.level&&o.level>0&&i(h,{appearance:"outline",size:"medium",children:["Level ",o.level]})]}),o.description&&e(u,{className:R.description,children:o.description}),e(f,{}),i("div",{className:R.answerSection,children:[e(v,{label:"Answer",required:!0,children:U?i(u,{children:[A||"—"," ",e(h,W?{color:"success",size:"small",children:"Compliant"}:{color:"danger",size:"small",children:"Non-compliant"})]}):e(C,{answer:{...o,answer:A},config:N,onUpdate:(e,i)=>E(i)})}),i(u,{className:R.validityInfo,children:["Validity period: ",z(o.validityPeriodMonths),o.validUntil&&` · Valid until: ${new Date(o.validUntil).toLocaleDateString()}`,M?.isExpired&&" · EXPIRED"]})]}),!U&&e(v,{label:"Comment",children:e(g,{value:L,onChange:(e,i)=>P(i.value),resize:"vertical",rows:3,placeholder:"Add a comment…"})}),U&&L&&e(v,{label:"Comment",children:e(u,{children:L})}),!U&&e(v,{label:"Photo URL(s)",hint:"Comma-separated URLs",children:e(g,{value:V,onChange:(e,i)=>j(i.value),resize:"vertical",rows:2,placeholder:"https://…"})}),U&&V&&e(v,{label:"Photos",children:e(u,{children:V})})]})}),i(w,{children:[e(p,{appearance:"secondary",onClick:D,children:U?"Close":"Cancel"}),!U&&e(p,{appearance:"primary",onClick:F,disabled:k,children:k?"Saving…":"Save"})]})]})})})};export{N as AuditRequirementDialog};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Displays the current user's audit role (Admin / Manager / Auditor) as a badge.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
import type { AuditRole, ResolvedAuditConfig } from "../../types/audit";
|
|
6
|
+
interface AuditRoleIndicatorProps {
|
|
7
|
+
role: AuditRole;
|
|
8
|
+
config: ResolvedAuditConfig;
|
|
9
|
+
showLabel?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const AuditRoleIndicator: React.FC<AuditRoleIndicatorProps>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=AuditRoleIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditRoleIndicator.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditRoleIndicator.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExE,UAAU,uBAAuB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAsBD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAyBhE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{makeStyles as e,tokens as n,Badge as o}from"@fluentui/react-components";import{ShieldPersonFilled as a,PersonStarFilled as i,PersonFilled as t}from"@fluentui/react-icons";const l=e({root:{display:"inline-flex",alignItems:"center",gap:n.spacingHorizontalXS}}),c={Admin:r(a,{}),Manager:r(i,{}),Auditor:r(t,{})},m={Admin:"brand",Manager:"informative",Auditor:"subtle"},s=({role:e,config:n,showLabel:a=!0})=>{const i=l(),t="Admin"===e?n.roleLabels.admin:"Manager"===e?n.roleLabels.manager:n.roleLabels.auditor;return r("span",{className:i.root,children:r(o,{color:m[e],icon:c[e],appearance:"tint",children:a?t:null})})};export{s as AuditRoleIndicator};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search bar with debounced input for filtering audit requirements.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
interface AuditSearchBarProps {
|
|
6
|
+
value: string;
|
|
7
|
+
onChange: (value: string) => void;
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
debounceMs?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const AuditSearchBar: React.FC<AuditSearchBarProps>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=AuditSearchBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditSearchBar.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditSearchBar.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAgC,MAAM,OAAO,CAAC;AAMrD,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AASD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmCxD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import r,{useState as t,useCallback as o}from"react";import{makeStyles as c,SearchBox as n}from"@fluentui/react-components";const u=c({root:{width:"100%",maxWidth:"400px"}}),a=({value:c,onChange:a,placeholder:m="Search…",debounceMs:l=200})=>{const i=u(),[s,p]=t(c),h=r.useRef(null),d=o(((e,r)=>{const t=r.value;p(t),h.current&&clearTimeout(h.current),h.current=setTimeout((()=>a(t)),l)}),[a,l]);return o((()=>{p(""),h.current&&clearTimeout(h.current),a("")}),[a]),e(n,{className:i.root,value:s,onChange:d,placeholder:m,size:"medium"})};export{a as AuditSearchBar};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sort preset buttons for rapidly ordering audits by compliance, expiry, etc.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
export type AuditSortPreset = "compliance-asc" | "compliance-desc" | "expiry-asc" | "expiry-urgent";
|
|
6
|
+
interface AuditSortPresetsProps {
|
|
7
|
+
active: AuditSortPreset | null;
|
|
8
|
+
onSelect: (preset: AuditSortPreset | null) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const AuditSortPresets: React.FC<AuditSortPresetsProps>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=AuditSortPresets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditSortPresets.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditSortPresets.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,YAAY,GAAG,eAAe,CAAC;AAEpG,UAAU,qBAAqB;IAC7B,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;CACpD;AAkBD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAkB5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{makeStyles as l,tokens as a,Button as i}from"@fluentui/react-components";import{ArrowSortUpRegular as r,ArrowSortDownRegular as n,ClockRegular as o,ErrorCircleRegular as c}from"@fluentui/react-icons";const t=[{value:"compliance-asc",label:"Worst first",icon:e(r,{})},{value:"compliance-desc",label:"Best first",icon:e(n,{})},{value:"expiry-asc",label:"Expiring soon",icon:e(o,{})},{value:"expiry-urgent",label:"Urgent",icon:e(c,{})}],s=l({root:{display:"flex",flexWrap:"wrap",gap:a.spacingHorizontalXS,alignItems:"center"}}),p=({active:l,onSelect:a})=>{const r=s();return e("div",{className:r.root,children:t.map((r=>e(i,{size:"small",appearance:l===r.value?"primary":"subtle",icon:r.icon,onClick:()=>a(l===r.value?null:r.value),children:r.label},r.value)))})};export{p as AuditSortPresets};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Top-level dashboard widget showing key audit summary numbers in card tiles.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
import type { AuditAnswer, ResolvedAuditConfig } from "../../types/audit";
|
|
6
|
+
interface AuditSummaryDashboardProps {
|
|
7
|
+
answers: AuditAnswer[];
|
|
8
|
+
config: ResolvedAuditConfig;
|
|
9
|
+
unitName?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const AuditSummaryDashboard: React.FC<AuditSummaryDashboardProps>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=AuditSummaryDashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditSummaryDashboard.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditSummaryDashboard.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAkB,MAAM,OAAO,CAAC;AASvC,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAQ1E,UAAU,0BAA0B;IAClC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAkCD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA8EtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as i}from"react/jsx-runtime";import{useMemo as l}from"react";import{makeStyles as r,tokens as a,Card as n,Text as t,Badge as o}from"@fluentui/react-components";import{getAuditComplianceRate as c,isAnswerCompliant as s,calculateAuditTimeRemaining as d}from"../../utils/auditUtils.js";import{AuditCircularProgress as m}from"./AuditCircularProgress.js";const p=r({root:{display:"flex",flexWrap:"wrap",gap:a.spacingHorizontalM,alignItems:"flex-start"},card:{flex:"1",minWidth:"140px",maxWidth:"200px"},cardBody:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:a.spacingVerticalXS,padding:a.spacingVerticalS},bigNumber:{fontSize:a.fontSizeHero800,fontWeight:a.fontWeightBold,lineHeight:"1"},label:{fontSize:a.fontSizeBase200,color:a.colorNeutralForeground2,textAlign:"center"}}),g=({answers:r,config:g,unitName:f})=>{const h=p(),x=l((()=>{const e=r.length,i=c(r,g),l=r.filter((e=>s(e.answer,g))).length;let a=0,n=0;for(const e of r){if(!e.validUntil)continue;const i=d(e.validUntil);i?.isExpired?n++:(i?.isUrgent||i?.isExpiringSoon)&&a++}return{total:e,compliant:l,complianceRate:i,expiring:a,expired:n}}),[r,g]);return e("div",{className:h.root,children:[i(n,{className:h.card,children:e("div",{className:h.cardBody,children:[i(m,{value:x.complianceRate,size:72}),i(t,{className:h.label,children:f??`${g.terminology.unit} Compliance`})]})}),i(n,{className:h.card,children:e("div",{className:h.cardBody,children:[i(t,{className:h.bigNumber,style:{color:a.colorPaletteGreenForeground1},children:x.compliant}),i(t,{className:h.label,children:"Compliant"})]})}),i(n,{className:h.card,children:e("div",{className:h.cardBody,children:[i(t,{className:h.bigNumber,style:{color:a.colorPaletteRedForeground1},children:x.total-x.compliant}),i(t,{className:h.label,children:"Non-compliant"})]})}),(x.expiring>0||x.expired>0)&&i(n,{className:h.card,children:e("div",{className:h.cardBody,children:[e("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[x.expired>0&&e(o,{color:"danger",size:"large",children:[x.expired," exp."]}),x.expiring>0&&e(o,{color:"warning",size:"large",children:[x.expiring," soon"]})]}),i(t,{className:h.label,children:"Validity"})]})})]})};export{g as AuditSummaryDashboard};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dialog to export a single unit's audit package (JSON or offline HTML).
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
import type { AuditAnswer, AuditRequirement, ResolvedAuditConfig } from "../../types/audit";
|
|
6
|
+
interface AuditUnitExportDialogProps {
|
|
7
|
+
open: boolean;
|
|
8
|
+
unitId: string;
|
|
9
|
+
unitName: string;
|
|
10
|
+
unitData: Record<string, unknown> | null;
|
|
11
|
+
requirements: AuditRequirement[];
|
|
12
|
+
answers: AuditAnswer[];
|
|
13
|
+
config: ResolvedAuditConfig;
|
|
14
|
+
onDismiss: () => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const AuditUnitExportDialog: React.FC<AuditUnitExportDialogProps>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=AuditUnitExportDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditUnitExportDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditUnitExportDialog.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAexC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAO5F,UAAU,0BAA0B;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAaD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA8EtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e,jsxs as n}from"react/jsx-runtime";import{useState as t}from"react";import{makeStyles as r,tokens as o,Dialog as i,DialogSurface as a,DialogBody as l,DialogTitle as c,DialogContent as s,Text as p,RadioGroup as d,Radio as m,DialogActions as u,Button as h}from"@fluentui/react-components";import{buildAuditPackage as f,exportAuditPackageAsJson as g,exportAuditPackageAsHtml as x}from"../../utils/auditExport.js";const S=r({description:{color:o.colorNeutralForeground2,fontSize:o.fontSizeBase200,marginBottom:o.spacingVerticalS},radioGroup:{marginTop:o.spacingVerticalS}}),j=({open:r,unitId:o,unitName:j,unitData:b,requirements:O,answers:v,config:w,onDismiss:C})=>{const E=S(),[L,N]=t("html");return e(i,{open:r,onOpenChange:(e,n)=>{n.open||C()},children:e(a,{style:{maxWidth:"420px"},children:n(l,{children:[e(c,{children:"Export Audit"}),n(s,{children:[n(p,{className:E.description,children:["Export audit data for ",e("strong",{children:j})," as a portable file."]}),n(d,{className:E.radioGroup,value:L,onChange:(e,n)=>N(n.value),children:[e(m,{value:"html",label:"Offline HTML (self-contained, can be filled without internet)"}),e(m,{value:"json",label:"JSON (for import or archiving)"})]})]}),n(u,{children:[e(h,{appearance:"secondary",onClick:C,children:"Cancel"}),e(h,{appearance:"primary",onClick:()=>{const e=f({id:o,name:j,...b},O,v,w);let n,t,r;"json"===L?(n=g(e),t=`audit_${o}_${(new Date).toISOString().slice(0,10)}.json`,r="application/json"):(n=x(e),t=`audit_${o}_${(new Date).toISOString().slice(0,10)}.html`,r="text/html");const i=new Blob([n],{type:r}),a=URL.createObjectURL(i),l=document.createElement("a");l.href=a,l.download=t,l.click(),URL.revokeObjectURL(a),C()},children:"Export"})]})]})})})};export{j as AuditUnitExportDialog};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dialog to import an audit package from a previously exported JSON or HTML file.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
import type { AuditPackage } from "../../types/audit";
|
|
6
|
+
interface AuditUnitImportDialogProps {
|
|
7
|
+
open: boolean;
|
|
8
|
+
onDismiss: () => void;
|
|
9
|
+
onImport: (pkg: AuditPackage) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const AuditUnitImportDialog: React.FC<AuditUnitImportDialogProps>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=AuditUnitImportDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditUnitImportDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditUnitImportDialog.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAA2B,MAAM,OAAO,CAAC;AAgBhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,UAAU,0BAA0B;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;CACvC;AAwBD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA6FtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useState as o,useRef as n}from"react";import{makeStyles as l,tokens as t,Dialog as a,DialogSurface as i,DialogBody as c,DialogTitle as d,DialogContent as s,Text as p,MessageBar as u,MessageBarBody as m,DialogActions as f,Button as h}from"@fluentui/react-components";import{ArrowUploadRegular as g}from"@fluentui/react-icons";import{importAuditPackageFromHtml as N,importAuditPackageFromJson as k}from"../../utils/auditExport.js";const b=l({dropZone:{border:`2px dashed ${t.colorNeutralStroke1}`,borderRadius:t.borderRadiusMedium,padding:t.spacingVerticalXL,textAlign:"center",cursor:"pointer",backgroundColor:t.colorNeutralBackground2,":hover":{backgroundColor:t.colorNeutralBackground3}},hidden:{display:"none"},fileName:{marginTop:t.spacingVerticalS,fontSize:t.fontSizeBase200,color:t.colorNeutralForeground2}}),x=({open:l,onDismiss:x,onImport:y})=>{const C=b(),[S,D]=o(null),[T,v]=o(null),[F,j]=o(null),z=n(null),A=e=>{D(e.name),j(null),v(null);const r=new FileReader;r.onload=r=>{try{const o=r.target?.result,n=e.name.endsWith(".html")?N(o):k(o);v(n)}catch(e){j(e instanceof Error?e.message:"Failed to parse file")}},r.readAsText(e)};return e(a,{open:l,onOpenChange:(e,r)=>{r.open||x()},children:e(i,{style:{maxWidth:"420px"},children:r(c,{children:[e(d,{children:"Import Audit"}),r(s,{children:[r("div",{className:C.dropZone,onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault(),e.dataTransfer.files[0]&&A(e.dataTransfer.files[0])},onClick:()=>z.current?.click(),children:[e(g,{style:{fontSize:32,color:t.colorNeutralForeground3}}),e("br",{}),e(p,{children:"Drop a JSON or HTML audit file here, or click to browse"}),e("input",{ref:z,type:"file",accept:".json,.html",className:C.hidden,onChange:e=>{e.target.files?.[0]&&A(e.target.files[0])}})]}),S&&r(p,{className:C.fileName,children:["Selected: ",S,T&&" ✓"]}),F&&e(u,{intent:"error",style:{marginTop:8},children:e(m,{children:F})})]}),r(f,{children:[e(h,{appearance:"secondary",onClick:x,children:"Cancel"}),e(h,{appearance:"primary",onClick:()=>{T&&(y(T),x())},disabled:!T,children:"Import"})]})]})})})};export{x as AuditUnitImportDialog};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dropdown or search-enabled combobox to let admin/manager switch between auditable units.
|
|
3
|
+
*/
|
|
4
|
+
import React from "react";
|
|
5
|
+
import type { ResolvedAuditConfig } from "../../types/audit";
|
|
6
|
+
export interface AuditUnitOption {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
marketArea?: string;
|
|
10
|
+
}
|
|
11
|
+
interface AuditUnitSwitcherProps {
|
|
12
|
+
units: AuditUnitOption[];
|
|
13
|
+
selectedUnitId: string | null;
|
|
14
|
+
onSelect: (unitId: string) => void;
|
|
15
|
+
config: ResolvedAuditConfig;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare const AuditUnitSwitcher: React.FC<AuditUnitSwitcherProps>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=AuditUnitSwitcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditUnitSwitcher.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/AuditUnitSwitcher.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,sBAAsB;IAC9B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAcD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAmC9D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as i}from"react/jsx-runtime";import{makeStyles as t,tokens as o,Label as n,Combobox as r,Option as l}from"@fluentui/react-components";const a=t({root:{display:"flex",flexDirection:"column",gap:o.spacingVerticalXS,minWidth:"200px"},combobox:{width:"100%"}}),c=({units:t,selectedUnitId:o,onSelect:c,config:d,disabled:m=!1})=>{const s=a(),u=t.find((e=>e.id===o));return e("div",{className:s.root,children:[i(n,{size:"small",htmlFor:"audit-unit-switcher",children:d.terminology.unit}),i(r,{id:"audit-unit-switcher",className:s.combobox,value:u?.name??"",selectedOptions:o?[o]:[],onOptionSelect:(e,i)=>{i.optionValue&&c(i.optionValue)},placeholder:`Select ${d.terminology.unit.toLowerCase()}…`,disabled:m,freeform:!1,children:t.map((e=>i(l,{value:e.id,children:e.marketArea?`${e.name} (${e.marketArea})`:e.name},e.id)))})]})};export{c as AuditUnitSwitcher};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { AuditCircularProgress } from "./AuditCircularProgress";
|
|
2
|
+
export { AuditHorizontalProgress } from "./AuditHorizontalProgress";
|
|
3
|
+
export { AuditRoleIndicator } from "./AuditRoleIndicator";
|
|
4
|
+
export { AuditUnitSwitcher } from "./AuditUnitSwitcher";
|
|
5
|
+
export type { AuditUnitOption } from "./AuditUnitSwitcher";
|
|
6
|
+
export { AuditAnswerCell } from "./AuditAnswerCell";
|
|
7
|
+
export { AuditSearchBar } from "./AuditSearchBar";
|
|
8
|
+
export { AuditFilterChips } from "./AuditFilterChips";
|
|
9
|
+
export { AuditFilterBar } from "./AuditFilterBar";
|
|
10
|
+
export { AuditGroupsProgress } from "./AuditGroupsProgress";
|
|
11
|
+
export { AuditSummaryDashboard } from "./AuditSummaryDashboard";
|
|
12
|
+
export { AuditRequirementDialog } from "./AuditRequirementDialog";
|
|
13
|
+
export type { AuditRequirementDialogProps } from "./AuditRequirementDialog";
|
|
14
|
+
export { AuditUnitExportDialog } from "./AuditUnitExportDialog";
|
|
15
|
+
export { AuditUnitImportDialog } from "./AuditUnitImportDialog";
|
|
16
|
+
export { AuditBulkExportDialog } from "./AuditBulkExportDialog";
|
|
17
|
+
export { AuditBulkUploadDialog } from "./AuditBulkUploadDialog";
|
|
18
|
+
export { AuditSortPresets } from "./AuditSortPresets";
|
|
19
|
+
export type { AuditSortPreset } from "./AuditSortPresets";
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/audit/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -50,4 +50,5 @@ export type { RecordModalProps } from "./RecordModal";
|
|
|
50
50
|
export { default as BulkUploadDialog } from "./BulkUploadDialog";
|
|
51
51
|
export { CookieBanner } from "./CookieBanner";
|
|
52
52
|
export type { CookieBannerProps } from "./CookieBanner";
|
|
53
|
+
export * from "./audit";
|
|
53
54
|
//# sourceMappingURL=index.d.ts.map
|