@squiz/formatted-text-editor 2.2.11 → 2.3.0

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.
Files changed (159) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/package.json +2 -1
  3. package/src/ui/Fields/MatrixAsset/MatrixAsset.spec.tsx +1 -1
  4. package/src/ui/Fields/ResourceBrowserSelector/ResourceBrowserSelector.spec.tsx +2 -2
  5. package/lib/Editor/Editor.d.ts +0 -16
  6. package/lib/Editor/Editor.js +0 -85
  7. package/lib/Editor/EditorContext.d.ts +0 -10
  8. package/lib/Editor/EditorContext.js +0 -16
  9. package/lib/EditorToolbar/FloatingToolbar.d.ts +0 -2
  10. package/lib/EditorToolbar/FloatingToolbar.js +0 -76
  11. package/lib/EditorToolbar/Toolbar.d.ts +0 -7
  12. package/lib/EditorToolbar/Toolbar.js +0 -49
  13. package/lib/EditorToolbar/Tools/Bold/BoldButton.d.ts +0 -3
  14. package/lib/EditorToolbar/Tools/Bold/BoldButton.js +0 -23
  15. package/lib/EditorToolbar/Tools/ClearFormatting/ClearFormattingButton.d.ts +0 -3
  16. package/lib/EditorToolbar/Tools/ClearFormatting/ClearFormattingButton.js +0 -57
  17. package/lib/EditorToolbar/Tools/ContentTools/ContentToolsDropdown.d.ts +0 -3
  18. package/lib/EditorToolbar/Tools/ContentTools/ContentToolsDropdown.js +0 -104
  19. package/lib/EditorToolbar/Tools/HorizontalLine/HorizontalLineButton.d.ts +0 -3
  20. package/lib/EditorToolbar/Tools/HorizontalLine/HorizontalLineButton.js +0 -25
  21. package/lib/EditorToolbar/Tools/Image/Form/ImageForm.d.ts +0 -19
  22. package/lib/EditorToolbar/Tools/Image/Form/ImageForm.js +0 -186
  23. package/lib/EditorToolbar/Tools/Image/ImageButton.d.ts +0 -6
  24. package/lib/EditorToolbar/Tools/Image/ImageButton.js +0 -79
  25. package/lib/EditorToolbar/Tools/Image/ImageModal.d.ts +0 -9
  26. package/lib/EditorToolbar/Tools/Image/ImageModal.js +0 -26
  27. package/lib/EditorToolbar/Tools/Italic/ItalicButton.d.ts +0 -3
  28. package/lib/EditorToolbar/Tools/Italic/ItalicButton.js +0 -23
  29. package/lib/EditorToolbar/Tools/Link/Form/LinkForm.d.ts +0 -19
  30. package/lib/EditorToolbar/Tools/Link/Form/LinkForm.js +0 -63
  31. package/lib/EditorToolbar/Tools/Link/LinkButton.d.ts +0 -6
  32. package/lib/EditorToolbar/Tools/Link/LinkButton.js +0 -71
  33. package/lib/EditorToolbar/Tools/Link/LinkModal.d.ts +0 -9
  34. package/lib/EditorToolbar/Tools/Link/LinkModal.js +0 -27
  35. package/lib/EditorToolbar/Tools/Link/RemoveLinkButton.d.ts +0 -4
  36. package/lib/EditorToolbar/Tools/Link/RemoveLinkButton.js +0 -54
  37. package/lib/EditorToolbar/Tools/Lists/ListButtons.d.ts +0 -3
  38. package/lib/EditorToolbar/Tools/Lists/ListButtons.js +0 -14
  39. package/lib/EditorToolbar/Tools/Lists/OrderedList/OrderedListButton.d.ts +0 -3
  40. package/lib/EditorToolbar/Tools/Lists/OrderedList/OrderedListButton.js +0 -22
  41. package/lib/EditorToolbar/Tools/Lists/UnorderedList/UnorderedListButton.d.ts +0 -3
  42. package/lib/EditorToolbar/Tools/Lists/UnorderedList/UnorderedListButton.js +0 -22
  43. package/lib/EditorToolbar/Tools/Redo/RedoButton.d.ts +0 -3
  44. package/lib/EditorToolbar/Tools/Redo/RedoButton.js +0 -22
  45. package/lib/EditorToolbar/Tools/Table/TableButton.d.ts +0 -3
  46. package/lib/EditorToolbar/Tools/Table/TableButton.js +0 -20
  47. package/lib/EditorToolbar/Tools/TextAlign/CenterAlign/CenterAlignButton.d.ts +0 -3
  48. package/lib/EditorToolbar/Tools/TextAlign/CenterAlign/CenterAlignButton.js +0 -22
  49. package/lib/EditorToolbar/Tools/TextAlign/JustifyAlign/JustifyAlignButton.d.ts +0 -3
  50. package/lib/EditorToolbar/Tools/TextAlign/JustifyAlign/JustifyAlignButton.js +0 -22
  51. package/lib/EditorToolbar/Tools/TextAlign/LeftAlign/LeftAlignButton.d.ts +0 -3
  52. package/lib/EditorToolbar/Tools/TextAlign/LeftAlign/LeftAlignButton.js +0 -22
  53. package/lib/EditorToolbar/Tools/TextAlign/RightAlign/RightAlignButton.d.ts +0 -3
  54. package/lib/EditorToolbar/Tools/TextAlign/RightAlign/RightAlignButton.js +0 -22
  55. package/lib/EditorToolbar/Tools/TextAlign/TextAlignButtons.d.ts +0 -3
  56. package/lib/EditorToolbar/Tools/TextAlign/TextAlignButtons.js +0 -21
  57. package/lib/EditorToolbar/Tools/TextType/CodeBlock/CodeBlockButton.d.ts +0 -3
  58. package/lib/EditorToolbar/Tools/TextType/CodeBlock/CodeBlockButton.js +0 -22
  59. package/lib/EditorToolbar/Tools/TextType/Heading/HeadingButton.d.ts +0 -6
  60. package/lib/EditorToolbar/Tools/TextType/Heading/HeadingButton.js +0 -37
  61. package/lib/EditorToolbar/Tools/TextType/Paragraph/ParagraphButton.d.ts +0 -3
  62. package/lib/EditorToolbar/Tools/TextType/Paragraph/ParagraphButton.js +0 -21
  63. package/lib/EditorToolbar/Tools/TextType/Preformatted/PreformattedButton.d.ts +0 -3
  64. package/lib/EditorToolbar/Tools/TextType/Preformatted/PreformattedButton.js +0 -22
  65. package/lib/EditorToolbar/Tools/TextType/TextTypeDropdown.d.ts +0 -3
  66. package/lib/EditorToolbar/Tools/TextType/TextTypeDropdown.js +0 -46
  67. package/lib/EditorToolbar/Tools/Underline/UnderlineButton.d.ts +0 -3
  68. package/lib/EditorToolbar/Tools/Underline/UnderlineButton.js +0 -23
  69. package/lib/EditorToolbar/Tools/Undo/UndoButton.d.ts +0 -3
  70. package/lib/EditorToolbar/Tools/Undo/UndoButton.js +0 -22
  71. package/lib/EditorToolbar/index.d.ts +0 -2
  72. package/lib/EditorToolbar/index.js +0 -18
  73. package/lib/Extensions/ClearFormattingExtension/ClearFormattingExtension.d.ts +0 -5
  74. package/lib/Extensions/ClearFormattingExtension/ClearFormattingExtension.js +0 -63
  75. package/lib/Extensions/CodeBlockExtension/CodeBlockExtension.d.ts +0 -5
  76. package/lib/Extensions/CodeBlockExtension/CodeBlockExtension.js +0 -30
  77. package/lib/Extensions/CommandsExtension/CommandsExtension.d.ts +0 -20
  78. package/lib/Extensions/CommandsExtension/CommandsExtension.js +0 -52
  79. package/lib/Extensions/Extensions.d.ts +0 -18
  80. package/lib/Extensions/Extensions.js +0 -76
  81. package/lib/Extensions/FetchUrlExtension/FetchUrlExtension.d.ts +0 -12
  82. package/lib/Extensions/FetchUrlExtension/FetchUrlExtension.js +0 -69
  83. package/lib/Extensions/ImageExtension/AssetImageExtension.d.ts +0 -17
  84. package/lib/Extensions/ImageExtension/AssetImageExtension.js +0 -91
  85. package/lib/Extensions/ImageExtension/DAMImageExtension.d.ts +0 -17
  86. package/lib/Extensions/ImageExtension/DAMImageExtension.js +0 -97
  87. package/lib/Extensions/ImageExtension/ImageExtension.d.ts +0 -7
  88. package/lib/Extensions/ImageExtension/ImageExtension.js +0 -18
  89. package/lib/Extensions/LinkExtension/AssetLinkExtension.d.ts +0 -27
  90. package/lib/Extensions/LinkExtension/AssetLinkExtension.js +0 -101
  91. package/lib/Extensions/LinkExtension/LinkExtension.d.ts +0 -23
  92. package/lib/Extensions/LinkExtension/LinkExtension.js +0 -87
  93. package/lib/Extensions/LinkExtension/common.d.ts +0 -7
  94. package/lib/Extensions/LinkExtension/common.js +0 -14
  95. package/lib/Extensions/PreformattedExtension/PreformattedExtension.d.ts +0 -12
  96. package/lib/Extensions/PreformattedExtension/PreformattedExtension.js +0 -76
  97. package/lib/Extensions/UnsuportedExtension/UnsupportedNodeExtension.d.ts +0 -10
  98. package/lib/Extensions/UnsuportedExtension/UnsupportedNodeExtension.js +0 -76
  99. package/lib/Icons/AiIcon.d.ts +0 -2
  100. package/lib/Icons/AiIcon.js +0 -60
  101. package/lib/hooks/index.d.ts +0 -2
  102. package/lib/hooks/index.js +0 -18
  103. package/lib/hooks/useExpandedSelection.d.ts +0 -23
  104. package/lib/hooks/useExpandedSelection.js +0 -37
  105. package/lib/hooks/useExtensionNames.d.ts +0 -1
  106. package/lib/hooks/useExtensionNames.js +0 -16
  107. package/lib/hooks/useFocus.d.ts +0 -8
  108. package/lib/hooks/useFocus.js +0 -43
  109. package/lib/index.css +0 -5889
  110. package/lib/index.d.ts +0 -8
  111. package/lib/index.js +0 -16
  112. package/lib/types.d.ts +0 -7
  113. package/lib/types.js +0 -2
  114. package/lib/ui/Button/Button.d.ts +0 -12
  115. package/lib/ui/Button/Button.js +0 -13
  116. package/lib/ui/CollapseBox/CollapseBox.d.ts +0 -7
  117. package/lib/ui/CollapseBox/CollapseBox.js +0 -48
  118. package/lib/ui/Fields/Checkbox/Checkbox.d.ts +0 -9
  119. package/lib/ui/Fields/Checkbox/Checkbox.js +0 -47
  120. package/lib/ui/Fields/Input/Input.d.ts +0 -3
  121. package/lib/ui/Fields/Input/Input.js +0 -33
  122. package/lib/ui/Fields/InputContainer/InputContainer.d.ts +0 -9
  123. package/lib/ui/Fields/InputContainer/InputContainer.js +0 -16
  124. package/lib/ui/Fields/MatrixAsset/MatrixAsset.d.ts +0 -19
  125. package/lib/ui/Fields/MatrixAsset/MatrixAsset.js +0 -30
  126. package/lib/ui/Fields/ResourceBrowserSelector/ResourceBrowserSelector.d.ts +0 -28
  127. package/lib/ui/Fields/ResourceBrowserSelector/ResourceBrowserSelector.js +0 -88
  128. package/lib/ui/Modal/FormModal.d.ts +0 -5
  129. package/lib/ui/Modal/FormModal.js +0 -39
  130. package/lib/ui/Modal/Modal.d.ts +0 -11
  131. package/lib/ui/Modal/Modal.js +0 -79
  132. package/lib/ui/Tabs/Tabs.d.ts +0 -11
  133. package/lib/ui/Tabs/Tabs.js +0 -46
  134. package/lib/ui/ToolbarDropdown/ToolbarDropdown.d.ts +0 -7
  135. package/lib/ui/ToolbarDropdown/ToolbarDropdown.js +0 -48
  136. package/lib/ui/ToolbarDropdownButton/ToolbarDropdownButton.d.ts +0 -11
  137. package/lib/ui/ToolbarDropdownButton/ToolbarDropdownButton.js +0 -15
  138. package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.d.ts +0 -5
  139. package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.js +0 -23
  140. package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.props.d.ts +0 -3
  141. package/lib/utils/converters/htmlToSquizNode/htmlToSquizNode.props.js +0 -2
  142. package/lib/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.d.ts +0 -11
  143. package/lib/utils/converters/remirrorNodeToSquizNode/remirrorNodeToSquizNode.js +0 -238
  144. package/lib/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.d.ts +0 -9
  145. package/lib/utils/converters/squizNodeToRemirrorNode/squizNodeToRemirrorNode.js +0 -214
  146. package/lib/utils/createToolbarPositioner.d.ts +0 -18
  147. package/lib/utils/createToolbarPositioner.js +0 -96
  148. package/lib/utils/getCursorRect.d.ts +0 -2
  149. package/lib/utils/getCursorRect.js +0 -7
  150. package/lib/utils/getMarkNamesByGroup.d.ts +0 -2
  151. package/lib/utils/getMarkNamesByGroup.js +0 -9
  152. package/lib/utils/getNodeNamesByGroup.d.ts +0 -2
  153. package/lib/utils/getNodeNamesByGroup.js +0 -9
  154. package/lib/utils/getShortcutSymbol.d.ts +0 -1
  155. package/lib/utils/getShortcutSymbol.js +0 -8
  156. package/lib/utils/undefinedIfEmpty.d.ts +0 -1
  157. package/lib/utils/undefinedIfEmpty.js +0 -7
  158. package/lib/utils/validation.d.ts +0 -3
  159. package/lib/utils/validation.js +0 -16
@@ -1,20 +0,0 @@
1
- import { PlainExtension } from '@remirror/core';
2
- import { CommandFunction, FromToProps, MarkType } from 'remirror';
3
- import { Attrs } from 'prosemirror-model';
4
- export declare class CommandsExtension extends PlainExtension {
5
- get name(): string;
6
- /**
7
- * Updates the attributes of a specific mark for the current selection.
8
- * Optionally, if text is provided it will replace the current selection.
9
- * The cursor will be place at the end of the selection after changes.
10
- *
11
- * @param {object} options
12
- */
13
- updateMark(options: {
14
- mark: MarkType;
15
- attrs?: Attrs;
16
- text?: string;
17
- removeMark?: boolean;
18
- range: FromToProps;
19
- }): CommandFunction;
20
- }
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.CommandsExtension = void 0;
10
- const core_1 = require("@remirror/core");
11
- const remirror_1 = require("remirror");
12
- class CommandsExtension extends core_1.PlainExtension {
13
- get name() {
14
- return 'squizCommands';
15
- }
16
- /**
17
- * Updates the attributes of a specific mark for the current selection.
18
- * Optionally, if text is provided it will replace the current selection.
19
- * The cursor will be place at the end of the selection after changes.
20
- *
21
- * @param {object} options
22
- */
23
- updateMark(options) {
24
- return (props) => {
25
- const { tr, dispatch, view } = props;
26
- const { mark, attrs, text, removeMark, range } = options;
27
- const selectedText = tr.doc.textBetween(range.from, range.to);
28
- if (text !== undefined && text !== selectedText) {
29
- // update the text in the editor if it was updated, update the range to cover the length of the new text.
30
- tr.insertText(text, range.from, range.to);
31
- range.to = range.from + text.length;
32
- }
33
- // apply the link, or remove it if no URL was provided.
34
- if (removeMark) {
35
- tr.removeMark(range.from, range.to, mark);
36
- }
37
- else {
38
- tr.addMark(range.from, range.to, mark.create(attrs));
39
- }
40
- // move the cursor to the end of the link and re-focus the editor.
41
- tr.setSelection((0, remirror_1.getTextSelection)({ from: range.to, to: range.to }, tr.doc));
42
- // apply the transaction.
43
- dispatch?.(tr);
44
- view?.focus();
45
- return true;
46
- };
47
- }
48
- }
49
- __decorate([
50
- (0, remirror_1.command)()
51
- ], CommandsExtension.prototype, "updateMark", null);
52
- exports.CommandsExtension = CommandsExtension;
@@ -1,18 +0,0 @@
1
- import { Extension } from '@remirror/core';
2
- import { EditorContextOptions } from '../Editor/EditorContext';
3
- export declare enum NodeName {
4
- Image = "image",
5
- CodeBlock = "codeBlock",
6
- AssetImage = "assetImage",
7
- DAMImage = "DAMImage",
8
- Text = "text",
9
- TableControllerCell = "tableControllerCell",
10
- tableCell = "tableCell",
11
- hardBreak = "hardBreak",
12
- Unsupported = "unsupportedNode"
13
- }
14
- export declare enum MarkName {
15
- Link = "link",
16
- AssetLink = "assetLink"
17
- }
18
- export declare const createExtensions: (context: EditorContextOptions) => () => Extension[];
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createExtensions = exports.MarkName = exports.NodeName = void 0;
4
- const extensions_1 = require("remirror/extensions");
5
- const PreformattedExtension_1 = require("./PreformattedExtension/PreformattedExtension");
6
- const AssetLinkExtension_1 = require("./LinkExtension/AssetLinkExtension");
7
- const LinkExtension_1 = require("./LinkExtension/LinkExtension");
8
- const ImageExtension_1 = require("./ImageExtension/ImageExtension");
9
- const CommandsExtension_1 = require("./CommandsExtension/CommandsExtension");
10
- const AssetImageExtension_1 = require("./ImageExtension/AssetImageExtension");
11
- const DAMImageExtension_1 = require("./ImageExtension/DAMImageExtension");
12
- const CodeBlockExtension_1 = require("./CodeBlockExtension/CodeBlockExtension");
13
- const ClearFormattingExtension_1 = require("./ClearFormattingExtension/ClearFormattingExtension");
14
- const UnsupportedNodeExtension_1 = require("./UnsuportedExtension/UnsupportedNodeExtension");
15
- const FetchUrlExtension_1 = require("./FetchUrlExtension/FetchUrlExtension");
16
- const extension_react_tables_1 = require("@remirror/extension-react-tables");
17
- const extension_react_component_1 = require("@remirror/extension-react-component");
18
- var NodeName;
19
- (function (NodeName) {
20
- NodeName["Image"] = "image";
21
- NodeName["CodeBlock"] = "codeBlock";
22
- NodeName["AssetImage"] = "assetImage";
23
- NodeName["DAMImage"] = "DAMImage";
24
- NodeName["Text"] = "text";
25
- NodeName["TableControllerCell"] = "tableControllerCell";
26
- NodeName["tableCell"] = "tableCell";
27
- NodeName["hardBreak"] = "hardBreak";
28
- NodeName["Unsupported"] = "unsupportedNode";
29
- })(NodeName = exports.NodeName || (exports.NodeName = {}));
30
- var MarkName;
31
- (function (MarkName) {
32
- MarkName["Link"] = "link";
33
- MarkName["AssetLink"] = "assetLink";
34
- })(MarkName = exports.MarkName || (exports.MarkName = {}));
35
- const createExtensions = (context) => {
36
- return () => {
37
- return [
38
- new CommandsExtension_1.CommandsExtension(),
39
- new extensions_1.BoldExtension(),
40
- new extensions_1.DocExtension(),
41
- new extensions_1.HeadingExtension(),
42
- new extensions_1.ItalicExtension(),
43
- new extensions_1.NodeFormattingExtension({ indents: [] }),
44
- new extensions_1.ParagraphExtension(),
45
- new extensions_1.HardBreakExtension(),
46
- new PreformattedExtension_1.PreformattedExtension(),
47
- new CodeBlockExtension_1.ExtendedCodeBlockExtension({ defaultWrap: true }),
48
- new extensions_1.UnderlineExtension(),
49
- new extensions_1.HistoryExtension(),
50
- new ImageExtension_1.ImageExtension(),
51
- new ImageExtension_1.ImageExtension({ preferPastedTextContent: false }),
52
- new AssetImageExtension_1.AssetImageExtension({
53
- matrixDomain: context.matrix.matrixDomain,
54
- }),
55
- new DAMImageExtension_1.DAMImageExtension(),
56
- new LinkExtension_1.LinkExtension(),
57
- new AssetLinkExtension_1.AssetLinkExtension({
58
- matrixDomain: context.matrix.matrixDomain,
59
- }),
60
- new UnsupportedNodeExtension_1.UnsupportedNodeExtension(),
61
- new ClearFormattingExtension_1.ClearFormattingExtension(),
62
- new extensions_1.BulletListExtension(),
63
- new extensions_1.ListItemExtension(),
64
- new extensions_1.OrderedListExtension(),
65
- new extensions_1.HorizontalRuleExtension(),
66
- new extensions_1.PlaceholderExtension(),
67
- new FetchUrlExtension_1.FetchUrlExtension({
68
- fetchUrl: context.resolveNodeToUrl,
69
- }),
70
- new extensions_1.TextExtension(),
71
- new extension_react_tables_1.TableExtension(),
72
- new extension_react_component_1.ReactComponentExtension(),
73
- ];
74
- };
75
- };
76
- exports.createExtensions = createExtensions;
@@ -1,12 +0,0 @@
1
- import { PlainExtension } from '@remirror/core';
2
- import { Dispose, EditorView } from '@remirror/core-types';
3
- import { ResolveNodeToUrl } from '../../types';
4
- export type FetchUrlOptions = {
5
- fetchUrl?: ResolveNodeToUrl;
6
- };
7
- export declare class FetchUrlExtension extends PlainExtension<FetchUrlOptions> {
8
- get name(): string;
9
- onView(view: EditorView): Dispose | void;
10
- private findAssetLinkMark;
11
- private fetchAndReplace;
12
- }
@@ -1,69 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.FetchUrlExtension = void 0;
10
- const core_1 = require("@remirror/core");
11
- const Extensions_1 = require("../Extensions");
12
- let FetchUrlExtension = class FetchUrlExtension extends core_1.PlainExtension {
13
- get name() {
14
- return 'fetchUrl';
15
- }
16
- // Implement the `onView` lifecycle method to scan for `[fetch]` and replace attributes
17
- onView(view) {
18
- const { state } = view;
19
- const { tr } = state;
20
- const promises = [];
21
- state.doc.descendants((node, pos) => {
22
- if (node.type.name === Extensions_1.NodeName.AssetImage && node.attrs.src === '') {
23
- promises.push(this.fetchAndReplace(node.attrs, (url) => {
24
- const newNode = state.schema.nodes[Extensions_1.NodeName.AssetImage].create({ ...node.attrs, src: url });
25
- tr.replaceWith(pos, pos + node.nodeSize, newNode);
26
- }));
27
- }
28
- if (node.type.name === Extensions_1.NodeName.DAMImage && node.attrs.src === '') {
29
- promises.push(this.fetchAndReplace(node.attrs, (url) => {
30
- const newNode = state.schema.nodes[Extensions_1.NodeName.DAMImage].create({ ...node.attrs, src: url });
31
- tr.replaceWith(pos, pos + node.nodeSize, newNode);
32
- }));
33
- }
34
- const assetLinkMark = this.findAssetLinkMark(node.marks);
35
- if (node.type.name === 'text' && assetLinkMark) {
36
- promises.push(this.fetchAndReplace(assetLinkMark.attrs, (url) => {
37
- const updatedMark = assetLinkMark.type.create({ ...assetLinkMark.attrs, href: url });
38
- tr.addMark(pos, pos + node.nodeSize, updatedMark);
39
- }));
40
- }
41
- });
42
- if (promises.length) {
43
- Promise.all(promises).then(() => {
44
- view.dispatch(tr);
45
- });
46
- }
47
- }
48
- findAssetLinkMark(marks) {
49
- return marks.find((mark) => mark.type.name === Extensions_1.MarkName.AssetLink && mark.attrs.href === '');
50
- }
51
- fetchAndReplace(nodeAttrs, onFetched) {
52
- return this.options
53
- .fetchUrl(nodeAttrs)
54
- .then((url) => {
55
- onFetched(url);
56
- })
57
- .catch((error) => {
58
- console.error('Error fetching URL:', error);
59
- });
60
- }
61
- };
62
- FetchUrlExtension = __decorate([
63
- (0, core_1.extension)({
64
- defaultOptions: {
65
- fetchUrl: () => Promise.resolve(''),
66
- },
67
- })
68
- ], FetchUrlExtension);
69
- exports.FetchUrlExtension = FetchUrlExtension;
@@ -1,17 +0,0 @@
1
- import { ApplySchemaAttributes, NodeExtension, NodeExtensionSpec, NodeSpecOverride, CommandFunction } from '@remirror/core';
2
- import { NodeName } from '../Extensions';
3
- export type AssetImageOptions = {
4
- matrixDomain?: string;
5
- };
6
- export type AssetImageAttributes = {
7
- matrixAssetId: string;
8
- matrixIdentifier: string;
9
- matrixDomain: string;
10
- url: string;
11
- };
12
- export declare class AssetImageExtension extends NodeExtension<AssetImageOptions> {
13
- get name(): NodeName.AssetImage;
14
- createTags(): ("inline" | "media")[];
15
- createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec;
16
- insertAssetImage(attrs: AssetImageAttributes): CommandFunction;
17
- }
@@ -1,91 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.AssetImageExtension = void 0;
10
- const core_1 = require("@remirror/core");
11
- const remirror_1 = require("remirror");
12
- const Extensions_1 = require("../Extensions");
13
- let AssetImageExtension = class AssetImageExtension extends core_1.NodeExtension {
14
- get name() {
15
- return Extensions_1.NodeName.AssetImage;
16
- }
17
- createTags() {
18
- return [core_1.ExtensionTag.InlineNode, core_1.ExtensionTag.Media];
19
- }
20
- createNodeSpec(extra, override) {
21
- return {
22
- inline: true,
23
- draggable: true,
24
- selectable: true,
25
- ...override,
26
- attrs: {
27
- ...extra.defaults(),
28
- matrixAssetId: {},
29
- matrixIdentifier: {},
30
- matrixDomain: { default: this.options.matrixDomain },
31
- src: { default: '' },
32
- },
33
- parseDOM: [
34
- {
35
- tag: 'img[data-matrix-asset-id]',
36
- getAttrs: (node) => {
37
- if (!(0, core_1.isElementDomNode)(node)) {
38
- return false;
39
- }
40
- const matrixAssetId = node.getAttribute('data-matrix-asset-id');
41
- const matrixIdentifier = node.getAttribute('data-matrix-identifier');
42
- const matrixDomain = node.getAttribute('data-matrix-domain');
43
- if (!matrixAssetId || !matrixIdentifier || !matrixDomain) {
44
- return false;
45
- }
46
- return {
47
- ...extra.parse(node),
48
- matrixAssetId,
49
- matrixIdentifier,
50
- matrixDomain,
51
- };
52
- },
53
- },
54
- ],
55
- toDOM: (node) => {
56
- const { matrixAssetId, matrixIdentifier, matrixDomain, src, ...rest } = (0, core_1.omitExtraAttributes)(node.attrs, extra);
57
- return [
58
- 'img',
59
- {
60
- ...extra.dom(node),
61
- ...rest,
62
- src,
63
- 'data-matrix-asset-id': matrixAssetId,
64
- 'data-matrix-identifier': matrixIdentifier,
65
- 'data-matrix-domain': matrixDomain,
66
- },
67
- ];
68
- },
69
- };
70
- }
71
- insertAssetImage(attrs) {
72
- return ({ tr, dispatch }) => {
73
- const { from, to } = (0, remirror_1.getTextSelection)(tr.selection, tr.doc);
74
- const node = this.type.create({ ...attrs, src: attrs.url });
75
- dispatch?.(tr.replaceRangeWith(from, to, node));
76
- return true;
77
- };
78
- }
79
- };
80
- __decorate([
81
- (0, core_1.command)()
82
- ], AssetImageExtension.prototype, "insertAssetImage", null);
83
- AssetImageExtension = __decorate([
84
- (0, core_1.extension)({
85
- defaultOptions: {
86
- matrixDomain: '',
87
- },
88
- defaultPriority: core_1.ExtensionPriority.High,
89
- })
90
- ], AssetImageExtension);
91
- exports.AssetImageExtension = AssetImageExtension;
@@ -1,17 +0,0 @@
1
- import { ApplySchemaAttributes, NodeExtension, NodeExtensionSpec, NodeSpecOverride, CommandFunction } from '@remirror/core';
2
- import { NodeName } from '../Extensions';
3
- export type DAMImageAttributes = {
4
- damObjectId: string;
5
- damSystemIdentifier: string;
6
- damSystemType: string;
7
- damAdditional?: {
8
- variant: string;
9
- };
10
- url: string;
11
- };
12
- export declare class DAMImageExtension extends NodeExtension {
13
- get name(): NodeName.DAMImage;
14
- createTags(): ("inline" | "media")[];
15
- createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec;
16
- insertDAMImage(attrs: DAMImageAttributes): CommandFunction;
17
- }
@@ -1,97 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.DAMImageExtension = void 0;
10
- const core_1 = require("@remirror/core");
11
- const remirror_1 = require("remirror");
12
- const Extensions_1 = require("../Extensions");
13
- let DAMImageExtension = class DAMImageExtension extends core_1.NodeExtension {
14
- get name() {
15
- return Extensions_1.NodeName.DAMImage;
16
- }
17
- createTags() {
18
- return [core_1.ExtensionTag.InlineNode, core_1.ExtensionTag.Media];
19
- }
20
- createNodeSpec(extra, override) {
21
- return {
22
- inline: true,
23
- draggable: true,
24
- selectable: true,
25
- ...override,
26
- attrs: {
27
- ...extra.defaults(),
28
- damObjectId: {},
29
- damSystemIdentifier: {},
30
- damSystemType: {},
31
- damAdditional: { default: undefined },
32
- src: { default: '' },
33
- },
34
- parseDOM: [
35
- {
36
- tag: 'img[data-dam-object-id]',
37
- getAttrs: (node) => {
38
- if (!(0, core_1.isElementDomNode)(node)) {
39
- return false;
40
- }
41
- const damObjectId = node.getAttribute('data-dam-object-id');
42
- const damSystemIdentifier = node.getAttribute('data-dam-system-identifier');
43
- const damSystemType = node.getAttribute('data-dam-system-type');
44
- let damAdditional = node.getAttribute('data-dam-additional') || undefined;
45
- if (!damObjectId || !damSystemIdentifier || !damSystemType) {
46
- return false;
47
- }
48
- if (damAdditional) {
49
- damAdditional = JSON.parse(damAdditional);
50
- }
51
- return {
52
- ...extra.parse(node),
53
- damObjectId,
54
- damSystemIdentifier,
55
- damSystemType,
56
- damAdditional,
57
- src: '',
58
- };
59
- },
60
- },
61
- ],
62
- toDOM: (node) => {
63
- const { damObjectId, damSystemIdentifier, damSystemType, damAdditional, src, ...rest } = (0, core_1.omitExtraAttributes)(node.attrs, extra);
64
- return [
65
- 'img',
66
- {
67
- ...extra.dom(node),
68
- ...rest,
69
- src,
70
- 'data-dam-object-id': damObjectId,
71
- 'data-dam-system-identifier': damSystemIdentifier,
72
- 'data-dam-system-type': damSystemType,
73
- 'data-dam-additional': damAdditional ? JSON.stringify(damAdditional) : undefined,
74
- },
75
- ];
76
- },
77
- };
78
- }
79
- insertDAMImage(attrs) {
80
- return ({ tr, dispatch }) => {
81
- const { from, to } = (0, remirror_1.getTextSelection)(tr.selection, tr.doc);
82
- const node = this.type.create({ ...attrs, src: attrs.url });
83
- dispatch?.(tr.replaceRangeWith(from, to, node));
84
- return true;
85
- };
86
- }
87
- };
88
- __decorate([
89
- (0, core_1.command)()
90
- ], DAMImageExtension.prototype, "insertDAMImage", null);
91
- DAMImageExtension = __decorate([
92
- (0, core_1.extension)({
93
- defaultOptions: {},
94
- defaultPriority: core_1.ExtensionPriority.High,
95
- })
96
- ], DAMImageExtension);
97
- exports.DAMImageExtension = DAMImageExtension;
@@ -1,7 +0,0 @@
1
- import { ImageExtension as RemirrorImageExtension } from 'remirror/extensions';
2
- import { PasteRule } from 'prosemirror-paste-rules';
3
- import { ApplySchemaAttributes, NodeSpecOverride, NodeExtensionSpec } from '@remirror/core';
4
- export declare class ImageExtension extends RemirrorImageExtension {
5
- createPasteRules(): PasteRule[];
6
- createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec;
7
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImageExtension = void 0;
4
- const extensions_1 = require("remirror/extensions");
5
- class ImageExtension extends extensions_1.ImageExtension {
6
- createPasteRules() {
7
- // override super behaviour of handling file uploads.
8
- return [];
9
- }
10
- createNodeSpec(extra, override) {
11
- const spec = super.createNodeSpec(extra, override);
12
- return {
13
- ...spec,
14
- selectable: true,
15
- };
16
- }
17
- }
18
- exports.ImageExtension = ImageExtension;
@@ -1,27 +0,0 @@
1
- import { ApplySchemaAttributes, FromToProps, MarkExtensionSpec, MarkSpecOverride } from 'remirror';
2
- import { CommandFunction, MarkExtension } from '@remirror/core';
3
- import { LinkTarget } from './common';
4
- export type AssetLinkAttributes = {
5
- matrixAssetId: string;
6
- matrixIdentifier: string;
7
- matrixDomain: string;
8
- target: LinkTarget;
9
- href: string;
10
- url: string;
11
- };
12
- export type AssetLinkOptions = {
13
- matrixDomain?: string;
14
- defaultTarget?: LinkTarget;
15
- supportedTargets?: LinkTarget[];
16
- };
17
- export type UpdateAssetLinkProps = {
18
- text: string;
19
- attrs: Partial<AssetLinkAttributes>;
20
- range: FromToProps;
21
- };
22
- export declare class AssetLinkExtension extends MarkExtension<AssetLinkOptions> {
23
- get name(): string;
24
- createMarkSpec(extra: ApplySchemaAttributes, override: MarkSpecOverride): MarkExtensionSpec;
25
- updateAssetLink({ text, attrs, range }: UpdateAssetLinkProps): CommandFunction;
26
- removeAssetLink(): CommandFunction;
27
- }
@@ -1,101 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.AssetLinkExtension = void 0;
10
- const remirror_1 = require("remirror");
11
- const core_1 = require("@remirror/core");
12
- const common_1 = require("./common");
13
- const CommandsExtension_1 = require("../CommandsExtension/CommandsExtension");
14
- const Extensions_1 = require("../Extensions");
15
- let AssetLinkExtension = class AssetLinkExtension extends core_1.MarkExtension {
16
- get name() {
17
- return Extensions_1.MarkName.AssetLink;
18
- }
19
- createMarkSpec(extra, override) {
20
- return {
21
- inclusive: false,
22
- excludes: [this.name, Extensions_1.MarkName.Link].join(' '),
23
- ...override,
24
- attrs: {
25
- ...extra.defaults(),
26
- matrixAssetId: {},
27
- matrixIdentifier: {},
28
- href: { default: '' },
29
- matrixDomain: { default: this.options.matrixDomain },
30
- target: { default: this.options.defaultTarget },
31
- },
32
- parseDOM: [
33
- {
34
- tag: 'a[data-matrix-asset-id]',
35
- getAttrs: (node) => {
36
- if (!(0, remirror_1.isElementDomNode)(node)) {
37
- return false;
38
- }
39
- const matrixAssetId = node.getAttribute('data-matrix-asset-id');
40
- const matrixIdentifier = node.getAttribute('data-matrix-identifier');
41
- const matrixDomain = node.getAttribute('data-matrix-domain');
42
- if (!matrixAssetId || !matrixIdentifier || !matrixDomain) {
43
- return false;
44
- }
45
- return {
46
- ...extra.parse(node),
47
- matrixAssetId,
48
- matrixIdentifier,
49
- matrixDomain,
50
- target: (0, common_1.validateTarget)(node.getAttribute('target'), this.options.supportedTargets, this.options.defaultTarget),
51
- };
52
- },
53
- },
54
- ],
55
- toDOM: (node) => {
56
- const { matrixAssetId, matrixIdentifier, matrixDomain, target, href, ...rest } = (0, core_1.omitExtraAttributes)(node.attrs, extra);
57
- const rel = 'noopener noreferrer nofollow';
58
- const attrs = {
59
- ...extra.dom(node),
60
- ...rest,
61
- rel,
62
- href,
63
- target: (0, common_1.validateTarget)(target, this.options.supportedTargets, this.options.defaultTarget),
64
- 'data-matrix-asset-id': matrixAssetId,
65
- 'data-matrix-identifier': matrixIdentifier,
66
- 'data-matrix-domain': matrixDomain,
67
- };
68
- return ['a', attrs, 0];
69
- },
70
- };
71
- }
72
- updateAssetLink({ text, attrs, range }) {
73
- return this.store.getExtension(CommandsExtension_1.CommandsExtension).updateMark({
74
- attrs: { ...attrs, href: attrs.url },
75
- text,
76
- range,
77
- mark: this.type,
78
- removeMark: !attrs.matrixAssetId,
79
- });
80
- }
81
- removeAssetLink() {
82
- return (0, core_1.removeMark)({ type: this.type });
83
- }
84
- };
85
- __decorate([
86
- (0, core_1.command)()
87
- ], AssetLinkExtension.prototype, "updateAssetLink", null);
88
- __decorate([
89
- (0, core_1.command)()
90
- ], AssetLinkExtension.prototype, "removeAssetLink", null);
91
- AssetLinkExtension = __decorate([
92
- (0, core_1.extension)({
93
- defaultOptions: {
94
- matrixDomain: '',
95
- defaultTarget: common_1.LinkTarget.Self,
96
- supportedTargets: [common_1.LinkTarget.Self, common_1.LinkTarget.Blank],
97
- },
98
- defaultPriority: remirror_1.ExtensionPriority.High,
99
- })
100
- ], AssetLinkExtension);
101
- exports.AssetLinkExtension = AssetLinkExtension;
@@ -1,23 +0,0 @@
1
- import { ApplySchemaAttributes, FromToProps, MarkExtensionSpec, MarkSpecOverride } from 'remirror';
2
- import { CommandFunction, MarkExtension } from '@remirror/core';
3
- import { LinkTarget } from './common';
4
- export type LinkAttributes = {
5
- href: string;
6
- title?: string;
7
- target: LinkTarget;
8
- };
9
- export type LinkOptions = {
10
- defaultTarget?: LinkTarget;
11
- supportedTargets?: LinkTarget[];
12
- };
13
- export type UpdateLinkProps = {
14
- text: string;
15
- attrs: Partial<LinkAttributes>;
16
- range: FromToProps;
17
- };
18
- export declare class LinkExtension extends MarkExtension<LinkOptions> {
19
- get name(): string;
20
- createMarkSpec(extra: ApplySchemaAttributes, override: MarkSpecOverride): MarkExtensionSpec;
21
- updateLink({ text, attrs, range }: UpdateLinkProps): CommandFunction;
22
- removeLink(): CommandFunction;
23
- }