@modusoperandi/licit 0.1.4 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +54 -54
- package/.dockerignore +4 -4
- package/.eslintignore +3 -3
- package/.eslintrc.js +80 -80
- package/.flowconfig +37 -37
- package/.github/workflows/build.yml +35 -29
- 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 +286 -284
- package/build_collab_server.py +7 -7
- package/build_customstyle_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.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.flow +94 -94
- package/dist/DocNodeSpec.js.flow +64 -64
- package/dist/EMMarkSpec.js.flow +14 -14
- 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/FontSizeCommand.js +0 -8
- package/dist/FontSizeCommand.js.flow +57 -73
- package/dist/FontSizeMarkSpec.js.flow +49 -49
- package/dist/FontTypeCommand.js +0 -8
- package/dist/FontTypeCommand.js.flow +100 -116
- package/dist/FontTypeMarkSpec.js.flow +80 -80
- package/dist/HTMLMutator.js.flow +59 -59
- package/dist/HardBreakNodeSpec.js.flow +15 -15
- package/dist/HeadingCommand.js.flow +51 -51
- 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.flow +117 -117
- package/dist/ImageUploadCommand.js.flow +36 -36
- package/dist/ImageUploadPlaceholderPlugin.js.flow +192 -192
- package/dist/IndentCommand.js +0 -9
- package/dist/IndentCommand.js.flow +41 -54
- package/dist/LinkMarkSpec.js.flow +32 -32
- package/dist/LinkSetURLCommand.js.flow +103 -103
- 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 +3 -45
- package/dist/ListToggleCommand.js.flow +77 -117
- package/dist/MarkNames.js +2 -4
- package/dist/MarkNames.js.flow +18 -19
- package/dist/MarkToggleCommand.js +3 -114
- package/dist/MarkToggleCommand.js.flow +66 -168
- package/dist/MarksClearCommand.js +1 -18
- package/dist/MarksClearCommand.js.flow +42 -55
- 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 +6 -115
- package/dist/ParagraphNodeSpec.js.flow +160 -250
- 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.flow +75 -75
- package/dist/TableBorderColorCommand.js.flow +75 -75
- package/dist/TableCellColorCommand.js.flow +71 -71
- package/dist/TableCellMenuPlugin.js.flow +125 -125
- 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/TextAlignCommand.js +0 -8
- package/dist/TextAlignCommand.js.flow +122 -138
- package/dist/TextColorCommand.js +0 -16
- package/dist/TextColorCommand.js.flow +87 -112
- package/dist/TextColorMarkSpec.js.flow +35 -35
- package/dist/TextHighlightCommand.js +0 -12
- package/dist/TextHighlightCommand.js.flow +91 -110
- package/dist/TextHighlightMarkSpec.js.flow +38 -38
- package/dist/TextInsertTabSpaceCommand.js +2 -5
- package/dist/TextInsertTabSpaceCommand.js.flow +83 -85
- package/dist/TextLineSpacingCommand.js.flow +157 -157
- 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 +2 -121
- package/dist/Types.js.flow +75 -155
- package/dist/WebFontLoader.js.flow +22 -22
- package/dist/applyMark.js +3 -4
- package/dist/applyMark.js.flow +61 -64
- package/dist/blockQuoteInputRule.js.flow +36 -36
- package/dist/bom.xml +89 -89
- package/dist/browser.js.flow +7 -7
- package/dist/buildEditorPlugins.js +1 -3
- package/dist/buildEditorPlugins.js.flow +51 -53
- package/dist/buildInputRules.js.flow +81 -81
- package/dist/clearMarks.js +2 -5
- package/dist/clearMarks.js.flow +128 -132
- package/dist/client/CollabConnector.js +7 -7
- package/dist/client/CollabConnector.js.flow +71 -75
- package/dist/client/EditorConnection.js.flow +307 -307
- package/dist/client/Licit.js +197 -117
- package/dist/client/Licit.js.flow +562 -495
- package/dist/client/Licit.test.js +3 -57
- package/dist/client/Licit.test.js.flow +65 -120
- package/dist/client/Reporter.js.flow +37 -37
- package/dist/client/SimpleConnector.js.flow +53 -53
- package/dist/client/http.js.flow +66 -66
- package/dist/client/licit.css +12 -12
- package/dist/client/throttle.js.flow +27 -27
- package/dist/compareNumber.js.flow +11 -11
- package/dist/consolidateListNodes.js +27 -27
- package/dist/consolidateListNodes.js.flow +281 -281
- package/dist/convertFromDOMElement.js.flow +36 -36
- package/dist/convertFromHTML.js.flow +19 -19
- package/dist/convertFromJSON.js.flow +78 -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.flow +41 -41
- package/dist/createTableResizingPlugin.js.flow +86 -86
- package/dist/findActionableCell.js.flow +74 -74
- package/dist/findActiveMark.js.flow +32 -32
- package/dist/findNodesWithSameMark.js.flow +89 -89
- package/dist/hyphenize.js.flow +17 -17
- package/dist/index.js +0 -14
- package/dist/index.js.flow +10 -11
- package/dist/insertTable.js.flow +56 -56
- package/dist/isBulletListNode.js.flow +9 -9
- package/dist/isEditorStateEmpty.js.flow +32 -32
- package/dist/isInsideListItem.js.flow +13 -13
- package/dist/isListNode.js.flow +13 -13
- package/dist/isNodeSelectionForNodeType.js.flow +15 -15
- package/dist/isOrderedListNode.js.flow +9 -9
- package/dist/isTableNode.js.flow +15 -15
- package/dist/isTextStyleMarkCommandEnabled.js.flow +49 -49
- package/dist/joinDown.js.flow +27 -27
- 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/noop.js.flow +5 -5
- 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.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 -21
- package/dist/styles0.css +29 -30
- package/dist/toClosestFontPtSize.js.flow +22 -22
- package/dist/toSafeHTMLDocument.js.flow +9 -9
- package/dist/toggleBlockquote.js.flow +91 -91
- package/dist/toggleCodeBlock.js.flow +102 -102
- package/dist/toggleHeading.js.flow +113 -113
- package/dist/toggleList.js.flow +450 -450
- package/dist/transformAndPreserveTextSelection.js.flow +151 -151
- package/dist/ui/AlertInfo.js +1 -1
- package/dist/ui/AlertInfo.js.flow +64 -64
- package/dist/ui/BookmarkNodeView.js.flow +66 -66
- package/dist/ui/ColorEditor.js.flow +101 -101
- package/dist/ui/CommandButton.js.flow +68 -68
- package/dist/ui/CommandMenu.js.flow +75 -75
- package/dist/ui/CommandMenuButton.js.flow +131 -131
- package/dist/ui/CustomButton.js.flow +33 -33
- package/dist/ui/CustomEditorView.js.flow +28 -28
- package/dist/ui/CustomMenu.js.flow +17 -17
- package/dist/ui/CustomMenuItem.js.flow +36 -36
- package/dist/ui/CustomNodeView.js +6 -1
- package/dist/ui/CustomNodeView.js.flow +200 -196
- package/dist/ui/CustomRadioButton.js.flow +65 -65
- package/dist/ui/DocLayoutEditor.js.flow +146 -146
- package/dist/ui/Editor.js.flow +291 -291
- package/dist/ui/EditorFrameset.js.flow +81 -81
- package/dist/ui/EditorToolbar.js.flow +211 -211
- package/dist/ui/EditorToolbarConfig.js +0 -6
- package/dist/ui/EditorToolbarConfig.js.flow +172 -178
- package/dist/ui/FontSizeCommandMenuButton.js.flow +66 -66
- 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.flow +60 -60
- package/dist/ui/ImageInlineEditor.js.flow +67 -67
- package/dist/ui/ImageNodeView.js +1 -10
- package/dist/ui/ImageNodeView.js.flow +404 -414
- package/dist/ui/ImageResizeBox.js.flow +219 -219
- package/dist/ui/ImageURLEditor.js.flow +119 -119
- package/dist/ui/ImageUploadEditor.js.flow +117 -117
- package/dist/ui/KeyCodes.js.flow +12 -12
- package/dist/ui/LinkTooltip.js.flow +85 -85
- package/dist/ui/LinkURLEditor.js.flow +111 -111
- package/dist/ui/ListItemNodeView.js.flow +98 -98
- package/dist/ui/ListTypeButton.js.flow +131 -131
- package/dist/ui/ListTypeCommandButton.js +1 -1
- package/dist/ui/ListTypeCommandButton.js.flow +85 -86
- package/dist/ui/ListTypeMenu.js.flow +70 -70
- package/dist/ui/LoadingIndicator.js.flow +20 -20
- package/dist/ui/MathEditor.js.flow +78 -78
- package/dist/ui/MathInlineEditor.js.flow +102 -102
- package/dist/ui/MathNodeView.js.flow +175 -175
- package/dist/ui/PasteMenu.js.flow +57 -57
- package/dist/ui/PointerSurface.js.flow +141 -141
- package/dist/ui/PopUp.js.flow +77 -77
- package/dist/ui/PopUpManager.js.flow +213 -213
- package/dist/ui/PopUpPosition.js +0 -0
- package/dist/ui/PopUpPosition.js.flow +104 -104
- 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.flow +184 -184
- package/dist/ui/TableNodeView.js.flow +22 -22
- package/dist/ui/TooltipSurface.js.flow +76 -76
- package/dist/ui/bindScrollHandler.js.flow +46 -46
- package/dist/ui/canUseCSSFont.js.flow +43 -43
- package/dist/ui/clamp.js.flow +11 -11
- package/dist/ui/createPopUp.js.flow +205 -205
- package/dist/ui/czi-animations.css +15 -15
- package/dist/ui/czi-body-layout-editor.css +16 -16
- package/dist/ui/czi-bookmark-view.css +10 -10
- package/dist/ui/czi-color-editor.css +56 -56
- package/dist/ui/czi-cursor-placeholder.css +36 -36
- package/dist/ui/czi-custom-button.css +93 -93
- 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 -221
- 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-pop-up.css +32 -32
- 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-tooltip-surface.css +45 -45
- package/dist/ui/czi-vars.css +46 -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.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.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/preventEventDefault.js.flow +5 -5
- package/dist/ui/rects.js.flow +47 -47
- 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.flow +82 -82
- package/dist/ui/toHexColor.js.flow +26 -26
- package/dist/ui/uuid.js.flow +9 -9
- package/dist/updateIndentLevel.js +1 -47
- package/dist/updateIndentLevel.js.flow +211 -260
- package/dist/uuid.js.flow +9 -9
- package/flow-typed/@modusoperandilicit-customstyles.js +5 -0
- package/flow-typed/@modusoperandilicit-doc-attrs-step.js +5 -5
- package/flow-typed/@molicit-citation.js +5 -5
- 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.setup.js +5 -5
- package/licit/client/CustomLicitRuntime.js +95 -200
- package/licit/client/CustomStyleRuntime.js +136 -0
- package/licit/client/index.js +366 -365
- package/licit/index.html +11 -11
- package/licit/server/collab/instance.js +221 -221
- package/licit/server/collab/route.js +69 -69
- package/licit/server/collab/server.js +297 -296
- package/licit/server/collab/start.js +13 -13
- package/licit/server/customstyles/start.js +184 -184
- package/licit/server/image/start.js +58 -58
- package/lint.sh +4 -4
- package/package.json +165 -165
- package/run_collab_server.py +21 -21
- package/run_customstyle_server.py +20 -20
- 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/FontSizeCommand.js +57 -73
- package/src/FontSizeMarkSpec.js +49 -49
- package/src/FontTypeCommand.js +100 -116
- package/src/FontTypeMarkSpec.js +80 -80
- package/src/HTMLMutator.js +59 -59
- package/src/HardBreakNodeSpec.js +15 -15
- package/src/HeadingCommand.js +51 -51
- 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/IndentCommand.js +41 -54
- 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 -117
- package/src/MarkNames.js +18 -19
- package/src/MarkToggleCommand.js +66 -168
- package/src/MarksClearCommand.js +42 -55
- 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 +160 -250
- 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/TextAlignCommand.js +122 -138
- package/src/TextColorCommand.js +87 -112
- package/src/TextColorMarkSpec.js +35 -35
- package/src/TextHighlightCommand.js +91 -110
- package/src/TextHighlightMarkSpec.js +38 -38
- package/src/TextInsertTabSpaceCommand.js +83 -85
- package/src/TextLineSpacingCommand.js +157 -157
- 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 -155
- package/src/WebFontLoader.js +22 -22
- package/src/applyMark.js +61 -64
- package/src/blockQuoteInputRule.js +36 -36
- package/src/browser.js +7 -7
- package/src/buildEditorPlugins.js +51 -53
- package/src/buildInputRules.js +81 -81
- package/src/clearMarks.js +128 -132
- package/src/client/CollabConnector.js +71 -75
- package/src/client/EditorConnection.js +307 -307
- package/src/client/Licit.js +562 -495
- package/src/client/Licit.test.js +65 -120
- package/src/client/Reporter.js +37 -37
- package/src/client/SimpleConnector.js +53 -53
- package/src/client/http.js +66 -66
- package/src/client/licit.css +12 -12
- package/src/client/throttle.js +27 -27
- package/src/compareNumber.js +11 -11
- package/src/consolidateListNodes.js +281 -281
- package/src/convertFromDOMElement.js +36 -36
- package/src/convertFromHTML.js +19 -19
- package/src/convertFromJSON.js +78 -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 +41 -41
- package/src/createTableResizingPlugin.js +86 -86
- package/src/findActionableCell.js +74 -74
- package/src/findActiveMark.js +32 -32
- package/src/findNodesWithSameMark.js +89 -89
- package/src/hyphenize.js +17 -17
- package/src/index.js +10 -11
- package/src/insertTable.js +56 -56
- package/src/isBulletListNode.js +9 -9
- package/src/isEditorStateEmpty.js +32 -32
- package/src/isInsideListItem.js +13 -13
- package/src/isListNode.js +13 -13
- package/src/isNodeSelectionForNodeType.js +15 -15
- package/src/isOrderedListNode.js +9 -9
- package/src/isTableNode.js +15 -15
- package/src/isTextStyleMarkCommandEnabled.js +49 -49
- 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/noop.js +5 -5
- 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 -21
- package/src/styles0.css +29 -30
- 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/toggleHeading.js +113 -113
- package/src/toggleList.js +450 -450
- package/src/transformAndPreserveTextSelection.js +151 -151
- package/src/ui/AlertInfo.js +64 -64
- package/src/ui/BookmarkNodeView.js +66 -66
- package/src/ui/ColorEditor.js +101 -101
- package/src/ui/CommandButton.js +68 -68
- package/src/ui/CommandMenu.js +75 -75
- package/src/ui/CommandMenuButton.js +131 -131
- package/src/ui/CustomButton.js +33 -33
- 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 -196
- package/src/ui/CustomRadioButton.js +65 -65
- package/src/ui/DocLayoutEditor.js +146 -146
- package/src/ui/Editor.js +291 -291
- package/src/ui/EditorFrameset.js +81 -81
- package/src/ui/EditorToolbar.js +211 -211
- package/src/ui/EditorToolbarConfig.js +172 -178
- 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 -414
- 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 -86
- 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/PointerSurface.js +141 -141
- package/src/ui/PopUp.js +77 -77
- package/src/ui/PopUpManager.js +213 -213
- package/src/ui/PopUpPosition.js +104 -104
- 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/TooltipSurface.js +76 -76
- package/src/ui/bindScrollHandler.js +46 -46
- package/src/ui/canUseCSSFont.js +43 -43
- package/src/ui/clamp.js +11 -11
- package/src/ui/createPopUp.js +205 -205
- package/src/ui/czi-animations.css +15 -15
- package/src/ui/czi-body-layout-editor.css +16 -16
- package/src/ui/czi-bookmark-view.css +10 -10
- package/src/ui/czi-color-editor.css +56 -56
- package/src/ui/czi-cursor-placeholder.css +36 -36
- package/src/ui/czi-custom-button.css +93 -93
- 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 -221
- 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-pop-up.css +32 -32
- 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-tooltip-surface.css +45 -45
- package/src/ui/czi-vars.css +46 -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/preventEventDefault.js +5 -5
- package/src/ui/rects.js +47 -47
- 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 +82 -82
- package/src/ui/toHexColor.js +26 -26
- package/src/ui/uuid.js +9 -9
- package/src/updateIndentLevel.js +211 -260
- package/src/uuid.js +9 -9
- package/style-service.Dockerfile +26 -26
- package/utils/build_bin.js +9 -9
- package/utils/build_customstyle_server.js +71 -71
- package/utils/build_image_server.js +71 -71
- package/utils/build_licit_collab_server.js +75 -75
- package/utils/build_web_server.js +40 -40
- package/utils/env.js +6 -6
- package/webpack.config.js +126 -126
- package/dist/CustomStyleCommand.js +0 -1534
- package/dist/CustomStyleCommand.js.flow +0 -1690
- package/dist/StylePlugin.js +0 -533
- package/dist/StylePlugin.js.flow +0 -548
- package/dist/clearCustomStyleMarks.js +0 -43
- package/dist/clearCustomStyleMarks.js.flow +0 -34
- package/dist/customStyle.js +0 -185
- package/dist/customStyle.js.flow +0 -171
- package/dist/ui/CustomMenuButton.js +0 -155
- package/dist/ui/CustomMenuButton.js.flow +0 -129
- package/dist/ui/CustomMenuUI.js +0 -479
- package/dist/ui/CustomMenuUI.js.flow +0 -464
- package/dist/ui/CustomStyleEditor.js +0 -1216
- package/dist/ui/CustomStyleEditor.js.flow +0 -1325
- package/dist/ui/CustomStyleItem.js +0 -164
- package/dist/ui/CustomStyleItem.js.flow +0 -152
- package/dist/ui/CustomStyleSubMenu.js +0 -62
- package/dist/ui/CustomStyleSubMenu.js.flow +0 -54
- package/dist/ui/HeadingCommandMenuButton.js +0 -157
- package/dist/ui/HeadingCommandMenuButton.js.flow +0 -147
- package/dist/ui/custom-dropdown.css +0 -90
- package/dist/ui/custom-style-edit.css +0 -430
- package/dist/ui/czi-cust-style-numbered.css +0 -137
- package/dist/ui/findActiveCustomStyle.js +0 -53
- package/dist/ui/findActiveCustomStyle.js.flow +0 -38
- package/src/CustomStyleCommand.js +0 -1690
- package/src/StylePlugin.js +0 -548
- package/src/clearCustomStyleMarks.js +0 -34
- package/src/customStyle.js +0 -171
- package/src/ui/CustomMenuButton.js +0 -129
- package/src/ui/CustomMenuUI.js +0 -464
- package/src/ui/CustomStyleEditor.js +0 -1325
- package/src/ui/CustomStyleItem.js +0 -152
- package/src/ui/CustomStyleSubMenu.js +0 -54
- package/src/ui/HeadingCommandMenuButton.js +0 -147
- package/src/ui/custom-dropdown.css +0 -90
- package/src/ui/custom-style-edit.css +0 -430
- package/src/ui/czi-cust-style-numbered.css +0 -137
- package/src/ui/findActiveCustomStyle.js +0 -38
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'prosemirror-gapcursor' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'prosemirror-gapcursor' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'prosemirror-history' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'prosemirror-history' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'prosemirror-inputrules' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'prosemirror-inputrules' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'prosemirror-keymap' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'prosemirror-keymap' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'prosemirror-model' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'prosemirror-model' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'prosemirror-state' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'prosemirror-state' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'prosemirror-tables' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'prosemirror-tables' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'prosemirror-transform' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'prosemirror-transform' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'prosemirror-utils' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'prosemirror-utils' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'prosemirror-view' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'prosemirror-view' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'resize-observer-polyfill' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'resize-observer-polyfill' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
package/flow-typed/uuid.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
declare module 'uuid' {
|
|
4
|
-
declare module.exports: any;
|
|
5
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
declare module 'uuid' {
|
|
4
|
+
declare module.exports: any;
|
|
5
|
+
}
|
package/jest.setup.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// setup for jest because jquery is needed by node-mathquill
|
|
2
|
-
window.jQuery = require('jquery');
|
|
3
|
-
// needed to mock this due to execute during loading
|
|
4
|
-
document.execCommand =
|
|
5
|
-
document.execCommand || function execCommandMock() {};
|
|
1
|
+
// setup for jest because jquery is needed by node-mathquill
|
|
2
|
+
window.jQuery = require('jquery');
|
|
3
|
+
// needed to mock this due to execute during loading
|
|
4
|
+
document.execCommand =
|
|
5
|
+
document.execCommand || function execCommandMock() {};
|
|
@@ -1,200 +1,95 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
// This implements the interface of `EditorRuntime`.
|
|
4
|
-
// To run editor directly:
|
|
5
|
-
import type { ImageLike
|
|
6
|
-
import { POST
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
import
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// Refresh styles from service. This becomes the new cache.
|
|
97
|
-
this.stylePromise = this.fetchStyles();
|
|
98
|
-
return this.stylePromise;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Fetch list of styles.
|
|
103
|
-
*
|
|
104
|
-
* @returns Array of styles or empty array
|
|
105
|
-
*/
|
|
106
|
-
getStylesAsync(): Promise<StyleProps[]> {
|
|
107
|
-
if (!this.stylePromise) {
|
|
108
|
-
this.stylePromise = this.fetchStyles();
|
|
109
|
-
}
|
|
110
|
-
return this.stylePromise;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Renames an existing style on the service.
|
|
115
|
-
*
|
|
116
|
-
* @param oldName name of style to rename
|
|
117
|
-
* @param newName new name to apply to style
|
|
118
|
-
*/
|
|
119
|
-
async renameStyle(oldName: string, newName: string): Promise<StyleProps[]> {
|
|
120
|
-
try {
|
|
121
|
-
const json = JSON.stringify({ oldName, newName });
|
|
122
|
-
const url = this.buildRoute('styles/rename');
|
|
123
|
-
await PATCH(url, json, TYPE_JSON);
|
|
124
|
-
} catch (error) {
|
|
125
|
-
// Log error to console, but otherwise ignore it. In the place in the
|
|
126
|
-
// editor where this method is called, there is no accommodation for
|
|
127
|
-
// handling errors.
|
|
128
|
-
console.error('Failed to rename style', oldName, newName, error);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// Refresh styles from service. This becomes the new cache.
|
|
132
|
-
this.stylePromise = this.fetchStyles();
|
|
133
|
-
return this.stylePromise;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Remove an existing style from the service.
|
|
138
|
-
* @param styleName Name of style to delete
|
|
139
|
-
*/
|
|
140
|
-
async removeStyle(styleName: string): Promise<StyleProps[]> {
|
|
141
|
-
try {
|
|
142
|
-
const url = this.buildRoute('styles', encodeURIComponent(styleName));
|
|
143
|
-
// Issue the HTTP request to delete the named style.
|
|
144
|
-
await DELETE(url, 'text/plain');
|
|
145
|
-
} catch (error) {
|
|
146
|
-
// Log error to console, but otherwise ignore it. In the place in the
|
|
147
|
-
// editor where this method is called, there is no accommodation for
|
|
148
|
-
// handling errors.
|
|
149
|
-
console.error('Failed to delete style', styleName, error);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// Refresh styles from service. This becomes the new cache.
|
|
153
|
-
this.stylePromise = this.fetchStyles();
|
|
154
|
-
return this.stylePromise;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Issue HTTP request to fetch styles from service. Used internally by
|
|
159
|
-
* runtime, but should not be used externally.
|
|
160
|
-
*
|
|
161
|
-
* @returns StyleProps array or empty array on error.
|
|
162
|
-
* @private
|
|
163
|
-
*/
|
|
164
|
-
async fetchStyles(): Promise<StyleProps[]> {
|
|
165
|
-
let styles: StyleProps[];
|
|
166
|
-
try {
|
|
167
|
-
styles = JSON.parse(await GET(this.buildRoute('styles')));
|
|
168
|
-
} catch (error) {
|
|
169
|
-
// HTTP request or parsing of response failed.
|
|
170
|
-
// In either case, log an error and treat as if an empty array was
|
|
171
|
-
// returned.
|
|
172
|
-
styles = [];
|
|
173
|
-
console.error('Failed to fetch styles from service', error);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
// TODO: remove this side effect!
|
|
177
|
-
// Runtime should not be making calls into editor code!
|
|
178
|
-
setStyles(styles);
|
|
179
|
-
|
|
180
|
-
// Return the styles.
|
|
181
|
-
return styles;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Helper method for building URI
|
|
186
|
-
*
|
|
187
|
-
* @param path path segments to join.
|
|
188
|
-
*/
|
|
189
|
-
buildRoute(...path: string[]) {
|
|
190
|
-
return [STYLES_URI, ...path].join('/');
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
export default CustomLicitRuntime;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
// This implements the interface of `EditorRuntime`.
|
|
4
|
+
// To run editor directly:
|
|
5
|
+
import type { ImageLike } from '../../src/Types';
|
|
6
|
+
import { POST } from '../../src/client/http';
|
|
7
|
+
|
|
8
|
+
// When use it in a componet:
|
|
9
|
+
|
|
10
|
+
/*
|
|
11
|
+
import type {ImageLike} from '@modusoperandi/licit';
|
|
12
|
+
import {POST } from '@modusoperandi/licit';
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class CustomLicitRuntime {
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
// Image Proxy
|
|
21
|
+
canProxyImageSrc(): boolean {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
getProxyImageSrc(src: string): string {
|
|
26
|
+
// This simulate a fake proxy.
|
|
27
|
+
const suffix = 'proxied=1';
|
|
28
|
+
return src.indexOf('?') === -1 ? `${src}?${suffix}` : `${src}&${suffix}`;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Image Upload
|
|
32
|
+
canUploadImage(): boolean {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
uploadImage(blob: Object): Promise<ImageLike> {
|
|
37
|
+
let img: ImageLike;
|
|
38
|
+
// Note: While looking at the uploadImage() function, it is found that a promise is resolved blindly after 3 seconds. Is it a
|
|
39
|
+
// requirement? If not, then I think it causes two issues, 1. Even if an image upload finishes in 700ms, it will take 3s for
|
|
40
|
+
// resolving the promise. 2. If the image upload takes more than 3s, then the promise will be incorrectly resolved before
|
|
41
|
+
// completing the upload.
|
|
42
|
+
// The following structure may be good to solve the issue.
|
|
43
|
+
return new Promise((resolve, reject) => {
|
|
44
|
+
// Use uploaded image URL.
|
|
45
|
+
const url =
|
|
46
|
+
window.location.protocol +
|
|
47
|
+
'//' +
|
|
48
|
+
window.location.hostname +
|
|
49
|
+
':3004/saveimage?fn=' +
|
|
50
|
+
blob.name;
|
|
51
|
+
POST(url, blob, 'application/octet-stream').then(
|
|
52
|
+
(data) => {
|
|
53
|
+
img = JSON.parse(data);
|
|
54
|
+
resolve(img);
|
|
55
|
+
},
|
|
56
|
+
(err) => {
|
|
57
|
+
img = {
|
|
58
|
+
id: '',
|
|
59
|
+
width: 0,
|
|
60
|
+
height: 0,
|
|
61
|
+
src: '',
|
|
62
|
+
};
|
|
63
|
+
reject(img);
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
}
|
|
95
|
+
export default CustomLicitRuntime;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
// This implements the interface of `StyleRuntime`.
|
|
4
|
+
// To run editor directly:
|
|
5
|
+
import type { Style } from '@modusoperandi/licit-customstyles';
|
|
6
|
+
import { POST, GET, DELETE, PATCH } from '../../src/client/http';
|
|
7
|
+
|
|
8
|
+
// When use it in a componet:
|
|
9
|
+
/*
|
|
10
|
+
import type {Style} from '@modusoperandi/licit-customstyles';
|
|
11
|
+
import {POST, GET, DELETE, PATCH } from '@modusoperandi/licit';
|
|
12
|
+
*/
|
|
13
|
+
const STYLES_URI = 'http://greathints.com:3000';
|
|
14
|
+
const TYPE_JSON = 'application/json; charset=utf-8';
|
|
15
|
+
|
|
16
|
+
class CustomStyleRuntime {
|
|
17
|
+
/**
|
|
18
|
+
* Cached styles fetched from the service to avoid saturating
|
|
19
|
+
* service with HTTP requests.
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
stylePromise: Promise<Style[]>;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Save or update a style.
|
|
26
|
+
*
|
|
27
|
+
* @param style Style to update.
|
|
28
|
+
* @return Updated array of styles.
|
|
29
|
+
*/
|
|
30
|
+
async saveStyle(style: Style): Promise<Style[]> {
|
|
31
|
+
try {
|
|
32
|
+
const json = JSON.stringify(style);
|
|
33
|
+
const url = this.buildRoute('styles');
|
|
34
|
+
// Issue HTTP request and save style to service.
|
|
35
|
+
await POST(url, json, TYPE_JSON);
|
|
36
|
+
} catch (error) {
|
|
37
|
+
// Log error to console, but otherwise ignore it. In the place in the
|
|
38
|
+
// editor where this method is called, there is no accommodation for
|
|
39
|
+
// handling errors.
|
|
40
|
+
console.error('Failed to save style', style, error);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Refresh styles from service. This becomes the new cache.
|
|
44
|
+
this.stylePromise = this.fetchStyles();
|
|
45
|
+
return this.stylePromise;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Fetch list of styles.
|
|
50
|
+
*
|
|
51
|
+
* @returns Array of styles or empty array
|
|
52
|
+
*/
|
|
53
|
+
getStylesAsync(): Promise<Style[]> {
|
|
54
|
+
if (!this.stylePromise) {
|
|
55
|
+
this.stylePromise = this.fetchStyles();
|
|
56
|
+
}
|
|
57
|
+
return this.stylePromise;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Renames an existing style on the service.
|
|
62
|
+
*
|
|
63
|
+
* @param oldName name of style to rename
|
|
64
|
+
* @param newName new name to apply to style
|
|
65
|
+
*/
|
|
66
|
+
async renameStyle(oldName: string, newName: string): Promise<Style[]> {
|
|
67
|
+
try {
|
|
68
|
+
const json = JSON.stringify({ oldName, newName });
|
|
69
|
+
const url = this.buildRoute('styles/rename');
|
|
70
|
+
await PATCH(url, json, TYPE_JSON);
|
|
71
|
+
} catch (error) {
|
|
72
|
+
// Log error to console, but otherwise ignore it. In the place in the
|
|
73
|
+
// editor where this method is called, there is no accommodation for
|
|
74
|
+
// handling errors.
|
|
75
|
+
console.error('Failed to rename style', oldName, newName, error);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Refresh styles from service. This becomes the new cache.
|
|
79
|
+
this.stylePromise = this.fetchStyles();
|
|
80
|
+
return this.stylePromise;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Remove an existing style from the service.
|
|
85
|
+
* @param styleName Name of style to delete
|
|
86
|
+
*/
|
|
87
|
+
async removeStyle(styleName: string): Promise<Style[]> {
|
|
88
|
+
try {
|
|
89
|
+
const url = this.buildRoute('styles', encodeURIComponent(styleName));
|
|
90
|
+
// Issue the HTTP request to delete the named style.
|
|
91
|
+
await DELETE(url, 'text/plain');
|
|
92
|
+
} catch (error) {
|
|
93
|
+
// Log error to console, but otherwise ignore it. In the place in the
|
|
94
|
+
// editor where this method is called, there is no accommodation for
|
|
95
|
+
// handling errors.
|
|
96
|
+
console.error('Failed to delete style', styleName, error);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Refresh styles from service. This becomes the new cache.
|
|
100
|
+
this.stylePromise = this.fetchStyles();
|
|
101
|
+
return this.stylePromise;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Issue HTTP request to fetch styles from service. Used internally by
|
|
106
|
+
* runtime, but should not be used externally.
|
|
107
|
+
*
|
|
108
|
+
* @returns Style array or empty array on error.
|
|
109
|
+
* @private
|
|
110
|
+
*/
|
|
111
|
+
async fetchStyles(): Promise<Style[]> {
|
|
112
|
+
let styles: Style[];
|
|
113
|
+
try {
|
|
114
|
+
styles = JSON.parse(await GET(this.buildRoute('styles')));
|
|
115
|
+
} catch (error) {
|
|
116
|
+
// HTTP request or parsing of response failed.
|
|
117
|
+
// In either case, log an error and treat as if an empty array was
|
|
118
|
+
// returned.
|
|
119
|
+
styles = [];
|
|
120
|
+
console.error('Failed to fetch styles from service', error);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Return the styles.
|
|
124
|
+
return styles;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Helper method for building URI
|
|
129
|
+
*
|
|
130
|
+
* @param path path segments to join.
|
|
131
|
+
*/
|
|
132
|
+
buildRoute(...path: string[]) {
|
|
133
|
+
return [STYLES_URI, ...path].join('/');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export default CustomStyleRuntime;
|