@modusoperandi/licit 0.13.1 → 0.13.10
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/.babelrc +54 -54
- package/.dockerignore +4 -4
- package/.eslintignore +3 -3
- package/.eslintrc.js +84 -80
- package/.flowconfig +37 -37
- package/.github/workflows/build.yml +29 -35
- package/.github/workflows/lint.yml +30 -30
- package/.prettierignore +5 -5
- package/.prettierrc +4 -4
- package/.stylelintignore +1 -1
- package/.stylelintrc.json +13 -13
- package/.travis.yml +18 -18
- package/CODEOWNERS +40 -40
- package/LICENSE +22 -22
- package/README.md +300 -286
- package/babel.config.json +54 -0
- package/build_collab_server.py +7 -7
- package/build_image_server.py +7 -7
- package/dist/BlockquoteInsertNewLineCommand.js.flow +55 -55
- package/dist/BlockquoteNodeSpec.js.flow +30 -30
- package/dist/BlockquoteToggleCommand.js.flow +34 -34
- package/dist/BookmarkNodeSpec.js.flow +39 -39
- package/dist/BulletListNodeSpec.js.flow +61 -61
- package/dist/CZIProseMirror.js.flow +90 -90
- package/dist/CodeBlockCommand.js +2 -2
- package/dist/CodeBlockCommand.js.flow +43 -43
- package/dist/CodeBlockNodeSpec.js.flow +24 -24
- package/dist/CodeMarkSpec.js.flow +14 -14
- package/dist/ContentPlaceholderPlugin.js.flow +187 -187
- package/dist/CursorPlaceholderPlugin.js.flow +115 -115
- package/dist/DocLayoutCommand.js +2 -4
- package/dist/DocLayoutCommand.js.flow +94 -94
- package/dist/DocNodeSpec.js.flow +64 -64
- package/dist/EMMarkSpec.js.flow +14 -14
- package/dist/EditorCommands.js +22 -34
- package/dist/EditorCommands.js.flow +128 -128
- package/dist/EditorKeyMap.js.flow +187 -187
- package/dist/EditorMarks.js.flow +71 -71
- package/dist/EditorNodes.js.flow +60 -60
- package/dist/EditorPageLayoutPlugin.js.flow +67 -67
- package/dist/EditorPlugins.js.flow +8 -8
- package/dist/EditorSchema.js.flow +12 -12
- package/dist/EditorState.js.flow +7 -7
- package/dist/FontSizeMarkSpec.js.flow +49 -49
- package/dist/FontTypeMarkSpec.js.flow +80 -80
- package/dist/HTMLMutator.js.flow +59 -59
- package/dist/HardBreakNodeSpec.js.flow +15 -15
- package/dist/HeadingNodeSpec.js.flow +54 -54
- package/dist/HistoryRedoCommand.js.flow +20 -20
- package/dist/HistoryUndoCommand.js.flow +20 -20
- package/dist/HorizontalRuleCommand.js.flow +49 -49
- package/dist/HorizontalRuleNodeSpec.js.flow +39 -39
- package/dist/ImageFromURLCommand.js.flow +14 -14
- package/dist/ImageNodeSpec.js.flow +90 -90
- package/dist/ImageSourceCommand.js +2 -4
- package/dist/ImageSourceCommand.js.flow +117 -117
- package/dist/ImageUploadCommand.js.flow +36 -36
- package/dist/ImageUploadPlaceholderPlugin.js.flow +192 -192
- package/dist/LinkMarkSpec.js.flow +32 -32
- package/dist/LinkSetURLCommand.js +4 -8
- package/dist/LinkSetURLCommand.js.flow +103 -103
- package/dist/LinkTooltipPlugin.js +9 -15
- package/dist/LinkTooltipPlugin.js.flow +203 -203
- package/dist/ListItemInsertNewLineCommand.js.flow +55 -55
- package/dist/ListItemMergeCommand.js.flow +177 -177
- package/dist/ListItemNodeSpec.js.flow +51 -51
- package/dist/ListSplitCommand.js.flow +32 -32
- package/dist/ListToggleCommand.js +4 -10
- package/dist/ListToggleCommand.js.flow +77 -77
- package/dist/MarkNames.js.flow +18 -18
- package/dist/MarksClearCommand.js +3 -3
- package/dist/MarksClearCommand.js.flow +42 -42
- package/dist/MathEditCommand.js +2 -2
- package/dist/MathEditCommand.js.flow +110 -110
- package/dist/MathNodeSpec.js.flow +46 -46
- package/dist/NodeNames.js.flow +23 -23
- package/dist/OrderedListNodeSpec.js.flow +132 -132
- package/dist/ParagraphNodeSpec.js +1 -3
- package/dist/ParagraphNodeSpec.js.flow +156 -160
- package/dist/ParagraphSpacingCommand.js.flow +121 -121
- package/dist/PrintCommand.js.flow +31 -31
- package/dist/SelectionPlaceholderPlugin.js.flow +131 -131
- package/dist/SpacerMarkSpec.js.flow +47 -47
- package/dist/StrikeMarkSpec.js.flow +21 -21
- package/dist/StrongMarkSpec.js.flow +25 -25
- package/dist/StyleView.js.flow +19 -19
- package/dist/TableBackgroundColorCommand.js +3 -7
- package/dist/TableBackgroundColorCommand.js.flow +75 -75
- package/dist/TableBorderColorCommand.js +3 -7
- package/dist/TableBorderColorCommand.js.flow +75 -75
- package/dist/TableCellColorCommand.js +3 -7
- package/dist/TableCellColorCommand.js.flow +71 -71
- package/dist/TableCellMenuPlugin.js +4 -6
- package/dist/TableCellMenuPlugin.js.flow +125 -125
- package/dist/TableInsertCommand.js +3 -5
- package/dist/TableInsertCommand.js.flow +112 -112
- package/dist/TableMergeCellsCommand.js.flow +90 -90
- package/dist/TableNodesSpecs.js.flow +78 -78
- package/dist/TablePlugins.js.flow +14 -14
- package/dist/TableResizePlugin.js.flow +631 -631
- package/dist/TextColorMarkSpec.js.flow +35 -35
- package/dist/TextHighlightMarkSpec.js.flow +38 -38
- package/dist/TextInsertTabSpaceCommand.js +2 -4
- package/dist/TextInsertTabSpaceCommand.js.flow +83 -83
- package/dist/TextNoWrapMarkSpec.js.flow +14 -14
- package/dist/TextNodeSpec.js.flow +7 -7
- package/dist/TextSelectionMarkSpec.js.flow +24 -24
- package/dist/TextSubMarkSpec.js.flow +20 -20
- package/dist/TextSuperMarkSpec.js.flow +20 -20
- package/dist/TextUnderlineMarkSpec.js.flow +27 -27
- package/dist/Types.js.flow +75 -75
- package/dist/WebFontLoader.js.flow +22 -22
- package/dist/blockQuoteInputRule.js.flow +36 -36
- package/dist/bom.xml +10778 -4658
- package/dist/browser.js.flow +7 -7
- package/dist/buildEditorPlugins.js.flow +51 -51
- package/dist/buildInputRules.js.flow +81 -81
- package/dist/client/CollabConnector.js +17 -2
- package/dist/client/CollabConnector.js.flow +86 -71
- package/dist/client/EditorConnection.js +17 -6
- package/dist/client/EditorConnection.js.flow +318 -307
- package/dist/client/Licit.js +159 -85
- package/dist/client/Licit.js.flow +638 -562
- package/dist/client/Licit.test.js +50 -22
- package/dist/client/Licit.test.js.flow +98 -65
- package/dist/client/Reporter.js.flow +37 -37
- package/dist/client/SimpleConnector.js +3 -1
- package/dist/client/SimpleConnector.js.flow +55 -53
- package/dist/client/http.js +12 -0
- package/dist/client/http.js.flow +70 -66
- package/dist/client/licit.css +12 -12
- package/dist/client/throttle.js.flow +27 -27
- package/dist/convertFromDOMElement.js.flow +36 -36
- package/dist/convertFromHTML.js +1 -4
- package/dist/convertFromHTML.js.flow +17 -19
- package/dist/convertFromJSON.js +12 -28
- package/dist/convertFromJSON.js.flow +56 -78
- package/dist/convertToCSSPTValue.js.flow +22 -22
- package/dist/convertToJSON.js.flow +7 -7
- package/dist/createCommand.js.flow +40 -40
- package/dist/createEditorKeyMap.js.flow +94 -94
- package/dist/createEmptyEditorState.js +6 -12
- package/dist/createEmptyEditorState.js.flow +31 -41
- package/dist/createTableResizingPlugin.js.flow +86 -86
- package/dist/findActionableCell.js.flow +74 -74
- package/dist/findActiveMark.js.flow +32 -32
- package/dist/hyphenize.js.flow +17 -17
- package/dist/index.js +11 -1
- package/dist/index.js.flow +10 -10
- package/dist/insertTable.js.flow +56 -56
- package/dist/isEditorStateEmpty.js.flow +32 -32
- package/dist/isTableNode.js.flow +15 -15
- package/dist/joinDown.js.flow +27 -27
- package/dist/joinListNode.js +2 -2
- package/dist/joinListNode.js.flow +55 -55
- package/dist/joinUp.js.flow +39 -39
- package/dist/keymaps.js.flow +185 -185
- package/dist/lookUpElement.js.flow +14 -14
- package/dist/nodeAt.js.flow +12 -12
- package/dist/normalizeHTML.js.flow +78 -78
- package/dist/patchAnchorElements.js.flow +38 -38
- package/dist/patchBreakElements.js.flow +22 -22
- package/dist/patchElementInlineStyles.js.flow +92 -92
- package/dist/patchListElements.js.flow +276 -276
- package/dist/patchMathElements.js.flow +60 -60
- package/dist/patchParagraphElements.js.flow +20 -20
- package/dist/patchStyleElements.js +3 -5
- package/dist/patchStyleElements.js.flow +194 -194
- package/dist/patchTableElements.js.flow +89 -89
- package/dist/rebaseDocWithSteps.js.flow +42 -42
- package/dist/sanitizeURL.js.flow +13 -13
- package/dist/splitListItem.js.flow +191 -191
- package/dist/styles.css +19 -19
- package/dist/styles0.css +29 -29
- package/dist/toClosestFontPtSize.js.flow +22 -22
- package/dist/toSafeHTMLDocument.js.flow +9 -9
- package/dist/toggleBlockquote.js +6 -14
- package/dist/toggleBlockquote.js.flow +91 -91
- package/dist/toggleCodeBlock.js +4 -10
- package/dist/toggleCodeBlock.js.flow +102 -102
- package/dist/ui/AlertInfo.js.flow +64 -64
- package/dist/ui/BookmarkNodeView.js.flow +66 -66
- package/dist/ui/CommandButton.js +2 -4
- package/dist/ui/CommandButton.js.flow +68 -68
- package/dist/ui/CommandMenu.js.flow +75 -75
- package/dist/ui/CommandMenuButton.js +3 -5
- package/dist/ui/CommandMenuButton.js.flow +131 -131
- package/dist/ui/CustomEditorView.js.flow +28 -28
- package/dist/ui/CustomMenu.js.flow +17 -17
- package/dist/ui/CustomMenuItem.js +3 -5
- package/dist/ui/CustomMenuItem.js.flow +36 -36
- package/dist/ui/CustomNodeView.js.flow +200 -200
- package/dist/ui/CustomRadioButton.js +6 -6
- package/dist/ui/CustomRadioButton.js.flow +65 -65
- package/dist/ui/DocLayoutEditor.js +4 -6
- package/dist/ui/DocLayoutEditor.js.flow +146 -146
- package/dist/ui/Editor.js +0 -1
- package/dist/ui/Editor.js.flow +290 -291
- package/dist/ui/EditorFrameset.js.flow +81 -81
- package/dist/ui/EditorToolbar.js +2 -2
- package/dist/ui/EditorToolbar.js.flow +211 -211
- package/dist/ui/EditorToolbarConfig.js.flow +172 -172
- package/dist/ui/FontSizeCommandMenuButton.js +3 -3
- package/dist/ui/FontSizeCommandMenuButton.js.flow +66 -66
- package/dist/ui/FontTypeCommandMenuButton.js +3 -3
- package/dist/ui/FontTypeCommandMenuButton.js.flow +49 -49
- package/dist/ui/Frag.js.flow +13 -13
- package/dist/ui/Icon.js.flow +89 -89
- package/dist/ui/ImageAlignEditor.js +4 -4
- package/dist/ui/ImageAlignEditor.js.flow +60 -60
- package/dist/ui/ImageInlineEditor.js +4 -4
- package/dist/ui/ImageInlineEditor.js.flow +67 -67
- package/dist/ui/ImageNodeView.js +3 -5
- package/dist/ui/ImageNodeView.js.flow +404 -404
- package/dist/ui/ImageResizeBox.js +3 -3
- package/dist/ui/ImageResizeBox.js.flow +219 -219
- package/dist/ui/ImageURLEditor.js +4 -6
- package/dist/ui/ImageURLEditor.js.flow +119 -119
- package/dist/ui/ImageUploadEditor.js +3 -5
- package/dist/ui/ImageUploadEditor.js.flow +117 -117
- package/dist/ui/KeyCodes.js.flow +12 -12
- package/dist/ui/LinkTooltip.js +4 -4
- package/dist/ui/LinkTooltip.js.flow +85 -85
- package/dist/ui/LinkURLEditor.js +4 -6
- package/dist/ui/LinkURLEditor.js.flow +111 -111
- package/dist/ui/ListItemNodeView.js.flow +98 -98
- package/dist/ui/ListTypeButton.js +3 -5
- package/dist/ui/ListTypeButton.js.flow +131 -131
- package/dist/ui/ListTypeCommandButton.js.flow +85 -85
- package/dist/ui/ListTypeMenu.js.flow +70 -70
- package/dist/ui/LoadingIndicator.js.flow +20 -20
- package/dist/ui/MathEditor.js +4 -6
- package/dist/ui/MathEditor.js.flow +78 -78
- package/dist/ui/MathInlineEditor.js +4 -6
- package/dist/ui/MathInlineEditor.js.flow +102 -102
- package/dist/ui/MathNodeView.js +3 -5
- package/dist/ui/MathNodeView.js.flow +175 -175
- package/dist/ui/PasteMenu.js.flow +57 -57
- package/dist/ui/ResizeObserver.js.flow +106 -106
- package/dist/ui/RichTextEditor.js.flow +133 -133
- package/dist/ui/SelectionObserver.js.flow +134 -134
- package/dist/ui/TableCellMenu.js.flow +38 -38
- package/dist/ui/TableGridSizeEditor.js +6 -8
- package/dist/ui/TableGridSizeEditor.js.flow +184 -184
- package/dist/ui/TableNodeView.js.flow +22 -22
- package/dist/ui/bindScrollHandler.js.flow +46 -46
- package/dist/ui/canUseCSSFont.js.flow +43 -43
- package/dist/ui/czi-body-layout-editor.css +16 -16
- package/dist/ui/czi-bookmark-view.css +10 -10
- package/dist/ui/czi-cursor-placeholder.css +36 -36
- package/dist/ui/czi-custom-menu-button.css +18 -18
- package/dist/ui/czi-custom-menu-item.css +30 -30
- package/dist/ui/czi-custom-menu.css +8 -8
- package/dist/ui/czi-custom-radio-button.css +80 -80
- package/dist/ui/czi-custom-scrollbar.css +21 -21
- package/dist/ui/czi-editor-frameset.css +81 -81
- package/dist/ui/czi-editor-toolbar.css +122 -122
- package/dist/ui/czi-editor.css +220 -220
- package/dist/ui/czi-form.css +104 -104
- package/dist/ui/czi-frag.css +3 -3
- package/dist/ui/czi-heading.css +40 -40
- package/dist/ui/czi-icon.css +72 -72
- package/dist/ui/czi-image-resize-box.css +165 -165
- package/dist/ui/czi-image-upload-editor.css +57 -57
- package/dist/ui/czi-image-upload-placeholder.css +50 -50
- package/dist/ui/czi-image-url-editor.css +38 -38
- package/dist/ui/czi-image-view.css +125 -125
- package/dist/ui/czi-indent.css +137 -137
- package/dist/ui/czi-inline-editor.css +20 -20
- package/dist/ui/czi-link-tooltip.css +71 -71
- package/dist/ui/czi-list.css +410 -410
- package/dist/ui/czi-loading-indicator.css +111 -111
- package/dist/ui/czi-math-view.css +62 -62
- package/dist/ui/czi-selection-placeholder.css +24 -24
- package/dist/ui/czi-table-cell-menu.css +14 -14
- package/dist/ui/czi-table-grid-size-editor.css +37 -37
- package/dist/ui/czi-table.css +86 -86
- package/dist/ui/czi-vars.css +2 -46
- package/dist/ui/findActiveFontSize.js.flow +58 -58
- package/dist/ui/findActiveFontType.js.flow +38 -38
- package/dist/ui/fonts.css +471 -471
- package/dist/ui/handleEditorDrop.js.flow +28 -28
- package/dist/ui/handleEditorKeyDown.js.flow +39 -39
- package/dist/ui/handleEditorPaste.js.flow +33 -33
- package/dist/ui/htmlElementToRect.js.flow +18 -18
- package/dist/ui/icon-font.css +10 -10
- package/dist/ui/injectStyleSheet.js.flow +42 -42
- package/dist/ui/isElementFullyVisible.js +2 -2
- package/dist/ui/isElementFullyVisible.js.flow +23 -23
- package/dist/ui/isOffline.js.flow +8 -8
- package/dist/ui/isReactClass.js.flow +12 -12
- package/dist/ui/listType.css +21 -21
- package/dist/ui/mathquill-editor/MathQuillEditor.js.flow +159 -159
- package/dist/ui/mathquill-editor/MathQuillEditorSymbols.js.flow +483 -483
- package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +2 -2
- package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +48 -48
- package/dist/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
- package/dist/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
- package/dist/ui/mathquill-editor/mathquill-import-kludge.js.flow +24 -24
- package/dist/ui/renderLaTeXAsHTML.js.flow +46 -46
- package/dist/ui/resolveImage.js.flow +123 -123
- package/dist/ui/toCSSColor.js.flow +51 -51
- package/dist/ui/toCSSLineSpacing.js +1 -36
- package/dist/ui/toCSSLineSpacing.js.flow +55 -82
- package/dist/ui/toHexColor.js.flow +26 -26
- package/dist/ui/uuid.js.flow +9 -9
- package/dist/uuid.js.flow +9 -9
- package/flow-typed/@modusoperandilicit-customstyles.js +5 -5
- package/flow-typed/@modusoperandilicit-doc-attrs-step.js +5 -5
- package/flow-typed/@modusoperandilicit-ui-commands.js +5 -0
- package/flow-typed/create-emotion.js +5 -5
- package/flow-typed/docs-editor.js +3 -3
- package/flow-typed/draft-convert.js +3 -3
- package/flow-typed/draft-js.js +3 -3
- package/flow-typed/flatted.js +5 -5
- package/flow-typed/jquery.js +5 -5
- package/flow-typed/katex.js +6 -6
- package/flow-typed/mathquill.js +5 -5
- package/flow-typed/prosemirror-collab.js +5 -5
- package/flow-typed/prosemirror-commands.js +5 -5
- package/flow-typed/prosemirror-dev-tools.js +5 -5
- package/flow-typed/prosemirror-dropcursor.js +5 -5
- package/flow-typed/prosemirror-gapcursor.js +5 -5
- package/flow-typed/prosemirror-history.js +5 -5
- package/flow-typed/prosemirror-inputrules.js +5 -5
- package/flow-typed/prosemirror-keymap.js +5 -5
- package/flow-typed/prosemirror-model.js +5 -5
- package/flow-typed/prosemirror-state.js +5 -5
- package/flow-typed/prosemirror-tables.js +5 -5
- package/flow-typed/prosemirror-transform.js +5 -5
- package/flow-typed/prosemirror-utils.js +5 -5
- package/flow-typed/prosemirror-view.js +5 -5
- package/flow-typed/resize-observer-polyfill.js +5 -5
- package/flow-typed/uuid.js +5 -5
- package/jest.config.js +207 -0
- package/jest.setup.js +5 -5
- package/licit/client/CustomLicitRuntime.js +95 -95
- package/licit/client/CustomStyleRuntime.js +136 -136
- package/licit/client/index.js +367 -366
- package/licit/index.html +11 -11
- package/licit/server/collab/instance.js +224 -221
- package/licit/server/collab/route.js +69 -69
- package/licit/server/collab/server.js +297 -297
- package/licit/server/collab/start.js +13 -13
- package/licit/server/image/start.js +58 -58
- package/lint.sh +4 -4
- package/package.json +167 -163
- package/run_collab_server.py +21 -21
- package/run_image_server.py +20 -20
- package/run_web_server.py +25 -25
- package/scripts/build_bin.js +10 -10
- package/scripts/build_bin.py +103 -103
- package/scripts/ci_check_dist.sh +13 -13
- package/scripts/env.js +6 -6
- package/scripts/webserver.js +35 -35
- package/sonar-project.properties +11 -11
- package/src/BlockquoteInsertNewLineCommand.js +55 -55
- package/src/BlockquoteNodeSpec.js +30 -30
- package/src/BlockquoteToggleCommand.js +34 -34
- package/src/BookmarkNodeSpec.js +39 -39
- package/src/BulletListNodeSpec.js +61 -61
- package/src/CZIProseMirror.js +90 -90
- package/src/CodeBlockCommand.js +43 -43
- package/src/CodeBlockNodeSpec.js +24 -24
- package/src/CodeMarkSpec.js +14 -14
- package/src/ContentPlaceholderPlugin.js +187 -187
- package/src/CursorPlaceholderPlugin.js +115 -115
- package/src/DocLayoutCommand.js +94 -94
- package/src/DocNodeSpec.js +64 -64
- package/src/EMMarkSpec.js +14 -14
- package/src/EditorCommands.js +128 -128
- package/src/EditorKeyMap.js +187 -187
- package/src/EditorMarks.js +71 -71
- package/src/EditorNodes.js +60 -60
- package/src/EditorPageLayoutPlugin.js +67 -67
- package/src/EditorPlugins.js +8 -8
- package/src/EditorSchema.js +12 -12
- package/src/EditorState.js +7 -7
- package/src/FontSizeMarkSpec.js +49 -49
- package/src/FontTypeMarkSpec.js +80 -80
- package/src/HTMLMutator.js +59 -59
- package/src/HardBreakNodeSpec.js +15 -15
- package/src/HeadingNodeSpec.js +54 -54
- package/src/HistoryRedoCommand.js +20 -20
- package/src/HistoryUndoCommand.js +20 -20
- package/src/HorizontalRuleCommand.js +49 -49
- package/src/HorizontalRuleNodeSpec.js +39 -39
- package/src/ImageFromURLCommand.js +14 -14
- package/src/ImageNodeSpec.js +90 -90
- package/src/ImageSourceCommand.js +117 -117
- package/src/ImageUploadCommand.js +36 -36
- package/src/ImageUploadPlaceholderPlugin.js +192 -192
- package/src/LinkMarkSpec.js +32 -32
- package/src/LinkSetURLCommand.js +103 -103
- package/src/LinkTooltipPlugin.js +203 -203
- package/src/ListItemInsertNewLineCommand.js +55 -55
- package/src/ListItemMergeCommand.js +177 -177
- package/src/ListItemNodeSpec.js +51 -51
- package/src/ListSplitCommand.js +32 -32
- package/src/ListToggleCommand.js +77 -77
- package/src/MarkNames.js +18 -18
- package/src/MarksClearCommand.js +42 -42
- package/src/MathEditCommand.js +110 -110
- package/src/MathNodeSpec.js +46 -46
- package/src/NodeNames.js +23 -23
- package/src/OrderedListNodeSpec.js +132 -132
- package/src/ParagraphNodeSpec.js +156 -160
- package/src/ParagraphSpacingCommand.js +121 -121
- package/src/PrintCommand.js +31 -31
- package/src/SelectionPlaceholderPlugin.js +131 -131
- package/src/SpacerMarkSpec.js +47 -47
- package/src/StrikeMarkSpec.js +21 -21
- package/src/StrongMarkSpec.js +25 -25
- package/src/StyleView.js +19 -19
- package/src/TableBackgroundColorCommand.js +75 -75
- package/src/TableBorderColorCommand.js +75 -75
- package/src/TableCellColorCommand.js +71 -71
- package/src/TableCellMenuPlugin.js +125 -125
- package/src/TableInsertCommand.js +112 -112
- package/src/TableMergeCellsCommand.js +90 -90
- package/src/TableNodesSpecs.js +78 -78
- package/src/TablePlugins.js +14 -14
- package/src/TableResizePlugin.js +631 -631
- package/src/TextColorMarkSpec.js +35 -35
- package/src/TextHighlightMarkSpec.js +38 -38
- package/src/TextInsertTabSpaceCommand.js +83 -83
- package/src/TextNoWrapMarkSpec.js +14 -14
- package/src/TextNodeSpec.js +7 -7
- package/src/TextSelectionMarkSpec.js +24 -24
- package/src/TextSubMarkSpec.js +20 -20
- package/src/TextSuperMarkSpec.js +20 -20
- package/src/TextUnderlineMarkSpec.js +27 -27
- package/src/Types.js +75 -75
- package/src/WebFontLoader.js +22 -22
- package/src/blockQuoteInputRule.js +36 -36
- package/src/browser.js +7 -7
- package/src/buildEditorPlugins.js +51 -51
- package/src/buildInputRules.js +81 -81
- package/src/client/CollabConnector.js +86 -71
- package/src/client/EditorConnection.js +318 -307
- package/src/client/Licit.js +638 -562
- package/src/client/Licit.test.js +98 -65
- package/src/client/Reporter.js +37 -37
- package/src/client/SimpleConnector.js +55 -53
- package/src/client/http.js +70 -66
- package/src/client/licit.css +12 -12
- package/src/client/throttle.js +27 -27
- package/src/convertFromDOMElement.js +36 -36
- package/src/convertFromHTML.js +17 -19
- package/src/convertFromJSON.js +56 -78
- package/src/convertToCSSPTValue.js +22 -22
- package/src/convertToJSON.js +7 -7
- package/src/createCommand.js +40 -40
- package/src/createEditorKeyMap.js +94 -94
- package/src/createEmptyEditorState.js +31 -41
- package/src/createTableResizingPlugin.js +86 -86
- package/src/findActionableCell.js +74 -74
- package/src/findActiveMark.js +32 -32
- package/src/hyphenize.js +17 -17
- package/src/index.js +10 -10
- package/src/insertTable.js +56 -56
- package/src/isEditorStateEmpty.js +32 -32
- package/src/isTableNode.js +15 -15
- package/src/joinDown.js +27 -27
- package/src/joinListNode.js +55 -55
- package/src/joinUp.js +39 -39
- package/src/keymaps.js +185 -185
- package/src/lookUpElement.js +14 -14
- package/src/nodeAt.js +12 -12
- package/src/normalizeHTML.js +78 -78
- package/src/patchAnchorElements.js +38 -38
- package/src/patchBreakElements.js +22 -22
- package/src/patchElementInlineStyles.js +92 -92
- package/src/patchListElements.js +276 -276
- package/src/patchMathElements.js +60 -60
- package/src/patchParagraphElements.js +20 -20
- package/src/patchStyleElements.js +194 -194
- package/src/patchTableElements.js +89 -89
- package/src/rebaseDocWithSteps.js +42 -42
- package/src/sanitizeURL.js +13 -13
- package/src/splitListItem.js +191 -191
- package/src/styles.css +19 -19
- package/src/styles0.css +29 -29
- package/src/toClosestFontPtSize.js +22 -22
- package/src/toSafeHTMLDocument.js +9 -9
- package/src/toggleBlockquote.js +91 -91
- package/src/toggleCodeBlock.js +102 -102
- package/src/ui/AlertInfo.js +64 -64
- package/src/ui/BookmarkNodeView.js +66 -66
- package/src/ui/CommandButton.js +68 -68
- package/src/ui/CommandMenu.js +75 -75
- package/src/ui/CommandMenuButton.js +131 -131
- package/src/ui/CustomEditorView.js +28 -28
- package/src/ui/CustomMenu.js +17 -17
- package/src/ui/CustomMenuItem.js +36 -36
- package/src/ui/CustomNodeView.js +200 -200
- package/src/ui/CustomRadioButton.js +65 -65
- package/src/ui/DocLayoutEditor.js +146 -146
- package/src/ui/Editor.js +290 -291
- package/src/ui/EditorFrameset.js +81 -81
- package/src/ui/EditorToolbar.js +211 -211
- package/src/ui/EditorToolbarConfig.js +172 -172
- package/src/ui/FontSizeCommandMenuButton.js +66 -66
- package/src/ui/FontTypeCommandMenuButton.js +49 -49
- package/src/ui/Frag.js +13 -13
- package/src/ui/Icon.js +89 -89
- package/src/ui/ImageAlignEditor.js +60 -60
- package/src/ui/ImageInlineEditor.js +67 -67
- package/src/ui/ImageNodeView.js +404 -404
- package/src/ui/ImageResizeBox.js +219 -219
- package/src/ui/ImageURLEditor.js +119 -119
- package/src/ui/ImageUploadEditor.js +117 -117
- package/src/ui/KeyCodes.js +12 -12
- package/src/ui/LinkTooltip.js +85 -85
- package/src/ui/LinkURLEditor.js +111 -111
- package/src/ui/ListItemNodeView.js +98 -98
- package/src/ui/ListTypeButton.js +131 -131
- package/src/ui/ListTypeCommandButton.js +85 -85
- package/src/ui/ListTypeMenu.js +70 -70
- package/src/ui/LoadingIndicator.js +20 -20
- package/src/ui/MathEditor.js +78 -78
- package/src/ui/MathInlineEditor.js +102 -102
- package/src/ui/MathNodeView.js +175 -175
- package/src/ui/PasteMenu.js +57 -57
- package/src/ui/ResizeObserver.js +106 -106
- package/src/ui/RichTextEditor.js +133 -133
- package/src/ui/SelectionObserver.js +134 -134
- package/src/ui/TableCellMenu.js +38 -38
- package/src/ui/TableGridSizeEditor.js +184 -184
- package/src/ui/TableNodeView.js +22 -22
- package/src/ui/bindScrollHandler.js +46 -46
- package/src/ui/canUseCSSFont.js +43 -43
- package/src/ui/czi-body-layout-editor.css +16 -16
- package/src/ui/czi-bookmark-view.css +10 -10
- package/src/ui/czi-cursor-placeholder.css +36 -36
- package/src/ui/czi-custom-menu-button.css +18 -18
- package/src/ui/czi-custom-menu-item.css +30 -30
- package/src/ui/czi-custom-menu.css +8 -8
- package/src/ui/czi-custom-radio-button.css +80 -80
- package/src/ui/czi-custom-scrollbar.css +21 -21
- package/src/ui/czi-editor-frameset.css +81 -81
- package/src/ui/czi-editor-toolbar.css +122 -122
- package/src/ui/czi-editor.css +220 -220
- package/src/ui/czi-form.css +104 -104
- package/src/ui/czi-frag.css +3 -3
- package/src/ui/czi-heading.css +40 -40
- package/src/ui/czi-icon.css +72 -72
- package/src/ui/czi-image-resize-box.css +165 -165
- package/src/ui/czi-image-upload-editor.css +57 -57
- package/src/ui/czi-image-upload-placeholder.css +50 -50
- package/src/ui/czi-image-url-editor.css +38 -38
- package/src/ui/czi-image-view.css +125 -125
- package/src/ui/czi-indent.css +137 -137
- package/src/ui/czi-inline-editor.css +20 -20
- package/src/ui/czi-link-tooltip.css +71 -71
- package/src/ui/czi-list.css +410 -410
- package/src/ui/czi-loading-indicator.css +111 -111
- package/src/ui/czi-math-view.css +62 -62
- package/src/ui/czi-selection-placeholder.css +24 -24
- package/src/ui/czi-table-cell-menu.css +14 -14
- package/src/ui/czi-table-grid-size-editor.css +37 -37
- package/src/ui/czi-table.css +86 -86
- package/src/ui/czi-vars.css +2 -46
- package/src/ui/findActiveFontSize.js +58 -58
- package/src/ui/findActiveFontType.js +38 -38
- package/src/ui/fonts.css +471 -471
- package/src/ui/handleEditorDrop.js +28 -28
- package/src/ui/handleEditorKeyDown.js +39 -39
- package/src/ui/handleEditorPaste.js +33 -33
- package/src/ui/htmlElementToRect.js +18 -18
- package/src/ui/icon-font.css +10 -10
- package/src/ui/injectStyleSheet.js +42 -42
- package/src/ui/isElementFullyVisible.js +23 -23
- package/src/ui/isOffline.js +8 -8
- package/src/ui/isReactClass.js +12 -12
- package/src/ui/listType.css +21 -21
- package/src/ui/mathquill-editor/MathQuillEditor.js +159 -159
- package/src/ui/mathquill-editor/MathQuillEditorSymbols.js +483 -483
- package/src/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +48 -48
- package/src/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
- package/src/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
- package/src/ui/mathquill-editor/mathquill-import-kludge.js +24 -24
- package/src/ui/renderLaTeXAsHTML.js +46 -46
- package/src/ui/resolveImage.js +123 -123
- package/src/ui/toCSSColor.js +51 -51
- package/src/ui/toCSSLineSpacing.js +55 -82
- package/src/ui/toHexColor.js +26 -26
- package/src/ui/uuid.js +9 -9
- package/src/uuid.js +9 -9
- package/style-service.Dockerfile +26 -26
- package/utils/build_bin.js +9 -9
- package/utils/build_image_server.js +71 -69
- package/utils/build_licit_collab_server.js +75 -73
- package/utils/build_web_server.js +40 -40
- package/utils/env.js +6 -6
- package/webpack.config.js +126 -120
- package/build_customstyle_server.py +0 -7
- package/dist/FontSizeCommand.js +0 -80
- package/dist/FontSizeCommand.js.flow +0 -57
- package/dist/FontTypeCommand.js +0 -137
- package/dist/FontTypeCommand.js.flow +0 -100
- package/dist/HeadingCommand.js +0 -65
- package/dist/HeadingCommand.js.flow +0 -51
- package/dist/IndentCommand.js +0 -57
- package/dist/IndentCommand.js.flow +0 -41
- package/dist/MarkToggleCommand.js +0 -90
- package/dist/MarkToggleCommand.js.flow +0 -66
- package/dist/TextAlignCommand.js +0 -151
- package/dist/TextAlignCommand.js.flow +0 -122
- package/dist/TextColorCommand.js +0 -114
- package/dist/TextColorCommand.js.flow +0 -87
- package/dist/TextHighlightCommand.js +0 -118
- package/dist/TextHighlightCommand.js.flow +0 -91
- package/dist/TextLineSpacingCommand.js +0 -177
- package/dist/TextLineSpacingCommand.js.flow +0 -157
- package/dist/applyMark.js +0 -84
- package/dist/applyMark.js.flow +0 -61
- package/dist/clearMarks.js +0 -160
- package/dist/clearMarks.js.flow +0 -128
- package/dist/compareNumber.js +0 -18
- package/dist/compareNumber.js.flow +0 -11
- package/dist/consolidateListNodes.js +0 -291
- package/dist/consolidateListNodes.js.flow +0 -281
- package/dist/coverage/lcov-report/block-navigation.js +0 -82
- package/dist/coverage/lcov-report/block-navigation.js.flow +0 -87
- package/dist/coverage/lcov-report/prettify.js +0 -994
- package/dist/coverage/lcov-report/prettify.js.flow +0 -2
- package/dist/coverage/lcov-report/sorter.js +0 -211
- package/dist/coverage/lcov-report/sorter.js.flow +0 -196
- package/dist/findNodesWithSameMark.js +0 -89
- package/dist/findNodesWithSameMark.js.flow +0 -89
- package/dist/isBulletListNode.js +0 -14
- package/dist/isBulletListNode.js.flow +0 -9
- package/dist/isInsideListItem.js +0 -19
- package/dist/isInsideListItem.js.flow +0 -13
- package/dist/isListNode.js +0 -22
- package/dist/isListNode.js.flow +0 -13
- package/dist/isNodeSelectionForNodeType.js +0 -19
- package/dist/isNodeSelectionForNodeType.js.flow +0 -15
- package/dist/isOrderedListNode.js +0 -14
- package/dist/isOrderedListNode.js.flow +0 -9
- package/dist/isTextStyleMarkCommandEnabled.js +0 -59
- package/dist/isTextStyleMarkCommandEnabled.js.flow +0 -49
- package/dist/noop.js +0 -11
- package/dist/noop.js.flow +0 -5
- package/dist/toggleHeading.js +0 -135
- package/dist/toggleHeading.js.flow +0 -113
- package/dist/toggleList.js +0 -431
- package/dist/toggleList.js.flow +0 -450
- package/dist/transformAndPreserveTextSelection.js +0 -173
- package/dist/transformAndPreserveTextSelection.js.flow +0 -151
- package/dist/ui/ColorEditor.js +0 -118
- package/dist/ui/ColorEditor.js.flow +0 -101
- package/dist/ui/CustomButton.js +0 -64
- package/dist/ui/CustomButton.js.flow +0 -33
- package/dist/ui/PointerSurface.js +0 -173
- package/dist/ui/PointerSurface.js.flow +0 -141
- package/dist/ui/PopUp.js +0 -129
- package/dist/ui/PopUp.js.flow +0 -77
- package/dist/ui/PopUpManager.js +0 -266
- package/dist/ui/PopUpManager.js.flow +0 -213
- package/dist/ui/PopUpPosition.js +0 -156
- package/dist/ui/PopUpPosition.js.flow +0 -104
- package/dist/ui/PopUpTypes.js +0 -1
- package/dist/ui/PopUpTypes.js.flow +0 -0
- package/dist/ui/TooltipSurface.js +0 -99
- package/dist/ui/TooltipSurface.js.flow +0 -76
- package/dist/ui/clamp.js +0 -18
- package/dist/ui/clamp.js.flow +0 -11
- package/dist/ui/createPopUp.js +0 -199
- package/dist/ui/createPopUp.js.flow +0 -205
- package/dist/ui/czi-animations.css +0 -15
- package/dist/ui/czi-color-editor.css +0 -56
- package/dist/ui/czi-custom-button.css +0 -93
- package/dist/ui/czi-pop-up.css +0 -32
- package/dist/ui/czi-tooltip-surface.css +0 -45
- package/dist/ui/preventEventDefault.js +0 -10
- package/dist/ui/preventEventDefault.js.flow +0 -5
- package/dist/ui/rects.js +0 -58
- package/dist/ui/rects.js.flow +0 -47
- package/dist/updateIndentLevel.js +0 -232
- package/dist/updateIndentLevel.js.flow +0 -211
- package/flow-typed/@molicit-citation.js +0 -5
- package/licit/server/customstyles/start.js +0 -184
- package/run_customstyle_server.py +0 -20
- package/src/FontSizeCommand.js +0 -57
- package/src/FontTypeCommand.js +0 -100
- package/src/HeadingCommand.js +0 -51
- package/src/IndentCommand.js +0 -41
- package/src/MarkToggleCommand.js +0 -66
- package/src/TextAlignCommand.js +0 -122
- package/src/TextColorCommand.js +0 -87
- package/src/TextHighlightCommand.js +0 -91
- package/src/TextLineSpacingCommand.js +0 -157
- package/src/applyMark.js +0 -61
- package/src/clearMarks.js +0 -128
- package/src/compareNumber.js +0 -11
- package/src/consolidateListNodes.js +0 -281
- package/src/findNodesWithSameMark.js +0 -89
- package/src/isBulletListNode.js +0 -9
- package/src/isInsideListItem.js +0 -13
- package/src/isListNode.js +0 -13
- package/src/isNodeSelectionForNodeType.js +0 -15
- package/src/isOrderedListNode.js +0 -9
- package/src/isTextStyleMarkCommandEnabled.js +0 -49
- package/src/noop.js +0 -5
- package/src/toggleHeading.js +0 -113
- package/src/toggleList.js +0 -450
- package/src/transformAndPreserveTextSelection.js +0 -151
- package/src/ui/ColorEditor.js +0 -101
- package/src/ui/CustomButton.js +0 -33
- package/src/ui/PointerSurface.js +0 -141
- package/src/ui/PopUp.js +0 -77
- package/src/ui/PopUpManager.js +0 -213
- package/src/ui/PopUpPosition.js +0 -104
- package/src/ui/PopUpTypes.js +0 -0
- package/src/ui/TooltipSurface.js +0 -76
- package/src/ui/clamp.js +0 -11
- package/src/ui/createPopUp.js +0 -205
- package/src/ui/czi-animations.css +0 -15
- package/src/ui/czi-color-editor.css +0 -56
- package/src/ui/czi-custom-button.css +0 -93
- package/src/ui/czi-pop-up.css +0 -32
- package/src/ui/czi-tooltip-surface.css +0 -45
- package/src/ui/preventEventDefault.js +0 -5
- package/src/ui/rects.js +0 -47
- package/src/updateIndentLevel.js +0 -211
- package/utils/build_customstyle_server.js +0 -70
package/dist/client/Licit.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default = void 0;
|
|
6
|
+
exports.default = exports.DataType = void 0;
|
|
7
7
|
|
|
8
8
|
var _prosemirrorState = require("prosemirror-state");
|
|
9
9
|
|
|
@@ -31,9 +31,7 @@ var _CollabConnector = _interopRequireDefault(require("./CollabConnector"));
|
|
|
31
31
|
|
|
32
32
|
var _createEmptyEditorState = require("../createEmptyEditorState");
|
|
33
33
|
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
var _PopUpPosition = require("../ui/PopUpPosition");
|
|
34
|
+
var _licitUiCommands = require("@modusoperandi/licit-ui-commands");
|
|
37
35
|
|
|
38
36
|
var _AlertInfo = _interopRequireDefault(require("../ui/AlertInfo"));
|
|
39
37
|
|
|
@@ -47,6 +45,8 @@ var _EditorMarks = _interopRequireDefault(require("../EditorMarks"));
|
|
|
47
45
|
|
|
48
46
|
var _EditorNodes = _interopRequireDefault(require("../EditorNodes"));
|
|
49
47
|
|
|
48
|
+
var _convertFromHTML = _interopRequireDefault(require("../convertFromHTML"));
|
|
49
|
+
|
|
50
50
|
var _Types = require("../Types");
|
|
51
51
|
|
|
52
52
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -57,32 +57,37 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
57
57
|
|
|
58
58
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
59
59
|
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* @param
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
60
|
+
const DataType = Object.freeze({
|
|
61
|
+
JSON: Symbol('json'),
|
|
62
|
+
HTML: Symbol('html')
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* LICIT properties:
|
|
66
|
+
* docID {string} [] Collaborative Doument ID
|
|
67
|
+
* collabServiceURL {string} [/collaboration-service] Collaboration Service URL
|
|
68
|
+
* debug {boolean} [false] To enable/disable ProseMirror Debug Tools, available only in development.
|
|
69
|
+
* width {string} [100%] Width of the editor.
|
|
70
|
+
* height {string} [100%] Height of the editor.
|
|
71
|
+
* readOnly {boolean} [false] To enable/disable editing mode.
|
|
72
|
+
* onChange {@callback} [null] Fires after each significant change.
|
|
73
|
+
* @param data {JSON} Modified document data.
|
|
74
|
+
* onReady {@callback} [null] Fires when the editor is fully ready.
|
|
75
|
+
* @param ref {LICIT} Rerefence of the editor.
|
|
76
|
+
* data {JSON|HTML} [null] Document data to be loaded into the editor.
|
|
77
|
+
* dataType {JSON|HTML} [JSON] Document data to be loaded into the editor.
|
|
78
|
+
* disabled {boolean} [false] Disable the editor.
|
|
79
|
+
* embedded {boolean} [false] Disable/Enable inline behaviour.
|
|
80
|
+
* plugins [plugins] External Plugins into the editor.
|
|
78
81
|
*/
|
|
79
82
|
|
|
83
|
+
exports.DataType = DataType;
|
|
84
|
+
|
|
80
85
|
class Licit extends React.Component {
|
|
81
86
|
// This will be handy in updating document's content.
|
|
82
87
|
// Flag to decide whether to skip shouldComponentUpdate
|
|
83
88
|
|
|
84
|
-
/**
|
|
85
|
-
* Provides access to prosemirror view.
|
|
89
|
+
/**
|
|
90
|
+
* Provides access to prosemirror view.
|
|
86
91
|
*/
|
|
87
92
|
get editorView() {
|
|
88
93
|
return this._editorView;
|
|
@@ -117,7 +122,7 @@ class Licit extends React.Component {
|
|
|
117
122
|
_defineProperty(this, "setContent", function () {
|
|
118
123
|
let content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
119
124
|
// [FS] IRAD-1571 2021-09-27
|
|
120
|
-
// dispatch a transaction that MUST start from the view
|
|
125
|
+
// dispatch a transaction that MUST start from the views current state;
|
|
121
126
|
const editorState = _this._editorView.state;
|
|
122
127
|
const {
|
|
123
128
|
doc,
|
|
@@ -126,15 +131,20 @@ class Licit extends React.Component {
|
|
|
126
131
|
let {
|
|
127
132
|
tr
|
|
128
133
|
} = editorState;
|
|
129
|
-
const document = schema.nodeFromJSON(content ? content : _createEmptyEditorState.EMPTY_DOC_JSON);
|
|
134
|
+
const document = schema.nodeFromJSON(content ? content : _createEmptyEditorState.EMPTY_DOC_JSON); // [FS] IRAD-1593 2021-10-12
|
|
135
|
+
// Reset lastKeyCode since the content is set dynamically and so lastKeyCode is invalid now.
|
|
136
|
+
|
|
137
|
+
_this._editorView.lastKeyCode = null;
|
|
130
138
|
|
|
131
139
|
const selection = _prosemirrorState.TextSelection.create(doc, 0, doc.content.size);
|
|
132
140
|
|
|
133
141
|
tr = tr.setSelection(selection).replaceSelectionWith(document, false); // [FS] IRAD-1092 2020-12-03
|
|
134
142
|
// set the value for object metadata and objectId
|
|
143
|
+
// Should update all document attributes.
|
|
135
144
|
|
|
136
|
-
|
|
137
|
-
|
|
145
|
+
Object.keys(document.attrs).forEach(attr => {
|
|
146
|
+
tr = tr.step(new _licitDocAttrsStep.SetDocAttrStep(attr, document.attrs[attr]));
|
|
147
|
+
});
|
|
138
148
|
_this._skipSCU = true;
|
|
139
149
|
|
|
140
150
|
_this._editorView.dispatch(tr);
|
|
@@ -144,10 +154,10 @@ class Licit extends React.Component {
|
|
|
144
154
|
const {
|
|
145
155
|
transaction
|
|
146
156
|
} = data;
|
|
147
|
-
/*
|
|
148
|
-
** ProseMirror Debug Tool's Snapshot creates a new state and sets that to editor view's state.
|
|
149
|
-
** This results in the connector's state as an orphan and thus transaction mismatch error.
|
|
150
|
-
** To resolve check and update the connector's state to keep in sync.
|
|
157
|
+
/*
|
|
158
|
+
** ProseMirror Debug Tool's Snapshot creates a new state and sets that to editor view's state.
|
|
159
|
+
** This results in the connector's state as an orphan and thus transaction mismatch error.
|
|
160
|
+
** To resolve check and update the connector's state to keep in sync.
|
|
151
161
|
*/
|
|
152
162
|
|
|
153
163
|
if (this._editorView) {
|
|
@@ -277,7 +287,8 @@ class Licit extends React.Component {
|
|
|
277
287
|
const onChangeCB = typeof props.onChange === 'function' ? props.onChange : noop;
|
|
278
288
|
const onReadyCB = typeof props.onReady === 'function' ? props.onReady : noop;
|
|
279
289
|
const readOnly = props.readOnly || false;
|
|
280
|
-
|
|
290
|
+
let data = props.data || null;
|
|
291
|
+
const dataType = props.dataType || DataType.JSON;
|
|
281
292
|
const disabled = props.disabled || false;
|
|
282
293
|
const embedded = props.embedded || false; // [FS] IRAD-996 2020-06-30
|
|
283
294
|
// [FS] 2020-07-03
|
|
@@ -290,14 +301,8 @@ class Licit extends React.Component {
|
|
|
290
301
|
marks: _EditorMarks.default
|
|
291
302
|
});
|
|
292
303
|
this._defaultEditorPlugins = new _buildEditorPlugins.default(this._defaultEditorSchema).get();
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
if (null === editorState) {
|
|
297
|
-
editorState = (0, _convertFromJSON.default)(_createEmptyEditorState.EMPTY_DOC_JSON, null, this._defaultEditorSchema, plugins, this._defaultEditorPlugins);
|
|
298
|
-
this.showAlert();
|
|
299
|
-
}
|
|
300
|
-
|
|
304
|
+
const editorState = this.initEditorState(plugins, dataType, data);
|
|
305
|
+
data = editorState.doc;
|
|
301
306
|
const setState = this.setState.bind(this);
|
|
302
307
|
this._connector = collaborative ? new _CollabConnector.default(editorState, setState, {
|
|
303
308
|
docID,
|
|
@@ -325,8 +330,52 @@ class Licit extends React.Component {
|
|
|
325
330
|
|
|
326
331
|
if (this._connector.updateSchema) {
|
|
327
332
|
// Use known editorState to update schema.
|
|
328
|
-
this._connector.updateSchema(editorState.schema);
|
|
333
|
+
this._connector.updateSchema(editorState.schema, data);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
initEditorState(plugins, dataType, data) {
|
|
338
|
+
let editorState = null;
|
|
339
|
+
const effectivePlugins = this.getEffectivePlugins(this._defaultEditorSchema, this._defaultEditorPlugins, plugins);
|
|
340
|
+
|
|
341
|
+
if (DataType.JSON === dataType) {
|
|
342
|
+
editorState = (0, _convertFromJSON.default)(data, null, effectivePlugins.schema, effectivePlugins.plugins); // [FS] IRAD-1067 2020-09-19
|
|
343
|
+
// The editorState will return null if the doc Json is mal-formed
|
|
344
|
+
|
|
345
|
+
if (null === editorState) {
|
|
346
|
+
editorState = (0, _convertFromJSON.default)(_createEmptyEditorState.EMPTY_DOC_JSON, null, effectivePlugins.schema, effectivePlugins.plugins);
|
|
347
|
+
this.showAlert();
|
|
348
|
+
}
|
|
349
|
+
} else {
|
|
350
|
+
editorState = (0, _convertFromHTML.default)(data, effectivePlugins.schema, effectivePlugins.plugins);
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
return editorState;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
getEffectivePlugins(schema, defaultPlugins, plugins) {
|
|
357
|
+
const effectivePlugins = defaultPlugins;
|
|
358
|
+
|
|
359
|
+
if (plugins) {
|
|
360
|
+
for (const p of plugins) {
|
|
361
|
+
if (!effectivePlugins.includes(p)) {
|
|
362
|
+
effectivePlugins.push(p);
|
|
363
|
+
|
|
364
|
+
if (p.getEffectiveSchema) {
|
|
365
|
+
schema = p.getEffectiveSchema(schema);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
if (p.initKeyCommands) {
|
|
369
|
+
effectivePlugins.push(p.initKeyCommands());
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
329
373
|
}
|
|
374
|
+
|
|
375
|
+
return {
|
|
376
|
+
plugins: effectivePlugins,
|
|
377
|
+
schema
|
|
378
|
+
};
|
|
330
379
|
} // [FS] IRAD-1578 2021-09-27
|
|
331
380
|
|
|
332
381
|
|
|
@@ -346,9 +395,9 @@ class Licit extends React.Component {
|
|
|
346
395
|
|
|
347
396
|
showAlert() {
|
|
348
397
|
const anchor = null;
|
|
349
|
-
this._popUp = (0,
|
|
398
|
+
this._popUp = (0, _licitUiCommands.createPopUp)(_AlertInfo.default, null, {
|
|
350
399
|
anchor,
|
|
351
|
-
position:
|
|
400
|
+
position: _licitUiCommands.atViewportCenter,
|
|
352
401
|
onClose: val => {
|
|
353
402
|
if (this._popUp) {
|
|
354
403
|
this._popUp = null;
|
|
@@ -425,45 +474,70 @@ class Licit extends React.Component {
|
|
|
425
474
|
return node.attrs && node.attrs[attrName];
|
|
426
475
|
}
|
|
427
476
|
|
|
477
|
+
hasDataChanged(nextData) {
|
|
478
|
+
let dataChanged = false; // [FS] IRAD-1571 2021-09-27
|
|
479
|
+
// dispatch a transaction that MUST start from the views current state;
|
|
480
|
+
// [FS] IRAD-1589 2021-10-04
|
|
481
|
+
// Do a proper circular JSON comparison.
|
|
482
|
+
|
|
483
|
+
if ((0, _flatted.stringify)(this.state.data) !== (0, _flatted.stringify)(nextData)) {
|
|
484
|
+
const editorState = this._editorView.state;
|
|
485
|
+
const nextDoc = editorState.schema.nodeFromJSON(nextData ? nextData : _createEmptyEditorState.EMPTY_DOC_JSON);
|
|
486
|
+
dataChanged = !nextDoc.eq(editorState.doc);
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
return dataChanged;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
changeContent(data) {
|
|
493
|
+
if (this.hasDataChanged(data)) {
|
|
494
|
+
// FS IRAD-1592 2021-11-10
|
|
495
|
+
// Release here quickly, so that update doesn't care about at this point.
|
|
496
|
+
// data changed, so update document content
|
|
497
|
+
setTimeout(this.setContent.bind(this, data), 1);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
|
|
428
501
|
shouldComponentUpdate(nextProps, nextState) {
|
|
429
502
|
// Only interested if properties are set from outside.
|
|
430
503
|
if (!this._skipSCU) {
|
|
431
504
|
this._skipSCU = false;
|
|
432
|
-
|
|
433
|
-
// dispatch a transaction that MUST start from the view�s current state;
|
|
434
|
-
// [FS] IRAD-1589 2021-10-04
|
|
435
|
-
// Do a proper circular JSON comparison.
|
|
436
|
-
|
|
437
|
-
if ((0, _flatted.stringify)(this.state.data) !== (0, _flatted.stringify)(nextState.data)) {
|
|
438
|
-
const editorState = this._editorView.state;
|
|
439
|
-
const nextDoc = editorState.schema.nodeFromJSON(nextState.data ? nextState.data : _createEmptyEditorState.EMPTY_DOC_JSON);
|
|
440
|
-
dataChanged = !nextDoc.eq(editorState.doc);
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
if (dataChanged) {
|
|
444
|
-
// data changed, so update document content
|
|
445
|
-
this.setContent(nextState.data);
|
|
446
|
-
}
|
|
505
|
+
this.changeContent(nextState.data);
|
|
447
506
|
|
|
448
507
|
if (this.state.docID !== nextState.docID) {
|
|
449
|
-
|
|
450
|
-
const collabEditing = nextState.docID !== '';
|
|
451
|
-
const editorState = this._editorView.state;
|
|
452
|
-
const setState = this.setState.bind(this);
|
|
453
|
-
const docID = nextState.docID || '';
|
|
454
|
-
const collabServiceURL = nextState.collabServiceURL || '/collaboration-service'; // create new connector
|
|
455
|
-
|
|
456
|
-
this._connector = collabEditing ? new _CollabConnector.default(editorState, setState, {
|
|
457
|
-
docID,
|
|
458
|
-
collabServiceURL
|
|
459
|
-
}, this._defaultEditorSchema, this._defaultEditorPlugins, // [FS] IRAD-1578 2021-09-27
|
|
460
|
-
this.onReady.bind(this)) : new _SimpleConnector.default(editorState, setState);
|
|
508
|
+
setTimeout(this.setDocID.bind(this, nextState), 1);
|
|
461
509
|
}
|
|
462
510
|
}
|
|
463
511
|
|
|
464
512
|
return true;
|
|
465
513
|
}
|
|
466
514
|
|
|
515
|
+
setDocID(nextState) {
|
|
516
|
+
// Collaborative mode changed
|
|
517
|
+
const collabEditing = nextState.docID !== '';
|
|
518
|
+
const editorState = this._editorView.state;
|
|
519
|
+
const setState = this.setState.bind(this);
|
|
520
|
+
const docID = nextState.docID || '';
|
|
521
|
+
const collabServiceURL = nextState.collabServiceURL || '/collaboration-service';
|
|
522
|
+
|
|
523
|
+
if (this._connector) {
|
|
524
|
+
this._connector.cleanUp();
|
|
525
|
+
} // create new connector
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
this._connector = collabEditing ? new _CollabConnector.default(editorState, setState, {
|
|
529
|
+
docID,
|
|
530
|
+
collabServiceURL
|
|
531
|
+
}, this._defaultEditorSchema, this._defaultEditorPlugins, // [FS] IRAD-1578 2021-09-27
|
|
532
|
+
this.onReady.bind(this)) : new _SimpleConnector.default(editorState, setState); // FS IRAD-1592 2021-11-10
|
|
533
|
+
// Notify collab server
|
|
534
|
+
|
|
535
|
+
if (this._connector.updateSchema) {
|
|
536
|
+
// Use known editorState to update schema.
|
|
537
|
+
this._connector.updateSchema(editorState.schema);
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
|
|
467
541
|
render() {
|
|
468
542
|
const {
|
|
469
543
|
editorState,
|
|
@@ -556,20 +630,20 @@ class Licit extends React.Component {
|
|
|
556
630
|
componentWillUnmount() {
|
|
557
631
|
this.destroyDevTool();
|
|
558
632
|
}
|
|
559
|
-
/**
|
|
560
|
-
* LICIT properties:
|
|
561
|
-
* docID {number} [0] Collaborative Doument ID
|
|
562
|
-
* debug {boolean} [false] To enable/disable ProseMirror Debug Tools, available only in development.
|
|
563
|
-
* width {string} [100%] Width of the editor.
|
|
564
|
-
* height {height} [100%] Height of the editor.
|
|
565
|
-
* readOnly {boolean} [false] To enable/disable editing mode.
|
|
566
|
-
* onChange {@callback} [null] Fires after each significant change.
|
|
567
|
-
* @param data {JSON} Modified document data.
|
|
568
|
-
* onReady {@callback} [null] Fires when the editor is fully ready.
|
|
569
|
-
* @param ref {LICIT} Rerefence of the editor.
|
|
570
|
-
* data {JSON} [null] Document data to be loaded into the editor.
|
|
571
|
-
* disabled {boolean} [false] Disable the editor.
|
|
572
|
-
* embedded {boolean} [false] Disable/Enable inline behaviour.
|
|
633
|
+
/**
|
|
634
|
+
* LICIT properties:
|
|
635
|
+
* docID {number} [0] Collaborative Doument ID
|
|
636
|
+
* debug {boolean} [false] To enable/disable ProseMirror Debug Tools, available only in development.
|
|
637
|
+
* width {string} [100%] Width of the editor.
|
|
638
|
+
* height {height} [100%] Height of the editor.
|
|
639
|
+
* readOnly {boolean} [false] To enable/disable editing mode.
|
|
640
|
+
* onChange {@callback} [null] Fires after each significant change.
|
|
641
|
+
* @param data {JSON} Modified document data.
|
|
642
|
+
* onReady {@callback} [null] Fires when the editor is fully ready.
|
|
643
|
+
* @param ref {LICIT} Rerefence of the editor.
|
|
644
|
+
* data {JSON} [null] Document data to be loaded into the editor.
|
|
645
|
+
* disabled {boolean} [false] Disable the editor.
|
|
646
|
+
* embedded {boolean} [false] Disable/Enable inline behaviour.
|
|
573
647
|
*/
|
|
574
648
|
|
|
575
649
|
|