@squiz/formatted-text-editor 0.0.0-rbv2-20240530041851
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/.eslintrc.json +41 -0
- package/CHANGELOG.md +155 -0
- package/README.md +74 -0
- package/build.js +21 -0
- package/coverage/clover.xml +1544 -0
- package/coverage/coverage-final.json +74 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +911 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/Editor/Editor.tsx.html +436 -0
- package/coverage/lcov-report/src/Editor/EditorContext.ts.html +145 -0
- package/coverage/lcov-report/src/Editor/index.html +131 -0
- package/coverage/lcov-report/src/EditorToolbar/FloatingToolbar.tsx.html +271 -0
- package/coverage/lcov-report/src/EditorToolbar/Toolbar.tsx.html +265 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Bold/BoldButton.tsx.html +178 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Bold/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/ClearFormatting/ClearFormattingButton.tsx.html +229 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/ClearFormatting/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/HorizontalLine/HorizontalLineButton.tsx.html +187 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/HorizontalLine/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Image/Form/ImageForm.tsx.html +688 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Image/Form/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Image/ImageButton.tsx.html +301 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Image/ImageModal.tsx.html +181 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Image/index.html +131 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Italic/ItalicButton.tsx.html +178 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Italic/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Link/Form/LinkForm.tsx.html +508 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Link/Form/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Link/LinkButton.tsx.html +286 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Link/LinkModal.tsx.html +196 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Link/RemoveLinkButton.tsx.html +211 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Link/index.html +146 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Lists/ListButtons.tsx.html +127 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Lists/OrderedList/OrderedListButton.tsx.html +175 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Lists/OrderedList/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Lists/UnorderedList/UnorderedListButton.tsx.html +175 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Lists/UnorderedList/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Lists/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Redo/RedoButton.tsx.html +178 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Redo/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Table/TableButton.tsx.html +181 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Table/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextAlign/CenterAlign/CenterAlignButton.tsx.html +178 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextAlign/CenterAlign/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextAlign/JustifyAlign/JustifyAlignButton.tsx.html +178 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextAlign/JustifyAlign/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextAlign/LeftAlign/LeftAlignButton.tsx.html +178 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextAlign/LeftAlign/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextAlign/RightAlign/RightAlignButton.tsx.html +178 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextAlign/RightAlign/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextAlign/TextAlignButtons.tsx.html +148 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextAlign/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextType/CodeBlock/CodeBlockButton.tsx.html +181 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextType/CodeBlock/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextType/Heading/HeadingButton.tsx.html +241 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextType/Heading/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextType/Paragraph/ParagraphButton.tsx.html +160 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextType/Paragraph/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextType/Preformatted/PreformattedButton.tsx.html +181 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextType/Preformatted/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextType/TextTypeDropdown.tsx.html +247 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/TextType/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Underline/UnderlineButton.tsx.html +178 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Underline/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Undo/UndoButton.tsx.html +178 -0
- package/coverage/lcov-report/src/EditorToolbar/Tools/Undo/index.html +116 -0
- package/coverage/lcov-report/src/EditorToolbar/index.html +146 -0
- package/coverage/lcov-report/src/EditorToolbar/index.ts.html +91 -0
- package/coverage/lcov-report/src/Extensions/ClearFormattingExtension/ClearFormattingExtension.ts.html +256 -0
- package/coverage/lcov-report/src/Extensions/ClearFormattingExtension/index.html +116 -0
- package/coverage/lcov-report/src/Extensions/CodeBlockExtension/CodeBlockExtension.ts.html +187 -0
- package/coverage/lcov-report/src/Extensions/CodeBlockExtension/index.html +116 -0
- package/coverage/lcov-report/src/Extensions/CommandsExtension/CommandsExtension.ts.html +247 -0
- package/coverage/lcov-report/src/Extensions/CommandsExtension/index.html +116 -0
- package/coverage/lcov-report/src/Extensions/Extensions.ts.html +349 -0
- package/coverage/lcov-report/src/Extensions/FetchUrlExtension/FetchUrlExtension.ts.html +289 -0
- package/coverage/lcov-report/src/Extensions/FetchUrlExtension/index.html +116 -0
- package/coverage/lcov-report/src/Extensions/ImageExtension/AssetImageExtension.ts.html +412 -0
- package/coverage/lcov-report/src/Extensions/ImageExtension/ImageExtension.ts.html +142 -0
- package/coverage/lcov-report/src/Extensions/ImageExtension/index.html +131 -0
- package/coverage/lcov-report/src/Extensions/LinkExtension/AssetLinkExtension.ts.html +466 -0
- package/coverage/lcov-report/src/Extensions/LinkExtension/LinkExtension.ts.html +400 -0
- package/coverage/lcov-report/src/Extensions/LinkExtension/common.ts.html +115 -0
- package/coverage/lcov-report/src/Extensions/LinkExtension/index.html +146 -0
- package/coverage/lcov-report/src/Extensions/PreformattedExtension/PreformattedExtension.ts.html +340 -0
- package/coverage/lcov-report/src/Extensions/PreformattedExtension/index.html +116 -0
- package/coverage/lcov-report/src/Extensions/UnsuportedExtension/UnsupportedNodeExtension.tsx.html +325 -0
- package/coverage/lcov-report/src/Extensions/UnsuportedExtension/index.html +116 -0
- package/coverage/lcov-report/src/Extensions/index.html +116 -0
- package/coverage/lcov-report/src/hooks/index.html +161 -0
- package/coverage/lcov-report/src/hooks/index.ts.html +91 -0
- package/coverage/lcov-report/src/hooks/useExpandedSelection.ts.html +217 -0
- package/coverage/lcov-report/src/hooks/useExtensionNames.ts.html +130 -0
- package/coverage/lcov-report/src/hooks/useFocus.ts.html +268 -0
- package/coverage/lcov-report/src/index.html +116 -0
- package/coverage/lcov-report/src/index.ts.html +112 -0
- package/coverage/lcov-report/src/ui/Button/Button.tsx.html +190 -0
- package/coverage/lcov-report/src/ui/Button/index.html +116 -0
- package/coverage/lcov-report/src/ui/CollapseBox/CollapseBox.tsx.html +193 -0
- package/coverage/lcov-report/src/ui/CollapseBox/index.html +116 -0
- package/coverage/lcov-report/src/ui/Fields/Checkbox/Checkbox.tsx.html +232 -0
- package/coverage/lcov-report/src/ui/Fields/Checkbox/index.html +116 -0
- package/coverage/lcov-report/src/ui/Fields/Input/Input.tsx.html +160 -0
- package/coverage/lcov-report/src/ui/Fields/Input/index.html +116 -0
- package/coverage/lcov-report/src/ui/Fields/InputContainer/InputContainer.tsx.html +172 -0
- package/coverage/lcov-report/src/ui/Fields/InputContainer/index.html +116 -0
- package/coverage/lcov-report/src/ui/Fields/MatrixAsset/MatrixAsset.tsx.html +256 -0
- package/coverage/lcov-report/src/ui/Fields/MatrixAsset/index.html +116 -0
- package/coverage/lcov-report/src/ui/Fields/Select/Select.tsx.html +283 -0
- package/coverage/lcov-report/src/ui/Fields/Select/index.html +116 -0
- package/coverage/lcov-report/src/ui/Modal/FormModal.tsx.html +136 -0
- package/coverage/lcov-report/src/ui/Modal/Modal.tsx.html +397 -0
- package/coverage/lcov-report/src/ui/Modal/index.html +131 -0
- package/coverage/lcov-report/src/ui/Tabs/Tabs.tsx.html +208 -0
- package/coverage/lcov-report/src/ui/Tabs/index.html +116 -0
- package/coverage/lcov-report/src/ui/ToolbarDropdown/ToolbarDropdown.tsx.html +211 -0
- package/coverage/lcov-report/src/ui/ToolbarDropdown/index.html +116 -0
- package/coverage/lcov-report/src/ui/ToolbarDropdownButton/ToolbarDropdownButton.tsx.html +184 -0
- package/coverage/lcov-report/src/ui/ToolbarDropdownButton/index.html +116 -0
- package/coverage/lcov-report/src/utils/converters/htmlToSquizNode/htmlToSquizNode.ts.html +166 -0
- package/coverage/lcov-report/src/utils/converters/htmlToSquizNode/index.html +116 -0
- package/coverage/lcov-report/src/utils/converters/mocks/index.html +116 -0
- package/coverage/lcov-report/src/utils/converters/mocks/squizNodeJson.mock.ts.html +895 -0
- package/coverage/lcov-report/src/utils/converters/remirrorNodeToSquizNode/index.html +116 -0
- package/coverage/lcov-report/src/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.ts.html +976 -0
- package/coverage/lcov-report/src/utils/converters/squizNodeToRemirrorNode/index.html +116 -0
- package/coverage/lcov-report/src/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.ts.html +748 -0
- package/coverage/lcov-report/src/utils/createToolbarPositioner.ts.html +469 -0
- package/coverage/lcov-report/src/utils/getCursorRect.ts.html +100 -0
- package/coverage/lcov-report/src/utils/getMarkNamesByGroup.ts.html +106 -0
- package/coverage/lcov-report/src/utils/getNodeNamesByGroup.ts.html +106 -0
- package/coverage/lcov-report/src/utils/getShortcutSymbol.ts.html +97 -0
- package/coverage/lcov-report/src/utils/index.html +206 -0
- package/coverage/lcov-report/src/utils/undefinedIfEmpty.ts.html +94 -0
- package/coverage/lcov-report/src/utils/validation.ts.html +133 -0
- package/coverage/lcov.info +2737 -0
- package/cypress/e2e/bold.spec.cy.ts +18 -0
- package/cypress/global.d.ts +9 -0
- package/cypress/support/commands.ts +130 -0
- package/cypress/support/e2e.ts +20 -0
- package/cypress/tsconfig.json +8 -0
- package/cypress.config.ts +7 -0
- package/demo/App.tsx +107 -0
- package/demo/AppContext.tsx +70 -0
- package/demo/index.html +13 -0
- package/demo/index.scss +33 -0
- package/demo/main.tsx +12 -0
- package/demo/public/favicon-dxp.svg +3 -0
- package/demo/resources.json +204 -0
- package/demo/sources.json +27 -0
- package/demo/vite-env.d.ts +1 -0
- package/file-transformer.js +1 -0
- package/jest.bootstrap.ts +3 -0
- package/jest.config.ts +27 -0
- package/lib/Editor/Editor.d.ts +16 -0
- package/lib/Editor/Editor.js +85 -0
- package/lib/Editor/EditorContext.d.ts +10 -0
- package/lib/Editor/EditorContext.js +16 -0
- package/lib/EditorToolbar/FloatingToolbar.d.ts +2 -0
- package/lib/EditorToolbar/FloatingToolbar.js +76 -0
- package/lib/EditorToolbar/Toolbar.d.ts +7 -0
- package/lib/EditorToolbar/Toolbar.js +47 -0
- package/lib/EditorToolbar/Tools/Bold/BoldButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/Bold/BoldButton.js +23 -0
- package/lib/EditorToolbar/Tools/ClearFormatting/ClearFormattingButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/ClearFormatting/ClearFormattingButton.js +57 -0
- package/lib/EditorToolbar/Tools/HorizontalLine/HorizontalLineButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/HorizontalLine/HorizontalLineButton.js +25 -0
- package/lib/EditorToolbar/Tools/Image/Form/ImageForm.d.ts +18 -0
- package/lib/EditorToolbar/Tools/Image/Form/ImageForm.js +143 -0
- package/lib/EditorToolbar/Tools/Image/ImageButton.d.ts +6 -0
- package/lib/EditorToolbar/Tools/Image/ImageButton.js +76 -0
- package/lib/EditorToolbar/Tools/Image/ImageModal.d.ts +9 -0
- package/lib/EditorToolbar/Tools/Image/ImageModal.js +24 -0
- package/lib/EditorToolbar/Tools/Italic/ItalicButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/Italic/ItalicButton.js +23 -0
- package/lib/EditorToolbar/Tools/Link/Form/LinkForm.d.ts +19 -0
- package/lib/EditorToolbar/Tools/Link/Form/LinkForm.js +63 -0
- package/lib/EditorToolbar/Tools/Link/LinkButton.d.ts +6 -0
- package/lib/EditorToolbar/Tools/Link/LinkButton.js +71 -0
- package/lib/EditorToolbar/Tools/Link/LinkModal.d.ts +9 -0
- package/lib/EditorToolbar/Tools/Link/LinkModal.js +27 -0
- package/lib/EditorToolbar/Tools/Link/RemoveLinkButton.d.ts +4 -0
- package/lib/EditorToolbar/Tools/Link/RemoveLinkButton.js +54 -0
- package/lib/EditorToolbar/Tools/Lists/ListButtons.d.ts +3 -0
- package/lib/EditorToolbar/Tools/Lists/ListButtons.js +14 -0
- package/lib/EditorToolbar/Tools/Lists/OrderedList/OrderedListButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/Lists/OrderedList/OrderedListButton.js +22 -0
- package/lib/EditorToolbar/Tools/Lists/UnorderedList/UnorderedListButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/Lists/UnorderedList/UnorderedListButton.js +22 -0
- package/lib/EditorToolbar/Tools/Redo/RedoButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/Redo/RedoButton.js +22 -0
- package/lib/EditorToolbar/Tools/Table/TableButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/Table/TableButton.js +22 -0
- package/lib/EditorToolbar/Tools/TextAlign/CenterAlign/CenterAlignButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/TextAlign/CenterAlign/CenterAlignButton.js +22 -0
- package/lib/EditorToolbar/Tools/TextAlign/JustifyAlign/JustifyAlignButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/TextAlign/JustifyAlign/JustifyAlignButton.js +22 -0
- package/lib/EditorToolbar/Tools/TextAlign/LeftAlign/LeftAlignButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/TextAlign/LeftAlign/LeftAlignButton.js +22 -0
- package/lib/EditorToolbar/Tools/TextAlign/RightAlign/RightAlignButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/TextAlign/RightAlign/RightAlignButton.js +22 -0
- package/lib/EditorToolbar/Tools/TextAlign/TextAlignButtons.d.ts +3 -0
- package/lib/EditorToolbar/Tools/TextAlign/TextAlignButtons.js +21 -0
- package/lib/EditorToolbar/Tools/TextType/CodeBlock/CodeBlockButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/TextType/CodeBlock/CodeBlockButton.js +22 -0
- package/lib/EditorToolbar/Tools/TextType/Heading/HeadingButton.d.ts +6 -0
- package/lib/EditorToolbar/Tools/TextType/Heading/HeadingButton.js +37 -0
- package/lib/EditorToolbar/Tools/TextType/Paragraph/ParagraphButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/TextType/Paragraph/ParagraphButton.js +21 -0
- package/lib/EditorToolbar/Tools/TextType/Preformatted/PreformattedButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/TextType/Preformatted/PreformattedButton.js +22 -0
- package/lib/EditorToolbar/Tools/TextType/TextTypeDropdown.d.ts +3 -0
- package/lib/EditorToolbar/Tools/TextType/TextTypeDropdown.js +46 -0
- package/lib/EditorToolbar/Tools/Underline/UnderlineButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/Underline/UnderlineButton.js +23 -0
- package/lib/EditorToolbar/Tools/Undo/UndoButton.d.ts +3 -0
- package/lib/EditorToolbar/Tools/Undo/UndoButton.js +22 -0
- package/lib/EditorToolbar/index.d.ts +2 -0
- package/lib/EditorToolbar/index.js +18 -0
- package/lib/Extensions/ClearFormattingExtension/ClearFormattingExtension.d.ts +5 -0
- package/lib/Extensions/ClearFormattingExtension/ClearFormattingExtension.js +63 -0
- package/lib/Extensions/CodeBlockExtension/CodeBlockExtension.d.ts +5 -0
- package/lib/Extensions/CodeBlockExtension/CodeBlockExtension.js +30 -0
- package/lib/Extensions/CommandsExtension/CommandsExtension.d.ts +20 -0
- package/lib/Extensions/CommandsExtension/CommandsExtension.js +52 -0
- package/lib/Extensions/Extensions.d.ts +17 -0
- package/lib/Extensions/Extensions.js +73 -0
- package/lib/Extensions/FetchUrlExtension/FetchUrlExtension.d.ts +12 -0
- package/lib/Extensions/FetchUrlExtension/FetchUrlExtension.js +63 -0
- package/lib/Extensions/ImageExtension/AssetImageExtension.d.ts +17 -0
- package/lib/Extensions/ImageExtension/AssetImageExtension.js +91 -0
- package/lib/Extensions/ImageExtension/ImageExtension.d.ts +7 -0
- package/lib/Extensions/ImageExtension/ImageExtension.js +18 -0
- package/lib/Extensions/LinkExtension/AssetLinkExtension.d.ts +27 -0
- package/lib/Extensions/LinkExtension/AssetLinkExtension.js +101 -0
- package/lib/Extensions/LinkExtension/LinkExtension.d.ts +23 -0
- package/lib/Extensions/LinkExtension/LinkExtension.js +87 -0
- package/lib/Extensions/LinkExtension/common.d.ts +7 -0
- package/lib/Extensions/LinkExtension/common.js +14 -0
- package/lib/Extensions/PreformattedExtension/PreformattedExtension.d.ts +12 -0
- package/lib/Extensions/PreformattedExtension/PreformattedExtension.js +76 -0
- package/lib/Extensions/UnsuportedExtension/UnsupportedNodeExtension.d.ts +10 -0
- package/lib/Extensions/UnsuportedExtension/UnsupportedNodeExtension.js +76 -0
- package/lib/hooks/index.d.ts +2 -0
- package/lib/hooks/index.js +18 -0
- package/lib/hooks/useExpandedSelection.d.ts +23 -0
- package/lib/hooks/useExpandedSelection.js +37 -0
- package/lib/hooks/useExtensionNames.d.ts +1 -0
- package/lib/hooks/useExtensionNames.js +16 -0
- package/lib/hooks/useFocus.d.ts +8 -0
- package/lib/hooks/useFocus.js +43 -0
- package/lib/index.css +1525 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.js +16 -0
- package/lib/types.d.ts +7 -0
- package/lib/types.js +2 -0
- package/lib/ui/Button/Button.d.ts +12 -0
- package/lib/ui/Button/Button.js +13 -0
- package/lib/ui/CollapseBox/CollapseBox.d.ts +7 -0
- package/lib/ui/CollapseBox/CollapseBox.js +48 -0
- package/lib/ui/Fields/Checkbox/Checkbox.d.ts +9 -0
- package/lib/ui/Fields/Checkbox/Checkbox.js +47 -0
- package/lib/ui/Fields/Input/Input.d.ts +3 -0
- package/lib/ui/Fields/Input/Input.js +33 -0
- package/lib/ui/Fields/InputContainer/InputContainer.d.ts +9 -0
- package/lib/ui/Fields/InputContainer/InputContainer.js +16 -0
- package/lib/ui/Fields/MatrixAsset/MatrixAsset.d.ts +19 -0
- package/lib/ui/Fields/MatrixAsset/MatrixAsset.js +30 -0
- package/lib/ui/Modal/FormModal.d.ts +5 -0
- package/lib/ui/Modal/FormModal.js +39 -0
- package/lib/ui/Modal/Modal.d.ts +11 -0
- package/lib/ui/Modal/Modal.js +79 -0
- package/lib/ui/Tabs/Tabs.d.ts +11 -0
- package/lib/ui/Tabs/Tabs.js +46 -0
- package/lib/ui/ToolbarDropdown/ToolbarDropdown.d.ts +7 -0
- package/lib/ui/ToolbarDropdown/ToolbarDropdown.js +48 -0
- package/lib/ui/ToolbarDropdownButton/ToolbarDropdownButton.d.ts +11 -0
- package/lib/ui/ToolbarDropdownButton/ToolbarDropdownButton.js +15 -0
- package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.d.ts +5 -0
- package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.js +23 -0
- package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.props.d.ts +3 -0
- package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.props.js +2 -0
- package/lib/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.d.ts +11 -0
- package/lib/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.js +229 -0
- package/lib/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.d.ts +9 -0
- package/lib/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.js +205 -0
- package/lib/utils/createToolbarPositioner.d.ts +18 -0
- package/lib/utils/createToolbarPositioner.js +96 -0
- package/lib/utils/getCursorRect.d.ts +2 -0
- package/lib/utils/getCursorRect.js +7 -0
- package/lib/utils/getMarkNamesByGroup.d.ts +2 -0
- package/lib/utils/getMarkNamesByGroup.js +9 -0
- package/lib/utils/getNodeNamesByGroup.d.ts +2 -0
- package/lib/utils/getNodeNamesByGroup.js +9 -0
- package/lib/utils/getShortcutSymbol.d.ts +1 -0
- package/lib/utils/getShortcutSymbol.js +8 -0
- package/lib/utils/undefinedIfEmpty.d.ts +1 -0
- package/lib/utils/undefinedIfEmpty.js +7 -0
- package/lib/utils/validation.d.ts +3 -0
- package/lib/utils/validation.js +16 -0
- package/package.json +83 -0
- package/postcss.config.js +12 -0
- package/src/Editor/Editor.spec.tsx +465 -0
- package/src/Editor/Editor.tsx +117 -0
- package/src/Editor/EditorContext.spec.tsx +25 -0
- package/src/Editor/EditorContext.ts +20 -0
- package/src/Editor/_editor.scss +430 -0
- package/src/EditorToolbar/FloatingToolbar.spec.tsx +49 -0
- package/src/EditorToolbar/FloatingToolbar.tsx +62 -0
- package/src/EditorToolbar/Toolbar.tsx +60 -0
- package/src/EditorToolbar/Tools/Bold/BoldButton.spec.tsx +19 -0
- package/src/EditorToolbar/Tools/Bold/BoldButton.tsx +31 -0
- package/src/EditorToolbar/Tools/ClearFormatting/ClearFormattingButton.spec.tsx +34 -0
- package/src/EditorToolbar/Tools/ClearFormatting/ClearFormattingButton.tsx +48 -0
- package/src/EditorToolbar/Tools/HorizontalLine/HorizontalLineButton.spec.tsx +23 -0
- package/src/EditorToolbar/Tools/HorizontalLine/HorizontalLineButton.tsx +34 -0
- package/src/EditorToolbar/Tools/Image/Form/ImageForm.spec.tsx +117 -0
- package/src/EditorToolbar/Tools/Image/Form/ImageForm.tsx +201 -0
- package/src/EditorToolbar/Tools/Image/ImageButton.spec.tsx +385 -0
- package/src/EditorToolbar/Tools/Image/ImageButton.tsx +72 -0
- package/src/EditorToolbar/Tools/Image/ImageModal.spec.tsx +123 -0
- package/src/EditorToolbar/Tools/Image/ImageModal.tsx +32 -0
- package/src/EditorToolbar/Tools/Italic/ItalicButton.spec.tsx +19 -0
- package/src/EditorToolbar/Tools/Italic/ItalicButton.tsx +31 -0
- package/src/EditorToolbar/Tools/Link/Form/LinkForm.spec.tsx +79 -0
- package/src/EditorToolbar/Tools/Link/Form/LinkForm.tsx +141 -0
- package/src/EditorToolbar/Tools/Link/LinkButton.spec.tsx +402 -0
- package/src/EditorToolbar/Tools/Link/LinkButton.tsx +67 -0
- package/src/EditorToolbar/Tools/Link/LinkModal.tsx +37 -0
- package/src/EditorToolbar/Tools/Link/RemoveLinkButton.spec.tsx +143 -0
- package/src/EditorToolbar/Tools/Link/RemoveLinkButton.tsx +42 -0
- package/src/EditorToolbar/Tools/Lists/ListButtons.tsx +14 -0
- package/src/EditorToolbar/Tools/Lists/OrderedList/OrderListButton.spec.tsx +39 -0
- package/src/EditorToolbar/Tools/Lists/OrderedList/OrderedListButton.tsx +30 -0
- package/src/EditorToolbar/Tools/Lists/UnorderedList/UnorderedList.spec.tsx +19 -0
- package/src/EditorToolbar/Tools/Lists/UnorderedList/UnorderedListButton.tsx +30 -0
- package/src/EditorToolbar/Tools/Redo/RedoButton.spec.tsx +59 -0
- package/src/EditorToolbar/Tools/Redo/RedoButton.tsx +31 -0
- package/src/EditorToolbar/Tools/Table/TableButton.spec.tsx +25 -0
- package/src/EditorToolbar/Tools/Table/TableButton.tsx +32 -0
- package/src/EditorToolbar/Tools/TextAlign/CenterAlign/CenterAlignButton.spec.tsx +39 -0
- package/src/EditorToolbar/Tools/TextAlign/CenterAlign/CenterAlignButton.tsx +31 -0
- package/src/EditorToolbar/Tools/TextAlign/JustifyAlign/JustifyAlignButton.spec.tsx +39 -0
- package/src/EditorToolbar/Tools/TextAlign/JustifyAlign/JustifyAlignButton.tsx +31 -0
- package/src/EditorToolbar/Tools/TextAlign/LeftAlign/LeftAlignButton.spec.tsx +39 -0
- package/src/EditorToolbar/Tools/TextAlign/LeftAlign/LeftAlignButton.tsx +31 -0
- package/src/EditorToolbar/Tools/TextAlign/RightAlign/RightAlignButton.spec.tsx +39 -0
- package/src/EditorToolbar/Tools/TextAlign/RightAlign/RightAlignButton.tsx +31 -0
- package/src/EditorToolbar/Tools/TextAlign/TextAlignButtons.tsx +21 -0
- package/src/EditorToolbar/Tools/TextType/CodeBlock/CodeBlockButton.spec.tsx +47 -0
- package/src/EditorToolbar/Tools/TextType/CodeBlock/CodeBlockButton.tsx +32 -0
- package/src/EditorToolbar/Tools/TextType/Heading/HeadingButton.spec.tsx +56 -0
- package/src/EditorToolbar/Tools/TextType/Heading/HeadingButton.tsx +52 -0
- package/src/EditorToolbar/Tools/TextType/Paragraph/ParagraphButton.spec.tsx +30 -0
- package/src/EditorToolbar/Tools/TextType/Paragraph/ParagraphButton.tsx +25 -0
- package/src/EditorToolbar/Tools/TextType/Preformatted/PreformattedButton.spec.tsx +47 -0
- package/src/EditorToolbar/Tools/TextType/Preformatted/PreformattedButton.tsx +32 -0
- package/src/EditorToolbar/Tools/TextType/TextTypeDropdown.spec.tsx +51 -0
- package/src/EditorToolbar/Tools/TextType/TextTypeDropdown.tsx +54 -0
- package/src/EditorToolbar/Tools/Underline/Underline.spec.tsx +19 -0
- package/src/EditorToolbar/Tools/Underline/UnderlineButton.tsx +31 -0
- package/src/EditorToolbar/Tools/Undo/UndoButton.spec.tsx +70 -0
- package/src/EditorToolbar/Tools/Undo/UndoButton.tsx +31 -0
- package/src/EditorToolbar/_floating-toolbar.scss +9 -0
- package/src/EditorToolbar/_toolbar.scss +37 -0
- package/src/EditorToolbar/index.ts +2 -0
- package/src/Extensions/ClearFormattingExtension/ClearFormattingExtension.ts +57 -0
- package/src/Extensions/CodeBlockExtension/CodeBlockExtension.ts +34 -0
- package/src/Extensions/CommandsExtension/CommandsExtension.ts +54 -0
- package/src/Extensions/Extensions.ts +88 -0
- package/src/Extensions/FetchUrlExtension/FetchUrlExtension.ts +68 -0
- package/src/Extensions/ImageExtension/AssetImageExtension.spec.ts +77 -0
- package/src/Extensions/ImageExtension/AssetImageExtension.ts +109 -0
- package/src/Extensions/ImageExtension/ImageExtension.ts +19 -0
- package/src/Extensions/LinkExtension/AssetLinkExtension.spec.ts +106 -0
- package/src/Extensions/LinkExtension/AssetLinkExtension.ts +127 -0
- package/src/Extensions/LinkExtension/LinkExtension.spec.ts +68 -0
- package/src/Extensions/LinkExtension/LinkExtension.ts +105 -0
- package/src/Extensions/LinkExtension/common.ts +10 -0
- package/src/Extensions/PreformattedExtension/PreformattedExtension.spec.ts +43 -0
- package/src/Extensions/PreformattedExtension/PreformattedExtension.ts +85 -0
- package/src/Extensions/UnsuportedExtension/UnsupportedNodeExtension.spec.ts +137 -0
- package/src/Extensions/UnsuportedExtension/UnsupportedNodeExtension.tsx +80 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useExpandedSelection.ts +44 -0
- package/src/hooks/useExtensionNames.ts +15 -0
- package/src/hooks/useFocus.ts +61 -0
- package/src/index.scss +24 -0
- package/src/index.ts +9 -0
- package/src/types.ts +10 -0
- package/src/ui/Button/Button.spec.tsx +44 -0
- package/src/ui/Button/Button.tsx +35 -0
- package/src/ui/Button/_button.scss +37 -0
- package/src/ui/CollapseBox/CollapseBox.spec.tsx +49 -0
- package/src/ui/CollapseBox/CollapseBox.tsx +36 -0
- package/src/ui/CollapseBox/_collapseBox.scss +23 -0
- package/src/ui/Fields/Checkbox/Checkbox.spec.tsx +50 -0
- package/src/ui/Fields/Checkbox/Checkbox.tsx +49 -0
- package/src/ui/Fields/Checkbox/_checkbox.scss +26 -0
- package/src/ui/Fields/Input/Input.spec.tsx +49 -0
- package/src/ui/Fields/Input/Input.tsx +25 -0
- package/src/ui/Fields/InputContainer/InputContainer.spec.tsx +18 -0
- package/src/ui/Fields/InputContainer/InputContainer.tsx +29 -0
- package/src/ui/Fields/MatrixAsset/MatrixAsset.spec.tsx +121 -0
- package/src/ui/Fields/MatrixAsset/MatrixAsset.tsx +57 -0
- package/src/ui/Fields/Select/Select.spec.tsx +30 -0
- package/src/ui/Fields/Select/Select.tsx +66 -0
- package/src/ui/Modal/FormModal.spec.tsx +21 -0
- package/src/ui/Modal/FormModal.tsx +17 -0
- package/src/ui/Modal/Modal.spec.tsx +136 -0
- package/src/ui/Modal/Modal.tsx +104 -0
- package/src/ui/Modal/_modal.scss +24 -0
- package/src/ui/Tabs/Tabs.spec.tsx +44 -0
- package/src/ui/Tabs/Tabs.tsx +41 -0
- package/src/ui/ToolbarDropdown/ToolbarDropdown.spec.tsx +80 -0
- package/src/ui/ToolbarDropdown/ToolbarDropdown.tsx +42 -0
- package/src/ui/ToolbarDropdown/_toolbar-dropdown.scss +32 -0
- package/src/ui/ToolbarDropdownButton/ToolbarDropdownButton.spec.tsx +48 -0
- package/src/ui/ToolbarDropdownButton/ToolbarDropdownButton.tsx +33 -0
- package/src/ui/ToolbarDropdownButton/_toolbar-dropdown-button.scss +25 -0
- package/src/ui/_forms.scss +32 -0
- package/src/ui/_typography.scss +95 -0
- package/src/utils/converters/htmlToSquizNode/htmlToSquizNode.props.ts +3 -0
- package/src/utils/converters/htmlToSquizNode/htmlToSquizNode.spec.ts +179 -0
- package/src/utils/converters/htmlToSquizNode/htmlToSquizNode.ts +27 -0
- package/src/utils/converters/mocks/squizNodeJson.mock.ts +270 -0
- package/src/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.spec.ts +1058 -0
- package/src/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.ts +297 -0
- package/src/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.spec.ts +878 -0
- package/src/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.ts +221 -0
- package/src/utils/createToolbarPositioner.ts +128 -0
- package/src/utils/getCursorRect.ts +5 -0
- package/src/utils/getMarkNamesByGroup.spec.ts +20 -0
- package/src/utils/getMarkNamesByGroup.ts +7 -0
- package/src/utils/getNodeNamesByGroup.spec.ts +37 -0
- package/src/utils/getNodeNamesByGroup.ts +7 -0
- package/src/utils/getShortcutSymbol.spec.ts +27 -0
- package/src/utils/getShortcutSymbol.ts +4 -0
- package/src/utils/undefinedIfEmpty.spec.ts +12 -0
- package/src/utils/undefinedIfEmpty.ts +3 -0
- package/src/utils/validation.spec.ts +22 -0
- package/src/utils/validation.ts +16 -0
- package/tailwind.config.cjs +87 -0
- package/tests/index.ts +4 -0
- package/tests/mockResourceBrowserContext.tsx +99 -0
- package/tests/renderWithContext.tsx +75 -0
- package/tests/renderWithEditor.tsx +123 -0
- package/tests/select.ts +16 -0
- package/tsconfig.json +22 -0
- package/vite.config.ts +27 -0
@@ -0,0 +1,976 @@
|
|
1
|
+
|
2
|
+
<!doctype html>
|
3
|
+
<html lang="en">
|
4
|
+
|
5
|
+
<head>
|
6
|
+
<title>Code coverage report for src/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.ts</title>
|
7
|
+
<meta charset="utf-8" />
|
8
|
+
<link rel="stylesheet" href="../../../../prettify.css" />
|
9
|
+
<link rel="stylesheet" href="../../../../base.css" />
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
12
|
+
<style type='text/css'>
|
13
|
+
.coverage-summary .sorter {
|
14
|
+
background-image: url(../../../../sort-arrow-sprite.png);
|
15
|
+
}
|
16
|
+
</style>
|
17
|
+
</head>
|
18
|
+
|
19
|
+
<body>
|
20
|
+
<div class='wrapper'>
|
21
|
+
<div class='pad1'>
|
22
|
+
<h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/utils/converters/remirrorNodeToSquizNode</a> remirrorNodeToSquizNode.ts</h1>
|
23
|
+
<div class='clearfix'>
|
24
|
+
|
25
|
+
<div class='fl pad1y space-right2'>
|
26
|
+
<span class="strong">97.67% </span>
|
27
|
+
<span class="quiet">Statements</span>
|
28
|
+
<span class='fraction'>84/86</span>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
|
32
|
+
<div class='fl pad1y space-right2'>
|
33
|
+
<span class="strong">93.33% </span>
|
34
|
+
<span class="quiet">Branches</span>
|
35
|
+
<span class='fraction'>56/60</span>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
|
39
|
+
<div class='fl pad1y space-right2'>
|
40
|
+
<span class="strong">100% </span>
|
41
|
+
<span class="quiet">Functions</span>
|
42
|
+
<span class='fraction'>13/13</span>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
|
46
|
+
<div class='fl pad1y space-right2'>
|
47
|
+
<span class="strong">97.61% </span>
|
48
|
+
<span class="quiet">Lines</span>
|
49
|
+
<span class='fraction'>82/84</span>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
|
53
|
+
</div>
|
54
|
+
<p class="quiet">
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
56
|
+
</p>
|
57
|
+
<template id="filterTemplate">
|
58
|
+
<div class="quiet">
|
59
|
+
Filter:
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
61
|
+
</div>
|
62
|
+
</template>
|
63
|
+
</div>
|
64
|
+
<div class='status-line high'></div>
|
65
|
+
<pre><table class="coverage">
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a>
|
349
|
+
<a name='L284'></a><a href='#L284'>284</a>
|
350
|
+
<a name='L285'></a><a href='#L285'>285</a>
|
351
|
+
<a name='L286'></a><a href='#L286'>286</a>
|
352
|
+
<a name='L287'></a><a href='#L287'>287</a>
|
353
|
+
<a name='L288'></a><a href='#L288'>288</a>
|
354
|
+
<a name='L289'></a><a href='#L289'>289</a>
|
355
|
+
<a name='L290'></a><a href='#L290'>290</a>
|
356
|
+
<a name='L291'></a><a href='#L291'>291</a>
|
357
|
+
<a name='L292'></a><a href='#L292'>292</a>
|
358
|
+
<a name='L293'></a><a href='#L293'>293</a>
|
359
|
+
<a name='L294'></a><a href='#L294'>294</a>
|
360
|
+
<a name='L295'></a><a href='#L295'>295</a>
|
361
|
+
<a name='L296'></a><a href='#L296'>296</a>
|
362
|
+
<a name='L297'></a><a href='#L297'>297</a>
|
363
|
+
<a name='L298'></a><a href='#L298'>298</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">22x</span>
|
364
|
+
<span class="cline-any cline-neutral"> </span>
|
365
|
+
<span class="cline-any cline-neutral"> </span>
|
366
|
+
<span class="cline-any cline-yes">22x</span>
|
367
|
+
<span class="cline-any cline-yes">22x</span>
|
368
|
+
<span class="cline-any cline-neutral"> </span>
|
369
|
+
<span class="cline-any cline-neutral"> </span>
|
370
|
+
<span class="cline-any cline-neutral"> </span>
|
371
|
+
<span class="cline-any cline-neutral"> </span>
|
372
|
+
<span class="cline-any cline-neutral"> </span>
|
373
|
+
<span class="cline-any cline-neutral"> </span>
|
374
|
+
<span class="cline-any cline-neutral"> </span>
|
375
|
+
<span class="cline-any cline-neutral"> </span>
|
376
|
+
<span class="cline-any cline-neutral"> </span>
|
377
|
+
<span class="cline-any cline-neutral"> </span>
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
379
|
+
<span class="cline-any cline-neutral"> </span>
|
380
|
+
<span class="cline-any cline-neutral"> </span>
|
381
|
+
<span class="cline-any cline-neutral"> </span>
|
382
|
+
<span class="cline-any cline-yes">22x</span>
|
383
|
+
<span class="cline-any cline-yes">65x</span>
|
384
|
+
<span class="cline-any cline-yes">1x</span>
|
385
|
+
<span class="cline-any cline-neutral"> </span>
|
386
|
+
<span class="cline-any cline-neutral"> </span>
|
387
|
+
<span class="cline-any cline-yes">64x</span>
|
388
|
+
<span class="cline-any cline-yes">1x</span>
|
389
|
+
<span class="cline-any cline-neutral"> </span>
|
390
|
+
<span class="cline-any cline-neutral"> </span>
|
391
|
+
<span class="cline-any cline-yes">63x</span>
|
392
|
+
<span class="cline-any cline-yes">62x</span>
|
393
|
+
<span class="cline-any cline-neutral"> </span>
|
394
|
+
<span class="cline-any cline-yes">62x</span>
|
395
|
+
<span class="cline-any cline-yes">1x</span>
|
396
|
+
<span class="cline-any cline-neutral"> </span>
|
397
|
+
<span class="cline-any cline-neutral"> </span>
|
398
|
+
<span class="cline-any cline-yes">61x</span>
|
399
|
+
<span class="cline-any cline-yes">1x</span>
|
400
|
+
<span class="cline-any cline-neutral"> </span>
|
401
|
+
<span class="cline-any cline-neutral"> </span>
|
402
|
+
<span class="cline-any cline-yes">60x</span>
|
403
|
+
<span class="cline-any cline-neutral"> </span>
|
404
|
+
<span class="cline-any cline-yes">59x</span>
|
405
|
+
<span class="cline-any cline-neutral"> </span>
|
406
|
+
<span class="cline-any cline-neutral"> </span>
|
407
|
+
<span class="cline-any cline-neutral"> </span>
|
408
|
+
<span class="cline-any cline-yes">2x</span>
|
409
|
+
<span class="cline-any cline-neutral"> </span>
|
410
|
+
<span class="cline-any cline-neutral"> </span>
|
411
|
+
<span class="cline-any cline-yes">22x</span>
|
412
|
+
<span class="cline-any cline-yes">102x</span>
|
413
|
+
<span class="cline-any cline-yes">102x</span>
|
414
|
+
<span class="cline-any cline-yes">102x</span>
|
415
|
+
<span class="cline-any cline-neutral"> </span>
|
416
|
+
<span class="cline-any cline-neutral"> </span>
|
417
|
+
<span class="cline-any cline-neutral"> </span>
|
418
|
+
<span class="cline-any cline-neutral"> </span>
|
419
|
+
<span class="cline-any cline-neutral"> </span>
|
420
|
+
<span class="cline-any cline-neutral"> </span>
|
421
|
+
<span class="cline-any cline-neutral"> </span>
|
422
|
+
<span class="cline-any cline-neutral"> </span>
|
423
|
+
<span class="cline-any cline-neutral"> </span>
|
424
|
+
<span class="cline-any cline-yes">102x</span>
|
425
|
+
<span class="cline-any cline-yes">6x</span>
|
426
|
+
<span class="cline-any cline-neutral"> </span>
|
427
|
+
<span class="cline-any cline-neutral"> </span>
|
428
|
+
<span class="cline-any cline-yes">102x</span>
|
429
|
+
<span class="cline-any cline-neutral"> </span>
|
430
|
+
<span class="cline-any cline-neutral"> </span>
|
431
|
+
<span class="cline-any cline-yes">22x</span>
|
432
|
+
<span class="cline-any cline-yes">102x</span>
|
433
|
+
<span class="cline-any cline-neutral"> </span>
|
434
|
+
<span class="cline-any cline-yes">102x</span>
|
435
|
+
<span class="cline-any cline-yes">14x</span>
|
436
|
+
<span class="cline-any cline-neutral"> </span>
|
437
|
+
<span class="cline-any cline-yes">1x</span>
|
438
|
+
<span class="cline-any cline-yes">1x</span>
|
439
|
+
<span class="cline-any cline-neutral"> </span>
|
440
|
+
<span class="cline-any cline-neutral"> </span>
|
441
|
+
<span class="cline-any cline-neutral"> </span>
|
442
|
+
<span class="cline-any cline-yes">102x</span>
|
443
|
+
<span class="cline-any cline-neutral"> </span>
|
444
|
+
<span class="cline-any cline-neutral"> </span>
|
445
|
+
<span class="cline-any cline-yes">22x</span>
|
446
|
+
<span class="cline-any cline-yes">16x</span>
|
447
|
+
<span class="cline-any cline-neutral"> </span>
|
448
|
+
<span class="cline-any cline-yes">16x</span>
|
449
|
+
<span class="cline-any cline-neutral"> </span>
|
450
|
+
<span class="cline-any cline-yes">65x</span>
|
451
|
+
<span class="cline-any cline-yes">34x</span>
|
452
|
+
<span class="cline-any cline-neutral"> </span>
|
453
|
+
<span class="cline-any cline-neutral"> </span>
|
454
|
+
<span class="cline-any cline-neutral"> </span>
|
455
|
+
<span class="cline-any cline-neutral"> </span>
|
456
|
+
<span class="cline-any cline-neutral"> </span>
|
457
|
+
<span class="cline-any cline-yes">16x</span>
|
458
|
+
<span class="cline-any cline-yes">6x</span>
|
459
|
+
<span class="cline-any cline-neutral"> </span>
|
460
|
+
<span class="cline-any cline-neutral"> </span>
|
461
|
+
<span class="cline-any cline-neutral"> </span>
|
462
|
+
<span class="cline-any cline-yes">16x</span>
|
463
|
+
<span class="cline-any cline-yes">12x</span>
|
464
|
+
<span class="cline-any cline-yes">3x</span>
|
465
|
+
<span class="cline-any cline-neutral"> </span>
|
466
|
+
<span class="cline-any cline-neutral"> </span>
|
467
|
+
<span class="cline-any cline-neutral"> </span>
|
468
|
+
<span class="cline-any cline-yes">16x</span>
|
469
|
+
<span class="cline-any cline-neutral"> </span>
|
470
|
+
<span class="cline-any cline-neutral"> </span>
|
471
|
+
<span class="cline-any cline-yes">22x</span>
|
472
|
+
<span class="cline-any cline-yes">91x</span>
|
473
|
+
<span class="cline-any cline-neutral"> </span>
|
474
|
+
<span class="cline-any cline-yes">91x</span>
|
475
|
+
<span class="cline-any cline-yes">102x</span>
|
476
|
+
<span class="cline-any cline-neutral"> </span>
|
477
|
+
<span class="cline-any cline-neutral"> </span>
|
478
|
+
<span class="cline-any cline-yes">90x</span>
|
479
|
+
<span class="cline-any cline-neutral"> </span>
|
480
|
+
<span class="cline-any cline-neutral"> </span>
|
481
|
+
<span class="cline-any cline-yes">22x</span>
|
482
|
+
<span class="cline-any cline-yes">102x</span>
|
483
|
+
<span class="cline-any cline-yes">102x</span>
|
484
|
+
<span class="cline-any cline-neutral"> </span>
|
485
|
+
<span class="cline-any cline-neutral"> </span>
|
486
|
+
<span class="cline-any cline-yes">102x</span>
|
487
|
+
<span class="cline-any cline-neutral"> </span>
|
488
|
+
<span class="cline-any cline-neutral"> </span>
|
489
|
+
<span class="cline-any cline-neutral"> </span>
|
490
|
+
<span class="cline-any cline-neutral"> </span>
|
491
|
+
<span class="cline-any cline-neutral"> </span>
|
492
|
+
<span class="cline-any cline-yes">14x</span>
|
493
|
+
<span class="cline-any cline-neutral"> </span>
|
494
|
+
<span class="cline-any cline-neutral"> </span>
|
495
|
+
<span class="cline-any cline-yes">102x</span>
|
496
|
+
<span class="cline-any cline-neutral"> </span>
|
497
|
+
<span class="cline-any cline-neutral"> </span>
|
498
|
+
<span class="cline-any cline-neutral"> </span>
|
499
|
+
<span class="cline-any cline-neutral"> </span>
|
500
|
+
<span class="cline-any cline-neutral"> </span>
|
501
|
+
<span class="cline-any cline-neutral"> </span>
|
502
|
+
<span class="cline-any cline-yes">102x</span>
|
503
|
+
<span class="cline-any cline-yes">60x</span>
|
504
|
+
<span class="cline-any cline-neutral"> </span>
|
505
|
+
<span class="cline-any cline-neutral"> </span>
|
506
|
+
<span class="cline-any cline-neutral"> </span>
|
507
|
+
<span class="cline-any cline-neutral"> </span>
|
508
|
+
<span class="cline-any cline-neutral"> </span>
|
509
|
+
<span class="cline-any cline-neutral"> </span>
|
510
|
+
<span class="cline-any cline-neutral"> </span>
|
511
|
+
<span class="cline-any cline-neutral"> </span>
|
512
|
+
<span class="cline-any cline-neutral"> </span>
|
513
|
+
<span class="cline-any cline-yes">102x</span>
|
514
|
+
<span class="cline-any cline-yes">1x</span>
|
515
|
+
<span class="cline-any cline-neutral"> </span>
|
516
|
+
<span class="cline-any cline-neutral"> </span>
|
517
|
+
<span class="cline-any cline-neutral"> </span>
|
518
|
+
<span class="cline-any cline-neutral"> </span>
|
519
|
+
<span class="cline-any cline-neutral"> </span>
|
520
|
+
<span class="cline-any cline-neutral"> </span>
|
521
|
+
<span class="cline-any cline-neutral"> </span>
|
522
|
+
<span class="cline-any cline-yes">102x</span>
|
523
|
+
<span class="cline-any cline-yes">14x</span>
|
524
|
+
<span class="cline-any cline-neutral"> </span>
|
525
|
+
<span class="cline-any cline-neutral"> </span>
|
526
|
+
<span class="cline-any cline-yes">101x</span>
|
527
|
+
<span class="cline-any cline-no"> </span>
|
528
|
+
<span class="cline-any cline-no"> </span>
|
529
|
+
<span class="cline-any cline-neutral"> </span>
|
530
|
+
<span class="cline-any cline-neutral"> </span>
|
531
|
+
<span class="cline-any cline-yes">101x</span>
|
532
|
+
<span class="cline-any cline-neutral"> </span>
|
533
|
+
<span class="cline-any cline-neutral"> </span>
|
534
|
+
<span class="cline-any cline-neutral"> </span>
|
535
|
+
<span class="cline-any cline-neutral"> </span>
|
536
|
+
<span class="cline-any cline-neutral"> </span>
|
537
|
+
<span class="cline-any cline-neutral"> </span>
|
538
|
+
<span class="cline-any cline-neutral"> </span>
|
539
|
+
<span class="cline-any cline-neutral"> </span>
|
540
|
+
<span class="cline-any cline-neutral"> </span>
|
541
|
+
<span class="cline-any cline-neutral"> </span>
|
542
|
+
<span class="cline-any cline-neutral"> </span>
|
543
|
+
<span class="cline-any cline-yes">22x</span>
|
544
|
+
<span class="cline-any cline-neutral"> </span>
|
545
|
+
<span class="cline-any cline-neutral"> </span>
|
546
|
+
<span class="cline-any cline-neutral"> </span>
|
547
|
+
<span class="cline-any cline-neutral"> </span>
|
548
|
+
<span class="cline-any cline-yes">13x</span>
|
549
|
+
<span class="cline-any cline-neutral"> </span>
|
550
|
+
<span class="cline-any cline-yes">13x</span>
|
551
|
+
<span class="cline-any cline-yes">1x</span>
|
552
|
+
<span class="cline-any cline-neutral"> </span>
|
553
|
+
<span class="cline-any cline-neutral"> </span>
|
554
|
+
<span class="cline-any cline-neutral"> </span>
|
555
|
+
<span class="cline-any cline-yes">1x</span>
|
556
|
+
<span class="cline-any cline-neutral"> </span>
|
557
|
+
<span class="cline-any cline-neutral"> </span>
|
558
|
+
<span class="cline-any cline-neutral"> </span>
|
559
|
+
<span class="cline-any cline-neutral"> </span>
|
560
|
+
<span class="cline-any cline-neutral"> </span>
|
561
|
+
<span class="cline-any cline-neutral"> </span>
|
562
|
+
<span class="cline-any cline-neutral"> </span>
|
563
|
+
<span class="cline-any cline-neutral"> </span>
|
564
|
+
<span class="cline-any cline-neutral"> </span>
|
565
|
+
<span class="cline-any cline-neutral"> </span>
|
566
|
+
<span class="cline-any cline-neutral"> </span>
|
567
|
+
<span class="cline-any cline-neutral"> </span>
|
568
|
+
<span class="cline-any cline-neutral"> </span>
|
569
|
+
<span class="cline-any cline-neutral"> </span>
|
570
|
+
<span class="cline-any cline-neutral"> </span>
|
571
|
+
<span class="cline-any cline-neutral"> </span>
|
572
|
+
<span class="cline-any cline-neutral"> </span>
|
573
|
+
<span class="cline-any cline-neutral"> </span>
|
574
|
+
<span class="cline-any cline-neutral"> </span>
|
575
|
+
<span class="cline-any cline-neutral"> </span>
|
576
|
+
<span class="cline-any cline-neutral"> </span>
|
577
|
+
<span class="cline-any cline-neutral"> </span>
|
578
|
+
<span class="cline-any cline-neutral"> </span>
|
579
|
+
<span class="cline-any cline-yes">12x</span>
|
580
|
+
<span class="cline-any cline-neutral"> </span>
|
581
|
+
<span class="cline-any cline-neutral"> </span>
|
582
|
+
<span class="cline-any cline-neutral"> </span>
|
583
|
+
<span class="cline-any cline-neutral"> </span>
|
584
|
+
<span class="cline-any cline-neutral"> </span>
|
585
|
+
<span class="cline-any cline-yes">22x</span>
|
586
|
+
<span class="cline-any cline-yes">14x</span>
|
587
|
+
<span class="cline-any cline-neutral"> </span>
|
588
|
+
<span class="cline-any cline-yes">4x</span>
|
589
|
+
<span class="cline-any cline-neutral"> </span>
|
590
|
+
<span class="cline-any cline-neutral"> </span>
|
591
|
+
<span class="cline-any cline-neutral"> </span>
|
592
|
+
<span class="cline-any cline-neutral"> </span>
|
593
|
+
<span class="cline-any cline-neutral"> </span>
|
594
|
+
<span class="cline-any cline-neutral"> </span>
|
595
|
+
<span class="cline-any cline-neutral"> </span>
|
596
|
+
<span class="cline-any cline-neutral"> </span>
|
597
|
+
<span class="cline-any cline-neutral"> </span>
|
598
|
+
<span class="cline-any cline-yes">4x</span>
|
599
|
+
<span class="cline-any cline-neutral"> </span>
|
600
|
+
<span class="cline-any cline-neutral"> </span>
|
601
|
+
<span class="cline-any cline-neutral"> </span>
|
602
|
+
<span class="cline-any cline-neutral"> </span>
|
603
|
+
<span class="cline-any cline-neutral"> </span>
|
604
|
+
<span class="cline-any cline-neutral"> </span>
|
605
|
+
<span class="cline-any cline-neutral"> </span>
|
606
|
+
<span class="cline-any cline-neutral"> </span>
|
607
|
+
<span class="cline-any cline-neutral"> </span>
|
608
|
+
<span class="cline-any cline-yes">1x</span>
|
609
|
+
<span class="cline-any cline-neutral"> </span>
|
610
|
+
<span class="cline-any cline-neutral"> </span>
|
611
|
+
<span class="cline-any cline-neutral"> </span>
|
612
|
+
<span class="cline-any cline-neutral"> </span>
|
613
|
+
<span class="cline-any cline-neutral"> </span>
|
614
|
+
<span class="cline-any cline-neutral"> </span>
|
615
|
+
<span class="cline-any cline-neutral"> </span>
|
616
|
+
<span class="cline-any cline-neutral"> </span>
|
617
|
+
<span class="cline-any cline-yes">2x</span>
|
618
|
+
<span class="cline-any cline-neutral"> </span>
|
619
|
+
<span class="cline-any cline-neutral"> </span>
|
620
|
+
<span class="cline-any cline-neutral"> </span>
|
621
|
+
<span class="cline-any cline-neutral"> </span>
|
622
|
+
<span class="cline-any cline-neutral"> </span>
|
623
|
+
<span class="cline-any cline-neutral"> </span>
|
624
|
+
<span class="cline-any cline-neutral"> </span>
|
625
|
+
<span class="cline-any cline-neutral"> </span>
|
626
|
+
<span class="cline-any cline-neutral"> </span>
|
627
|
+
<span class="cline-any cline-neutral"> </span>
|
628
|
+
<span class="cline-any cline-yes">2x</span>
|
629
|
+
<span class="cline-any cline-neutral"> </span>
|
630
|
+
<span class="cline-any cline-neutral"> </span>
|
631
|
+
<span class="cline-any cline-neutral"> </span>
|
632
|
+
<span class="cline-any cline-neutral"> </span>
|
633
|
+
<span class="cline-any cline-neutral"> </span>
|
634
|
+
<span class="cline-any cline-neutral"> </span>
|
635
|
+
<span class="cline-any cline-neutral"> </span>
|
636
|
+
<span class="cline-any cline-neutral"> </span>
|
637
|
+
<span class="cline-any cline-neutral"> </span>
|
638
|
+
<span class="cline-any cline-yes">1x</span>
|
639
|
+
<span class="cline-any cline-neutral"> </span>
|
640
|
+
<span class="cline-any cline-neutral"> </span>
|
641
|
+
<span class="cline-any cline-neutral"> </span>
|
642
|
+
<span class="cline-any cline-neutral"> </span>
|
643
|
+
<span class="cline-any cline-neutral"> </span>
|
644
|
+
<span class="cline-any cline-neutral"> </span>
|
645
|
+
<span class="cline-any cline-neutral"> </span>
|
646
|
+
<span class="cline-any cline-yes">22x</span>
|
647
|
+
<span class="cline-any cline-yes">37x</span>
|
648
|
+
<span class="cline-any cline-yes">1x</span>
|
649
|
+
<span class="cline-any cline-neutral"> </span>
|
650
|
+
<span class="cline-any cline-neutral"> </span>
|
651
|
+
<span class="cline-any cline-neutral"> </span>
|
652
|
+
<span class="cline-any cline-neutral"> </span>
|
653
|
+
<span class="cline-any cline-yes">36x</span>
|
654
|
+
<span class="cline-any cline-yes">4x</span>
|
655
|
+
<span class="cline-any cline-neutral"> </span>
|
656
|
+
<span class="cline-any cline-neutral"> </span>
|
657
|
+
<span class="cline-any cline-yes">32x</span>
|
658
|
+
<span class="cline-any cline-yes">31x</span>
|
659
|
+
<span class="cline-any cline-neutral"> </span>
|
660
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ProsemirrorNode, Fragment as ProsemirrorFragment, Mark, isDocNodeEmpty } from 'remirror';
|
661
|
+
import { Attrs } from 'prosemirror-model';
|
662
|
+
import { FORMATTED_TEXT_MODELS as FormattedTextModels } from '@squiz/dx-json-schema-lib';
|
663
|
+
import { undefinedIfEmpty } from '../../undefinedIfEmpty';
|
664
|
+
import { NodeName } from '../../../Extensions/Extensions';
|
665
|
+
|
666
|
+
type Fragment = ProsemirrorFragment & {
|
667
|
+
content?: Fragment[];
|
668
|
+
};
|
669
|
+
|
670
|
+
type FormattingOptions = FormattedTextModels.v1.FormattingOptions;
|
671
|
+
type FontOptions = FormattedTextModels.v1.FormattedNodeFontProperties;
|
672
|
+
type FormattedText = FormattedTextModels.v1.FormattedText;
|
673
|
+
type FormattedNode = FormattedTextModels.v1.FormattedNodes;
|
674
|
+
type FormattedNodeFontProperties = FormattedTextModels.v1.FormattedNodeFontProperties;
|
675
|
+
type FormattedNodeWithChildren = Extract<FormattedNode, { children?: FormattedNode[] }>;
|
676
|
+
type RemirrorTextAlignment = Exclude<Remirror.Attributes['nodeTextAlignment'], undefined>;
|
677
|
+
type FormattedTextAlignment = FormattingOptions['alignment'];
|
678
|
+
|
679
|
+
export const resolveNodeTag = (node: ProsemirrorNode): string => {
|
680
|
+
if (node.type.name === NodeName.Text) {
|
681
|
+
return 'span';
|
682
|
+
}
|
683
|
+
|
684
|
+
if (node.type.name === NodeName.CodeBlock) {
|
685
|
+
return 'code';
|
686
|
+
}
|
687
|
+
|
688
|
+
if (node.type.spec?.toDOM) {
|
689
|
+
const domNode = node.type.spec.toDOM(node);
|
690
|
+
|
691
|
+
if (domNode instanceof window.Node) {
|
692
|
+
return domNode.nodeName.toLowerCase();
|
693
|
+
}
|
694
|
+
|
695
|
+
if (typeof domNode === 'object' && 'dom' in domNode && domNode.dom instanceof window.Node) {
|
696
|
+
return domNode.dom.nodeName.toLowerCase();
|
697
|
+
}
|
698
|
+
|
699
|
+
if (domNode instanceof Array) {
|
700
|
+
// [ tag, attributes, ...children ]
|
701
|
+
return domNode[0].toLowerCase();
|
702
|
+
}
|
703
|
+
}
|
704
|
+
|
705
|
+
throw new Error('Unexpected Remirror node encountered, cannot resolve tag.');
|
706
|
+
};
|
707
|
+
|
708
|
+
const resolveFormattingOptions = (node: ProsemirrorNode): FormattingOptions => {
|
709
|
+
const formattingOptions: FormattingOptions = {};
|
710
|
+
const textAlignment = node.attrs.nodeTextAlignment as RemirrorTextAlignment | undefined;
|
711
|
+
const textAlignmentMap: Record<RemirrorTextAlignment, FormattedTextAlignment> = {
|
712
|
+
none: undefined,
|
713
|
+
left: 'left',
|
714
|
+
right: 'right',
|
715
|
+
center: 'center',
|
716
|
+
start: 'left',
|
717
|
+
end: 'right',
|
718
|
+
justify: 'justify',
|
719
|
+
};
|
720
|
+
|
721
|
+
if (textAlignment && textAlignmentMap[textAlignment]) {
|
722
|
+
formattingOptions.alignment = textAlignmentMap[textAlignment];
|
723
|
+
}
|
724
|
+
|
725
|
+
return formattingOptions;
|
726
|
+
};
|
727
|
+
|
728
|
+
const resolveFontOptions = (node: ProsemirrorNode): FormattedNodeFontProperties => {
|
729
|
+
const fontOptions: FontOptions = {};
|
730
|
+
|
731
|
+
node.marks.forEach((mark) => {
|
732
|
+
switch (mark.type.name) {
|
733
|
+
case 'underline':
|
734
|
+
fontOptions.underline = true;
|
735
|
+
break;
|
736
|
+
}
|
737
|
+
});
|
738
|
+
|
739
|
+
return fontOptions;
|
740
|
+
};
|
741
|
+
|
742
|
+
const transformAttributes = (attributes: Attrs, nodeType?: string): Record<string, string> => {
|
743
|
+
const transformed: Record<string, string> = {};
|
744
|
+
|
745
|
+
Object.keys(attributes).forEach((key) => {
|
746
|
+
// Component service requires attributes to be a string, cast as needed.
|
747
|
+
if (typeof attributes[key] === 'string' || typeof attributes[key] === 'number') {
|
748
|
+
transformed[key] = String(attributes[key]);
|
749
|
+
}
|
750
|
+
});
|
751
|
+
|
752
|
+
// We assign an attribute here for table controller cells as we need to differentiate
|
753
|
+
// between them and regular table headers (th)
|
754
|
+
if (nodeType === NodeName.TableControllerCell) {
|
755
|
+
transformed[nodeType] = 'true';
|
756
|
+
}
|
757
|
+
|
758
|
+
// Another check here for more specific attributes for tables (column widths)
|
759
|
+
if (nodeType === NodeName.TableControllerCell || nodeType === NodeName.tableCell) {
|
760
|
+
if (Array.isArray(attributes.colwidth) && attributes.colwidth[0]) {
|
761
|
+
transformed.colwidth = String(attributes.colwidth[0]);
|
762
|
+
}
|
763
|
+
}
|
764
|
+
|
765
|
+
return transformed;
|
766
|
+
};
|
767
|
+
|
768
|
+
const transformFragment = (fragment: Fragment): FormattedText => {
|
769
|
+
const transformed: FormattedText = [];
|
770
|
+
|
771
|
+
fragment.forEach((child) => {
|
772
|
+
transformed.push(transformNode(child));
|
773
|
+
});
|
774
|
+
|
775
|
+
return transformed;
|
776
|
+
};
|
777
|
+
|
778
|
+
const transformNode = (node: ProsemirrorNode): FormattedNode => {
|
779
|
+
const formattingOptions = undefinedIfEmpty(resolveFormattingOptions(node));
|
780
|
+
const font = undefinedIfEmpty(resolveFontOptions(node));
|
781
|
+
let attributes;
|
782
|
+
|
783
|
+
if (
|
784
|
+
node.type.name === NodeName.Image ||
|
785
|
+
node.type.name === NodeName.CodeBlock ||
|
786
|
+
node.type.name === NodeName.TableControllerCell ||
|
787
|
+
node.type.name === NodeName.tableCell
|
788
|
+
) {
|
789
|
+
attributes = transformAttributes(node.attrs, node.type.name);
|
790
|
+
}
|
791
|
+
|
792
|
+
let transformedNode: FormattedNode = { type: 'text', value: node.text || '' };
|
793
|
+
|
794
|
+
// Squiz "text" nodes can't have formatting/font options but Remirror "text" nodes can.
|
795
|
+
// If the node has formatting options wrap in a tag.
|
796
|
+
// If the node isn't a text type assume it is a tag type and wrap in a tag.
|
797
|
+
// If we pick the wrong tag here it will be corrected later as part of looping through the
|
798
|
+
// non-font marks.
|
799
|
+
if (node.type.name !== NodeName.Text || attributes || formattingOptions || font) {
|
800
|
+
transformedNode = {
|
801
|
+
type: 'tag',
|
802
|
+
tag: resolveNodeTag(node),
|
803
|
+
children: node.type.name === NodeName.Text ? [transformedNode] : transformFragment(node.content),
|
804
|
+
attributes,
|
805
|
+
formattingOptions,
|
806
|
+
font,
|
807
|
+
};
|
808
|
+
}
|
809
|
+
|
810
|
+
if (node.type.name === NodeName.AssetImage) {
|
811
|
+
transformedNode = {
|
812
|
+
type: 'matrix-image',
|
813
|
+
matrixAssetId: node.attrs.matrixAssetId,
|
814
|
+
matrixIdentifier: node.attrs.matrixIdentifier,
|
815
|
+
matrixDomain: node.attrs.matrixDomain,
|
816
|
+
};
|
817
|
+
}
|
818
|
+
|
819
|
+
node.marks.forEach((mark) => {
|
820
|
+
transformedNode = transformMark(mark, transformedNode);
|
821
|
+
});
|
822
|
+
|
823
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (node.type.name === NodeName.Unsupported) {
|
824
|
+
const unsupportedNode = <span class="cstat-no" title="statement not covered" >node.attrs?.originalNode;</span>
|
825
|
+
<span class="cstat-no" title="statement not covered" > return { ...unsupportedNode };</span>
|
826
|
+
}
|
827
|
+
|
828
|
+
return transformedNode;
|
829
|
+
};
|
830
|
+
|
831
|
+
/**
|
832
|
+
* Merges 2 nodes together if they are compatible without losing any important details.
|
833
|
+
* Otherwise will wrap the node.
|
834
|
+
*
|
835
|
+
* @param {FormattedNode} node
|
836
|
+
* @param {FormattedNodeWithChildren} wrappingNode
|
837
|
+
*
|
838
|
+
* @return {FormattedNode}
|
839
|
+
*/
|
840
|
+
const wrapNodeIfNeeded = (
|
841
|
+
node: FormattedNode,
|
842
|
+
wrappingNode: FormattedNodeWithChildren,
|
843
|
+
copyFont: boolean = true,
|
844
|
+
): FormattedNode => {
|
845
|
+
const wrappingNodeChildren = wrappingNode.children || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
|
846
|
+
|
847
|
+
if (node.type === 'tag' && wrappingNode.type === 'tag' && (node.tag === 'span' || node.tag === wrappingNode.tag)) {
|
848
|
+
const nodeChildren = node.children || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
|
849
|
+
|
850
|
+
// if the node we are wrapping with is a DOM node, and the node being wrapped is
|
851
|
+
// a plain looking DOM node merge the 2 nodes.
|
852
|
+
return {
|
853
|
+
...node,
|
854
|
+
...wrappingNode,
|
855
|
+
formattingOptions: undefinedIfEmpty({
|
856
|
+
...node.formattingOptions,
|
857
|
+
...wrappingNode.formattingOptions,
|
858
|
+
}),
|
859
|
+
attributes: undefinedIfEmpty({
|
860
|
+
...node.attributes,
|
861
|
+
...wrappingNode.attributes,
|
862
|
+
}),
|
863
|
+
font: undefinedIfEmpty(
|
864
|
+
copyFont
|
865
|
+
? <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
866
|
+
...node.font,
|
867
|
+
...wrappingNode.font,
|
868
|
+
}
|
869
|
+
: {},
|
870
|
+
),
|
871
|
+
children: [...nodeChildren, ...wrappingNodeChildren],
|
872
|
+
};
|
873
|
+
}
|
874
|
+
|
875
|
+
// if the node we are wrapping or the wrapping nodes are not compatible merge them.
|
876
|
+
return {
|
877
|
+
...wrappingNode,
|
878
|
+
children: [node, ...wrappingNodeChildren],
|
879
|
+
};
|
880
|
+
};
|
881
|
+
|
882
|
+
const transformMark = (mark: Mark, node: FormattedNode): FormattedNode => {
|
883
|
+
switch (mark.type.name) {
|
884
|
+
case 'bold':
|
885
|
+
return wrapNodeIfNeeded(
|
886
|
+
node,
|
887
|
+
{
|
888
|
+
type: 'tag',
|
889
|
+
tag: 'strong',
|
890
|
+
children: [],
|
891
|
+
},
|
892
|
+
false,
|
893
|
+
);
|
894
|
+
case 'italic':
|
895
|
+
return wrapNodeIfNeeded(
|
896
|
+
node,
|
897
|
+
{
|
898
|
+
type: 'tag',
|
899
|
+
tag: 'em',
|
900
|
+
children: [],
|
901
|
+
},
|
902
|
+
false,
|
903
|
+
);
|
904
|
+
case 'underline':
|
905
|
+
return wrapNodeIfNeeded(node, {
|
906
|
+
type: 'tag',
|
907
|
+
tag: 'span',
|
908
|
+
children: [],
|
909
|
+
font: {
|
910
|
+
underline: mark.type.name === 'underline',
|
911
|
+
},
|
912
|
+
});
|
913
|
+
case 'link':
|
914
|
+
return wrapNodeIfNeeded(
|
915
|
+
node,
|
916
|
+
{
|
917
|
+
type: 'tag',
|
918
|
+
tag: 'a',
|
919
|
+
attributes: transformAttributes(mark.attrs),
|
920
|
+
children: [],
|
921
|
+
},
|
922
|
+
false,
|
923
|
+
);
|
924
|
+
case 'assetLink':
|
925
|
+
return wrapNodeIfNeeded(node, {
|
926
|
+
type: 'link-to-matrix-asset',
|
927
|
+
target: mark.attrs.target,
|
928
|
+
matrixIdentifier: mark.attrs.matrixIdentifier,
|
929
|
+
matrixDomain: mark.attrs.matrixDomain,
|
930
|
+
matrixAssetId: mark.attrs.matrixAssetId,
|
931
|
+
children: [],
|
932
|
+
});
|
933
|
+
}
|
934
|
+
|
935
|
+
throw new Error(`Unsupported mark "${mark.type.name}" was applied to node.`);
|
936
|
+
};
|
937
|
+
|
938
|
+
/**
|
939
|
+
* Converts Remirror node JSON structure to Squiz component JSON structure.
|
940
|
+
* @param {ProsemirrorNode} node Remirror node to convert to component.
|
941
|
+
* @returns {FormattedText} The converted Squiz component JSON.
|
942
|
+
*/
|
943
|
+
export const remirrorNodeToSquizNode = (node: ProsemirrorNode): FormattedText | undefined => {
|
944
|
+
if (node?.type?.name !== 'doc') {
|
945
|
+
throw new Error('Unable to convert from Remirror to Node data structure, unexpected node provided.');
|
946
|
+
}
|
947
|
+
|
948
|
+
// Squiz FormattedText should be set to undefined
|
949
|
+
// To allow validation on required values
|
950
|
+
if (isDocNodeEmpty(node) || node.childCount === 0) {
|
951
|
+
return undefined;
|
952
|
+
}
|
953
|
+
|
954
|
+
const transformedFragment = transformFragment(node.content);
|
955
|
+
return transformedFragment;
|
956
|
+
};
|
957
|
+
</pre></td></tr></table></pre>
|
958
|
+
|
959
|
+
<div class='push'></div><!-- for sticky footer -->
|
960
|
+
</div><!-- /wrapper -->
|
961
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
962
|
+
Code coverage generated by
|
963
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
964
|
+
at 2024-05-30T00:51:19.393Z
|
965
|
+
</div>
|
966
|
+
<script src="../../../../prettify.js"></script>
|
967
|
+
<script>
|
968
|
+
window.onload = function () {
|
969
|
+
prettyPrint();
|
970
|
+
};
|
971
|
+
</script>
|
972
|
+
<script src="../../../../sorter.js"></script>
|
973
|
+
<script src="../../../../block-navigation.js"></script>
|
974
|
+
</body>
|
975
|
+
</html>
|
976
|
+
|