@atlaskit/editor-common 76.33.2 → 76.35.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.
- package/CHANGELOG.md +54 -0
- package/dist/cjs/collab/index.js +27 -2
- package/dist/cjs/core-utils/document-logger.js +171 -0
- package/dist/cjs/core-utils/index.js +8 -1
- package/dist/cjs/extensibility/Extension/Extension/index.js +151 -0
- package/dist/cjs/extensibility/Extension/Extension/styles.js +17 -0
- package/dist/cjs/extensibility/Extension/InlineExtension/index.js +50 -0
- package/dist/cjs/extensibility/Extension/InlineExtension/styles.js +12 -0
- package/dist/cjs/extensibility/Extension/Lozenge.js +95 -0
- package/dist/cjs/extensibility/Extension/styles.js +30 -0
- package/dist/cjs/extensibility/Extension.js +79 -0
- package/dist/cjs/extensibility/ExtensionComponent.js +252 -0
- package/dist/cjs/extensibility/ExtensionNodeWrapper.js +21 -0
- package/dist/cjs/extensibility/MultiBodiedExtension/index.js +264 -0
- package/dist/cjs/extensibility/extensionNodeView.js +91 -0
- package/dist/cjs/extensibility/index.js +42 -0
- package/dist/cjs/extensibility/types.js +5 -0
- package/dist/cjs/media-inline/media-inline-image-card.js +24 -19
- package/dist/cjs/monitoring/error.js +3 -2
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/utils/index.js +7 -0
- package/dist/cjs/utils/insert-node-into-ordered-list.js +91 -0
- package/dist/es2019/collab/index.js +54 -1
- package/dist/es2019/core-utils/document-logger.js +161 -0
- package/dist/es2019/core-utils/index.js +2 -1
- package/dist/es2019/extensibility/Extension/Extension/index.js +155 -0
- package/dist/es2019/extensibility/Extension/Extension/styles.js +42 -0
- package/dist/es2019/extensibility/Extension/InlineExtension/index.js +26 -0
- package/dist/es2019/extensibility/Extension/InlineExtension/styles.js +26 -0
- package/dist/es2019/extensibility/Extension/Lozenge.js +71 -0
- package/dist/es2019/extensibility/Extension/styles.js +62 -0
- package/dist/es2019/extensibility/Extension.js +52 -0
- package/dist/es2019/extensibility/ExtensionComponent.js +204 -0
- package/dist/es2019/extensibility/ExtensionNodeWrapper.js +13 -0
- package/dist/es2019/extensibility/MultiBodiedExtension/index.js +283 -0
- package/dist/es2019/extensibility/extensionNodeView.js +62 -0
- package/dist/es2019/extensibility/index.js +4 -0
- package/dist/es2019/extensibility/types.js +1 -0
- package/dist/es2019/media-inline/media-inline-image-card.js +24 -19
- package/dist/es2019/monitoring/error.js +3 -2
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/utils/index.js +1 -0
- package/dist/es2019/utils/insert-node-into-ordered-list.js +84 -0
- package/dist/esm/collab/index.js +23 -1
- package/dist/esm/core-utils/document-logger.js +165 -0
- package/dist/esm/core-utils/index.js +2 -1
- package/dist/esm/extensibility/Extension/Extension/index.js +146 -0
- package/dist/esm/extensibility/Extension/Extension/styles.js +10 -0
- package/dist/esm/extensibility/Extension/InlineExtension/index.js +43 -0
- package/dist/esm/extensibility/Extension/InlineExtension/styles.js +5 -0
- package/dist/esm/extensibility/Extension/Lozenge.js +90 -0
- package/dist/esm/extensibility/Extension/styles.js +11 -0
- package/dist/esm/extensibility/Extension.js +69 -0
- package/dist/esm/extensibility/ExtensionComponent.js +243 -0
- package/dist/esm/extensibility/ExtensionNodeWrapper.js +14 -0
- package/dist/esm/extensibility/MultiBodiedExtension/index.js +257 -0
- package/dist/esm/extensibility/extensionNodeView.js +83 -0
- package/dist/esm/extensibility/index.js +4 -0
- package/dist/esm/extensibility/types.js +1 -0
- package/dist/esm/media-inline/media-inline-image-card.js +24 -19
- package/dist/esm/monitoring/error.js +3 -2
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/insert-node-into-ordered-list.js +84 -0
- package/dist/types/collab/index.d.ts +7 -0
- package/dist/types/core-utils/document-logger.d.ts +6 -0
- package/dist/types/core-utils/index.d.ts +1 -0
- package/dist/types/extensibility/Extension/Extension/index.d.ts +108 -0
- package/dist/types/extensibility/Extension/Extension/styles.d.ts +5 -0
- package/dist/types/extensibility/Extension/InlineExtension/index.d.ts +12 -0
- package/dist/types/extensibility/Extension/InlineExtension/styles.d.ts +1 -0
- package/dist/types/extensibility/Extension/Lozenge.d.ts +14 -0
- package/dist/types/extensibility/Extension/styles.d.ts +7 -0
- package/dist/types/extensibility/Extension.d.ts +29 -0
- package/dist/types/extensibility/ExtensionComponent.d.ts +53 -0
- package/dist/types/extensibility/ExtensionNodeWrapper.d.ts +14 -0
- package/dist/types/extensibility/MultiBodiedExtension/index.d.ts +26 -0
- package/dist/types/extensibility/extensionNodeView.d.ts +31 -0
- package/dist/types/extensibility/index.d.ts +4 -0
- package/dist/types/extensibility/types.d.ts +6 -0
- package/dist/types/extensions/types/extension-handler.d.ts +2 -0
- package/dist/types/media-inline/media-inline-image-card.d.ts +3 -2
- package/dist/types/media-inline/types.d.ts +6 -2
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/types/next-editor-plugin.d.ts +0 -1
- package/dist/types/ui/DropList/index.d.ts +1 -1
- package/dist/types/ui-menu/ColorPickerButton/index.d.ts +1 -1
- package/dist/types/ui-menu/ToolbarButton/index.d.ts +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/insert-node-into-ordered-list.d.ts +3 -0
- package/dist/types-ts4.5/collab/index.d.ts +7 -0
- package/dist/types-ts4.5/core-utils/document-logger.d.ts +6 -0
- package/dist/types-ts4.5/core-utils/index.d.ts +1 -0
- package/dist/types-ts4.5/extensibility/Extension/Extension/index.d.ts +108 -0
- package/dist/types-ts4.5/extensibility/Extension/Extension/styles.d.ts +5 -0
- package/dist/types-ts4.5/extensibility/Extension/InlineExtension/index.d.ts +12 -0
- package/dist/types-ts4.5/extensibility/Extension/InlineExtension/styles.d.ts +1 -0
- package/dist/types-ts4.5/extensibility/Extension/Lozenge.d.ts +14 -0
- package/dist/types-ts4.5/extensibility/Extension/styles.d.ts +7 -0
- package/dist/types-ts4.5/extensibility/Extension.d.ts +29 -0
- package/dist/types-ts4.5/extensibility/ExtensionComponent.d.ts +53 -0
- package/dist/types-ts4.5/extensibility/ExtensionNodeWrapper.d.ts +14 -0
- package/dist/types-ts4.5/extensibility/MultiBodiedExtension/index.d.ts +26 -0
- package/dist/types-ts4.5/extensibility/extensionNodeView.d.ts +31 -0
- package/dist/types-ts4.5/extensibility/index.d.ts +4 -0
- package/dist/types-ts4.5/extensibility/types.d.ts +8 -0
- package/dist/types-ts4.5/extensions/types/extension-handler.d.ts +2 -0
- package/dist/types-ts4.5/media-inline/media-inline-image-card.d.ts +3 -2
- package/dist/types-ts4.5/media-inline/types.d.ts +6 -2
- package/dist/types-ts4.5/types/index.d.ts +1 -1
- package/dist/types-ts4.5/types/next-editor-plugin.d.ts +0 -3
- package/dist/types-ts4.5/ui/DropList/index.d.ts +1 -1
- package/dist/types-ts4.5/ui-menu/ColorPickerButton/index.d.ts +1 -1
- package/dist/types-ts4.5/ui-menu/ToolbarButton/index.d.ts +1 -1
- package/dist/types-ts4.5/utils/index.d.ts +1 -0
- package/dist/types-ts4.5/utils/insert-node-into-ordered-list.d.ts +3 -0
- package/extensibility/package.json +15 -0
- package/package.json +6 -5
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ExtensionNode = void 0;
|
|
8
|
+
exports.default = ExtensionNodeView;
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
12
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
+
var _react = _interopRequireDefault(require("react"));
|
|
15
|
+
var _reactNodeView = _interopRequireDefault(require("../react-node-view"));
|
|
16
|
+
var _Extension = require("./Extension");
|
|
17
|
+
var _ExtensionNodeWrapper = require("./ExtensionNodeWrapper");
|
|
18
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
19
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
20
|
+
// getInlineNodeViewProducer is a new api to use instead of ReactNodeView
|
|
21
|
+
// when creating inline node views, however, it is difficult to test the impact
|
|
22
|
+
// on selections when migrating inlineExtension to use the new api.
|
|
23
|
+
// The ReactNodeView api will be visited in the second phase of the selections
|
|
24
|
+
// project whilst investigating block nodes. We will revisit the Extension node view there too.
|
|
25
|
+
var ExtensionNode = exports.ExtensionNode = /*#__PURE__*/function (_ReactNodeView) {
|
|
26
|
+
(0, _inherits2.default)(ExtensionNode, _ReactNodeView);
|
|
27
|
+
var _super = _createSuper(ExtensionNode);
|
|
28
|
+
function ExtensionNode() {
|
|
29
|
+
(0, _classCallCheck2.default)(this, ExtensionNode);
|
|
30
|
+
return _super.apply(this, arguments);
|
|
31
|
+
}
|
|
32
|
+
(0, _createClass2.default)(ExtensionNode, [{
|
|
33
|
+
key: "ignoreMutation",
|
|
34
|
+
value: function ignoreMutation(mutation) {
|
|
35
|
+
// Extensions can perform async operations that will change the DOM.
|
|
36
|
+
// To avoid having their tree rebuilt, we need to ignore the mutation
|
|
37
|
+
// for atom based extensions if its not a layout, we need to give
|
|
38
|
+
// children a chance to recalc
|
|
39
|
+
return this.node.type.isAtom || mutation.type !== 'selection' && mutation.attributeName !== 'data-layout';
|
|
40
|
+
}
|
|
41
|
+
}, {
|
|
42
|
+
key: "getContentDOM",
|
|
43
|
+
value: function getContentDOM() {
|
|
44
|
+
if (this.node.isInline) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
var dom = document.createElement('div');
|
|
48
|
+
dom.className = "".concat(this.node.type.name, "-content-dom-wrapper");
|
|
49
|
+
return {
|
|
50
|
+
dom: dom
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}, {
|
|
54
|
+
key: "render",
|
|
55
|
+
value: function render(props, forwardRef) {
|
|
56
|
+
var _props$extensionNodeV;
|
|
57
|
+
return /*#__PURE__*/_react.default.createElement(_ExtensionNodeWrapper.ExtensionNodeWrapper, {
|
|
58
|
+
nodeType: this.node.type.name
|
|
59
|
+
}, /*#__PURE__*/_react.default.createElement(_Extension.Extension, {
|
|
60
|
+
editorView: this.view,
|
|
61
|
+
node: this.node,
|
|
62
|
+
eventDispatcher: this.eventDispatcher
|
|
63
|
+
// The getPos arg is always a function when used with nodes
|
|
64
|
+
// the version of the types we use has a union with the type
|
|
65
|
+
// for marks.
|
|
66
|
+
// This has been fixed in later versions of the definitly typed
|
|
67
|
+
// types (and also in prosmirror-views inbuilt types).
|
|
68
|
+
// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/57384
|
|
69
|
+
,
|
|
70
|
+
getPos: this.getPos,
|
|
71
|
+
providerFactory: props.providerFactory,
|
|
72
|
+
handleContentDOMRef: forwardRef,
|
|
73
|
+
extensionHandlers: props.extensionHandlers,
|
|
74
|
+
editorAppearance: (_props$extensionNodeV = props.extensionNodeViewOptions) === null || _props$extensionNodeV === void 0 ? void 0 : _props$extensionNodeV.appearance,
|
|
75
|
+
pluginInjectionApi: props.pluginInjectionApi
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
}]);
|
|
79
|
+
return ExtensionNode;
|
|
80
|
+
}(_reactNodeView.default);
|
|
81
|
+
function ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi) {
|
|
82
|
+
return function (node, view, getPos) {
|
|
83
|
+
var hasIntlContext = true;
|
|
84
|
+
return new ExtensionNode(node, view, getPos, portalProviderAPI, eventDispatcher, {
|
|
85
|
+
providerFactory: providerFactory,
|
|
86
|
+
extensionHandlers: extensionHandlers,
|
|
87
|
+
extensionNodeViewOptions: extensionNodeViewOptions,
|
|
88
|
+
pluginInjectionApi: pluginInjectionApi
|
|
89
|
+
}, undefined, undefined, undefined, hasIntlContext).init();
|
|
90
|
+
};
|
|
91
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "Extension", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _Extension.Extension;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "ExtensionComponent", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function get() {
|
|
16
|
+
return _ExtensionComponent.ExtensionComponent;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "ExtensionNode", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function get() {
|
|
22
|
+
return _extensionNodeView.ExtensionNode;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "ExtensionNodeView", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function get() {
|
|
28
|
+
return _extensionNodeView.default;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "ExtensionNodeWrapper", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function get() {
|
|
34
|
+
return _ExtensionNodeWrapper.ExtensionNodeWrapper;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
var _ExtensionNodeWrapper = require("./ExtensionNodeWrapper");
|
|
38
|
+
var _Extension = require("./Extension");
|
|
39
|
+
var _extensionNodeView = _interopRequireWildcard(require("./extensionNodeView"));
|
|
40
|
+
var _ExtensionComponent = require("./ExtensionComponent");
|
|
41
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
42
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -26,7 +26,8 @@ var MediaInlineImageCardInternal = exports.MediaInlineImageCardInternal = functi
|
|
|
26
26
|
isLazy = _ref.isLazy,
|
|
27
27
|
width = _ref.width,
|
|
28
28
|
height = _ref.height,
|
|
29
|
-
border = _ref.border
|
|
29
|
+
border = _ref.border,
|
|
30
|
+
ssr = _ref.ssr;
|
|
30
31
|
var _useState = (0, _react.useState)(),
|
|
31
32
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
32
33
|
fileState = _useState2[0],
|
|
@@ -40,21 +41,23 @@ var MediaInlineImageCardInternal = exports.MediaInlineImageCardInternal = functi
|
|
|
40
41
|
}),
|
|
41
42
|
formatMessage = _ref2.formatMessage;
|
|
42
43
|
(0, _react.useEffect)(function () {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
44
|
+
if (mediaClient) {
|
|
45
|
+
var subscription = mediaClient.file.getFileState(identifier.id, {
|
|
46
|
+
collectionName: identifier.collectionName
|
|
47
|
+
}).subscribe({
|
|
48
|
+
next: function next(fileState) {
|
|
49
|
+
setFileState(fileState);
|
|
50
|
+
setSubscribeError(undefined);
|
|
51
|
+
},
|
|
52
|
+
error: function error(e) {
|
|
53
|
+
setSubscribeError(e);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return function () {
|
|
57
|
+
subscription.unsubscribe();
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}, [identifier, mediaClient]);
|
|
58
61
|
var content = function content(dimensions) {
|
|
59
62
|
if (subscribeError) {
|
|
60
63
|
var isUploading = (fileState === null || fileState === void 0 ? void 0 : fileState.status) === 'uploading';
|
|
@@ -79,18 +82,20 @@ var MediaInlineImageCardInternal = exports.MediaInlineImageCardInternal = functi
|
|
|
79
82
|
message: formatMessage(_mediaInlineCard.messages.unableToLoadContent)
|
|
80
83
|
});
|
|
81
84
|
}
|
|
85
|
+
var mediaClientConfig = (ssr === null || ssr === void 0 ? void 0 : ssr.config) || (mediaClient === null || mediaClient === void 0 ? void 0 : mediaClient.mediaClientConfig);
|
|
82
86
|
if (!fileState) {
|
|
83
87
|
return (0, _react2.jsx)(_loadingView.InlineImageCardLoadingView, null);
|
|
84
88
|
}
|
|
85
89
|
return (0, _react2.jsx)(_mediaCard.Card, {
|
|
86
|
-
mediaClientConfig:
|
|
90
|
+
mediaClientConfig: mediaClientConfig,
|
|
87
91
|
isLazy: isLazy,
|
|
88
92
|
identifier: identifier,
|
|
89
93
|
dimensions: dimensions,
|
|
90
94
|
selectable: true,
|
|
91
95
|
disableOverlay: true,
|
|
92
96
|
selected: isSelected,
|
|
93
|
-
alt: alt
|
|
97
|
+
alt: alt,
|
|
98
|
+
ssr: ssr === null || ssr === void 0 ? void 0 : ssr.mode
|
|
94
99
|
});
|
|
95
100
|
};
|
|
96
101
|
var aspectRatio = (0, _react.useMemo)(function () {
|
|
@@ -99,7 +104,7 @@ var MediaInlineImageCardInternal = exports.MediaInlineImageCardInternal = functi
|
|
|
99
104
|
|
|
100
105
|
/**
|
|
101
106
|
* scaledDimensions is used to define the correct media size fetched from media service
|
|
102
|
-
* inline images will only ever be
|
|
107
|
+
* inline images will only ever be rendered at a maximum height of H1 and so scaled dimensions
|
|
103
108
|
* will only ever return a width and height where the height has a maximum height of H1
|
|
104
109
|
*/
|
|
105
110
|
var scaledDimension = (0, _react.useMemo)(function () {
|
|
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
16
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
17
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
18
18
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
19
|
-
var packageVersion = "76.
|
|
19
|
+
var packageVersion = "76.35.0";
|
|
20
20
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
21
21
|
// Remove URL as it has UGC
|
|
22
22
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -79,13 +79,14 @@ var logException = exports.logException = /*#__PURE__*/function () {
|
|
|
79
79
|
hub = getCurrentHub();
|
|
80
80
|
hub.bindClient(client);
|
|
81
81
|
hub.withScope(function (scope) {
|
|
82
|
+
var _buildInfo;
|
|
82
83
|
scope.setTags(_objectSpread({
|
|
83
84
|
// Jira environment variables
|
|
84
85
|
'jira-bundler': window.BUNDLER_VERSION,
|
|
85
86
|
'jira-variant': window.BUILD_VARIANT,
|
|
86
87
|
'jira-release': window.BUILD_KEY,
|
|
87
88
|
// Confluence environment variables
|
|
88
|
-
'confluence-frontend-version': window.__buildInfo.FRONTEND_VERSION
|
|
89
|
+
'confluence-frontend-version': (_buildInfo = window.__buildInfo) === null || _buildInfo === void 0 ? void 0 : _buildInfo.FRONTEND_VERSION
|
|
89
90
|
}, tags));
|
|
90
91
|
// Explicitly remove the breadcrumbs as it's too likely to log UGC/PII to side-step the hub integrations not being respected
|
|
91
92
|
scope.clearBreadcrumbs();
|
|
@@ -22,7 +22,7 @@ var _templateObject, _templateObject2, _templateObject3;
|
|
|
22
22
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
23
23
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** @jsx jsx */
|
|
24
24
|
var packageName = "@atlaskit/editor-common";
|
|
25
|
-
var packageVersion = "76.
|
|
25
|
+
var packageVersion = "76.35.0";
|
|
26
26
|
var halfFocusRing = 1;
|
|
27
27
|
var dropOffset = '0, 8';
|
|
28
28
|
var DropList = /*#__PURE__*/function (_Component) {
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -1028,6 +1028,12 @@ Object.defineProperty(exports, "todayTimestampInUTC", {
|
|
|
1028
1028
|
return _date.todayTimestampInUTC;
|
|
1029
1029
|
}
|
|
1030
1030
|
});
|
|
1031
|
+
Object.defineProperty(exports, "transformNodeIntoListItem", {
|
|
1032
|
+
enumerable: true,
|
|
1033
|
+
get: function get() {
|
|
1034
|
+
return _insertNodeIntoOrderedList.transformNodeIntoListItem;
|
|
1035
|
+
}
|
|
1036
|
+
});
|
|
1031
1037
|
Object.defineProperty(exports, "unwrap", {
|
|
1032
1038
|
enumerable: true,
|
|
1033
1039
|
get: function get() {
|
|
@@ -1146,6 +1152,7 @@ var _countNodes = require("./count-nodes");
|
|
|
1146
1152
|
var _inputRules = require("./input-rules");
|
|
1147
1153
|
var _dedupe = require("./dedupe");
|
|
1148
1154
|
var _createWrapSelectionTransaction = require("./create-wrap-selection-transaction");
|
|
1155
|
+
var _insertNodeIntoOrderedList = require("./insert-node-into-ordered-list");
|
|
1149
1156
|
var _wrapSelectionIn = require("./wrap-selection-in");
|
|
1150
1157
|
var _calculateToolbarPosition = require("./calculate-toolbar-position");
|
|
1151
1158
|
var _nodesByLocalIds = require("./nodes-by-localIds");
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.transformNodeIntoListItem = transformNodeIntoListItem;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
10
|
+
var _list = require("./list");
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
function transformNodeIntoListItem(tr, node) {
|
|
14
|
+
var _tr$doc$nodeAt, _findParentNodeOfType;
|
|
15
|
+
var _tr$selection = tr.selection,
|
|
16
|
+
$to = _tr$selection.$to,
|
|
17
|
+
$from = _tr$selection.$from,
|
|
18
|
+
to = _tr$selection.to,
|
|
19
|
+
from = _tr$selection.from;
|
|
20
|
+
var _tr$doc$type$schema$n = tr.doc.type.schema.nodes,
|
|
21
|
+
orderedList = _tr$doc$type$schema$n.orderedList,
|
|
22
|
+
bulletList = _tr$doc$type$schema$n.bulletList,
|
|
23
|
+
listItem = _tr$doc$type$schema$n.listItem;
|
|
24
|
+
var startLinePosition = $from.start();
|
|
25
|
+
var parentStartPosition = $from.depth === 0 ? 0 : $from.before();
|
|
26
|
+
|
|
27
|
+
// Setting the start position
|
|
28
|
+
var startMapped = startLinePosition === from ? parentStartPosition : from;
|
|
29
|
+
|
|
30
|
+
// Selected nodes
|
|
31
|
+
var selectionParentListItemNode = (0, _utils.findParentNodeOfType)(listItem)(tr.selection);
|
|
32
|
+
var selectionParentListNodeWithPos = (0, _utils.findParentNodeOfType)([bulletList, orderedList])(tr.selection);
|
|
33
|
+
var selectionParentListNode = selectionParentListNodeWithPos === null || selectionParentListNodeWithPos === void 0 ? void 0 : selectionParentListNodeWithPos.node;
|
|
34
|
+
if (!selectionParentListNodeWithPos) {
|
|
35
|
+
return tr;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Offsets
|
|
39
|
+
var listWrappingOffset = $to.depth - selectionParentListNodeWithPos.depth + 1; // difference in depth between to position and list node
|
|
40
|
+
var listItemWrappingOffset = $to.depth - selectionParentListNodeWithPos.depth; // difference in depth between to position and list item node
|
|
41
|
+
|
|
42
|
+
// Anything to do with nested lists should safeInsert and not be handled here
|
|
43
|
+
var grandParentListNode = (0, _utils.findParentNodeOfTypeClosestToPos)(tr.doc.resolve(selectionParentListNodeWithPos.pos), [bulletList, orderedList]);
|
|
44
|
+
var selectionIsInNestedList = !!grandParentListNode;
|
|
45
|
+
var selectedListItemHasNestedList = false;
|
|
46
|
+
selectionParentListItemNode === null || selectionParentListItemNode === void 0 || selectionParentListItemNode.node.content.forEach(function (child) {
|
|
47
|
+
if ((0, _list.isListNode)(child)) {
|
|
48
|
+
selectedListItemHasNestedList = true;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
if (selectedListItemHasNestedList || selectionIsInNestedList) {
|
|
52
|
+
return (0, _utils.safeInsert)(node)(tr).scrollIntoView();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Check if node after the insert position is listItem
|
|
56
|
+
var isNodeAfterInsertPositionIsListItem = ((_tr$doc$nodeAt = tr.doc.nodeAt(to + listItemWrappingOffset)) === null || _tr$doc$nodeAt === void 0 ? void 0 : _tr$doc$nodeAt.type) === listItem;
|
|
57
|
+
var replaceTo;
|
|
58
|
+
if (isNodeAfterInsertPositionIsListItem) {
|
|
59
|
+
replaceTo = to + listItemWrappingOffset;
|
|
60
|
+
} else if (!isNodeAfterInsertPositionIsListItem) {
|
|
61
|
+
replaceTo = to;
|
|
62
|
+
} else {
|
|
63
|
+
replaceTo = to + listWrappingOffset;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// handle the insertion of the slice
|
|
67
|
+
tr.replaceWith(startMapped, replaceTo, node).scrollIntoView();
|
|
68
|
+
|
|
69
|
+
// Get the next list items position (used later to find the split out ordered list)
|
|
70
|
+
var indexOfNextListItem = $to.indexAfter($to.depth - listItemWrappingOffset);
|
|
71
|
+
var positionOfNextListItem = tr.doc.resolve(selectionParentListNodeWithPos.pos + 1).posAtIndex(indexOfNextListItem);
|
|
72
|
+
|
|
73
|
+
// Find the ordered list node after the pasted content so we can set it's order
|
|
74
|
+
var mappedPositionOfNextListItem = tr.mapping.map(positionOfNextListItem);
|
|
75
|
+
if (mappedPositionOfNextListItem > tr.doc.nodeSize) {
|
|
76
|
+
return tr;
|
|
77
|
+
}
|
|
78
|
+
var nodeAfterPastedContentResolvedPos = (0, _utils.findParentNodeOfTypeClosestToPos)(tr.doc.resolve(mappedPositionOfNextListItem), [orderedList]);
|
|
79
|
+
|
|
80
|
+
// Work out the new split out lists 'order' (the number it starts from)
|
|
81
|
+
var originalParentOrderedListNodeOrder = selectionParentListNode === null || selectionParentListNode === void 0 ? void 0 : selectionParentListNode.attrs.order;
|
|
82
|
+
var numOfListItemsInOriginalList = (_findParentNodeOfType = (0, _utils.findParentNodeOfTypeClosestToPos)(tr.doc.resolve(from - 1), [orderedList])) === null || _findParentNodeOfType === void 0 ? void 0 : _findParentNodeOfType.node.childCount;
|
|
83
|
+
|
|
84
|
+
// Set the new split out lists order attribute
|
|
85
|
+
if (typeof originalParentOrderedListNodeOrder === 'number' && numOfListItemsInOriginalList && nodeAfterPastedContentResolvedPos) {
|
|
86
|
+
tr.setNodeMarkup(nodeAfterPastedContentResolvedPos.pos, orderedList, _objectSpread(_objectSpread({}, nodeAfterPastedContentResolvedPos.node.attrs), {}, {
|
|
87
|
+
order: originalParentOrderedListNodeOrder + numOfListItemsInOriginalList
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
return tr;
|
|
91
|
+
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { css } from '@emotion/react';
|
|
2
|
+
import { hexToRgba } from '@atlaskit/adf-schema';
|
|
3
|
+
import { relativeFontSizeToBase16 } from '@atlaskit/editor-shared-styles';
|
|
4
|
+
import * as themeColors from '@atlaskit/theme/colors';
|
|
5
|
+
|
|
1
6
|
// Format of the payload returned by the callback function passed to the collab provider
|
|
2
7
|
// that gets called when syncing with the back-end service fails.
|
|
3
8
|
// Format of the document and its metadata returned from the collab provider
|
|
@@ -118,4 +123,52 @@ export let DisconnectReason = /*#__PURE__*/function (DisconnectReason) {
|
|
|
118
123
|
DisconnectReason["SOCKET_TIMEOUT"] = "SOCKET_TIMEOUT";
|
|
119
124
|
DisconnectReason["UNKNOWN_DISCONNECT"] = "UNKNOWN_DISCONNECT";
|
|
120
125
|
return DisconnectReason;
|
|
121
|
-
}({});
|
|
126
|
+
}({});
|
|
127
|
+
// TODO: https://product-fabric.atlassian.net/browse/DSP-7269
|
|
128
|
+
/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
|
|
129
|
+
export const colors = [themeColors.R100, themeColors.R300, themeColors.R500, themeColors.Y100, themeColors.Y300, themeColors.Y500, themeColors.G100, themeColors.G300, themeColors.G500, themeColors.T100, themeColors.T300, themeColors.T500, themeColors.B100, themeColors.B300, themeColors.B500, themeColors.P100, themeColors.P300, themeColors.P500, themeColors.N70, themeColors.N200, themeColors.N800].map(solid => ({
|
|
130
|
+
solid,
|
|
131
|
+
selection: hexToRgba(solid, 0.2)
|
|
132
|
+
}));
|
|
133
|
+
const telepointerColorStyle = (color, index) => `
|
|
134
|
+
&.color-${index} {
|
|
135
|
+
background-color: ${color.selection};
|
|
136
|
+
&::after {
|
|
137
|
+
background-color: ${color.solid};
|
|
138
|
+
color: ${"var(--ds-text-inverse, #fff)"};
|
|
139
|
+
border-color: ${color.solid};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
`;
|
|
143
|
+
export const TELEPOINTER_DIM_CLASS = 'telepointer-dim';
|
|
144
|
+
export const telepointerStyle = css`
|
|
145
|
+
.ProseMirror .telepointer {
|
|
146
|
+
position: relative;
|
|
147
|
+
transition: opacity 200ms;
|
|
148
|
+
|
|
149
|
+
&.telepointer-selection {
|
|
150
|
+
line-height: 1.2;
|
|
151
|
+
pointer-events: none;
|
|
152
|
+
user-select: none;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
&.telepointer-selection-badge::after {
|
|
156
|
+
content: attr(data-initial);
|
|
157
|
+
position: absolute;
|
|
158
|
+
display: block;
|
|
159
|
+
top: -14px;
|
|
160
|
+
font-size: ${relativeFontSizeToBase16(9)};
|
|
161
|
+
padding: ${"var(--ds-space-025, 2px)"};
|
|
162
|
+
color: ${"var(--ds-text-inverse, white)"};
|
|
163
|
+
left: -1px;
|
|
164
|
+
border-radius: 2px 2px 2px 0;
|
|
165
|
+
line-height: initial;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
&.${TELEPOINTER_DIM_CLASS} {
|
|
169
|
+
opacity: 0.2;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
${colors.map((color, index) => telepointerColorStyle(color, index))};
|
|
173
|
+
}
|
|
174
|
+
`;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
const hash = {
|
|
2
|
+
nodes: {
|
|
3
|
+
doc: 'doc',
|
|
4
|
+
paragraph: 'p',
|
|
5
|
+
text: 't',
|
|
6
|
+
bulletList: 'ul',
|
|
7
|
+
orderedList: 'ol',
|
|
8
|
+
listItem: 'li',
|
|
9
|
+
heading: 'h',
|
|
10
|
+
blockquote: 'blockq',
|
|
11
|
+
codeBlock: 'codebl',
|
|
12
|
+
panel: 'pnl',
|
|
13
|
+
rule: 'rl',
|
|
14
|
+
hardBreak: 'br',
|
|
15
|
+
mention: 'ment',
|
|
16
|
+
emoji: 'emj',
|
|
17
|
+
image: 'img',
|
|
18
|
+
caption: 'cap',
|
|
19
|
+
media: 'media',
|
|
20
|
+
mediaGroup: 'mediag',
|
|
21
|
+
mediaSingle: 'medias',
|
|
22
|
+
plain: 'pln',
|
|
23
|
+
table: 'table',
|
|
24
|
+
tableCell: 'td',
|
|
25
|
+
tableHeader: 'th',
|
|
26
|
+
tableRow: 'tr',
|
|
27
|
+
decisionList: 'dl',
|
|
28
|
+
decisionItem: 'di',
|
|
29
|
+
taskList: 'tl',
|
|
30
|
+
taskItem: 'ti',
|
|
31
|
+
extension: 'ext',
|
|
32
|
+
inlineExtension: 'exti',
|
|
33
|
+
bodiedExtension: 'extb',
|
|
34
|
+
multiBodiedExtension: 'extmbe',
|
|
35
|
+
extensionFrame: 'extfrm',
|
|
36
|
+
status: 'sts',
|
|
37
|
+
placeholder: 'plh',
|
|
38
|
+
inlineCard: 'cardi',
|
|
39
|
+
blockCard: 'cardb',
|
|
40
|
+
embedCard: 'carde',
|
|
41
|
+
expand: 'exp',
|
|
42
|
+
nestedExpand: 'expn',
|
|
43
|
+
unsupportedBlock: 'unsupb',
|
|
44
|
+
unsupportedInline: 'unsupi',
|
|
45
|
+
unknownBlock: 'unkb',
|
|
46
|
+
date: 'date'
|
|
47
|
+
},
|
|
48
|
+
marks: {
|
|
49
|
+
em: 'em',
|
|
50
|
+
strong: 'strong',
|
|
51
|
+
code: 'code',
|
|
52
|
+
strike: 'strike',
|
|
53
|
+
underline: 'undline',
|
|
54
|
+
link: 'lnk',
|
|
55
|
+
subsup: 'subsup',
|
|
56
|
+
textColor: 'txtclr',
|
|
57
|
+
unsupportedMark: 'unsupmrk',
|
|
58
|
+
unsupportedNodeAttribute: 'unsupnattr',
|
|
59
|
+
annotation: 'anno'
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
function shortHash(type, isMark) {
|
|
63
|
+
const code = hash[isMark ? 'marks' : 'nodes'][type];
|
|
64
|
+
return code ? code : type;
|
|
65
|
+
}
|
|
66
|
+
function compactStringifier(node) {
|
|
67
|
+
var _node$marks;
|
|
68
|
+
const isContentEmpty = !node.content;
|
|
69
|
+
const isTextNode = (node === null || node === void 0 ? void 0 : node.type) === 'text';
|
|
70
|
+
const hasMarks = (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : _node$marks.length;
|
|
71
|
+
const isContentArray = Array.isArray(node.content);
|
|
72
|
+
const marks = child => {
|
|
73
|
+
if (hasMarks) {
|
|
74
|
+
return node.marks.reduce((str, mark) => `${shortHash(mark, true)}(${str})`, child);
|
|
75
|
+
}
|
|
76
|
+
return child;
|
|
77
|
+
};
|
|
78
|
+
let content;
|
|
79
|
+
if (isTextNode) {
|
|
80
|
+
content = String(node.nodeSize);
|
|
81
|
+
} else if (isContentEmpty) {
|
|
82
|
+
content = '';
|
|
83
|
+
} else if (isContentArray) {
|
|
84
|
+
content = node.content.map(node => compactStringifier(node)).join(',');
|
|
85
|
+
}
|
|
86
|
+
return marks(`${shortHash(node.type, false)}(${content})`);
|
|
87
|
+
}
|
|
88
|
+
export const getDocStructure = (doc, options) => {
|
|
89
|
+
try {
|
|
90
|
+
const result = getBlockNode(doc, 0);
|
|
91
|
+
if (options !== null && options !== void 0 && options.compact) {
|
|
92
|
+
return compactStringifier(result);
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
95
|
+
} catch (error) {
|
|
96
|
+
return `Error logging document structure: ${error}`;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
const getBlockNode = (node, pos) => {
|
|
100
|
+
const blockNode = {
|
|
101
|
+
type: node.type.name,
|
|
102
|
+
pos,
|
|
103
|
+
nodeSize: node.nodeSize
|
|
104
|
+
};
|
|
105
|
+
const content = getBlockNodeContent(node.content, pos);
|
|
106
|
+
if (content.length > 0) {
|
|
107
|
+
blockNode.content = content;
|
|
108
|
+
}
|
|
109
|
+
const marks = getMarks(node);
|
|
110
|
+
if (marks.length > 0) {
|
|
111
|
+
blockNode.marks = marks;
|
|
112
|
+
}
|
|
113
|
+
return blockNode;
|
|
114
|
+
};
|
|
115
|
+
const getBlockNodeContent = (node, pos) => {
|
|
116
|
+
if (!node || !node.content || !node.content.length) {
|
|
117
|
+
return [];
|
|
118
|
+
}
|
|
119
|
+
let blockNodeContent = [];
|
|
120
|
+
const {
|
|
121
|
+
content
|
|
122
|
+
} = node;
|
|
123
|
+
if (content[0].isBlock) {
|
|
124
|
+
// children are block nodes
|
|
125
|
+
let prevNode;
|
|
126
|
+
blockNodeContent = content.map(node => {
|
|
127
|
+
pos += prevNode ? prevNode.nodeSize : 1;
|
|
128
|
+
prevNode = node;
|
|
129
|
+
return getBlockNode(node, pos);
|
|
130
|
+
});
|
|
131
|
+
} else {
|
|
132
|
+
// children are inline nodes .
|
|
133
|
+
const result = getInlineNodes(content, pos);
|
|
134
|
+
blockNodeContent = result.inlineNodes;
|
|
135
|
+
pos = result.pos;
|
|
136
|
+
}
|
|
137
|
+
return blockNodeContent;
|
|
138
|
+
};
|
|
139
|
+
const getInlineNodes = (nodes, pos) => {
|
|
140
|
+
let inlineNodes = nodes.map(node => {
|
|
141
|
+
const {
|
|
142
|
+
nodeSize
|
|
143
|
+
} = node;
|
|
144
|
+
const inlineNode = {
|
|
145
|
+
type: node.type.name,
|
|
146
|
+
pos,
|
|
147
|
+
nodeSize
|
|
148
|
+
};
|
|
149
|
+
const marks = getMarks(node);
|
|
150
|
+
if (marks.length > 0) {
|
|
151
|
+
inlineNode.marks = marks;
|
|
152
|
+
}
|
|
153
|
+
pos += nodeSize;
|
|
154
|
+
return inlineNode;
|
|
155
|
+
});
|
|
156
|
+
return {
|
|
157
|
+
inlineNodes,
|
|
158
|
+
pos
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
const getMarks = node => node.marks.map(mark => mark.type.name);
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { insideTable } from './inside';
|
|
1
|
+
export { insideTable } from './inside';
|
|
2
|
+
export { getDocStructure } from './document-logger';
|