@arbidocs/blocks 0.5.92 → 0.5.94
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/{ConnectedNativeDocxComparison-QHAV3K7N.cjs → ConnectedNativeDocxComparison-2LHBSTHG.cjs} +5 -5
- package/dist/{ConnectedNativeDocxComparison-QHAV3K7N.cjs.map → ConnectedNativeDocxComparison-2LHBSTHG.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-P6GG3ODF.js → ConnectedNativeDocxComparison-E65YZ7ML.js} +4 -4
- package/dist/{ConnectedNativeDocxComparison-P6GG3ODF.js.map → ConnectedNativeDocxComparison-E65YZ7ML.js.map} +1 -1
- package/dist/{DocumentReviewCard-LP33IGEL.js → DocumentReviewCard-H3C3D2OT.js} +7 -7
- package/dist/{DocumentReviewCard-LP33IGEL.js.map → DocumentReviewCard-H3C3D2OT.js.map} +1 -1
- package/dist/{DocumentReviewCard-QV3CM7YP.cjs → DocumentReviewCard-S77M6UGK.cjs} +12 -12
- package/dist/{DocumentReviewCard-QV3CM7YP.cjs.map → DocumentReviewCard-S77M6UGK.cjs.map} +1 -1
- package/dist/{FilesViewerDialog-FZYXO3MS.js → FilesViewerDialog-APITCSFU.js} +6 -6
- package/dist/{FilesViewerDialog-FZYXO3MS.js.map → FilesViewerDialog-APITCSFU.js.map} +1 -1
- package/dist/{FilesViewerDialog-JKNA25Q3.cjs → FilesViewerDialog-SWTDMWSU.cjs} +7 -7
- package/dist/{FilesViewerDialog-JKNA25Q3.cjs.map → FilesViewerDialog-SWTDMWSU.cjs.map} +1 -1
- package/dist/{chunk-KB2FH26M.cjs → chunk-345BCA6C.cjs} +4 -4
- package/dist/chunk-345BCA6C.cjs.map +1 -0
- package/dist/{chunk-DBGN4M4F.cjs → chunk-3I335OG7.cjs} +4 -4
- package/dist/{chunk-DBGN4M4F.cjs.map → chunk-3I335OG7.cjs.map} +1 -1
- package/dist/{chunk-DIE5ENQC.cjs → chunk-6BPA5O3I.cjs} +28 -28
- package/dist/{chunk-DIE5ENQC.cjs.map → chunk-6BPA5O3I.cjs.map} +1 -1
- package/dist/{chunk-SOZIHPO2.js → chunk-AFNPK2AH.js} +3 -3
- package/dist/{chunk-SOZIHPO2.js.map → chunk-AFNPK2AH.js.map} +1 -1
- package/dist/chunk-BFMOBAKB.js +29 -0
- package/dist/chunk-BFMOBAKB.js.map +1 -0
- package/dist/{chunk-WA2U4G43.cjs → chunk-FAD6D5EV.cjs} +7 -7
- package/dist/{chunk-WA2U4G43.cjs.map → chunk-FAD6D5EV.cjs.map} +1 -1
- package/dist/chunk-FWBU4MKG.cjs +130 -0
- package/dist/chunk-FWBU4MKG.cjs.map +1 -0
- package/dist/{chunk-VWX36C4Y.cjs → chunk-HKZT7K4L.cjs} +8 -8
- package/dist/{chunk-VWX36C4Y.cjs.map → chunk-HKZT7K4L.cjs.map} +1 -1
- package/dist/{chunk-BSTVTI5G.js → chunk-HP2DF3XY.js} +6 -6
- package/dist/{chunk-BSTVTI5G.js.map → chunk-HP2DF3XY.js.map} +1 -1
- package/dist/{chunk-HLVLPDDD.js → chunk-IG2EZOH3.js} +3 -3
- package/dist/{chunk-HLVLPDDD.js.map → chunk-IG2EZOH3.js.map} +1 -1
- package/dist/{chunk-QIEUKIBH.cjs → chunk-JTRMTIHN.cjs} +4 -4
- package/dist/{chunk-QIEUKIBH.cjs.map → chunk-JTRMTIHN.cjs.map} +1 -1
- package/dist/{chunk-GE2O6S44.cjs → chunk-MN622SFR.cjs} +4 -4
- package/dist/{chunk-GE2O6S44.cjs.map → chunk-MN622SFR.cjs.map} +1 -1
- package/dist/{chunk-DCYVHUSU.cjs → chunk-MPA74GSM.cjs} +46 -46
- package/dist/{chunk-DCYVHUSU.cjs.map → chunk-MPA74GSM.cjs.map} +1 -1
- package/dist/{chunk-CPOFZYKH.js → chunk-MXCJLF4H.js} +3 -3
- package/dist/{chunk-CPOFZYKH.js.map → chunk-MXCJLF4H.js.map} +1 -1
- package/dist/{chunk-5SUIQS75.js → chunk-NALP6YI6.js} +4 -4
- package/dist/{chunk-5SUIQS75.js.map → chunk-NALP6YI6.js.map} +1 -1
- package/dist/chunk-PGSBXD5U.js +128 -0
- package/dist/chunk-PGSBXD5U.js.map +1 -0
- package/dist/{chunk-WLWZAS7J.js → chunk-QYNPE4C4.js} +4 -4
- package/dist/chunk-QYNPE4C4.js.map +1 -0
- package/dist/{chunk-4P553YX2.cjs → chunk-WVMOIMDQ.cjs} +35 -35
- package/dist/{chunk-4P553YX2.cjs.map → chunk-WVMOIMDQ.cjs.map} +1 -1
- package/dist/{chunk-BCYFZIG6.js → chunk-Z256XHYA.js} +4 -4
- package/dist/{chunk-BCYFZIG6.js.map → chunk-Z256XHYA.js.map} +1 -1
- package/dist/{chunk-JM7Z3QNS.js → chunk-ZFAYQ3XJ.js} +5 -5
- package/dist/{chunk-JM7Z3QNS.js.map → chunk-ZFAYQ3XJ.js.map} +1 -1
- package/dist/chunk-ZK7UK77G.cjs +31 -0
- package/dist/chunk-ZK7UK77G.cjs.map +1 -0
- package/dist/{chunk-YB2P5Y52.js → chunk-ZV3I6EVU.js} +3 -3
- package/dist/{chunk-YB2P5Y52.js.map → chunk-ZV3I6EVU.js.map} +1 -1
- package/dist/connect/docx.cjs +3 -3
- package/dist/connect/docx.js +2 -2
- package/dist/connect/index.cjs +436 -410
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +61 -35
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +5 -5
- package/dist/connect/viewer.js +4 -4
- package/dist/connection/docx/ConnectedNativeDocxComparison.d.ts +6 -2
- package/dist/connection/mail/offline/offlineMailSupport.d.ts +3 -1
- package/dist/connection/mail/types.d.ts +6 -0
- package/dist/connection/mail/useMailOffline.d.ts +6 -0
- package/dist/docx/NativeDocxComparison.d.ts +17 -1
- package/dist/docx/index.cjs +2 -2
- package/dist/docx/index.js +1 -1
- package/dist/embed/index.cjs +11 -11
- package/dist/embed/index.js +5 -5
- package/dist/files/AiReviewDialog.d.ts +2 -0
- package/dist/files/index.cjs +222 -222
- package/dist/files/index.js +1 -1
- package/dist/workflow-canvas/index.cjs +13 -13
- package/dist/workflow-canvas/index.js +6 -6
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/src/docx/README.md +8 -1
- package/dist/chunk-DW7LSBIW.js +0 -16
- package/dist/chunk-DW7LSBIW.js.map +0 -1
- package/dist/chunk-EBNY3RTL.cjs +0 -18
- package/dist/chunk-EBNY3RTL.cjs.map +0 -1
- package/dist/chunk-IVY4EEN5.js +0 -65
- package/dist/chunk-IVY4EEN5.js.map +0 -1
- package/dist/chunk-KB2FH26M.cjs.map +0 -1
- package/dist/chunk-VNO36IVK.cjs +0 -67
- package/dist/chunk-VNO36IVK.cjs.map +0 -1
- package/dist/chunk-WLWZAS7J.js.map +0 -1
package/dist/files/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { AiReviewDialogView, BulkActionsBar, BulkLabelSelectView, BulkReplaceDialog, BulkTagEditorDialog, CHROME, CheckboxCell, CitedRunNav, DEFAULT_AI_REVIEW_DIALOG_LABELS, DEFAULT_BULK_ACTIONS_LABELS, DEFAULT_BULK_REPLACE_LABELS, DEFAULT_BULK_TAG_EDITOR_LABELS, DEFAULT_DOCUMENT_COLUMNS, DEFAULT_EXPLORER_LABELS, DEFAULT_EXPORT_LABELS, DEFAULT_FIELDS_EDITOR_LABELS, DEFAULT_FILES_SEARCH_LABELS, DEFAULT_FOLDER_FILTER_LABELS, DEFAULT_FOLDER_PICKER_LABELS, DEFAULT_HTML_VIEWER_LABELS, DEFAULT_IMPORT_LABELS, DEFAULT_LABEL_MULTI_SELECT_LABELS, DEFAULT_MOVE_TO_FOLDER_LABELS, DEFAULT_TAG_PASSAGE_PANEL_LABELS, DEFAULT_TRANSFER_LABELS, DEFAULT_UPLOAD_FOOTER_LABELS, DEFAULT_UPLOAD_PARTS_LABELS, DEFAULT_UPLOAD_SOURCES_LABELS, DEFAULT_URL_INPUT_DIALOG_LABELS, DEFAULT_VIEWER_LABELS, DEFAULT_VIEW_SELECTOR_LABELS, DOCUMENTS_ROW_HEIGHT_DEFAULT, DOCUMENTS_ROW_HEIGHT_INITIAL, DOCUMENT_TYPE_OPTIONS, DocStatusIcon, DocTagBar, DocumentGrid, DocumentLabelBar, DocumentNameCellFrame, DocumentRowMenu, DocumentSearchList, DocumentsFolderButton, EMAIL_VIEW_COLUMNS, ExplorerDragPreview, ExplorerDropOverlay, ExplorerEmpty, ExplorerFileNavigator, ExplorerFileTile, ExplorerFileTooltip, ExplorerFolderTile, ExplorerFrame, ExplorerLoadingTiles, ExplorerMarquee, ExplorerScroller, ExplorerStage, ExportFooter, ExportMethodChooser, ExportModalTitle, ExportResultsReport, ExportWorkspacePicker, FailedStageIcon, FieldAttribution, FieldFolderSelect, FieldFolderValue, FieldLabelsSelect, FieldNativeSelect, FieldRow, FieldValue, FieldWithAttribution, FieldsApplyBar, FieldsEditorList, FieldsEditorRoot, FieldsEditorToolbar, FieldsEmptyState, FieldsManagerBody, FieldsManagerDefinition, FieldsManagerTitle, FilesAddMenu, FilesFilterBar, FilesModalFooter, FilesPage, FilesPageHeader, FilesPageMain, FilesSearchInput, FilesTagsButton, FilesToolbar, FilesViewCenter, FilterButton, FolderBreadcrumb, FolderCell, FolderCommandList, FolderFilterButton, FolderPickerRow, FolderProviderIcon, FolderSummary, FolderTree, FolderTreePicker, HtmlPage, HtmlPassage, HtmlViewerEmpty, HtmlViewerRoot, HtmlViewerSurface, ImportActionButton, ImportAside, ImportFamilySection, ImportHint, ImportList, ImportPanel, ImportProgress, ImportRow, ImportRunActions, ImportSummary, LINE_PX, LabelMultiSelectView, LabelPickerList, MAX_LINES, MIN_LINES, MediaPreviewView, MoveToFolderDialog, MultiSelectCellEditor, NavDocumentPicker, NavigatorPickerBar, PdfPageNav, PrivacyExplainerModal, RECENTLY_DELETED_HINT, RECENTLY_DELETED_HINT_PLURAL, ROW_MIN, RejectedFilesList, RelatedDocsCell, RowDensityControl, SELECTION_COL_ID, SelectedFilesList, ShareToggle, StatusPill, TagColumnHeader, TagFormFooter, TagFormInstructionField, TagFormMeta, TagFormNameField, TagFormNote, TagFormOptionsEditor, TagFormRoot, TagFormSelectField, TagFormSharedToggle, TagPassagePanel, TaskSection, TransferConflictChooser, TransferKindsPicker, TransferPlanSummary, TransferProgressView, TransferReferencesChooser, TransferResumeBanner, TransferScopeChooser, UploadBrowseButtons, UploadContainer, UploadDropArea, UploadErrorMessage, UploadFooterBar, UploadFrame, UploadProgress, UploadShareNote, UploadSourcePicker, UploadSourceSection, UploadUrlButton, UrlDialogTitle, UrlInputDialog, UrlInputDialogView, VendorLogo, ViewSelectorMenu, ViewerControlBar, ViewerFrame, ViewerImageActions, ViewerLoadError, ViewerMessage, ViewerPageCounter, ViewerPreviewUnavailable, ViewerTabBar, ViewerTitle, ViewerZoomControl, applyColumnLayout, applyViewColumns, buildExplorerEntries, canChangeVisibility, canDeleteDocument, canEditDocumentFields, captureColumnWidths, collectFolderDocs, columnItems, columnsMatch, confirmHideFromMembers, documentGridLayoutProps, fieldsApplyBarCopy, fieldsEmptyText, filterFieldsByName, formatFolderSegment, getExplorerDisplayName, getMediaPreview, hasFolderProviderIcon, isDocumentLabel, isExplorerDocument, isMediaUrl, joinFolderPath, labelChipClampHeight, linesForRowHeight, parseFolderSegments, pinnedLeftColumns, resolveDocumentGridLayout, rowHeightForLines, searchExplorerDocuments, shareStateOf, shareTooltipFor, sortExplorerFiles, sortFields, summariseDocTags, toggleColumn, upsertView, useGridViews, visibilityAudience, visibilityToggleTooltip, visibleColumns, widthsMatch } from '../chunk-
|
|
2
|
+
export { AiReviewDialogView, BulkActionsBar, BulkLabelSelectView, BulkReplaceDialog, BulkTagEditorDialog, CHROME, CheckboxCell, CitedRunNav, DEFAULT_AI_REVIEW_DIALOG_LABELS, DEFAULT_BULK_ACTIONS_LABELS, DEFAULT_BULK_REPLACE_LABELS, DEFAULT_BULK_TAG_EDITOR_LABELS, DEFAULT_DOCUMENT_COLUMNS, DEFAULT_EXPLORER_LABELS, DEFAULT_EXPORT_LABELS, DEFAULT_FIELDS_EDITOR_LABELS, DEFAULT_FILES_SEARCH_LABELS, DEFAULT_FOLDER_FILTER_LABELS, DEFAULT_FOLDER_PICKER_LABELS, DEFAULT_HTML_VIEWER_LABELS, DEFAULT_IMPORT_LABELS, DEFAULT_LABEL_MULTI_SELECT_LABELS, DEFAULT_MOVE_TO_FOLDER_LABELS, DEFAULT_TAG_PASSAGE_PANEL_LABELS, DEFAULT_TRANSFER_LABELS, DEFAULT_UPLOAD_FOOTER_LABELS, DEFAULT_UPLOAD_PARTS_LABELS, DEFAULT_UPLOAD_SOURCES_LABELS, DEFAULT_URL_INPUT_DIALOG_LABELS, DEFAULT_VIEWER_LABELS, DEFAULT_VIEW_SELECTOR_LABELS, DOCUMENTS_ROW_HEIGHT_DEFAULT, DOCUMENTS_ROW_HEIGHT_INITIAL, DOCUMENT_TYPE_OPTIONS, DocStatusIcon, DocTagBar, DocumentGrid, DocumentLabelBar, DocumentNameCellFrame, DocumentRowMenu, DocumentSearchList, DocumentsFolderButton, EMAIL_VIEW_COLUMNS, ExplorerDragPreview, ExplorerDropOverlay, ExplorerEmpty, ExplorerFileNavigator, ExplorerFileTile, ExplorerFileTooltip, ExplorerFolderTile, ExplorerFrame, ExplorerLoadingTiles, ExplorerMarquee, ExplorerScroller, ExplorerStage, ExportFooter, ExportMethodChooser, ExportModalTitle, ExportResultsReport, ExportWorkspacePicker, FailedStageIcon, FieldAttribution, FieldFolderSelect, FieldFolderValue, FieldLabelsSelect, FieldNativeSelect, FieldRow, FieldValue, FieldWithAttribution, FieldsApplyBar, FieldsEditorList, FieldsEditorRoot, FieldsEditorToolbar, FieldsEmptyState, FieldsManagerBody, FieldsManagerDefinition, FieldsManagerTitle, FilesAddMenu, FilesFilterBar, FilesModalFooter, FilesPage, FilesPageHeader, FilesPageMain, FilesSearchInput, FilesTagsButton, FilesToolbar, FilesViewCenter, FilterButton, FolderBreadcrumb, FolderCell, FolderCommandList, FolderFilterButton, FolderPickerRow, FolderProviderIcon, FolderSummary, FolderTree, FolderTreePicker, HtmlPage, HtmlPassage, HtmlViewerEmpty, HtmlViewerRoot, HtmlViewerSurface, ImportActionButton, ImportAside, ImportFamilySection, ImportHint, ImportList, ImportPanel, ImportProgress, ImportRow, ImportRunActions, ImportSummary, LINE_PX, LabelMultiSelectView, LabelPickerList, MAX_LINES, MIN_LINES, MediaPreviewView, MoveToFolderDialog, MultiSelectCellEditor, NavDocumentPicker, NavigatorPickerBar, PdfPageNav, PrivacyExplainerModal, RECENTLY_DELETED_HINT, RECENTLY_DELETED_HINT_PLURAL, ROW_MIN, RejectedFilesList, RelatedDocsCell, RowDensityControl, SELECTION_COL_ID, SelectedFilesList, ShareToggle, StatusPill, TagColumnHeader, TagFormFooter, TagFormInstructionField, TagFormMeta, TagFormNameField, TagFormNote, TagFormOptionsEditor, TagFormRoot, TagFormSelectField, TagFormSharedToggle, TagPassagePanel, TaskSection, TransferConflictChooser, TransferKindsPicker, TransferPlanSummary, TransferProgressView, TransferReferencesChooser, TransferResumeBanner, TransferScopeChooser, UploadBrowseButtons, UploadContainer, UploadDropArea, UploadErrorMessage, UploadFooterBar, UploadFrame, UploadProgress, UploadShareNote, UploadSourcePicker, UploadSourceSection, UploadUrlButton, UrlDialogTitle, UrlInputDialog, UrlInputDialogView, VendorLogo, ViewSelectorMenu, ViewerControlBar, ViewerFrame, ViewerImageActions, ViewerLoadError, ViewerMessage, ViewerPageCounter, ViewerPreviewUnavailable, ViewerTabBar, ViewerTitle, ViewerZoomControl, applyColumnLayout, applyViewColumns, buildExplorerEntries, canChangeVisibility, canDeleteDocument, canEditDocumentFields, captureColumnWidths, collectFolderDocs, columnItems, columnsMatch, confirmHideFromMembers, documentGridLayoutProps, fieldsApplyBarCopy, fieldsEmptyText, filterFieldsByName, formatFolderSegment, getExplorerDisplayName, getMediaPreview, hasFolderProviderIcon, isDocumentLabel, isExplorerDocument, isMediaUrl, joinFolderPath, labelChipClampHeight, linesForRowHeight, parseFolderSegments, pinnedLeftColumns, resolveDocumentGridLayout, rowHeightForLines, searchExplorerDocuments, shareStateOf, shareTooltipFor, sortExplorerFiles, sortFields, summariseDocTags, toggleColumn, upsertView, useGridViews, visibilityAudience, visibilityToggleTooltip, visibleColumns, widthsMatch } from '../chunk-QYNPE4C4.js';
|
|
3
3
|
import '../chunk-RC6VTY2H.js';
|
|
4
4
|
export { DEFAULT_DOCUMENT_VIEW_TOGGLE_LABELS, DocumentViewToggle, ViewToggle } from '../chunk-OHRWYRTH.js';
|
|
5
5
|
export { ViewerHeaderEnd, ViewerHeaderStart, ViewerPane, ViewerStatusNote } from '../chunk-UIHNCQAA.js';
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkFAD6D5EV_cjs = require('../chunk-FAD6D5EV.cjs');
|
|
5
5
|
require('../chunk-CIXA5A65.cjs');
|
|
6
6
|
require('../chunk-KWJW5TMH.cjs');
|
|
7
|
-
require('../chunk-
|
|
8
|
-
require('../chunk-
|
|
7
|
+
require('../chunk-3I335OG7.cjs');
|
|
8
|
+
require('../chunk-JTRMTIHN.cjs');
|
|
9
9
|
require('../chunk-AEQT2QQX.cjs');
|
|
10
10
|
var chunkHYDIQEDT_cjs = require('../chunk-HYDIQEDT.cjs');
|
|
11
11
|
require('../chunk-464YPRAE.cjs');
|
|
12
12
|
require('../chunk-LCPU44GW.cjs');
|
|
13
13
|
var chunkSIYNZR5B_cjs = require('../chunk-SIYNZR5B.cjs');
|
|
14
14
|
require('../chunk-DDWLMYRO.cjs');
|
|
15
|
-
var
|
|
16
|
-
require('../chunk-
|
|
15
|
+
var chunkMN622SFR_cjs = require('../chunk-MN622SFR.cjs');
|
|
16
|
+
require('../chunk-WVMOIMDQ.cjs');
|
|
17
17
|
require('../chunk-RB6MAAS7.cjs');
|
|
18
|
-
require('../chunk-
|
|
18
|
+
require('../chunk-345BCA6C.cjs');
|
|
19
19
|
require('../chunk-223D4727.cjs');
|
|
20
20
|
require('../chunk-SNUBQMIS.cjs');
|
|
21
21
|
require('../chunk-JH6JTI76.cjs');
|
|
@@ -3005,7 +3005,7 @@ function ConnectedWorkflowsPage({
|
|
|
3005
3005
|
const config = host.workflows;
|
|
3006
3006
|
const { openConversation, openFiles } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
|
|
3007
3007
|
const openWorkflow = chunkSIYNZR5B_cjs.useOpenWorkflow();
|
|
3008
|
-
const renderPerson =
|
|
3008
|
+
const renderPerson = chunkFAD6D5EV_cjs.useRenderTaskPerson();
|
|
3009
3009
|
const refreshDocuments = react$2.useRefreshDocuments();
|
|
3010
3010
|
const invalidateTags = react$2.useInvalidateTagData();
|
|
3011
3011
|
const { data: tags = [] } = react$2.useTags();
|
|
@@ -3036,7 +3036,7 @@ function ConnectedWorkflowsPage({
|
|
|
3036
3036
|
openHistory,
|
|
3037
3037
|
closeHistoryTab,
|
|
3038
3038
|
selectHistoryTab
|
|
3039
|
-
} =
|
|
3039
|
+
} = chunkFAD6D5EV_cjs.useWorkflowsPageState({
|
|
3040
3040
|
historyWorkflowId: requestedHistoryId ?? historyWorkflowId,
|
|
3041
3041
|
onHistoryWorkflowConsumed: consumeHistory
|
|
3042
3042
|
});
|
|
@@ -3079,14 +3079,14 @@ function ConnectedWorkflowsPage({
|
|
|
3079
3079
|
await refreshDocuments(execution.document_ext_ids);
|
|
3080
3080
|
await invalidateTags();
|
|
3081
3081
|
const fieldIds = execution.result?.tag_ext_ids ?? runsFor?.action?.tag_ext_ids ?? [];
|
|
3082
|
-
|
|
3082
|
+
chunkMN622SFR_cjs.useAiReviewStore.getState().setRun({
|
|
3083
3083
|
docIds: execution.document_ext_ids,
|
|
3084
3084
|
tags: fieldIds.map((fieldId) => ({
|
|
3085
3085
|
id: fieldId,
|
|
3086
3086
|
name: tags.find((tag) => tag.external_id === fieldId)?.name ?? "Review"
|
|
3087
3087
|
}))
|
|
3088
3088
|
});
|
|
3089
|
-
|
|
3089
|
+
chunkMN622SFR_cjs.useAiReviewStore.getState().setOpen(true);
|
|
3090
3090
|
openFiles(
|
|
3091
3091
|
execution.label_ext_id ? { filters: { [execution.label_ext_id]: "include" } } : void 0
|
|
3092
3092
|
);
|
|
@@ -3098,7 +3098,7 @@ function ConnectedWorkflowsPage({
|
|
|
3098
3098
|
return (
|
|
3099
3099
|
// The page in the Workflows page's frame: padded, scrolling.
|
|
3100
3100
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full min-h-0 w-full overflow-auto p-4 sm:p-6", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3101
|
-
|
|
3101
|
+
chunkFAD6D5EV_cjs.ConnectedWorkflowRunPage,
|
|
3102
3102
|
{
|
|
3103
3103
|
workflow: running.workflow,
|
|
3104
3104
|
projectFrom: running.projectFrom,
|
|
@@ -3216,7 +3216,7 @@ function ConnectedWorkflowsPage({
|
|
|
3216
3216
|
}
|
|
3217
3217
|
},
|
|
3218
3218
|
content: hostTab ? hostTab.content : runsFor ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3219
|
-
|
|
3219
|
+
chunkFAD6D5EV_cjs.ConnectedWorkflowHistory,
|
|
3220
3220
|
{
|
|
3221
3221
|
inline: true,
|
|
3222
3222
|
hideHeader: true,
|
|
@@ -3280,7 +3280,7 @@ function ConnectedWorkflowsPage({
|
|
|
3280
3280
|
}
|
|
3281
3281
|
),
|
|
3282
3282
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3283
|
-
|
|
3283
|
+
chunkFAD6D5EV_cjs.ConnectedTaskComposer,
|
|
3284
3284
|
{
|
|
3285
3285
|
kind: "workflow",
|
|
3286
3286
|
saveOnly: true,
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useRenderTaskPerson, useWorkflowsPageState, ConnectedWorkflowRunPage, ConnectedWorkflowHistory, ConnectedTaskComposer } from '../chunk-
|
|
2
|
+
import { useRenderTaskPerson, useWorkflowsPageState, ConnectedWorkflowRunPage, ConnectedWorkflowHistory, ConnectedTaskComposer } from '../chunk-Z256XHYA.js';
|
|
3
3
|
import '../chunk-CVYFX7AD.js';
|
|
4
4
|
import '../chunk-57CG33XJ.js';
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-ZV3I6EVU.js';
|
|
6
|
+
import '../chunk-AFNPK2AH.js';
|
|
7
7
|
import '../chunk-5PAQWN5U.js';
|
|
8
8
|
import { ConnectedWorkflowsTable } from '../chunk-2AEWXS4X.js';
|
|
9
9
|
import '../chunk-MTSKK3BN.js';
|
|
10
10
|
import '../chunk-Y7UIFRWC.js';
|
|
11
11
|
import { useOpenWorkflow } from '../chunk-K2U5BCQ2.js';
|
|
12
12
|
import '../chunk-TROXWCQQ.js';
|
|
13
|
-
import { useAiReviewStore } from '../chunk-
|
|
14
|
-
import '../chunk-
|
|
13
|
+
import { useAiReviewStore } from '../chunk-IG2EZOH3.js';
|
|
14
|
+
import '../chunk-MXCJLF4H.js';
|
|
15
15
|
import '../chunk-3BSFHBHY.js';
|
|
16
|
-
import '../chunk-
|
|
16
|
+
import '../chunk-QYNPE4C4.js';
|
|
17
17
|
import '../chunk-RC6VTY2H.js';
|
|
18
18
|
import '../chunk-OHRWYRTH.js';
|
|
19
19
|
import '../chunk-2YOVK524.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbidocs/coedit",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.94",
|
|
4
4
|
"description": "Real-time collaboration for the ARBI native DOCX editor: a Yjs mirror of the canonical OOXML package, session, and server runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbidocs/blocks",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.94",
|
|
4
4
|
"description": "Composable, domain-neutral UI blocks for ARBI apps, organised by capability (retrieval, facts, agents, workspaces, citations, collaboration) plus shell, theme and site primitives, on top of @arbidocs/react.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -331,9 +331,9 @@
|
|
|
331
331
|
"example:test:e2e": "playwright test -c examples/custom-ui/playwright.config.ts"
|
|
332
332
|
},
|
|
333
333
|
"dependencies": {
|
|
334
|
-
"@arbidocs/client": "0.5.
|
|
335
|
-
"@arbidocs/coedit": "0.5.
|
|
336
|
-
"@arbidocs/sdk": "0.5.
|
|
334
|
+
"@arbidocs/client": "0.5.94",
|
|
335
|
+
"@arbidocs/coedit": "0.5.94",
|
|
336
|
+
"@arbidocs/sdk": "0.5.94",
|
|
337
337
|
"@auth0/auth0-react": "^2.19.0",
|
|
338
338
|
"@dnd-kit/core": "^6.3.1",
|
|
339
339
|
"@dnd-kit/sortable": "^10.0.0",
|
|
@@ -382,7 +382,7 @@
|
|
|
382
382
|
"y-protocols": "^1.0.6"
|
|
383
383
|
},
|
|
384
384
|
"peerDependencies": {
|
|
385
|
-
"@arbidocs/react": "0.5.
|
|
385
|
+
"@arbidocs/react": "0.5.94",
|
|
386
386
|
"@lexical/html": "0.35.0",
|
|
387
387
|
"@lexical/link": "0.35.0",
|
|
388
388
|
"@lexical/list": "0.35.0",
|
package/src/docx/README.md
CHANGED
|
@@ -76,7 +76,14 @@ made in); a host chat reads the turn's document with `takeDocumentForTurn`. For
|
|
|
76
76
|
|
|
77
77
|
`NativeDocxComparison` uses the same adapter and native editor for the LibreOffice
|
|
78
78
|
Word redline. Pass `baseId`, `revisedId`, `title` and optionally `onCompared` to
|
|
79
|
-
refresh only the generated document in your host cache. Source files stay intact.
|
|
79
|
+
refresh only the generated document in your host cache. Source files stay intact. The redline is
|
|
80
|
+
saved as a document of its own (the editor opens documents); pass the workspace's `documents` (all
|
|
81
|
+
pages) and the redline saved earlier from the same two versions is opened again instead of saving
|
|
82
|
+
another, as long as it is unedited (no version saved since it was made). An edited redline, e.g.
|
|
83
|
+
one whose changes were accepted, no longer shows the real differences, so a fresh one is made. A
|
|
84
|
+
redline whose addition to the lists failed is still reopened for the rest of the page's life.
|
|
85
|
+
Opens of the same comparison while one is being saved (React StrictMode's second effect run) share
|
|
86
|
+
that one save. `ConnectedNativeDocxComparison` does both.
|
|
80
87
|
|
|
81
88
|
Defined terms: give the adapter `definitions` (the workspace's facts labelled "Definitions", as
|
|
82
89
|
`DefinitionSource`s) and the Insert tab offers Defined term, and typing
|
package/dist/chunk-DW7LSBIW.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { NativeDocxComparison } from './chunk-IVY4EEN5.js';
|
|
3
|
-
import { useConnectedNativeDocxAdapter } from './chunk-2AEWXS4X.js';
|
|
4
|
-
import { jsx } from 'react/jsx-runtime';
|
|
5
|
-
|
|
6
|
-
function ConnectedNativeDocxComparison({
|
|
7
|
-
fontBaseUrl,
|
|
8
|
-
...props
|
|
9
|
-
}) {
|
|
10
|
-
const adapter = useConnectedNativeDocxAdapter(fontBaseUrl);
|
|
11
|
-
return /* @__PURE__ */ jsx(NativeDocxComparison, { ...props, adapter, onCompared: adapter.onVersionSaved });
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export { ConnectedNativeDocxComparison };
|
|
15
|
-
//# sourceMappingURL=chunk-DW7LSBIW.js.map
|
|
16
|
-
//# sourceMappingURL=chunk-DW7LSBIW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connection/docx/ConnectedNativeDocxComparison.tsx"],"names":[],"mappings":";;;;AAOO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyF;AACvF,EAAA,MAAM,OAAA,GAAU,8BAA8B,WAAW,CAAA;AACzD,EAAA,2BAAQ,oBAAA,EAAA,EAAsB,GAAG,OAAO,OAAA,EAAkB,UAAA,EAAY,QAAQ,cAAA,EAAgB,CAAA;AAChG","file":"chunk-DW7LSBIW.js","sourcesContent":["import {\n NativeDocxComparison,\n type NativeDocxComparisonProps,\n} from '../../docx/NativeDocxComparison'\nimport { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\n\n/** The Word redline of two documents or versions, on the signed-in session. */\nexport function ConnectedNativeDocxComparison({\n fontBaseUrl,\n ...props\n}: Omit<NativeDocxComparisonProps, 'adapter' | 'onCompared'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <NativeDocxComparison {...props} adapter={adapter} onCompared={adapter.onVersionSaved} />\n}\n"]}
|
package/dist/chunk-EBNY3RTL.cjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
var chunkVNO36IVK_cjs = require('./chunk-VNO36IVK.cjs');
|
|
5
|
-
var chunkHYDIQEDT_cjs = require('./chunk-HYDIQEDT.cjs');
|
|
6
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
-
|
|
8
|
-
function ConnectedNativeDocxComparison({
|
|
9
|
-
fontBaseUrl,
|
|
10
|
-
...props
|
|
11
|
-
}) {
|
|
12
|
-
const adapter = chunkHYDIQEDT_cjs.useConnectedNativeDocxAdapter(fontBaseUrl);
|
|
13
|
-
return /* @__PURE__ */ jsxRuntime.jsx(chunkVNO36IVK_cjs.NativeDocxComparison, { ...props, adapter, onCompared: adapter.onVersionSaved });
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
exports.ConnectedNativeDocxComparison = ConnectedNativeDocxComparison;
|
|
17
|
-
//# sourceMappingURL=chunk-EBNY3RTL.cjs.map
|
|
18
|
-
//# sourceMappingURL=chunk-EBNY3RTL.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connection/docx/ConnectedNativeDocxComparison.tsx"],"names":["useConnectedNativeDocxAdapter","NativeDocxComparison"],"mappings":";;;;;;AAOO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyF;AACvF,EAAA,MAAM,OAAA,GAAUA,gDAA8B,WAAW,CAAA;AACzD,EAAA,sCAAQC,sCAAA,EAAA,EAAsB,GAAG,OAAO,OAAA,EAAkB,UAAA,EAAY,QAAQ,cAAA,EAAgB,CAAA;AAChG","file":"chunk-EBNY3RTL.cjs","sourcesContent":["import {\n NativeDocxComparison,\n type NativeDocxComparisonProps,\n} from '../../docx/NativeDocxComparison'\nimport { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\n\n/** The Word redline of two documents or versions, on the signed-in session. */\nexport function ConnectedNativeDocxComparison({\n fontBaseUrl,\n ...props\n}: Omit<NativeDocxComparisonProps, 'adapter' | 'onCompared'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <NativeDocxComparison {...props} adapter={adapter} onCompared={adapter.onVersionSaved} />\n}\n"]}
|
package/dist/chunk-IVY4EEN5.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { NativeDocxEditor } from './chunk-Y7UIFRWC.js';
|
|
3
|
-
import { useRef, useState, useEffect } from 'react';
|
|
4
|
-
import { parseVersionRef } from '@arbidocs/react/artifacts';
|
|
5
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
function redlineQuery(baseId, revisedId) {
|
|
8
|
-
const base = parseVersionRef(baseId);
|
|
9
|
-
const revised = parseVersionRef(revisedId);
|
|
10
|
-
const query = new URLSearchParams({ base_ext_id: base.docId, revised_ext_id: revised.docId });
|
|
11
|
-
if (base.version) query.set("base_version", String(base.version));
|
|
12
|
-
if (revised.version) query.set("revised_version", String(revised.version));
|
|
13
|
-
return query;
|
|
14
|
-
}
|
|
15
|
-
function NativeDocxComparison({
|
|
16
|
-
adapter,
|
|
17
|
-
baseId,
|
|
18
|
-
revisedId,
|
|
19
|
-
title,
|
|
20
|
-
onCompared
|
|
21
|
-
}) {
|
|
22
|
-
const host = useRef({ adapter, onCompared });
|
|
23
|
-
host.current = { adapter, onCompared };
|
|
24
|
-
const [documentId, setDocumentId] = useState("");
|
|
25
|
-
const [error, setError] = useState("");
|
|
26
|
-
const [attempt, setAttempt] = useState(0);
|
|
27
|
-
useEffect(() => {
|
|
28
|
-
let cancelled = false;
|
|
29
|
-
setDocumentId("");
|
|
30
|
-
setError("");
|
|
31
|
-
void host.current.adapter.request(`/redline?${redlineQuery(baseId, revisedId)}`, { method: "POST" }).then((response) => response.json()).then((result) => {
|
|
32
|
-
if (!result.document_ext_id) throw new Error("Comparison did not return a Word document.");
|
|
33
|
-
if (!cancelled) {
|
|
34
|
-
setDocumentId(result.document_ext_id);
|
|
35
|
-
void Promise.resolve(host.current.onCompared?.(result.document_ext_id)).catch(() => {
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}).catch((error2) => {
|
|
39
|
-
if (!cancelled) setError(error2 instanceof Error ? error2.message : String(error2));
|
|
40
|
-
});
|
|
41
|
-
return () => {
|
|
42
|
-
cancelled = true;
|
|
43
|
-
};
|
|
44
|
-
}, [baseId, revisedId, attempt]);
|
|
45
|
-
if (error)
|
|
46
|
-
return /* @__PURE__ */ jsxs("div", { className: "native-docx-error", role: "alert", children: [
|
|
47
|
-
/* @__PURE__ */ jsx("p", { children: error }),
|
|
48
|
-
/* @__PURE__ */ jsx("button", { onClick: () => setAttempt((value) => value + 1), children: "Retry comparison" })
|
|
49
|
-
] });
|
|
50
|
-
if (!documentId)
|
|
51
|
-
return /* @__PURE__ */ jsx("div", { className: "native-docx-error", role: "status", children: "Comparing Word documents\u2026" });
|
|
52
|
-
return /* @__PURE__ */ jsx(
|
|
53
|
-
NativeDocxEditor,
|
|
54
|
-
{
|
|
55
|
-
adapter,
|
|
56
|
-
documentId,
|
|
57
|
-
title: `${title.replace(/\.[^.]+$/, "")} (redline).docx`
|
|
58
|
-
},
|
|
59
|
-
documentId
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export { NativeDocxComparison };
|
|
64
|
-
//# sourceMappingURL=chunk-IVY4EEN5.js.map
|
|
65
|
-
//# sourceMappingURL=chunk-IVY4EEN5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/docx/NativeDocxComparison.tsx"],"names":["error"],"mappings":";;;;;AAaA,SAAS,YAAA,CAAa,QAAgB,SAAA,EAAoC;AACxE,EAAA,MAAM,IAAA,GAAO,gBAAgB,MAAM,CAAA;AACnC,EAAA,MAAM,OAAA,GAAU,gBAAgB,SAAS,CAAA;AACzC,EAAA,MAAM,KAAA,GAAQ,IAAI,eAAA,CAAgB,EAAE,WAAA,EAAa,KAAK,KAAA,EAAO,cAAA,EAAgB,OAAA,CAAQ,KAAA,EAAO,CAAA;AAC5F,EAAA,IAAI,IAAA,CAAK,SAAS,KAAA,CAAM,GAAA,CAAI,gBAAgB,MAAA,CAAO,IAAA,CAAK,OAAO,CAAC,CAAA;AAChE,EAAA,IAAI,OAAA,CAAQ,SAAS,KAAA,CAAM,GAAA,CAAI,mBAAmB,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAC,CAAA;AACzE,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,oBAAA,CAAqB;AAAA,EACnC,OAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,EAAE,OAAA,EAAS,YAAY,CAAA;AAC3C,EAAA,IAAA,CAAK,OAAA,GAAU,EAAE,OAAA,EAAS,UAAA,EAAW;AACrC,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,EAAE,CAAA;AAC/C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,EAAE,CAAA;AACrC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,CAAC,CAAA;AACxC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,SAAA,GAAY,KAAA;AAChB,IAAA,aAAA,CAAc,EAAE,CAAA;AAChB,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,KAAK,IAAA,CAAK,OAAA,CAAQ,OAAA,CACf,OAAA,CAAQ,CAAA,SAAA,EAAY,aAAa,MAAA,EAAQ,SAAS,CAAC,CAAA,CAAA,EAAI,EAAE,MAAA,EAAQ,QAAQ,CAAA,CACzE,IAAA,CAAK,CAAC,QAAA,KAAa,QAAA,CAAS,MAAM,CAAA,CAClC,IAAA,CAAK,CAAC,MAAA,KAAwC;AAC7C,MAAA,IAAI,CAAC,MAAA,CAAO,eAAA,EAAiB,MAAM,IAAI,MAAM,4CAA4C,CAAA;AACzF,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,aAAA,CAAc,OAAO,eAAe,CAAA;AACpC,QAAA,KAAK,OAAA,CAAQ,OAAA,CAAQ,IAAA,CAAK,OAAA,CAAQ,UAAA,GAAa,OAAO,eAAe,CAAC,CAAA,CAAE,KAAA,CAAM,MAAM;AAAA,QAAC,CAAC,CAAA;AAAA,MACxF;AAAA,IACF,CAAC,CAAA,CACA,KAAA,CAAM,CAACA,MAAAA,KAAU;AAChB,MAAA,IAAI,CAAC,WAAW,QAAA,CAASA,MAAAA,YAAiB,QAAQA,MAAAA,CAAM,OAAA,GAAU,MAAA,CAAOA,MAAK,CAAC,CAAA;AAAA,IACjF,CAAC,CAAA;AACH,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,GAAY,IAAA;AAAA,IACd,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,MAAA,EAAQ,SAAA,EAAW,OAAO,CAAC,CAAA;AAC/B,EAAA,IAAI,KAAA;AACF,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAoB,MAAK,OAAA,EACtC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,OAAG,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,sBACV,GAAA,CAAC,QAAA,EAAA,EAAO,OAAA,EAAS,MAAM,UAAA,CAAW,CAAC,KAAA,KAAU,KAAA,GAAQ,CAAC,CAAA,EAAG,QAAA,EAAA,kBAAA,EAAgB;AAAA,KAAA,EAC3E,CAAA;AAEJ,EAAA,IAAI,CAAC,UAAA;AACH,IAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAoB,IAAA,EAAK,UAAS,QAAA,EAAA,gCAAA,EAEjD,CAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MAEC,OAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAO,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAC,CAAA,eAAA;AAAA,KAAA;AAAA,IAHlC;AAAA,GAIP;AAEJ","file":"chunk-IVY4EEN5.js","sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { parseVersionRef } from '@arbidocs/react/artifacts'\nimport { NativeDocxEditor, type NativeDocxAdapter } from './NativeDocxEditor'\n\nexport interface NativeDocxComparisonProps {\n adapter: NativeDocxAdapter\n baseId: string\n revisedId: string\n title: string\n onCompared?: (documentId: string) => void | Promise<void>\n}\n\n/** A `doc-…@v{n}` side names an older version: the endpoint takes its document and version apart. */\nfunction redlineQuery(baseId: string, revisedId: string): URLSearchParams {\n const base = parseVersionRef(baseId)\n const revised = parseVersionRef(revisedId)\n const query = new URLSearchParams({ base_ext_id: base.docId, revised_ext_id: revised.docId })\n if (base.version) query.set('base_version', String(base.version))\n if (revised.version) query.set('revised_version', String(revised.version))\n return query\n}\n\n/** Word comparison through the host's authenticated transport and LibreOffice service. */\nexport function NativeDocxComparison({\n adapter,\n baseId,\n revisedId,\n title,\n onCompared,\n}: NativeDocxComparisonProps) {\n const host = useRef({ adapter, onCompared })\n host.current = { adapter, onCompared }\n const [documentId, setDocumentId] = useState('')\n const [error, setError] = useState('')\n const [attempt, setAttempt] = useState(0)\n useEffect(() => {\n let cancelled = false\n setDocumentId('')\n setError('')\n void host.current.adapter\n .request(`/redline?${redlineQuery(baseId, revisedId)}`, { method: 'POST' })\n .then((response) => response.json())\n .then((result: { document_ext_id: string }) => {\n if (!result.document_ext_id) throw new Error('Comparison did not return a Word document.')\n if (!cancelled) {\n setDocumentId(result.document_ext_id)\n void Promise.resolve(host.current.onCompared?.(result.document_ext_id)).catch(() => {})\n }\n })\n .catch((error) => {\n if (!cancelled) setError(error instanceof Error ? error.message : String(error))\n })\n return () => {\n cancelled = true\n }\n }, [baseId, revisedId, attempt])\n if (error)\n return (\n <div className=\"native-docx-error\" role=\"alert\">\n <p>{error}</p>\n <button onClick={() => setAttempt((value) => value + 1)}>Retry comparison</button>\n </div>\n )\n if (!documentId)\n return (\n <div className=\"native-docx-error\" role=\"status\">\n Comparing Word documents…\n </div>\n )\n return (\n <NativeDocxEditor\n key={documentId}\n adapter={adapter}\n documentId={documentId}\n title={`${title.replace(/\\.[^.]+$/, '')} (redline).docx`}\n />\n )\n}\n"]}
|