@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.
Files changed (118) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/cjs/collab/index.js +27 -2
  3. package/dist/cjs/core-utils/document-logger.js +171 -0
  4. package/dist/cjs/core-utils/index.js +8 -1
  5. package/dist/cjs/extensibility/Extension/Extension/index.js +151 -0
  6. package/dist/cjs/extensibility/Extension/Extension/styles.js +17 -0
  7. package/dist/cjs/extensibility/Extension/InlineExtension/index.js +50 -0
  8. package/dist/cjs/extensibility/Extension/InlineExtension/styles.js +12 -0
  9. package/dist/cjs/extensibility/Extension/Lozenge.js +95 -0
  10. package/dist/cjs/extensibility/Extension/styles.js +30 -0
  11. package/dist/cjs/extensibility/Extension.js +79 -0
  12. package/dist/cjs/extensibility/ExtensionComponent.js +252 -0
  13. package/dist/cjs/extensibility/ExtensionNodeWrapper.js +21 -0
  14. package/dist/cjs/extensibility/MultiBodiedExtension/index.js +264 -0
  15. package/dist/cjs/extensibility/extensionNodeView.js +91 -0
  16. package/dist/cjs/extensibility/index.js +42 -0
  17. package/dist/cjs/extensibility/types.js +5 -0
  18. package/dist/cjs/media-inline/media-inline-image-card.js +24 -19
  19. package/dist/cjs/monitoring/error.js +3 -2
  20. package/dist/cjs/ui/DropList/index.js +1 -1
  21. package/dist/cjs/utils/index.js +7 -0
  22. package/dist/cjs/utils/insert-node-into-ordered-list.js +91 -0
  23. package/dist/es2019/collab/index.js +54 -1
  24. package/dist/es2019/core-utils/document-logger.js +161 -0
  25. package/dist/es2019/core-utils/index.js +2 -1
  26. package/dist/es2019/extensibility/Extension/Extension/index.js +155 -0
  27. package/dist/es2019/extensibility/Extension/Extension/styles.js +42 -0
  28. package/dist/es2019/extensibility/Extension/InlineExtension/index.js +26 -0
  29. package/dist/es2019/extensibility/Extension/InlineExtension/styles.js +26 -0
  30. package/dist/es2019/extensibility/Extension/Lozenge.js +71 -0
  31. package/dist/es2019/extensibility/Extension/styles.js +62 -0
  32. package/dist/es2019/extensibility/Extension.js +52 -0
  33. package/dist/es2019/extensibility/ExtensionComponent.js +204 -0
  34. package/dist/es2019/extensibility/ExtensionNodeWrapper.js +13 -0
  35. package/dist/es2019/extensibility/MultiBodiedExtension/index.js +283 -0
  36. package/dist/es2019/extensibility/extensionNodeView.js +62 -0
  37. package/dist/es2019/extensibility/index.js +4 -0
  38. package/dist/es2019/extensibility/types.js +1 -0
  39. package/dist/es2019/media-inline/media-inline-image-card.js +24 -19
  40. package/dist/es2019/monitoring/error.js +3 -2
  41. package/dist/es2019/ui/DropList/index.js +1 -1
  42. package/dist/es2019/utils/index.js +1 -0
  43. package/dist/es2019/utils/insert-node-into-ordered-list.js +84 -0
  44. package/dist/esm/collab/index.js +23 -1
  45. package/dist/esm/core-utils/document-logger.js +165 -0
  46. package/dist/esm/core-utils/index.js +2 -1
  47. package/dist/esm/extensibility/Extension/Extension/index.js +146 -0
  48. package/dist/esm/extensibility/Extension/Extension/styles.js +10 -0
  49. package/dist/esm/extensibility/Extension/InlineExtension/index.js +43 -0
  50. package/dist/esm/extensibility/Extension/InlineExtension/styles.js +5 -0
  51. package/dist/esm/extensibility/Extension/Lozenge.js +90 -0
  52. package/dist/esm/extensibility/Extension/styles.js +11 -0
  53. package/dist/esm/extensibility/Extension.js +69 -0
  54. package/dist/esm/extensibility/ExtensionComponent.js +243 -0
  55. package/dist/esm/extensibility/ExtensionNodeWrapper.js +14 -0
  56. package/dist/esm/extensibility/MultiBodiedExtension/index.js +257 -0
  57. package/dist/esm/extensibility/extensionNodeView.js +83 -0
  58. package/dist/esm/extensibility/index.js +4 -0
  59. package/dist/esm/extensibility/types.js +1 -0
  60. package/dist/esm/media-inline/media-inline-image-card.js +24 -19
  61. package/dist/esm/monitoring/error.js +3 -2
  62. package/dist/esm/ui/DropList/index.js +1 -1
  63. package/dist/esm/utils/index.js +1 -0
  64. package/dist/esm/utils/insert-node-into-ordered-list.js +84 -0
  65. package/dist/types/collab/index.d.ts +7 -0
  66. package/dist/types/core-utils/document-logger.d.ts +6 -0
  67. package/dist/types/core-utils/index.d.ts +1 -0
  68. package/dist/types/extensibility/Extension/Extension/index.d.ts +108 -0
  69. package/dist/types/extensibility/Extension/Extension/styles.d.ts +5 -0
  70. package/dist/types/extensibility/Extension/InlineExtension/index.d.ts +12 -0
  71. package/dist/types/extensibility/Extension/InlineExtension/styles.d.ts +1 -0
  72. package/dist/types/extensibility/Extension/Lozenge.d.ts +14 -0
  73. package/dist/types/extensibility/Extension/styles.d.ts +7 -0
  74. package/dist/types/extensibility/Extension.d.ts +29 -0
  75. package/dist/types/extensibility/ExtensionComponent.d.ts +53 -0
  76. package/dist/types/extensibility/ExtensionNodeWrapper.d.ts +14 -0
  77. package/dist/types/extensibility/MultiBodiedExtension/index.d.ts +26 -0
  78. package/dist/types/extensibility/extensionNodeView.d.ts +31 -0
  79. package/dist/types/extensibility/index.d.ts +4 -0
  80. package/dist/types/extensibility/types.d.ts +6 -0
  81. package/dist/types/extensions/types/extension-handler.d.ts +2 -0
  82. package/dist/types/media-inline/media-inline-image-card.d.ts +3 -2
  83. package/dist/types/media-inline/types.d.ts +6 -2
  84. package/dist/types/types/index.d.ts +1 -1
  85. package/dist/types/types/next-editor-plugin.d.ts +0 -1
  86. package/dist/types/ui/DropList/index.d.ts +1 -1
  87. package/dist/types/ui-menu/ColorPickerButton/index.d.ts +1 -1
  88. package/dist/types/ui-menu/ToolbarButton/index.d.ts +1 -1
  89. package/dist/types/utils/index.d.ts +1 -0
  90. package/dist/types/utils/insert-node-into-ordered-list.d.ts +3 -0
  91. package/dist/types-ts4.5/collab/index.d.ts +7 -0
  92. package/dist/types-ts4.5/core-utils/document-logger.d.ts +6 -0
  93. package/dist/types-ts4.5/core-utils/index.d.ts +1 -0
  94. package/dist/types-ts4.5/extensibility/Extension/Extension/index.d.ts +108 -0
  95. package/dist/types-ts4.5/extensibility/Extension/Extension/styles.d.ts +5 -0
  96. package/dist/types-ts4.5/extensibility/Extension/InlineExtension/index.d.ts +12 -0
  97. package/dist/types-ts4.5/extensibility/Extension/InlineExtension/styles.d.ts +1 -0
  98. package/dist/types-ts4.5/extensibility/Extension/Lozenge.d.ts +14 -0
  99. package/dist/types-ts4.5/extensibility/Extension/styles.d.ts +7 -0
  100. package/dist/types-ts4.5/extensibility/Extension.d.ts +29 -0
  101. package/dist/types-ts4.5/extensibility/ExtensionComponent.d.ts +53 -0
  102. package/dist/types-ts4.5/extensibility/ExtensionNodeWrapper.d.ts +14 -0
  103. package/dist/types-ts4.5/extensibility/MultiBodiedExtension/index.d.ts +26 -0
  104. package/dist/types-ts4.5/extensibility/extensionNodeView.d.ts +31 -0
  105. package/dist/types-ts4.5/extensibility/index.d.ts +4 -0
  106. package/dist/types-ts4.5/extensibility/types.d.ts +8 -0
  107. package/dist/types-ts4.5/extensions/types/extension-handler.d.ts +2 -0
  108. package/dist/types-ts4.5/media-inline/media-inline-image-card.d.ts +3 -2
  109. package/dist/types-ts4.5/media-inline/types.d.ts +6 -2
  110. package/dist/types-ts4.5/types/index.d.ts +1 -1
  111. package/dist/types-ts4.5/types/next-editor-plugin.d.ts +0 -3
  112. package/dist/types-ts4.5/ui/DropList/index.d.ts +1 -1
  113. package/dist/types-ts4.5/ui-menu/ColorPickerButton/index.d.ts +1 -1
  114. package/dist/types-ts4.5/ui-menu/ToolbarButton/index.d.ts +1 -1
  115. package/dist/types-ts4.5/utils/index.d.ts +1 -0
  116. package/dist/types-ts4.5/utils/insert-node-into-ordered-list.d.ts +3 -0
  117. package/extensibility/package.json +15 -0
  118. 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; }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -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
- var subscription = mediaClient.file.getFileState(identifier.id, {
44
- collectionName: identifier.collectionName
45
- }).subscribe({
46
- next: function next(fileState) {
47
- setFileState(fileState);
48
- setSubscribeError(undefined);
49
- },
50
- error: function error(e) {
51
- setSubscribeError(e);
52
- }
53
- });
54
- return function () {
55
- subscription.unsubscribe();
56
- };
57
- }, [identifier.collectionName, identifier.id, mediaClient.file]);
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: mediaClient.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 rendererd at a maximum height of H1 and so scaled dimensions
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.33.2";
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.33.2";
25
+ var packageVersion = "76.35.0";
26
26
  var halfFocusRing = 1;
27
27
  var dropOffset = '0, 8';
28
28
  var DropList = /*#__PURE__*/function (_Component) {
@@ -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';