oasis-editor 0.0.1
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/README.md +1 -0
- package/dist/__tests__/app/PersistenceService.test.d.ts +1 -0
- package/dist/__tests__/app/footnoteUiCommands.test.d.ts +1 -0
- package/dist/__tests__/commands/text.test.d.ts +1 -0
- package/dist/__tests__/core/editorPluginIntegration.test.d.ts +1 -0
- package/dist/__tests__/core/editorState.test.d.ts +1 -0
- package/dist/__tests__/core/footnotes.test.d.ts +1 -0
- package/dist/__tests__/core/model.test.d.ts +1 -0
- package/dist/__tests__/core/pluginCollection.test.d.ts +1 -0
- package/dist/__tests__/core/tableCommands.test.d.ts +1 -0
- package/dist/__tests__/export/docxExport.test.d.ts +1 -0
- package/dist/__tests__/export/footnotesExport.test.d.ts +1 -0
- package/dist/__tests__/export/pdfWriter.test.d.ts +1 -0
- package/dist/__tests__/export/underlineStyle.test.d.ts +1 -0
- package/dist/__tests__/import/docxComplexSmoke.test.d.ts +1 -0
- package/dist/__tests__/import/docxImport.test.d.ts +1 -0
- package/dist/__tests__/import/footnotesImport.test.d.ts +1 -0
- package/dist/__tests__/integration/documentFlow.test.d.ts +1 -0
- package/dist/__tests__/ui/CanvasTableLayout.test.d.ts +1 -0
- package/dist/__tests__/ui/canvasHitTestService.test.d.ts +1 -0
- package/dist/__tests__/ui/canvasLayoutSnapshot.test.d.ts +1 -0
- package/dist/__tests__/ui/canvasSelectionGeometry.test.d.ts +1 -0
- package/dist/__tests__/ui/canvasTextRendering.test.d.ts +1 -0
- package/dist/__tests__/ui/composeMeasuredParagraphLines.test.d.ts +1 -0
- package/dist/__tests__/ui/dialog.test.d.ts +1 -0
- package/dist/__tests__/ui/fontDialog.test.d.ts +1 -0
- package/dist/__tests__/ui/footnotesLayout.test.d.ts +1 -0
- package/dist/__tests__/ui/layoutIdentity.test.d.ts +1 -0
- package/dist/__tests__/ui/layoutProjection.test.d.ts +1 -0
- package/dist/__tests__/ui/registry.test.d.ts +1 -0
- package/dist/__tests__/ui/tabs.test.d.ts +1 -0
- package/dist/__tests__/ui/textMeasurementAlignment.test.d.ts +1 -0
- package/dist/__tests__/word-parity/fixtures/corpus.d.ts +10 -0
- package/dist/__tests__/word-parity/fixtures/loremFixtures.d.ts +8 -0
- package/dist/__tests__/word-parity/wordLayout.word-parity.d.ts +1 -0
- package/dist/app/bootstrap/createOasisEditorApp.d.ts +6 -0
- package/dist/app/bootstrap/createOasisEditorContainer.d.ts +6 -0
- package/dist/app/clipboard/htmlClipboardParser.d.ts +3 -0
- package/dist/app/controllers/EditorCommandRegistry.d.ts +23 -0
- package/dist/app/controllers/EditorCommandsController.d.ts +53 -0
- package/dist/app/controllers/documentIO/DocumentExporter.d.ts +11 -0
- package/dist/app/controllers/documentIO/DocumentImporter.d.ts +17 -0
- package/dist/app/controllers/documentIO/ImageInsertionService.d.ts +14 -0
- package/dist/app/controllers/documentIO/downloadBlob.d.ts +1 -0
- package/dist/app/controllers/tableOpsCellSpanCommands.d.ts +21 -0
- package/dist/app/controllers/tableOpsGuards.d.ts +19 -0
- package/dist/app/controllers/tableOpsMutationCommands.d.ts +4 -0
- package/dist/app/controllers/tableOpsRowColumnCommands.d.ts +12 -0
- package/dist/app/controllers/tableOpsSelectionAwareCommands.d.ts +20 -0
- package/dist/app/controllers/tableOpsSelectionNavigation.d.ts +7 -0
- package/dist/app/controllers/tableOpsSelectionRanges.d.ts +34 -0
- package/dist/app/controllers/useEditorClipboard.d.ts +28 -0
- package/dist/app/controllers/useEditorDocumentIO.d.ts +31 -0
- package/dist/app/controllers/useEditorFindReplace.d.ts +28 -0
- package/dist/app/controllers/useEditorHistoryActions.d.ts +21 -0
- package/dist/app/controllers/useEditorImageOperations.d.ts +72 -0
- package/dist/app/controllers/useEditorKeyboard.d.ts +50 -0
- package/dist/app/controllers/useEditorLayout.d.ts +42 -0
- package/dist/app/controllers/useEditorNavigation.d.ts +22 -0
- package/dist/app/controllers/useEditorPersistence.d.ts +16 -0
- package/dist/app/controllers/useEditorRevision.d.ts +12 -0
- package/dist/app/controllers/useEditorStyle.d.ts +23 -0
- package/dist/app/controllers/useEditorSurfaceEvents.d.ts +44 -0
- package/dist/app/controllers/useEditorTableDrag.d.ts +29 -0
- package/dist/app/controllers/useEditorTableOperations.d.ts +45 -0
- package/dist/app/controllers/useEditorTableResize.d.ts +32 -0
- package/dist/app/controllers/useEditorTextDrag.d.ts +38 -0
- package/dist/app/controllers/useEditorTextInput.d.ts +27 -0
- package/dist/app/services/FindReplaceService.d.ts +12 -0
- package/dist/app/services/PersistenceService.d.ts +11 -0
- package/dist/assets/Arimo-Bold.ttf +0 -0
- package/dist/assets/Arimo-BoldItalic.ttf +0 -0
- package/dist/assets/Arimo-Italic.ttf +0 -0
- package/dist/assets/Arimo-Regular.ttf +0 -0
- package/dist/assets/Carlito-Bold.ttf +0 -0
- package/dist/assets/Carlito-BoldItalic.ttf +0 -0
- package/dist/assets/Carlito-Italic.ttf +0 -0
- package/dist/assets/Carlito-Regular.ttf +0 -0
- package/dist/assets/Roboto-Italic.ttf +0 -0
- package/dist/assets/Roboto-Medium.ttf +0 -0
- package/dist/assets/Roboto-MediumItalic.ttf +0 -0
- package/dist/assets/Roboto-Regular.ttf +0 -0
- package/dist/assets/Tinos-Bold.ttf +0 -0
- package/dist/assets/Tinos-BoldItalic.ttf +0 -0
- package/dist/assets/Tinos-Italic.ttf +0 -0
- package/dist/assets/Tinos-Regular.ttf +0 -0
- package/dist/assets/importDocxWorker-DIQ28Lka.js +12 -0
- package/dist/core/Editor.d.ts +33 -0
- package/dist/core/cloneState.d.ts +8 -0
- package/dist/core/commands/CommandBus.d.ts +9 -0
- package/dist/core/commands/CommandRef.d.ts +10 -0
- package/dist/core/commands/CommandRegistry.d.ts +10 -0
- package/dist/core/commands/block.d.ts +11 -0
- package/dist/core/commands/clipboard.d.ts +13 -0
- package/dist/core/commands/footnotes.d.ts +27 -0
- package/dist/core/commands/history.d.ts +7 -0
- package/dist/core/commands/image.d.ts +15 -0
- package/dist/core/commands/link.d.ts +4 -0
- package/dist/core/commands/list.d.ts +10 -0
- package/dist/core/commands/misc.d.ts +3 -0
- package/dist/core/commands/selection.d.ts +12 -0
- package/dist/core/commands/table.d.ts +10 -0
- package/dist/core/commands/text.d.ts +12 -0
- package/dist/core/commands/utils.d.ts +69 -0
- package/dist/core/editorCommands.d.ts +14 -0
- package/dist/core/editorState.d.ts +66 -0
- package/dist/core/engine.d.ts +13 -0
- package/dist/core/footnotes.d.ts +42 -0
- package/dist/core/headings.d.ts +9 -0
- package/dist/core/model/queries.d.ts +8 -0
- package/dist/core/model.d.ts +447 -0
- package/dist/core/plugin.d.ts +64 -0
- package/dist/core/plugins/PluginCollection.d.ts +16 -0
- package/dist/core/selection.d.ts +19 -0
- package/dist/core/tableLayout.d.ts +13 -0
- package/dist/core/textStyleMappings.d.ts +8 -0
- package/dist/core/wordBoundaries.d.ts +7 -0
- package/dist/demo/OasisSiteApp.d.ts +1 -0
- package/dist/export/docx/docxTypes.d.ts +66 -0
- package/dist/export/docx/exportEditorDocumentToDocx.d.ts +4 -0
- package/dist/export/docx/footnotesXml.d.ts +40 -0
- package/dist/export/docx/tableXml.d.ts +4 -0
- package/dist/export/docx/textXml.d.ts +6 -0
- package/dist/export/docx/xmlUtils.d.ts +10 -0
- package/dist/export/pdf/OasisPdfWriter.d.ts +93 -0
- package/dist/export/pdf/draw/drawBlockList.d.ts +5 -0
- package/dist/export/pdf/draw/drawFragment.d.ts +7 -0
- package/dist/export/pdf/draw/drawPageBackground.d.ts +3 -0
- package/dist/export/pdf/draw/drawParagraph.d.ts +5 -0
- package/dist/export/pdf/draw/drawTable.d.ts +5 -0
- package/dist/export/pdf/draw/fragmentGeometry.d.ts +12 -0
- package/dist/export/pdf/draw/lists.d.ts +6 -0
- package/dist/export/pdf/exportEditorDocumentToPdf.d.ts +4 -0
- package/dist/export/pdf/fonts/PdfFontRegistry.d.ts +28 -0
- package/dist/export/pdf/fonts/collectPdfFontFamilies.d.ts +3 -0
- package/dist/export/pdf/images.d.ts +4 -0
- package/dist/export/pdf/layout/PdfTextMeasurer.d.ts +24 -0
- package/dist/export/pdf/layout/layoutParagraph.d.ts +37 -0
- package/dist/export/pdf/units.d.ts +6 -0
- package/dist/i18n/index.d.ts +7 -0
- package/dist/i18n/locales/en.d.ts +251 -0
- package/dist/i18n/locales/pt-BR.d.ts +251 -0
- package/dist/import/docx/assetRegistry.d.ts +18 -0
- package/dist/import/docx/footnotes.d.ts +17 -0
- package/dist/import/docx/headerFooter.d.ts +7 -0
- package/dist/import/docx/importDocxInWorker.d.ts +8 -0
- package/dist/import/docx/importDocxToEditorDocument.d.ts +7 -0
- package/dist/import/docx/importDocxWorker.d.ts +1 -0
- package/dist/import/docx/numbering.d.ts +9 -0
- package/dist/import/docx/paragraphs.d.ts +12 -0
- package/dist/import/docx/relationships.d.ts +4 -0
- package/dist/import/docx/runs.d.ts +41 -0
- package/dist/import/docx/sectionProperties.d.ts +16 -0
- package/dist/import/docx/settings.d.ts +4 -0
- package/dist/import/docx/styles.d.ts +24 -0
- package/dist/import/docx/tables.d.ts +8 -0
- package/dist/import/docx/themeFonts.d.ts +12 -0
- package/dist/import/docx/units.d.ts +9 -0
- package/dist/import/docx/xmlHelpers.d.ts +15 -0
- package/dist/index.d.ts +43 -0
- package/dist/layoutProjection/blockHeights.d.ts +1 -0
- package/dist/layoutProjection/blocksPagination.d.ts +18 -0
- package/dist/layoutProjection/constants.d.ts +1 -0
- package/dist/layoutProjection/documentLayout.d.ts +7 -0
- package/dist/layoutProjection/footnotePagination.d.ts +21 -0
- package/dist/layoutProjection/headerFooterFootnotes.d.ts +4 -0
- package/dist/layoutProjection/headerFooterProjection.d.ts +14 -0
- package/dist/layoutProjection/index.d.ts +7 -0
- package/dist/layoutProjection/paragraphPagination.d.ts +20 -0
- package/dist/layoutProjection/paragraphProjection.d.ts +1 -0
- package/dist/layoutProjection/sectionPagination.d.ts +35 -0
- package/dist/layoutProjection/tablePagination.d.ts +14 -0
- package/dist/layoutProjection/tableProjection.d.ts +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/oasis-editor.css +1 -0
- package/dist/oasis-editor.js +80464 -0
- package/dist/oasis-editor.umd.cjs +24 -0
- package/dist/plugins/internal/createEssentialsPlugin.d.ts +135 -0
- package/dist/plugins/internal/essentialsCommandBuilders.d.ts +10 -0
- package/dist/plugins/internal/essentialsCommandGroups.d.ts +39 -0
- package/dist/testing/wordLayoutParity.d.ts +62 -0
- package/dist/ui/OasisEditorApp.d.ts +4 -0
- package/dist/ui/OasisEditorAppProps.d.ts +49 -0
- package/dist/ui/OasisEditorContainer.d.ts +6 -0
- package/dist/ui/OasisEditorEditor.d.ts +103 -0
- package/dist/ui/app/EditorDialogsLayer.d.ts +26 -0
- package/dist/ui/app/EditorDragLayers.d.ts +20 -0
- package/dist/ui/app/EditorWorkspace.d.ts +37 -0
- package/dist/ui/app/buildEditorViewProps.d.ts +59 -0
- package/dist/ui/app/createEditorEssentialsPlugin.d.ts +42 -0
- package/dist/ui/app/createRuntimeCommandHost.d.ts +29 -0
- package/dist/ui/app/fontOptions.d.ts +5 -0
- package/dist/ui/app/shouldShowCaret.d.ts +9 -0
- package/dist/ui/app/useCanvasSurfaceHitResolver.d.ts +16 -0
- package/dist/ui/app/useEditorAppState.d.ts +11 -0
- package/dist/ui/app/useEditorContextMenuClipboard.d.ts +33 -0
- package/dist/ui/app/useEditorDialogs.d.ts +38 -0
- package/dist/ui/app/useEditorFocus.d.ts +11 -0
- package/dist/ui/app/useEditorFontOptions.d.ts +17 -0
- package/dist/ui/app/useEditorInteractionWiring.d.ts +64 -0
- package/dist/ui/app/useEditorRuntimeBootstrap.d.ts +33 -0
- package/dist/ui/app/useEditorRuntimePlugins.d.ts +14 -0
- package/dist/ui/app/useEditorTransactions.d.ts +20 -0
- package/dist/ui/app/useEditorUiOptions.d.ts +24 -0
- package/dist/ui/app/useFontDialogBridge.d.ts +31 -0
- package/dist/ui/canvas/CanvasDebug.d.ts +125 -0
- package/dist/ui/canvas/CanvasGeometry.d.ts +35 -0
- package/dist/ui/canvas/CanvasHitTestService.d.ts +37 -0
- package/dist/ui/canvas/CanvasLayoutSnapshot.d.ts +93 -0
- package/dist/ui/canvas/CanvasSelectionGeometry.d.ts +20 -0
- package/dist/ui/canvas/CanvasTableLayout.d.ts +65 -0
- package/dist/ui/canvas/canvasBlockPainter.d.ts +4 -0
- package/dist/ui/canvas/canvasImageCache.d.ts +1 -0
- package/dist/ui/canvas/canvasPageRenderer.d.ts +18 -0
- package/dist/ui/canvas/canvasParagraphPainter.d.ts +12 -0
- package/dist/ui/canvas/canvasTablePainter.d.ts +3 -0
- package/dist/ui/canvas/listNumbering.d.ts +3 -0
- package/dist/ui/caretGeometry.d.ts +30 -0
- package/dist/ui/clipboardImage.d.ts +2 -0
- package/dist/ui/components/CanvasEditorSurface.d.ts +5 -0
- package/dist/ui/components/CaretOverlay.d.ts +9 -0
- package/dist/ui/components/ContextMenu/ContextMenu.d.ts +19 -0
- package/dist/ui/components/Dialogs/Dialog.d.ts +17 -0
- package/dist/ui/components/Dialogs/FontDialog.d.ts +67 -0
- package/dist/ui/components/Dialogs/FontDialogModel.d.ts +15 -0
- package/dist/ui/components/Dialogs/ImageAltDialog.d.ts +8 -0
- package/dist/ui/components/Dialogs/LineSpacingDialog.d.ts +17 -0
- package/dist/ui/components/Dialogs/LinkDialog.d.ts +8 -0
- package/dist/ui/components/DropCaret.d.ts +16 -0
- package/dist/ui/components/FindReplace/FindReplaceDialog.d.ts +7 -0
- package/dist/ui/components/FloatingToolbar/FloatingTableToolbar.d.ts +11 -0
- package/dist/ui/components/Menubar/Menubar.d.ts +7 -0
- package/dist/ui/components/Menubar/defaultMenuItems.d.ts +3 -0
- package/dist/ui/components/Menubar/menuRegistry.d.ts +28 -0
- package/dist/ui/components/Outline/OutlinePanel.d.ts +10 -0
- package/dist/ui/components/PageBreak.d.ts +4 -0
- package/dist/ui/components/RevisionOverlay.d.ts +6 -0
- package/dist/ui/components/SelectionOverlay.d.ts +11 -0
- package/dist/ui/components/Tabs/Tabs.d.ts +18 -0
- package/dist/ui/components/TitleBar/TitleBar.d.ts +6 -0
- package/dist/ui/components/Toolbar/LineSpacingButton.d.ts +6 -0
- package/dist/ui/components/Toolbar/Toolbar.d.ts +15 -0
- package/dist/ui/components/Toolbar/ToolbarOverflowManager.d.ts +13 -0
- package/dist/ui/components/Toolbar/controls/ListOptionsControl.d.ts +7 -0
- package/dist/ui/components/Toolbar/controls/UnderlineControl.d.ts +10 -0
- package/dist/ui/components/Toolbar/groups/MetricGroup.d.ts +6 -0
- package/dist/ui/components/Toolbar/groups/SectionGroup.d.ts +6 -0
- package/dist/ui/components/Toolbar/groups/TableGroup.d.ts +6 -0
- package/dist/ui/components/Toolbar/presets/defaultPalette.d.ts +4 -0
- package/dist/ui/components/Toolbar/presets/defaultToolbar.d.ts +9 -0
- package/dist/ui/components/Toolbar/primitives/Button.d.ts +11 -0
- package/dist/ui/components/Toolbar/primitives/ColorPicker.d.ts +22 -0
- package/dist/ui/components/Toolbar/primitives/GridPicker.d.ts +12 -0
- package/dist/ui/components/Toolbar/primitives/Menu.d.ts +20 -0
- package/dist/ui/components/Toolbar/primitives/Popover.d.ts +34 -0
- package/dist/ui/components/Toolbar/primitives/Select.d.ts +12 -0
- package/dist/ui/components/Toolbar/primitives/Separator.d.ts +6 -0
- package/dist/ui/components/Toolbar/primitives/SplitButton.d.ts +30 -0
- package/dist/ui/components/Toolbar/primitives/useDismiss.d.ts +15 -0
- package/dist/ui/components/Toolbar/primitives/usePopoverPosition.d.ts +31 -0
- package/dist/ui/components/Toolbar/registry/ToolbarRegistry.d.ts +23 -0
- package/dist/ui/components/Toolbar/renderers/ToolbarItemRenderer.d.ts +13 -0
- package/dist/ui/components/Toolbar/renderers/renderers.d.ts +14 -0
- package/dist/ui/components/Toolbar/schema/items.d.ts +136 -0
- package/dist/ui/components/Toolbar/schema/palette.d.ts +15 -0
- package/dist/ui/components/Toolbar/state/bindItem.d.ts +28 -0
- package/dist/ui/components/Toolbar/state/createToolbarApi.d.ts +14 -0
- package/dist/ui/components/Toolbar/underlineStyles.d.ts +16 -0
- package/dist/ui/editorHistory.d.ts +25 -0
- package/dist/ui/editorUiTypes.d.ts +65 -0
- package/dist/ui/imageGeometry.d.ts +15 -0
- package/dist/ui/layoutIdentity.d.ts +23 -0
- package/dist/ui/layoutInvalidation.d.ts +9 -0
- package/dist/ui/mount.d.ts +10 -0
- package/dist/ui/shells/BalloonShell.d.ts +3 -0
- package/dist/ui/shells/DocumentShell.d.ts +29 -0
- package/dist/ui/shells/InlineShell.d.ts +3 -0
- package/dist/ui/tableGeometry.d.ts +16 -0
- package/dist/ui/tableUiUtils.d.ts +5 -0
- package/dist/ui/textMeasurement.d.ts +14 -0
- package/dist/ui/toolbarStyleState.d.ts +46 -0
- package/dist/ui/utils/IconManager.d.ts +2 -0
- package/dist/utils/indexeddb.d.ts +12 -0
- package/dist/utils/logger.d.ts +22 -0
- package/dist/utils/performanceMetrics.d.ts +58 -0
- package/dist/utils/throttle.d.ts +4 -0
- package/package.json +65 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { OasisPlugin } from '../../../../core/plugin.js';
|
|
2
|
+
import { ToolbarStyleState } from '../../../../ui/toolbarStyleState.js';
|
|
3
|
+
|
|
4
|
+
export interface EssentialsFeatureGate {
|
|
5
|
+
isCommandEnabled: (commandName: string) => boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface EssentialsStyleCapability {
|
|
8
|
+
state: () => ToolbarStyleState;
|
|
9
|
+
}
|
|
10
|
+
export interface EssentialsHistoryCapability {
|
|
11
|
+
canUndo: () => boolean;
|
|
12
|
+
canRedo: () => boolean;
|
|
13
|
+
undo: () => boolean;
|
|
14
|
+
redo: () => boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface EssentialsFormattingCapability {
|
|
17
|
+
selectAll: () => boolean;
|
|
18
|
+
insertFootnote: () => boolean;
|
|
19
|
+
pastePlainText: () => boolean;
|
|
20
|
+
bold: () => boolean;
|
|
21
|
+
italic: () => boolean;
|
|
22
|
+
underline: () => boolean;
|
|
23
|
+
strike: () => boolean;
|
|
24
|
+
superscript: () => boolean;
|
|
25
|
+
subscript: () => boolean;
|
|
26
|
+
alignLeft: () => boolean;
|
|
27
|
+
alignCenter: () => boolean;
|
|
28
|
+
alignRight: () => boolean;
|
|
29
|
+
alignJustify: () => boolean;
|
|
30
|
+
orderedList: () => boolean;
|
|
31
|
+
bulletList: () => boolean;
|
|
32
|
+
find: () => boolean;
|
|
33
|
+
replace: () => boolean;
|
|
34
|
+
toggleTrackChanges: () => boolean;
|
|
35
|
+
acceptRevisions: () => boolean;
|
|
36
|
+
rejectRevisions: () => boolean;
|
|
37
|
+
toggleShowMargins: () => boolean;
|
|
38
|
+
toggleShowParagraphMarks: () => boolean;
|
|
39
|
+
pageBreak: () => boolean;
|
|
40
|
+
lineBreak: () => boolean;
|
|
41
|
+
splitBlock: () => boolean;
|
|
42
|
+
setFontFamily: (value: string | null) => boolean;
|
|
43
|
+
setFontSize: (value: number | null) => boolean;
|
|
44
|
+
setColor: (value: string | null) => boolean;
|
|
45
|
+
setHighlight: (value: string | null) => boolean;
|
|
46
|
+
setStyleId: (value: string) => boolean;
|
|
47
|
+
setUnderlineStyle: (value: string | null) => void;
|
|
48
|
+
}
|
|
49
|
+
export interface EssentialsDocumentStyleDescriptor {
|
|
50
|
+
id: string;
|
|
51
|
+
name: string;
|
|
52
|
+
fontFamily?: string;
|
|
53
|
+
fontSize?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface EssentialsDocumentCapability {
|
|
56
|
+
documentStyles: () => EssentialsDocumentStyleDescriptor[];
|
|
57
|
+
exportDocx: () => void;
|
|
58
|
+
exportPdf: () => void;
|
|
59
|
+
importDocx: () => void;
|
|
60
|
+
insertImage: () => void;
|
|
61
|
+
}
|
|
62
|
+
export interface EssentialsLinkCapability {
|
|
63
|
+
prompt: () => void;
|
|
64
|
+
remove: () => void;
|
|
65
|
+
canPrompt: () => boolean;
|
|
66
|
+
}
|
|
67
|
+
export interface EssentialsImageCapability {
|
|
68
|
+
promptAlt: () => void;
|
|
69
|
+
isSelected: () => boolean;
|
|
70
|
+
}
|
|
71
|
+
export interface EssentialsBrowserCapability {
|
|
72
|
+
print: () => void;
|
|
73
|
+
copy: () => void;
|
|
74
|
+
}
|
|
75
|
+
export interface EssentialsParagraphCapability {
|
|
76
|
+
togglePageBreakBefore: () => void;
|
|
77
|
+
toggleKeepWithNext: () => void;
|
|
78
|
+
setSpacingAfter: (value: number | null) => void;
|
|
79
|
+
setSpacingBefore: (value: number | null) => void;
|
|
80
|
+
setIndentLeft: (value: number | null) => void;
|
|
81
|
+
setIndentFirstLine: (value: number | null) => void;
|
|
82
|
+
setIndentHanging: (value: number | null) => void;
|
|
83
|
+
setShading: (value: string | null) => void;
|
|
84
|
+
applyBorders: () => void;
|
|
85
|
+
setLineHeight: (value: number | null) => void;
|
|
86
|
+
setListFormat: (format: string) => void;
|
|
87
|
+
setListStartAt: (value: number | null) => void;
|
|
88
|
+
outdent: () => void;
|
|
89
|
+
indent: () => void;
|
|
90
|
+
}
|
|
91
|
+
export interface EssentialsSectionCapability {
|
|
92
|
+
isLandscape: () => boolean;
|
|
93
|
+
toggleOrientation: () => void;
|
|
94
|
+
breakNextPage: () => void;
|
|
95
|
+
breakContinuous: () => void;
|
|
96
|
+
}
|
|
97
|
+
export interface EssentialsTableCapability {
|
|
98
|
+
insideTable: () => boolean;
|
|
99
|
+
selectionLabel: () => string | null;
|
|
100
|
+
canMerge: () => boolean;
|
|
101
|
+
canSplit: () => boolean;
|
|
102
|
+
canEditColumn: () => boolean;
|
|
103
|
+
canEditRow: () => boolean;
|
|
104
|
+
merge: () => void;
|
|
105
|
+
split: () => void;
|
|
106
|
+
insertColumnBefore: () => void;
|
|
107
|
+
insertColumnAfter: () => void;
|
|
108
|
+
deleteColumn: () => void;
|
|
109
|
+
insertRowBefore: () => void;
|
|
110
|
+
insertRowAfter: () => void;
|
|
111
|
+
deleteRow: () => void;
|
|
112
|
+
cellShading: (color: string | null) => void;
|
|
113
|
+
cellBorders: () => void;
|
|
114
|
+
cellNoBorders: () => void;
|
|
115
|
+
width100: () => void;
|
|
116
|
+
alignLeft: () => void;
|
|
117
|
+
alignCenter: () => void;
|
|
118
|
+
alignRight: () => void;
|
|
119
|
+
setCellWidth: (width: string) => void;
|
|
120
|
+
insert: (rows: number, cols: number) => void;
|
|
121
|
+
}
|
|
122
|
+
export interface EssentialsPluginDeps {
|
|
123
|
+
gate: EssentialsFeatureGate;
|
|
124
|
+
style: EssentialsStyleCapability;
|
|
125
|
+
history: EssentialsHistoryCapability;
|
|
126
|
+
formatting: EssentialsFormattingCapability;
|
|
127
|
+
document: EssentialsDocumentCapability;
|
|
128
|
+
link: EssentialsLinkCapability;
|
|
129
|
+
image: EssentialsImageCapability;
|
|
130
|
+
browser: EssentialsBrowserCapability;
|
|
131
|
+
paragraph: EssentialsParagraphCapability;
|
|
132
|
+
section: EssentialsSectionCapability;
|
|
133
|
+
table: EssentialsTableCapability;
|
|
134
|
+
}
|
|
135
|
+
export declare function createEssentialsPlugin(deps: EssentialsPluginDeps): OasisPlugin;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CommandState, OasisCommand } from '../../../../core/plugin.js';
|
|
2
|
+
|
|
3
|
+
export type CommandEnabledResolver = (commandName: string) => boolean;
|
|
4
|
+
export type CommandBuilder = (name: string, execute: () => boolean, state?: () => Partial<CommandState>) => OasisCommand;
|
|
5
|
+
export type ValueCommandBuilder = (name: string, execute: (payload?: unknown) => boolean, value: () => unknown) => OasisCommand;
|
|
6
|
+
export type ActionCommandBuilder = (name: string, execute: (payload?: unknown) => void, state?: () => Partial<CommandState>) => OasisCommand;
|
|
7
|
+
export declare function createCommandBuilder(isCommandEnabled: CommandEnabledResolver): (name: string, execute: () => boolean, state?: () => Partial<CommandState>) => OasisCommand;
|
|
8
|
+
export declare function createValueCommandBuilder(isCommandEnabled: CommandEnabledResolver): (name: string, execute: (payload?: unknown) => boolean, value: () => unknown) => OasisCommand;
|
|
9
|
+
export declare function createActionCommandBuilder(isCommandEnabled: CommandEnabledResolver): (name: string, execute: (payload?: unknown) => void, state?: () => Partial<CommandState>) => OasisCommand;
|
|
10
|
+
export declare function numOrNull(payload: unknown): number | null;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { OasisPlugin } from '../../../../core/plugin.js';
|
|
2
|
+
import { ActionCommandBuilder, CommandBuilder, ValueCommandBuilder } from '../../essentialsCommandBuilders.js';
|
|
3
|
+
import { EssentialsBrowserCapability, EssentialsDocumentCapability, EssentialsFeatureGate, EssentialsFormattingCapability, EssentialsHistoryCapability, EssentialsImageCapability, EssentialsLinkCapability, EssentialsParagraphCapability, EssentialsSectionCapability, EssentialsStyleCapability, EssentialsTableCapability } from '../../createEssentialsPlugin.js';
|
|
4
|
+
|
|
5
|
+
interface CoreFormattingGroupDeps {
|
|
6
|
+
gate: EssentialsFeatureGate;
|
|
7
|
+
style: EssentialsStyleCapability;
|
|
8
|
+
history: EssentialsHistoryCapability;
|
|
9
|
+
formatting: EssentialsFormattingCapability;
|
|
10
|
+
link: EssentialsLinkCapability;
|
|
11
|
+
command: CommandBuilder;
|
|
12
|
+
valueCommand: ValueCommandBuilder;
|
|
13
|
+
}
|
|
14
|
+
interface DocumentAndBrowserGroupDeps {
|
|
15
|
+
gate: EssentialsFeatureGate;
|
|
16
|
+
style: EssentialsStyleCapability;
|
|
17
|
+
document: EssentialsDocumentCapability;
|
|
18
|
+
link: EssentialsLinkCapability;
|
|
19
|
+
image: EssentialsImageCapability;
|
|
20
|
+
browser: EssentialsBrowserCapability;
|
|
21
|
+
actionCommand: ActionCommandBuilder;
|
|
22
|
+
}
|
|
23
|
+
interface ParagraphAndSectionGroupDeps {
|
|
24
|
+
style: EssentialsStyleCapability;
|
|
25
|
+
paragraph: EssentialsParagraphCapability;
|
|
26
|
+
section: EssentialsSectionCapability;
|
|
27
|
+
valueCommand: ValueCommandBuilder;
|
|
28
|
+
actionCommand: ActionCommandBuilder;
|
|
29
|
+
}
|
|
30
|
+
interface TableGroupDeps {
|
|
31
|
+
gate: EssentialsFeatureGate;
|
|
32
|
+
table: EssentialsTableCapability;
|
|
33
|
+
actionCommand: ActionCommandBuilder;
|
|
34
|
+
}
|
|
35
|
+
export declare function buildCoreFormattingCommands({ gate, style, history, formatting, link, command, valueCommand, }: CoreFormattingGroupDeps): NonNullable<OasisPlugin["commands"]>;
|
|
36
|
+
export declare function buildDocumentAndBrowserCommands({ gate, style, document, link, image, browser, actionCommand, }: DocumentAndBrowserGroupDeps): NonNullable<OasisPlugin["commands"]>;
|
|
37
|
+
export declare function buildParagraphAndSectionCommands({ style, paragraph, section, valueCommand, actionCommand, }: ParagraphAndSectionGroupDeps): NonNullable<OasisPlugin["commands"]>;
|
|
38
|
+
export declare function buildTableCommands({ gate, table, actionCommand, }: TableGroupDeps): NonNullable<OasisPlugin["commands"]>;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { EditorDocument } from '../../core/model.js';
|
|
2
|
+
|
|
3
|
+
export interface WordLayoutSupportStatus {
|
|
4
|
+
supported: boolean;
|
|
5
|
+
reason?: string;
|
|
6
|
+
wordPath?: string;
|
|
7
|
+
pythonCommand?: string;
|
|
8
|
+
pythonArgs?: string[];
|
|
9
|
+
}
|
|
10
|
+
interface WordPdfLine {
|
|
11
|
+
text: string;
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
}
|
|
17
|
+
interface WordPdfPage {
|
|
18
|
+
width: number;
|
|
19
|
+
height: number;
|
|
20
|
+
lines: WordPdfLine[];
|
|
21
|
+
}
|
|
22
|
+
interface WordPdfLayout {
|
|
23
|
+
pages: WordPdfPage[];
|
|
24
|
+
}
|
|
25
|
+
interface LayoutLineGeometry {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
}
|
|
31
|
+
interface EditorPageSnapshot {
|
|
32
|
+
headerLineTexts: string[];
|
|
33
|
+
bodyLineTexts: string[];
|
|
34
|
+
footerLineTexts: string[];
|
|
35
|
+
width: number;
|
|
36
|
+
height: number;
|
|
37
|
+
headerTop: number;
|
|
38
|
+
bodyTop: number;
|
|
39
|
+
bodyHeight: number;
|
|
40
|
+
footerTop: number;
|
|
41
|
+
footerReferenceTop: number;
|
|
42
|
+
pageHeight: number;
|
|
43
|
+
firstBodyLineGeometry?: LayoutLineGeometry;
|
|
44
|
+
lastBodyLineBottom?: number;
|
|
45
|
+
firstFooterLineTop?: number;
|
|
46
|
+
}
|
|
47
|
+
export interface WordLayoutParityResult {
|
|
48
|
+
editor: {
|
|
49
|
+
pages: EditorPageSnapshot[];
|
|
50
|
+
};
|
|
51
|
+
word: WordPdfLayout;
|
|
52
|
+
mismatches: string[];
|
|
53
|
+
}
|
|
54
|
+
export interface WordLayoutParityOptions {
|
|
55
|
+
geometryTolerancePoints?: number;
|
|
56
|
+
strictTextAndGeometry?: boolean;
|
|
57
|
+
layoutMode?: "fast" | "wordParity";
|
|
58
|
+
}
|
|
59
|
+
export declare function detectWordLayoutParitySupport(): WordLayoutSupportStatus;
|
|
60
|
+
export declare function verifyWordLayoutParity(document: EditorDocument, options?: WordLayoutParityOptions): Promise<WordLayoutParityResult>;
|
|
61
|
+
export declare function verifyImportedDocxWordLayoutParity(docxPath: string, options?: WordLayoutParityOptions): Promise<WordLayoutParityResult>;
|
|
62
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { OasisEditorAppProps } from '../OasisEditorAppProps.js';
|
|
2
|
+
|
|
3
|
+
export type { OasisEditorLoadingOptions, OasisEditorAppUiProps, OasisEditorAppDocumentProps, OasisEditorAppRuntimeProps, OasisEditorAppProps, } from '../OasisEditorAppProps.js';
|
|
4
|
+
export declare function OasisEditorApp(props?: OasisEditorAppProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { JSX } from '../solid-js';
|
|
2
|
+
import { EditorDocument, EditorState } from '../../core/model.js';
|
|
3
|
+
import { ToolbarRegistry } from '../components/Toolbar/registry/ToolbarRegistry.js';
|
|
4
|
+
import { DocumentPersistence } from '../../app/controllers/useEditorPersistence.js';
|
|
5
|
+
import { OasisPlugin } from '../../core/plugin.js';
|
|
6
|
+
|
|
7
|
+
export interface OasisEditorLoadingOptions {
|
|
8
|
+
label?: string;
|
|
9
|
+
class?: string;
|
|
10
|
+
style?: JSX.CSSProperties;
|
|
11
|
+
}
|
|
12
|
+
export interface OasisEditorAppUiProps {
|
|
13
|
+
showChrome?: boolean;
|
|
14
|
+
shell?: "document" | "inline" | "balloon";
|
|
15
|
+
uiVariant?: "classic" | "docs";
|
|
16
|
+
showTitleBar?: boolean;
|
|
17
|
+
showMenubar?: boolean;
|
|
18
|
+
showToolbar?: boolean;
|
|
19
|
+
showOutline?: boolean;
|
|
20
|
+
locale?: "pt-BR" | "en";
|
|
21
|
+
viewportHeight?: number | string;
|
|
22
|
+
class?: string;
|
|
23
|
+
style?: JSX.CSSProperties;
|
|
24
|
+
loading?: boolean | OasisEditorLoadingOptions;
|
|
25
|
+
}
|
|
26
|
+
export interface OasisEditorAppDocumentProps {
|
|
27
|
+
initialDocument?: EditorDocument;
|
|
28
|
+
initialState?: EditorState;
|
|
29
|
+
onStateChange?: (state: EditorState) => void;
|
|
30
|
+
readOnly?: boolean;
|
|
31
|
+
persistenceEnabled?: boolean;
|
|
32
|
+
persistence?: DocumentPersistence;
|
|
33
|
+
layoutMode?: "fast" | "wordParity";
|
|
34
|
+
}
|
|
35
|
+
export interface OasisEditorAppRuntimeProps {
|
|
36
|
+
onReady?: () => void;
|
|
37
|
+
plugins?: OasisPlugin[];
|
|
38
|
+
/**
|
|
39
|
+
* Customize the toolbar after the built-in preset and plugin contributions
|
|
40
|
+
* load. Use the registry to add/insert/replace/remove/move items. Clients can
|
|
41
|
+
* tailor the toolbar without forking.
|
|
42
|
+
*/
|
|
43
|
+
customizeToolbar?: (registry: ToolbarRegistry) => void;
|
|
44
|
+
}
|
|
45
|
+
export interface OasisEditorAppProps {
|
|
46
|
+
ui?: OasisEditorAppUiProps;
|
|
47
|
+
document?: OasisEditorAppDocumentProps;
|
|
48
|
+
runtime?: OasisEditorAppRuntimeProps;
|
|
49
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OasisEditorAppProps } from '../OasisEditorApp.js';
|
|
2
|
+
|
|
3
|
+
export interface OasisEditorContainerProps extends Omit<OasisEditorAppProps, "ui"> {
|
|
4
|
+
ui?: Omit<NonNullable<OasisEditorAppProps["ui"]>, "showChrome">;
|
|
5
|
+
}
|
|
6
|
+
export declare function OasisEditorContainer(props: OasisEditorContainerProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { Accessor, JSX } from '../solid-js';
|
|
2
|
+
import { ToolbarHost } from '../components/Toolbar/state/createToolbarApi.js';
|
|
3
|
+
import { EditorLayoutParagraph, EditorState } from '../../core/model.js';
|
|
4
|
+
import { CaretBox, InputBox, RevisionBox, SelectedImageBox, SelectionBox, ImageResizeHandleDirection } from '../editorUiTypes.js';
|
|
5
|
+
|
|
6
|
+
type ImportProgress = {
|
|
7
|
+
phase: "reading-file" | "opening-docx" | "parsing-document" | "parsing-headers-footers" | "applying-editor-state" | "stabilizing-layout" | "done" | "error";
|
|
8
|
+
progress: number;
|
|
9
|
+
subProgress?: number;
|
|
10
|
+
};
|
|
11
|
+
export interface OasisEditorEditorLayoutProps {
|
|
12
|
+
measuredBlockHeights?: Accessor<Record<string, number>>;
|
|
13
|
+
measuredParagraphLayouts?: Accessor<Record<string, EditorLayoutParagraph>>;
|
|
14
|
+
layoutMode?: "fast" | "wordParity";
|
|
15
|
+
viewportHeight?: number | string;
|
|
16
|
+
class?: string;
|
|
17
|
+
style?: JSX.CSSProperties;
|
|
18
|
+
readOnly?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface OasisEditorEditorOverlayProps {
|
|
21
|
+
selectionBoxes: Accessor<SelectionBox[]>;
|
|
22
|
+
selectedImageBox: Accessor<SelectedImageBox | null>;
|
|
23
|
+
caretBox: Accessor<CaretBox>;
|
|
24
|
+
inputBox: Accessor<InputBox>;
|
|
25
|
+
hoveredRevision: Accessor<RevisionBox | null>;
|
|
26
|
+
focused: Accessor<boolean>;
|
|
27
|
+
showCaret: Accessor<boolean>;
|
|
28
|
+
importProgress?: Accessor<ImportProgress | null>;
|
|
29
|
+
toolbarHost?: () => ToolbarHost;
|
|
30
|
+
persistenceStatus?: () => string;
|
|
31
|
+
showFloatingTableToolbar?: Accessor<boolean>;
|
|
32
|
+
}
|
|
33
|
+
export interface OasisEditorEditorRefProps {
|
|
34
|
+
onViewportRef?: (element: HTMLDivElement) => void;
|
|
35
|
+
onSurfaceRef?: (element: HTMLDivElement) => void;
|
|
36
|
+
onTextareaRef?: (element: HTMLTextAreaElement) => void;
|
|
37
|
+
onImportInputRef?: (element: HTMLInputElement) => void;
|
|
38
|
+
onImageInputRef?: (element: HTMLInputElement) => void;
|
|
39
|
+
}
|
|
40
|
+
export interface OasisEditorEditorSurfaceHandlers {
|
|
41
|
+
onDragOver: (event: DragEvent) => void;
|
|
42
|
+
onDrop: (event: DragEvent) => void;
|
|
43
|
+
onEditorMouseDown: (event: MouseEvent) => void;
|
|
44
|
+
onSurfaceMouseDown: (event: MouseEvent) => void;
|
|
45
|
+
onSurfaceClick?: (event: MouseEvent) => void;
|
|
46
|
+
onSurfaceMouseMove?: (event: MouseEvent) => void;
|
|
47
|
+
onSurfaceDblClick: (event: MouseEvent) => void;
|
|
48
|
+
onParagraphMouseDown: (paragraphId: string, event: MouseEvent & {
|
|
49
|
+
currentTarget: HTMLParagraphElement;
|
|
50
|
+
}) => void;
|
|
51
|
+
onImageMouseDown: (paragraphId: string, paragraphOffset: number, event: MouseEvent & {
|
|
52
|
+
currentTarget: HTMLElement;
|
|
53
|
+
}) => void;
|
|
54
|
+
onImageResizeHandleMouseDown: (paragraphId: string, paragraphOffset: number, direction: ImageResizeHandleDirection, event: MouseEvent & {
|
|
55
|
+
currentTarget: HTMLElement;
|
|
56
|
+
}) => void;
|
|
57
|
+
onTableDragHandleMouseDown: (tableId: string, event: MouseEvent) => void;
|
|
58
|
+
onRevisionMouseEnter: (revisionId: string, event: MouseEvent) => void;
|
|
59
|
+
onRevisionMouseLeave?: (revisionId: string, event: MouseEvent) => void;
|
|
60
|
+
onEditorContextMenu?: (event: MouseEvent) => void;
|
|
61
|
+
}
|
|
62
|
+
export interface OasisEditorEditorInputHandlers {
|
|
63
|
+
onInputBlur: () => void;
|
|
64
|
+
onInputFocus: () => void;
|
|
65
|
+
onCompositionEnd: (event: CompositionEvent & {
|
|
66
|
+
currentTarget: HTMLTextAreaElement;
|
|
67
|
+
}) => void;
|
|
68
|
+
onCompositionStart: () => void;
|
|
69
|
+
onCopy: (event: ClipboardEvent & {
|
|
70
|
+
currentTarget: HTMLTextAreaElement;
|
|
71
|
+
}) => void;
|
|
72
|
+
onCut: (event: ClipboardEvent & {
|
|
73
|
+
currentTarget: HTMLTextAreaElement;
|
|
74
|
+
}) => void;
|
|
75
|
+
onInput: (event: InputEvent & {
|
|
76
|
+
currentTarget: HTMLTextAreaElement;
|
|
77
|
+
}) => void;
|
|
78
|
+
onKeyDown: (event: KeyboardEvent & {
|
|
79
|
+
currentTarget: HTMLTextAreaElement;
|
|
80
|
+
}) => void;
|
|
81
|
+
onPaste: (event: ClipboardEvent & {
|
|
82
|
+
currentTarget: HTMLTextAreaElement;
|
|
83
|
+
}) => void;
|
|
84
|
+
}
|
|
85
|
+
export interface OasisEditorEditorFileHandlers {
|
|
86
|
+
onImportInputChange: (event: Event & {
|
|
87
|
+
currentTarget: HTMLInputElement;
|
|
88
|
+
}) => void;
|
|
89
|
+
onImageInputChange: (event: Event & {
|
|
90
|
+
currentTarget: HTMLInputElement;
|
|
91
|
+
}) => void;
|
|
92
|
+
}
|
|
93
|
+
export interface OasisEditorEditorProps {
|
|
94
|
+
state: Accessor<EditorState>;
|
|
95
|
+
layout?: OasisEditorEditorLayoutProps;
|
|
96
|
+
overlays: OasisEditorEditorOverlayProps;
|
|
97
|
+
refs?: OasisEditorEditorRefProps;
|
|
98
|
+
surfaceHandlers: OasisEditorEditorSurfaceHandlers;
|
|
99
|
+
inputHandlers: OasisEditorEditorInputHandlers;
|
|
100
|
+
fileHandlers: OasisEditorEditorFileHandlers;
|
|
101
|
+
}
|
|
102
|
+
export declare function OasisEditorEditor(props: OasisEditorEditorProps): JSX.Element;
|
|
103
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ComponentProps } from '../../solid-js';
|
|
2
|
+
import { FontDialog } from '../../../components/Dialogs/FontDialog.js';
|
|
3
|
+
import { FindReplaceDialog } from '../../../components/FindReplace/FindReplaceDialog.js';
|
|
4
|
+
import { ContextMenu } from '../../../components/ContextMenu/ContextMenu.js';
|
|
5
|
+
import { createEditorDialogs } from '../../useEditorDialogs.js';
|
|
6
|
+
|
|
7
|
+
type EditorDialogsState = ReturnType<typeof createEditorDialogs>;
|
|
8
|
+
export interface EditorDialogsLayerProps {
|
|
9
|
+
dialogs: EditorDialogsState;
|
|
10
|
+
findReplace: ComponentProps<typeof FindReplaceDialog>["fr"];
|
|
11
|
+
fontFamilyOptions: () => string[];
|
|
12
|
+
fontSizeOptions: () => number[];
|
|
13
|
+
contextMenuItems: () => ComponentProps<typeof ContextMenu>["items"];
|
|
14
|
+
focusInput: () => void;
|
|
15
|
+
applyLinkCommand: (href: string | null) => void;
|
|
16
|
+
applyImageAltCommand: (alt: string) => void;
|
|
17
|
+
applyFontDialogValues: ComponentProps<typeof FontDialog>["onApply"];
|
|
18
|
+
closeContextMenu: () => void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Presentational layer that mounts the editor's modal dialogs and context menu.
|
|
22
|
+
* Holds no editor logic — it only binds dialog signals and command callbacks to
|
|
23
|
+
* their respective UI components.
|
|
24
|
+
*/
|
|
25
|
+
export declare function EditorDialogsLayer(props: EditorDialogsLayerProps): import("solid-js").JSX.Element;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { EditorState } from '../../../../core/model.js';
|
|
2
|
+
import { createEditorImageOperations } from '../../../../app/controllers/useEditorImageOperations.js';
|
|
3
|
+
import { createEditorTableResize } from '../../../../app/controllers/useEditorTableResize.js';
|
|
4
|
+
import { createEditorTableDrag } from '../../../../app/controllers/useEditorTableDrag.js';
|
|
5
|
+
import { createEditorTextDrag } from '../../../../app/controllers/useEditorTextDrag.js';
|
|
6
|
+
|
|
7
|
+
export interface EditorDragLayersProps {
|
|
8
|
+
state: EditorState;
|
|
9
|
+
surfaceRef: HTMLDivElement | undefined;
|
|
10
|
+
tableResize: ReturnType<typeof createEditorTableResize>;
|
|
11
|
+
imageOps: ReturnType<typeof createEditorImageOperations>;
|
|
12
|
+
tableDrag: ReturnType<typeof createEditorTableDrag>;
|
|
13
|
+
textDrag: ReturnType<typeof createEditorTextDrag>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Presentational floating layers that visualize active drag/resize gestures:
|
|
17
|
+
* the table resize guide, image/table drag ghosts and the various drop carets.
|
|
18
|
+
* Holds no editor logic — it only binds gesture controller state to DOM.
|
|
19
|
+
*/
|
|
20
|
+
export declare function EditorDragLayers(props: EditorDragLayersProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Accessor } from '../../solid-js';
|
|
2
|
+
import { OasisEditorEditor, OasisEditorEditorFileHandlers, OasisEditorEditorInputHandlers, OasisEditorEditorLayoutProps, OasisEditorEditorOverlayProps, OasisEditorEditorRefProps, OasisEditorEditorSurfaceHandlers } from '../../../OasisEditorEditor.js';
|
|
3
|
+
import { ShellProps } from '../../../shells/DocumentShell.js';
|
|
4
|
+
import { ToolbarHost } from '../../../components/Toolbar/state/createToolbarApi.js';
|
|
5
|
+
import { ToolbarRegistry } from '../../../components/Toolbar/registry/ToolbarRegistry.js';
|
|
6
|
+
import { EditorLayoutParagraph, EditorState } from '../../../../core/model.js';
|
|
7
|
+
|
|
8
|
+
export interface EditorWorkspaceProps {
|
|
9
|
+
useComposedShell: () => boolean;
|
|
10
|
+
shellComponent: () => (props: ShellProps) => ReturnType<typeof OasisEditorEditor>;
|
|
11
|
+
state: Accessor<EditorState>;
|
|
12
|
+
toolbarHost: () => ToolbarHost;
|
|
13
|
+
persistenceStatus: () => string;
|
|
14
|
+
toolbarRegistry: ToolbarRegistry;
|
|
15
|
+
showChrome: () => boolean;
|
|
16
|
+
showTitleBar: () => boolean;
|
|
17
|
+
showMenubar: () => boolean;
|
|
18
|
+
showToolbar: () => boolean;
|
|
19
|
+
showOutline: () => boolean;
|
|
20
|
+
isReadOnly: () => boolean;
|
|
21
|
+
viewportHeight: () => number | string | undefined;
|
|
22
|
+
measuredBlockHeights: Accessor<Record<string, number>>;
|
|
23
|
+
measuredParagraphLayouts: Accessor<Record<string, EditorLayoutParagraph>>;
|
|
24
|
+
showFloatingTableToolbar: Accessor<boolean>;
|
|
25
|
+
layout: OasisEditorEditorLayoutProps;
|
|
26
|
+
overlays: OasisEditorEditorOverlayProps;
|
|
27
|
+
refs: OasisEditorEditorRefProps;
|
|
28
|
+
surfaceHandlers: OasisEditorEditorSurfaceHandlers;
|
|
29
|
+
inputHandlers: OasisEditorEditorInputHandlers;
|
|
30
|
+
fileHandlers: OasisEditorEditorFileHandlers;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Renders the editor body, choosing between the composed shell (docs/inline/
|
|
34
|
+
* balloon chrome) and the bare canvas editor. Pure binding: it forwards the
|
|
35
|
+
* already-assembled view-prop bundles and runtime facade to the right surface.
|
|
36
|
+
*/
|
|
37
|
+
export declare function EditorWorkspace(props: EditorWorkspaceProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Accessor, JSX } from '../../solid-js';
|
|
2
|
+
import { CaretBox, InputBox, RevisionBox, SelectedImageBox, SelectionBox } from '../../../editorUiTypes.js';
|
|
3
|
+
import { OasisEditorEditorFileHandlers, OasisEditorEditorInputHandlers, OasisEditorEditorLayoutProps, OasisEditorEditorOverlayProps, OasisEditorEditorRefProps, OasisEditorEditorSurfaceHandlers } from '../../../OasisEditorEditor.js';
|
|
4
|
+
import { createEditorFocusController } from '../../useEditorFocus.js';
|
|
5
|
+
import { createEditorSurfaceEvents } from '../../../../app/controllers/useEditorSurfaceEvents.js';
|
|
6
|
+
import { createEditorTableResize } from '../../../../app/controllers/useEditorTableResize.js';
|
|
7
|
+
import { createEditorTableDrag } from '../../../../app/controllers/useEditorTableDrag.js';
|
|
8
|
+
import { createEditorTextInput } from '../../../../app/controllers/useEditorTextInput.js';
|
|
9
|
+
import { createEditorRevisionController } from '../../../../app/controllers/useEditorRevision.js';
|
|
10
|
+
|
|
11
|
+
type ImportProgress = NonNullable<ReturnType<NonNullable<OasisEditorEditorOverlayProps["importProgress"]>>>;
|
|
12
|
+
/**
|
|
13
|
+
* Inputs needed to assemble the editor's view-prop bundles. These are already
|
|
14
|
+
* built controllers, accessors and handlers owned by the composition root; this
|
|
15
|
+
* module performs only the (logic-free) shaping into the prop objects consumed
|
|
16
|
+
* by `OasisEditorEditor` and the composed shells.
|
|
17
|
+
*/
|
|
18
|
+
export interface EditorViewPropsContext {
|
|
19
|
+
layoutMode: NonNullable<OasisEditorEditorLayoutProps["layoutMode"]>;
|
|
20
|
+
viewportHeight: number | string | undefined;
|
|
21
|
+
className: string | undefined;
|
|
22
|
+
style: JSX.CSSProperties | undefined;
|
|
23
|
+
selectionBoxes: Accessor<SelectionBox[]>;
|
|
24
|
+
selectedImageBox: Accessor<SelectedImageBox | null>;
|
|
25
|
+
caretBox: Accessor<CaretBox>;
|
|
26
|
+
inputBox: Accessor<InputBox>;
|
|
27
|
+
hoveredRevision: Accessor<RevisionBox | null>;
|
|
28
|
+
focused: Accessor<boolean>;
|
|
29
|
+
showCaret: Accessor<boolean>;
|
|
30
|
+
importProgress: Accessor<ImportProgress | null>;
|
|
31
|
+
focusController: ReturnType<typeof createEditorFocusController>;
|
|
32
|
+
handleImportDocx: (file: File | null) => void;
|
|
33
|
+
handleInsertImage: (file: File | null) => void;
|
|
34
|
+
surfaceEvents: ReturnType<typeof createEditorSurfaceEvents>;
|
|
35
|
+
tableResize: ReturnType<typeof createEditorTableResize>;
|
|
36
|
+
tableDrag: ReturnType<typeof createEditorTableDrag>;
|
|
37
|
+
revisionController: ReturnType<typeof createEditorRevisionController>;
|
|
38
|
+
handleDrop: OasisEditorEditorSurfaceHandlers["onDrop"];
|
|
39
|
+
onEditorMouseDown: OasisEditorEditorSurfaceHandlers["onEditorMouseDown"];
|
|
40
|
+
handleImageMouseDown: OasisEditorEditorSurfaceHandlers["onImageMouseDown"];
|
|
41
|
+
handleImageResizeHandleMouseDown: OasisEditorEditorSurfaceHandlers["onImageResizeHandleMouseDown"];
|
|
42
|
+
handleEditorContextMenu: (event: MouseEvent) => void;
|
|
43
|
+
textInput: ReturnType<typeof createEditorTextInput>;
|
|
44
|
+
setFocused: (value: boolean) => void;
|
|
45
|
+
handleCopy: OasisEditorEditorInputHandlers["onCopy"];
|
|
46
|
+
handleCut: OasisEditorEditorInputHandlers["onCut"];
|
|
47
|
+
handlePaste: OasisEditorEditorInputHandlers["onPaste"];
|
|
48
|
+
handleKeyDown: OasisEditorEditorInputHandlers["onKeyDown"];
|
|
49
|
+
}
|
|
50
|
+
export interface EditorViewProps {
|
|
51
|
+
layout: OasisEditorEditorLayoutProps;
|
|
52
|
+
overlays: OasisEditorEditorOverlayProps;
|
|
53
|
+
refs: OasisEditorEditorRefProps;
|
|
54
|
+
surfaceHandlers: OasisEditorEditorSurfaceHandlers;
|
|
55
|
+
inputHandlers: OasisEditorEditorInputHandlers;
|
|
56
|
+
fileHandlers: OasisEditorEditorFileHandlers;
|
|
57
|
+
}
|
|
58
|
+
export declare function buildEditorViewProps(ctx: EditorViewPropsContext): EditorViewProps;
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { EditorState } from '../../../../core/model.js';
|
|
2
|
+
import { SelectedImageRun } from '../../../../core/commands/image.js';
|
|
3
|
+
import { createEditorCommandsController } from '../../../../app/controllers/EditorCommandsController.js';
|
|
4
|
+
import { createEditorHistoryActions } from '../../../../app/controllers/useEditorHistoryActions.js';
|
|
5
|
+
import { createEditorStyleController } from '../../../../app/controllers/useEditorStyle.js';
|
|
6
|
+
import { createEditorTableOperations } from '../../../../app/controllers/useEditorTableOperations.js';
|
|
7
|
+
|
|
8
|
+
interface CreateEditorEssentialsPluginOptions {
|
|
9
|
+
state: () => EditorState;
|
|
10
|
+
isReadOnly: () => boolean;
|
|
11
|
+
forcePlainTextPaste: {
|
|
12
|
+
get: () => boolean;
|
|
13
|
+
set: (value: boolean) => void;
|
|
14
|
+
};
|
|
15
|
+
undoStack: () => EditorState[];
|
|
16
|
+
redoStack: () => EditorState[];
|
|
17
|
+
commandsController: ReturnType<typeof createEditorCommandsController>;
|
|
18
|
+
keyboardCommandsController: ReturnType<typeof createEditorCommandsController> & {
|
|
19
|
+
applyBooleanStyleCommand: ReturnType<typeof createEditorStyleController>["applyToolbarBooleanStyleCommand"];
|
|
20
|
+
};
|
|
21
|
+
historyActions: ReturnType<typeof createEditorHistoryActions>;
|
|
22
|
+
styleController: ReturnType<typeof createEditorStyleController>;
|
|
23
|
+
tableOps: ReturnType<typeof createEditorTableOperations>;
|
|
24
|
+
docIO: {
|
|
25
|
+
handleExportDocx: () => Promise<void>;
|
|
26
|
+
handleExportPdf: () => Promise<void>;
|
|
27
|
+
};
|
|
28
|
+
importInputRef: () => HTMLInputElement | undefined;
|
|
29
|
+
imageInputRef: () => HTMLInputElement | undefined;
|
|
30
|
+
selectedImageRun: () => SelectedImageRun | null;
|
|
31
|
+
selectionBoxes: () => Array<unknown>;
|
|
32
|
+
focusInput: () => void;
|
|
33
|
+
applyState: (nextState: EditorState) => void;
|
|
34
|
+
applyTransactionalState: (producer: (current: EditorState) => EditorState, options?: {
|
|
35
|
+
mergeKey?: string;
|
|
36
|
+
}) => void;
|
|
37
|
+
findReplace: {
|
|
38
|
+
setIsOpen: (open: boolean) => void;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export declare function createEditorEssentialsRuntimePlugin(options: CreateEditorEssentialsPluginOptions): import('../../../../index.js').OasisPlugin;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Accessor } from '../../solid-js';
|
|
2
|
+
import { Editor } from '../../../../core/Editor.js';
|
|
3
|
+
import { CommandRef } from '../../../../core/commands/CommandRef.js';
|
|
4
|
+
import { EditorDocument } from '../../../../core/model.js';
|
|
5
|
+
import { OasisPlugin } from '../../../../core/plugin.js';
|
|
6
|
+
import { ToolbarHost } from '../../../components/Toolbar/state/createToolbarApi.js';
|
|
7
|
+
import { EditorLogger } from '../../../../utils/logger.js';
|
|
8
|
+
|
|
9
|
+
interface CreateRuntimeCommandHostOptions {
|
|
10
|
+
initialDocument: EditorDocument;
|
|
11
|
+
runtimePlugins: OasisPlugin[];
|
|
12
|
+
focusEditor: () => void;
|
|
13
|
+
logger: EditorLogger;
|
|
14
|
+
onReady?: () => void;
|
|
15
|
+
onSettled?: () => void;
|
|
16
|
+
}
|
|
17
|
+
export declare function createRuntimeCommandHost(options: CreateRuntimeCommandHostOptions): {
|
|
18
|
+
runtimeReady: Accessor<boolean>;
|
|
19
|
+
runtimeEditor: Accessor<Editor>;
|
|
20
|
+
commandStateOf: (commandRef: CommandRef) => {
|
|
21
|
+
isEnabled: boolean;
|
|
22
|
+
isActive: boolean;
|
|
23
|
+
value: unknown;
|
|
24
|
+
};
|
|
25
|
+
toolbarHost: () => ToolbarHost;
|
|
26
|
+
initialize: () => Promise<void>;
|
|
27
|
+
dispose: () => Promise<void>;
|
|
28
|
+
};
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { EditorDocument } from '../../../../core/model.js';
|
|
2
|
+
import { ToolbarStyleState } from '../../../toolbarStyleState.js';
|
|
3
|
+
|
|
4
|
+
export declare function computeFontFamilyOptions(document: EditorDocument | undefined, toolbarStyleState: Pick<ToolbarStyleState, "fontFamily">, localFontFamilies?: string[]): string[];
|
|
5
|
+
export declare function computeFontSizeOptions(document: EditorDocument | undefined, toolbarStyleState: Pick<ToolbarStyleState, "fontSize">): number[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EditorState } from '../../../../core/model.js';
|
|
2
|
+
import { CaretBox } from '../../../editorUiTypes.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Decides whether the text caret should be painted: only for a visible, collapsed
|
|
6
|
+
* selection that is not a cross-cell table selection (where the caret would be
|
|
7
|
+
* ambiguous between cells).
|
|
8
|
+
*/
|
|
9
|
+
export declare function computeShouldShowCaret(state: EditorState, caretBox: CaretBox): boolean;
|