@atlaskit/editor-common 74.5.2 → 74.7.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 (168) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/analytics/index.js +26 -1
  3. package/dist/cjs/analytics/linking-utils.js +84 -0
  4. package/dist/cjs/card/MediaAndEmbedsToolbar/index.js +156 -0
  5. package/dist/cjs/card/index.js +9 -1
  6. package/dist/cjs/messages/index.js +14 -0
  7. package/dist/cjs/messages/link-toolbar.js +60 -0
  8. package/dist/cjs/messages/media-and-embed-toolbar.js +20 -0
  9. package/dist/cjs/monitoring/error.js +1 -1
  10. package/dist/cjs/node-width/index.js +16 -2
  11. package/dist/cjs/react-node-view/getInlineNodeViewProducer.js +225 -0
  12. package/dist/cjs/react-node-view/index.js +13 -0
  13. package/dist/cjs/{ui/Resizer/index.js → resizer/Resizer.js} +6 -3
  14. package/dist/cjs/{resizer.js → resizer/index.js} +1 -1
  15. package/dist/cjs/resizer/utils.js +21 -0
  16. package/dist/cjs/styles/shared/resizer.js +1 -1
  17. package/dist/cjs/styles/shared/table.js +5 -4
  18. package/dist/cjs/types/hyperlink.js +5 -0
  19. package/dist/cjs/types/resizable-media-single.js +5 -0
  20. package/dist/cjs/ui/DropList/index.js +1 -1
  21. package/dist/cjs/ui/LinkSearch/const.js +14 -0
  22. package/dist/cjs/ui/ResizerLegacy/index.js +210 -0
  23. package/dist/cjs/ui/ResizerLegacy/styled.js +15 -0
  24. package/dist/cjs/ui/ResizerLegacy/types.js +5 -0
  25. package/dist/cjs/ui/ResizerLegacy/utils.js +21 -0
  26. package/dist/cjs/ui/index.js +58 -0
  27. package/dist/cjs/utils/document.js +258 -0
  28. package/dist/cjs/utils/editor-core-utils.js +7 -2
  29. package/dist/cjs/utils/filter/privacy-filter.js +55 -0
  30. package/dist/cjs/utils/index.js +75 -0
  31. package/dist/cjs/utils/rich-media-utils.js +131 -0
  32. package/dist/cjs/version.json +1 -1
  33. package/dist/es2019/analytics/index.js +2 -1
  34. package/dist/es2019/analytics/linking-utils.js +74 -0
  35. package/dist/es2019/card/MediaAndEmbedsToolbar/index.js +161 -0
  36. package/dist/es2019/card/index.js +2 -1
  37. package/dist/es2019/messages/index.js +2 -0
  38. package/dist/es2019/messages/link-toolbar.js +53 -0
  39. package/dist/es2019/messages/media-and-embed-toolbar.js +13 -0
  40. package/dist/es2019/monitoring/error.js +1 -1
  41. package/dist/es2019/node-width/index.js +12 -1
  42. package/dist/es2019/react-node-view/getInlineNodeViewProducer.js +219 -0
  43. package/dist/es2019/react-node-view/index.js +1 -0
  44. package/dist/es2019/{ui/Resizer/index.js → resizer/Resizer.js} +5 -3
  45. package/dist/es2019/resizer/index.js +1 -0
  46. package/dist/es2019/resizer/utils.js +12 -0
  47. package/dist/es2019/styles/shared/resizer.js +8 -4
  48. package/dist/es2019/styles/shared/table.js +5 -4
  49. package/dist/es2019/types/resizable-media-single.js +1 -0
  50. package/dist/es2019/ui/DropList/index.js +1 -1
  51. package/dist/es2019/ui/LinkSearch/const.js +4 -0
  52. package/dist/es2019/ui/ResizerLegacy/index.js +191 -0
  53. package/dist/es2019/ui/ResizerLegacy/styled.js +15 -0
  54. package/dist/es2019/ui/ResizerLegacy/types.js +1 -0
  55. package/dist/es2019/ui/ResizerLegacy/utils.js +12 -0
  56. package/dist/es2019/ui/index.js +5 -1
  57. package/dist/es2019/utils/document.js +253 -0
  58. package/dist/es2019/utils/editor-core-utils.js +4 -0
  59. package/dist/es2019/utils/filter/privacy-filter.js +47 -0
  60. package/dist/es2019/utils/index.js +5 -2
  61. package/dist/es2019/utils/rich-media-utils.js +109 -0
  62. package/dist/es2019/version.json +1 -1
  63. package/dist/esm/analytics/index.js +2 -1
  64. package/dist/esm/analytics/linking-utils.js +74 -0
  65. package/dist/esm/card/MediaAndEmbedsToolbar/index.js +146 -0
  66. package/dist/esm/card/index.js +2 -1
  67. package/dist/esm/messages/index.js +2 -0
  68. package/dist/esm/messages/link-toolbar.js +53 -0
  69. package/dist/esm/messages/media-and-embed-toolbar.js +13 -0
  70. package/dist/esm/monitoring/error.js +1 -1
  71. package/dist/esm/node-width/index.js +12 -1
  72. package/dist/esm/react-node-view/getInlineNodeViewProducer.js +215 -0
  73. package/dist/esm/react-node-view/index.js +1 -0
  74. package/dist/esm/{ui/Resizer/index.js → resizer/Resizer.js} +6 -3
  75. package/dist/esm/resizer/index.js +1 -0
  76. package/dist/esm/resizer/types.js +1 -0
  77. package/dist/esm/resizer/utils.js +12 -0
  78. package/dist/esm/styles/shared/resizer.js +1 -1
  79. package/dist/esm/styles/shared/table.js +5 -4
  80. package/dist/esm/types/hyperlink.js +1 -0
  81. package/dist/esm/types/resizable-media-single.js +1 -0
  82. package/dist/esm/ui/DropList/index.js +1 -1
  83. package/dist/esm/ui/LinkSearch/const.js +4 -0
  84. package/dist/esm/ui/ResizerLegacy/index.js +203 -0
  85. package/dist/esm/ui/ResizerLegacy/styled.js +7 -0
  86. package/dist/esm/ui/ResizerLegacy/types.js +1 -0
  87. package/dist/esm/ui/ResizerLegacy/utils.js +12 -0
  88. package/dist/esm/ui/index.js +5 -1
  89. package/dist/esm/utils/document.js +246 -0
  90. package/dist/esm/utils/editor-core-utils.js +4 -0
  91. package/dist/esm/utils/filter/privacy-filter.js +48 -0
  92. package/dist/esm/utils/index.js +5 -2
  93. package/dist/esm/utils/rich-media-utils.js +118 -0
  94. package/dist/esm/version.json +1 -1
  95. package/dist/types/analytics/index.d.ts +2 -0
  96. package/dist/types/analytics/linking-utils.d.ts +14 -0
  97. package/dist/types/card/MediaAndEmbedsToolbar/index.d.ts +11 -0
  98. package/dist/types/card/index.d.ts +1 -0
  99. package/dist/types/messages/index.d.ts +2 -0
  100. package/dist/types/messages/link-toolbar.d.ts +52 -0
  101. package/dist/types/messages/media-and-embed-toolbar.d.ts +12 -0
  102. package/dist/types/node-width/index.d.ts +7 -0
  103. package/dist/types/react-node-view/getInlineNodeViewProducer.d.ts +25 -0
  104. package/dist/types/react-node-view/index.d.ts +3 -0
  105. package/dist/types/{ui/Resizer/index.d.ts → resizer/Resizer.d.ts} +1 -0
  106. package/dist/types/resizer/index.d.ts +2 -0
  107. package/dist/types/resizer/utils.d.ts +6 -0
  108. package/dist/types/styles/shared/table.d.ts +2 -1
  109. package/dist/types/types/hyperlink.d.ts +35 -0
  110. package/dist/types/types/index.d.ts +2 -0
  111. package/dist/types/types/resizable-media-single.d.ts +15 -0
  112. package/dist/types/ui/DropList/index.d.ts +1 -1
  113. package/dist/types/ui/LinkSearch/const.d.ts +4 -0
  114. package/dist/types/ui/ResizerLegacy/index.d.ts +40 -0
  115. package/dist/types/ui/ResizerLegacy/styled.d.ts +2 -0
  116. package/dist/types/ui/ResizerLegacy/types.d.ts +26 -0
  117. package/dist/types/ui/ResizerLegacy/utils.d.ts +6 -0
  118. package/dist/types/ui/index.d.ts +6 -0
  119. package/dist/types/utils/document.d.ts +19 -0
  120. package/dist/types/utils/editor-core-utils.d.ts +1 -0
  121. package/dist/types/utils/filter/privacy-filter.d.ts +9 -0
  122. package/dist/types/utils/index.d.ts +4 -1
  123. package/dist/types/utils/rich-media-utils.d.ts +8 -0
  124. package/dist/types-ts4.5/analytics/index.d.ts +2 -0
  125. package/dist/types-ts4.5/analytics/linking-utils.d.ts +14 -0
  126. package/dist/types-ts4.5/card/MediaAndEmbedsToolbar/index.d.ts +11 -0
  127. package/dist/types-ts4.5/card/index.d.ts +1 -0
  128. package/dist/types-ts4.5/messages/index.d.ts +2 -0
  129. package/dist/types-ts4.5/messages/link-toolbar.d.ts +52 -0
  130. package/dist/types-ts4.5/messages/media-and-embed-toolbar.d.ts +12 -0
  131. package/dist/types-ts4.5/node-width/index.d.ts +7 -0
  132. package/dist/types-ts4.5/react-node-view/getInlineNodeViewProducer.d.ts +25 -0
  133. package/dist/types-ts4.5/react-node-view/index.d.ts +3 -0
  134. package/dist/types-ts4.5/{ui/Resizer/index.d.ts → resizer/Resizer.d.ts} +1 -0
  135. package/dist/types-ts4.5/resizer/index.d.ts +2 -0
  136. package/dist/types-ts4.5/resizer/utils.d.ts +6 -0
  137. package/dist/types-ts4.5/styles/shared/table.d.ts +2 -1
  138. package/dist/types-ts4.5/types/hyperlink.d.ts +35 -0
  139. package/dist/types-ts4.5/types/index.d.ts +2 -0
  140. package/dist/types-ts4.5/types/resizable-media-single.d.ts +15 -0
  141. package/dist/types-ts4.5/ui/DropList/index.d.ts +1 -1
  142. package/dist/types-ts4.5/ui/LinkSearch/const.d.ts +4 -0
  143. package/dist/types-ts4.5/ui/ResizerLegacy/index.d.ts +40 -0
  144. package/dist/types-ts4.5/ui/ResizerLegacy/styled.d.ts +2 -0
  145. package/dist/types-ts4.5/ui/ResizerLegacy/types.d.ts +26 -0
  146. package/dist/types-ts4.5/ui/ResizerLegacy/utils.d.ts +6 -0
  147. package/dist/types-ts4.5/ui/index.d.ts +6 -0
  148. package/dist/types-ts4.5/utils/document.d.ts +19 -0
  149. package/dist/types-ts4.5/utils/editor-core-utils.d.ts +1 -0
  150. package/dist/types-ts4.5/utils/filter/privacy-filter.d.ts +9 -0
  151. package/dist/types-ts4.5/utils/index.d.ts +4 -1
  152. package/dist/types-ts4.5/utils/rich-media-utils.d.ts +8 -0
  153. package/package.json +9 -9
  154. package/resizer/package.json +5 -5
  155. package/dist/cjs/ui/Resizer/utils.js +0 -8
  156. package/dist/es2019/resizer.js +0 -1
  157. package/dist/es2019/ui/Resizer/utils.js +0 -1
  158. package/dist/esm/resizer.js +0 -1
  159. package/dist/esm/ui/Resizer/utils.js +0 -1
  160. package/dist/types/resizer.d.ts +0 -2
  161. package/dist/types/ui/Resizer/utils.d.ts +0 -1
  162. package/dist/types-ts4.5/resizer.d.ts +0 -2
  163. package/dist/types-ts4.5/ui/Resizer/utils.d.ts +0 -1
  164. /package/dist/cjs/{ui/Resizer → resizer}/types.js +0 -0
  165. /package/dist/es2019/{ui/Resizer → resizer}/types.js +0 -0
  166. /package/dist/{esm/ui/Resizer/types.js → es2019/types/hyperlink.js} +0 -0
  167. /package/dist/types/{ui/Resizer → resizer}/types.d.ts +0 -0
  168. /package/dist/types-ts4.5/{ui/Resizer → resizer}/types.d.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 74.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`89989e06f43`](https://bitbucket.org/atlassian/atlassian-frontend/commits/89989e06f43) - [ux] Adding initial Resizer to table plugin behind a platform feature flag, allowing tables to resize to a custom width. This change also includes the following refactors:- change calcTableWidth function to return number instead of px- allowing tables to use breakout values when allowColumnResize is disabled
8
+
9
+ ## 74.6.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`f07a1e036a9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f07a1e036a9) - Refactoring editor-core to prepare for extracting card plugin.
14
+
3
15
  ## 74.5.2
4
16
 
5
17
  ### Patch Changes
@@ -231,6 +231,24 @@ Object.defineProperty(exports, "USER_CONTEXT", {
231
231
  return _types.USER_CONTEXT;
232
232
  }
233
233
  });
234
+ Object.defineProperty(exports, "buildEditLinkPayload", {
235
+ enumerable: true,
236
+ get: function get() {
237
+ return _linkingUtils.buildEditLinkPayload;
238
+ }
239
+ });
240
+ Object.defineProperty(exports, "buildOpenedSettingsPayload", {
241
+ enumerable: true,
242
+ get: function get() {
243
+ return _linkingUtils.buildOpenedSettingsPayload;
244
+ }
245
+ });
246
+ Object.defineProperty(exports, "buildVisitedLinkPayload", {
247
+ enumerable: true,
248
+ get: function get() {
249
+ return _linkingUtils.buildVisitedLinkPayload;
250
+ }
251
+ });
234
252
  Object.defineProperty(exports, "fireAnalyticsEvent", {
235
253
  enumerable: true,
236
254
  get: function get() {
@@ -243,6 +261,13 @@ Object.defineProperty(exports, "getAnalyticsEventsFromTransaction", {
243
261
  return _utils.getAnalyticsEventsFromTransaction;
244
262
  }
245
263
  });
264
+ Object.defineProperty(exports, "unlinkPayload", {
265
+ enumerable: true,
266
+ get: function get() {
267
+ return _linkingUtils.unlinkPayload;
268
+ }
269
+ });
246
270
  var _types = require("./types");
247
271
  var _fireAnalyticsEvent = require("./fire-analytics-event");
248
- var _utils = require("./utils");
272
+ var _utils = require("./utils");
273
+ var _linkingUtils = require("./linking-utils");
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.unlinkPayload = exports.buildVisitedLinkPayload = exports.buildOpenedSettingsPayload = exports.buildEditLinkPayload = void 0;
7
+ var _types = require("./types");
8
+ var buildEditLinkPayload = function buildEditLinkPayload(type) {
9
+ return {
10
+ action: _types.ACTION.CLICKED,
11
+ actionSubject: type === _types.ACTION_SUBJECT_ID.HYPERLINK ? _types.ACTION_SUBJECT.HYPERLINK : _types.ACTION_SUBJECT.SMART_LINK,
12
+ actionSubjectId: _types.ACTION_SUBJECT_ID.EDIT_LINK,
13
+ attributes: type !== _types.ACTION_SUBJECT_ID.HYPERLINK ? {
14
+ display: type
15
+ } : {},
16
+ eventType: _types.EVENT_TYPE.UI
17
+ };
18
+ };
19
+ exports.buildEditLinkPayload = buildEditLinkPayload;
20
+ var mapLinkTypeToCardAppearance = function mapLinkTypeToCardAppearance(type) {
21
+ switch (type) {
22
+ case _types.ACTION_SUBJECT_ID.CARD_INLINE:
23
+ {
24
+ return 'inline';
25
+ }
26
+ case _types.ACTION_SUBJECT_ID.CARD_BLOCK:
27
+ {
28
+ return 'block';
29
+ }
30
+ case _types.ACTION_SUBJECT_ID.EMBEDS:
31
+ {
32
+ return 'embed';
33
+ }
34
+ default:
35
+ {
36
+ return 'url';
37
+ }
38
+ }
39
+ };
40
+ var buildVisitedLinkPayload = function buildVisitedLinkPayload(type) {
41
+ return type === _types.ACTION_SUBJECT_ID.HYPERLINK ? {
42
+ action: _types.ACTION.VISITED,
43
+ actionSubject: _types.ACTION_SUBJECT.HYPERLINK,
44
+ actionSubjectId: undefined,
45
+ attributes: {
46
+ inputMethod: _types.INPUT_METHOD.TOOLBAR
47
+ },
48
+ eventType: _types.EVENT_TYPE.TRACK
49
+ } : {
50
+ action: _types.ACTION.VISITED,
51
+ actionSubject: _types.ACTION_SUBJECT.SMART_LINK,
52
+ actionSubjectId: type,
53
+ attributes: {
54
+ inputMethod: _types.INPUT_METHOD.TOOLBAR
55
+ },
56
+ eventType: _types.EVENT_TYPE.TRACK
57
+ };
58
+ };
59
+ exports.buildVisitedLinkPayload = buildVisitedLinkPayload;
60
+ var buildOpenedSettingsPayload = function buildOpenedSettingsPayload(type) {
61
+ return {
62
+ action: _types.ACTION.CLICKED,
63
+ actionSubject: _types.ACTION_SUBJECT.BUTTON,
64
+ actionSubjectId: _types.ACTION_SUBJECT_ID.GOTO_SMART_LINK_SETTINGS,
65
+ attributes: {
66
+ inputMethod: _types.INPUT_METHOD.TOOLBAR,
67
+ display: mapLinkTypeToCardAppearance(type)
68
+ },
69
+ eventType: _types.EVENT_TYPE.UI
70
+ };
71
+ };
72
+ exports.buildOpenedSettingsPayload = buildOpenedSettingsPayload;
73
+ var unlinkPayload = function unlinkPayload(type) {
74
+ return {
75
+ action: _types.ACTION.UNLINK,
76
+ actionSubject: type === _types.ACTION_SUBJECT_ID.HYPERLINK ? _types.ACTION_SUBJECT.HYPERLINK : _types.ACTION_SUBJECT.SMART_LINK,
77
+ actionSubjectId: type === _types.ACTION_SUBJECT_ID.HYPERLINK ? undefined : type,
78
+ attributes: {
79
+ inputMethod: _types.INPUT_METHOD.TOOLBAR
80
+ },
81
+ eventType: _types.EVENT_TYPE.TRACK
82
+ };
83
+ };
84
+ exports.unlinkPayload = unlinkPayload;
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _prosemirrorState = require("prosemirror-state");
11
+ var _prosemirrorUtils = require("prosemirror-utils");
12
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
13
+ var _alignImageCenter = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/align-image-center"));
14
+ var _alignImageLeft = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/align-image-left"));
15
+ var _alignImageRight = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/align-image-right"));
16
+ var _mediaFullWidth = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/media-full-width"));
17
+ var _mediaWide = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/media-wide"));
18
+ var _mediaWrapLeft = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/media-wrap-left"));
19
+ var _mediaWrapRight = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/media-wrap-right"));
20
+ var _analytics = require("../../analytics");
21
+ var _coreUtils = require("../../core-utils");
22
+ var _messages = _interopRequireWildcard(require("../../messages"));
23
+ var _utils = require("../../utils");
24
+ 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); }
25
+ 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
+ // Workaround as we don't want to import this package into `editor-common`
27
+ // We'll get type errors if this gets out of sync with `editor-plugin-width`.
28
+ var alignmentIcons = [{
29
+ id: 'editor.media.alignLeft',
30
+ value: 'align-start',
31
+ icon: _alignImageLeft.default
32
+ }, {
33
+ id: 'editor.media.alignCenter',
34
+ value: 'center',
35
+ icon: _alignImageCenter.default
36
+ }, {
37
+ id: 'editor.media.alignRight',
38
+ value: 'align-end',
39
+ icon: _alignImageRight.default
40
+ }];
41
+ var wrappingIcons = [{
42
+ id: 'editor.media.wrapLeft',
43
+ value: 'wrap-left',
44
+ icon: _mediaWrapLeft.default
45
+ }, {
46
+ id: 'editor.media.wrapRight',
47
+ value: 'wrap-right',
48
+ icon: _mediaWrapRight.default
49
+ }];
50
+ var breakoutIcons = [{
51
+ value: 'wide',
52
+ icon: _mediaWide.default
53
+ }, {
54
+ value: 'full-width',
55
+ icon: _mediaFullWidth.default
56
+ }];
57
+ var layoutToMessages = {
58
+ 'wrap-left': _messages.mediaAndEmbedToolbarMessages.wrapLeft,
59
+ center: _messages.default.alignImageCenter,
60
+ 'wrap-right': _messages.mediaAndEmbedToolbarMessages.wrapRight,
61
+ wide: _messages.default.layoutWide,
62
+ 'full-width': _messages.default.layoutFullWidth,
63
+ 'align-end': _messages.default.alignImageRight,
64
+ 'align-start': _messages.default.alignImageLeft
65
+ };
66
+ var getNodeWidth = function getNodeWidth(node, schema) {
67
+ var embedCard = schema.nodes.embedCard;
68
+ if (node.type === embedCard) {
69
+ return node.attrs.originalWidth || _editorSharedStyles.DEFAULT_EMBED_CARD_WIDTH;
70
+ }
71
+ return node.firstChild && node.firstChild.attrs.width || node.attrs.width;
72
+ };
73
+ var makeAlign = function makeAlign(layout, nodeType, widthPluginDependencyApi, analyticsApi) {
74
+ return function (state, dispatch) {
75
+ var _ref = state.selection,
76
+ node = _ref.node;
77
+ var previousLayoutType = node.attrs.layout;
78
+ var mediaSingle = state.schema.nodes.mediaSingle;
79
+ if (!dispatch) {
80
+ return false;
81
+ }
82
+ var widthPluginState = widthPluginDependencyApi === null || widthPluginDependencyApi === void 0 ? void 0 : widthPluginDependencyApi.sharedState.currentState();
83
+ if (!node || node.type !== nodeType || !widthPluginState) {
84
+ return false;
85
+ }
86
+ var nodeWidth = getNodeWidth(node, state.schema);
87
+ var newAttrs = (0, _utils.alignAttributes)(layout, node.attrs, undefined, nodeWidth, widthPluginState.lineLength);
88
+ var tr = state.tr.setNodeMarkup(state.selection.from, undefined, newAttrs);
89
+ tr.setMeta('scrollIntoView', false);
90
+ // when image captions are enabled, the wrong node gets selected after
91
+ // setNodeMarkup is called
92
+ tr.setSelection(_prosemirrorState.NodeSelection.create(tr.doc, state.selection.from));
93
+ var paragraph = tr.doc.type.schema.nodes.paragraph;
94
+
95
+ // see https://product-fabric.atlassian.net/browse/ED-15518 insert a new paragraph when an embedded card is wrapped left or right
96
+ if (layout.startsWith('wrap') && paragraph && !tr.doc.nodeAt(state.selection.to) && ((0, _coreUtils.insideTable)(state) || (0, _utils.isInLayoutColumn)(state))) {
97
+ tr.insert(state.selection.to, paragraph.createAndFill());
98
+ }
99
+ analyticsApi === null || analyticsApi === void 0 ? void 0 : analyticsApi.attachAnalyticsEvent({
100
+ eventType: _analytics.EVENT_TYPE.TRACK,
101
+ action: _analytics.ACTION.SELECTED,
102
+ actionSubject: _analytics.ACTION_SUBJECT[node.type === mediaSingle ? 'MEDIA_SINGLE' : 'EMBEDS'],
103
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.RICH_MEDIA_LAYOUT,
104
+ attributes: {
105
+ previousLayoutType: previousLayoutType,
106
+ currentLayoutType: layout
107
+ }
108
+ })(tr);
109
+ dispatch(tr);
110
+ return true;
111
+ };
112
+ };
113
+ var mapIconsToToolbarItem = function mapIconsToToolbarItem(icons, layout, intl, nodeType, widthPluginDependencyApi, analyticsApi) {
114
+ return icons.map(function (toolbarItem) {
115
+ var id = toolbarItem.id,
116
+ value = toolbarItem.value;
117
+ return {
118
+ id: id,
119
+ type: 'button',
120
+ icon: toolbarItem.icon,
121
+ title: intl.formatMessage(layoutToMessages[value]),
122
+ selected: layout === value,
123
+ onClick: makeAlign(value, nodeType, widthPluginDependencyApi, analyticsApi)
124
+ };
125
+ });
126
+ };
127
+ var shouldHideLayoutToolbar = function shouldHideLayoutToolbar(selection, _ref2, allowResizingInTables) {
128
+ var nodes = _ref2.nodes;
129
+ return (0, _prosemirrorUtils.hasParentNodeOfType)([nodes.bodiedExtension, nodes.listItem, nodes.expand, nodes.nestedExpand].concat((0, _toConsumableArray2.default)(allowResizingInTables ? [] : [nodes.table])).filter(Boolean))(selection);
130
+ };
131
+ var buildLayoutButtons = function buildLayoutButtons(state, intl, nodeType, widthPluginDependencyApi, analyticsApi, allowResizing, allowResizingInTables) {
132
+ var allowWrapping = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : true;
133
+ var allowAlignment = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : true;
134
+ var selection = state.selection;
135
+ if (!(selection instanceof _prosemirrorState.NodeSelection) || !selection.node || !nodeType || shouldHideLayoutToolbar(selection, state.schema, allowResizingInTables)) {
136
+ return [];
137
+ }
138
+ var layout = selection.node.attrs.layout;
139
+ var alignmentToolbarItems = allowAlignment ? mapIconsToToolbarItem(alignmentIcons, layout, intl, nodeType, widthPluginDependencyApi, analyticsApi) : [];
140
+ var wrappingToolbarItems = allowWrapping ? mapIconsToToolbarItem(wrappingIcons, layout, intl, nodeType, widthPluginDependencyApi, analyticsApi) : [];
141
+ var breakOutToolbarItems = !allowResizing ? mapIconsToToolbarItem(breakoutIcons, layout, intl, nodeType, widthPluginDependencyApi, analyticsApi) : [];
142
+ var items = [].concat((0, _toConsumableArray2.default)(alignmentToolbarItems), (0, _toConsumableArray2.default)(getSeparatorBetweenAlignmentAndWrapping(allowAlignment, allowWrapping)), (0, _toConsumableArray2.default)(wrappingToolbarItems), (0, _toConsumableArray2.default)(getSeparatorBeforeBreakoutItems(allowAlignment, allowWrapping, allowResizing)), (0, _toConsumableArray2.default)(breakOutToolbarItems));
143
+ return items;
144
+ };
145
+ var getSeparatorBetweenAlignmentAndWrapping = function getSeparatorBetweenAlignmentAndWrapping(allowAlignment, allowWrapping) {
146
+ return allowAlignment && allowWrapping ? [{
147
+ type: 'separator'
148
+ }] : [];
149
+ };
150
+ var getSeparatorBeforeBreakoutItems = function getSeparatorBeforeBreakoutItems(allowAlignment, allowWrapping, allowResizing) {
151
+ return !allowResizing && (allowAlignment || allowWrapping) ? [{
152
+ type: 'separator'
153
+ }] : [];
154
+ };
155
+ var _default = buildLayoutButtons;
156
+ exports.default = _default;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
@@ -9,6 +10,12 @@ Object.defineProperty(exports, "addLinkMetadata", {
9
10
  return _utils.addLinkMetadata;
10
11
  }
11
12
  });
13
+ Object.defineProperty(exports, "buildLayoutButtons", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _MediaAndEmbedsToolbar.default;
17
+ }
18
+ });
12
19
  Object.defineProperty(exports, "commandWithMetadata", {
13
20
  enumerable: true,
14
21
  get: function get() {
@@ -21,4 +28,5 @@ Object.defineProperty(exports, "getLinkMetadataFromTransaction", {
21
28
  return _utils.getLinkMetadataFromTransaction;
22
29
  }
23
30
  });
24
- var _utils = require("./utils");
31
+ var _utils = require("./utils");
32
+ var _MediaAndEmbedsToolbar = _interopRequireDefault(require("./MediaAndEmbedsToolbar"));
@@ -22,6 +22,18 @@ Object.defineProperty(exports, "linkMessages", {
22
22
  return _link.linkMessages;
23
23
  }
24
24
  });
25
+ Object.defineProperty(exports, "linkToolbarMessages", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _linkToolbar.linkToolbarMessages;
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "mediaAndEmbedToolbarMessages", {
32
+ enumerable: true,
33
+ get: function get() {
34
+ return _mediaAndEmbedToolbar.toolbarMessages;
35
+ }
36
+ });
25
37
  Object.defineProperty(exports, "toolbarInsertBlockMessages", {
26
38
  enumerable: true,
27
39
  get: function get() {
@@ -37,9 +49,11 @@ Object.defineProperty(exports, "unsupportedContentMessages", {
37
49
  var _reactIntlNext = require("react-intl-next");
38
50
  var _codeBidiWarning = require("./codeBidiWarning");
39
51
  var _link = require("./link");
52
+ var _linkToolbar = require("./link-toolbar");
40
53
  var _unsupportedContent = require("./unsupportedContent");
41
54
  var _codeBlockButton = require("./codeBlockButton");
42
55
  var _insertBlock = require("./insert-block");
56
+ var _mediaAndEmbedToolbar = require("./media-and-embed-toolbar");
43
57
  var _default = (0, _reactIntlNext.defineMessages)({
44
58
  layoutFixedWidth: {
45
59
  id: 'fabric.editor.layoutFixedWidth',
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.linkToolbarMessages = void 0;
7
+ var _reactIntlNext = require("react-intl-next");
8
+ var linkToolbarMessages = (0, _reactIntlNext.defineMessages)({
9
+ addLink: {
10
+ id: 'fabric.editor.mediaAddLink',
11
+ defaultMessage: 'Add link',
12
+ description: 'Add link'
13
+ },
14
+ unableToOpenLink: {
15
+ id: 'fabric.editor.unableToOpenLink',
16
+ defaultMessage: 'Unable to open this link',
17
+ description: 'Unable to open this link'
18
+ },
19
+ unlink: {
20
+ id: 'fabric.editor.unlink',
21
+ defaultMessage: 'Unlink',
22
+ description: 'Removes the hyperlink but keeps your text.'
23
+ },
24
+ editLink: {
25
+ id: 'fabric.editor.editLink',
26
+ defaultMessage: 'Edit link',
27
+ description: 'Edit the link, update display text'
28
+ },
29
+ placeholder: {
30
+ id: 'fabric.editor.hyperlinkToolbarPlaceholder',
31
+ defaultMessage: 'Paste or search for link',
32
+ description: 'Paste or search for link'
33
+ },
34
+ linkPlaceholder: {
35
+ id: 'fabric.editor.linkPlaceholder',
36
+ defaultMessage: 'Paste link',
37
+ description: 'Create a new link by pasting a URL.'
38
+ },
39
+ linkAddress: {
40
+ id: 'fabric.editor.linkAddress',
41
+ defaultMessage: 'Link address',
42
+ description: 'Insert the address of the link'
43
+ },
44
+ invalidLink: {
45
+ id: 'fabric.editor.invalidLink',
46
+ defaultMessage: 'Please enter a valid link.',
47
+ description: 'Please enter a valid link.'
48
+ },
49
+ emptyLink: {
50
+ id: 'fabric.editor.emptyLink',
51
+ defaultMessage: 'Please enter a link.',
52
+ description: 'Please enter a link.'
53
+ },
54
+ settingsLink: {
55
+ id: 'fabric.editor.settingsLinks',
56
+ defaultMessage: 'Go to Link Preferences',
57
+ description: 'Go to Link Preferences'
58
+ }
59
+ });
60
+ exports.linkToolbarMessages = linkToolbarMessages;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toolbarMessages = void 0;
7
+ var _reactIntlNext = require("react-intl-next");
8
+ var toolbarMessages = (0, _reactIntlNext.defineMessages)({
9
+ wrapLeft: {
10
+ id: 'fabric.editor.wrapLeft',
11
+ defaultMessage: 'Wrap left',
12
+ description: 'Aligns your image to the left and wraps text around it.'
13
+ },
14
+ wrapRight: {
15
+ id: 'fabric.editor.wrapRight',
16
+ defaultMessage: 'Wrap right',
17
+ description: 'Aligns your image to the right and wraps text around it.'
18
+ }
19
+ });
20
+ exports.toolbarMessages = toolbarMessages;
@@ -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 = "74.5.2";
19
+ var packageVersion = "74.7.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
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getParentNodeWidth = void 0;
6
+ exports.layoutToWidth = exports.getTableContainerWidth = exports.getParentNodeWidth = void 0;
7
7
  var _prosemirrorUtils = require("prosemirror-utils");
8
8
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
9
9
  var _constants = require("@atlaskit/theme/constants");
@@ -12,10 +12,17 @@ var _layout = require("../styles/shared/layout");
12
12
  var _breakout = require("../utils/breakout");
13
13
  // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
14
14
 
15
+ var layoutToWidth = {
16
+ default: _editorSharedStyles.akEditorDefaultLayoutWidth,
17
+ wide: _editorSharedStyles.akEditorWideLayoutWidth,
18
+ 'full-width': _editorSharedStyles.akEditorFullWidthLayoutWidth
19
+ };
20
+
15
21
  /**
16
22
  * Calculates width of parent node of a nested node (inside layouts, extension)
17
23
  * If current node selection is not nested will return undefined
18
24
  */
25
+ exports.layoutToWidth = layoutToWidth;
19
26
  var getParentNodeWidth = function getParentNodeWidth(pos, state, containerWidth, isFullWidthModeEnabled) {
20
27
  if (!pos) {
21
28
  return;
@@ -83,4 +90,11 @@ var getNestedParentNode = function getNestedParentNode(tablePos, state) {
83
90
  };
84
91
  var calcBreakoutNodeWidth = function calcBreakoutNodeWidth(layout, containerWidth, isFullWidthModeEnabled) {
85
92
  return isFullWidthModeEnabled ? Math.min(containerWidth.lineLength, _editorSharedStyles.akEditorFullWidthLayoutWidth) : (0, _breakout.absoluteBreakoutWidth)(layout, containerWidth.width);
86
- };
93
+ };
94
+ var getTableContainerWidth = function getTableContainerWidth(node) {
95
+ if (node.attrs.width) {
96
+ return node.attrs.width;
97
+ }
98
+ return layoutToWidth[node.attrs.layout];
99
+ };
100
+ exports.getTableContainerWidth = getTableContainerWidth;