@atlaskit/editor-common 69.1.2 → 69.2.2

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 (113) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/cjs/__tests_external__/cases/fundamentals/collection.js +21 -0
  3. package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +25 -0
  4. package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +37 -0
  5. package/dist/cjs/__tests_external__/cases/media/test-cases/alt-text.js +45 -0
  6. package/dist/cjs/__tests_external__/cases/media/test-cases/caption.js +44 -0
  7. package/dist/cjs/__tests_external__/cases/media/test-cases/index.js +23 -0
  8. package/dist/cjs/__tests_external__/cases/media/test-cases/types.js +5 -0
  9. package/dist/cjs/__tests_external__/cases/media/test-cases/upload.js +38 -0
  10. package/dist/cjs/__tests_external__/cases/smart-links/index.js +37 -0
  11. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/delete.js +43 -0
  12. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/edit.js +77 -0
  13. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/index.js +23 -0
  14. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/insert.js +42 -0
  15. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/delete.js +43 -0
  16. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/edit.js +77 -0
  17. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/index.js +23 -0
  18. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/insert.js +42 -0
  19. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/delete.js +42 -0
  20. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/edit.js +75 -0
  21. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/index.js +25 -0
  22. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/insert.js +41 -0
  23. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +44 -0
  24. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/types.js +5 -0
  25. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/index.js +19 -0
  26. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/insert.js +39 -0
  27. package/dist/cjs/__tests_external__/cases/types.js +5 -0
  28. package/dist/cjs/__tests_external__/index.js +55 -0
  29. package/dist/cjs/__tests_external__/page-objects/Editor.js +71 -0
  30. package/dist/cjs/__tests_external__/page-objects/EditorMedia.js +98 -0
  31. package/dist/cjs/__tests_external__/page-objects/EditorSmartLink.js +232 -0
  32. package/dist/cjs/__tests_external__/page-objects/Renderer.js +59 -0
  33. package/dist/cjs/messages/codeBlockCopyButton.js +22 -0
  34. package/dist/cjs/messages/index.js +9 -1
  35. package/dist/cjs/styles/shared/block-marks.js +1 -1
  36. package/dist/cjs/styles/shared/code-block.js +4 -2
  37. package/dist/cjs/version.json +1 -1
  38. package/dist/es2019/__tests_external__/cases/fundamentals/collection.js +7 -0
  39. package/dist/es2019/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +12 -0
  40. package/dist/es2019/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +25 -0
  41. package/dist/es2019/__tests_external__/cases/media/test-cases/alt-text.js +29 -0
  42. package/dist/es2019/__tests_external__/cases/media/test-cases/caption.js +28 -0
  43. package/dist/es2019/__tests_external__/cases/media/test-cases/index.js +8 -0
  44. package/dist/es2019/__tests_external__/cases/media/test-cases/types.js +1 -0
  45. package/dist/es2019/__tests_external__/cases/media/test-cases/upload.js +23 -0
  46. package/dist/es2019/__tests_external__/cases/smart-links/index.js +4 -0
  47. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/delete.js +29 -0
  48. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/edit.js +59 -0
  49. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/index.js +8 -0
  50. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/insert.js +28 -0
  51. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/delete.js +29 -0
  52. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/edit.js +59 -0
  53. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/index.js +8 -0
  54. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/insert.js +28 -0
  55. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/delete.js +28 -0
  56. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/edit.js +57 -0
  57. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/index.js +9 -0
  58. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/insert.js +27 -0
  59. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +30 -0
  60. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/types.js +1 -0
  61. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/url/index.js +6 -0
  62. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/url/insert.js +25 -0
  63. package/dist/es2019/__tests_external__/cases/types.js +1 -0
  64. package/dist/es2019/__tests_external__/index.js +4 -0
  65. package/dist/es2019/__tests_external__/page-objects/Editor.js +29 -0
  66. package/dist/es2019/__tests_external__/page-objects/EditorMedia.js +51 -0
  67. package/dist/es2019/__tests_external__/page-objects/EditorSmartLink.js +168 -0
  68. package/dist/es2019/__tests_external__/page-objects/Renderer.js +17 -0
  69. package/dist/es2019/messages/codeBlockCopyButton.js +13 -0
  70. package/dist/es2019/messages/index.js +2 -1
  71. package/dist/es2019/styles/shared/block-marks.js +4 -2
  72. package/dist/es2019/styles/shared/code-block.js +18 -0
  73. package/dist/es2019/version.json +1 -1
  74. package/dist/esm/__tests_external__/cases/fundamentals/collection.js +9 -0
  75. package/dist/esm/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +14 -0
  76. package/dist/esm/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +25 -0
  77. package/dist/esm/__tests_external__/cases/media/test-cases/alt-text.js +32 -0
  78. package/dist/esm/__tests_external__/cases/media/test-cases/caption.js +31 -0
  79. package/dist/esm/__tests_external__/cases/media/test-cases/index.js +10 -0
  80. package/dist/esm/__tests_external__/cases/media/test-cases/types.js +1 -0
  81. package/dist/esm/__tests_external__/cases/media/test-cases/upload.js +26 -0
  82. package/dist/esm/__tests_external__/cases/smart-links/index.js +4 -0
  83. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/delete.js +30 -0
  84. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/edit.js +61 -0
  85. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/index.js +10 -0
  86. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/insert.js +29 -0
  87. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/delete.js +30 -0
  88. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/edit.js +61 -0
  89. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/index.js +10 -0
  90. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/insert.js +29 -0
  91. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/delete.js +29 -0
  92. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/edit.js +59 -0
  93. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/index.js +11 -0
  94. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/insert.js +28 -0
  95. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +31 -0
  96. package/dist/esm/__tests_external__/cases/smart-links/test-cases/types.js +1 -0
  97. package/dist/esm/__tests_external__/cases/smart-links/test-cases/url/index.js +8 -0
  98. package/dist/esm/__tests_external__/cases/smart-links/test-cases/url/insert.js +26 -0
  99. package/dist/esm/__tests_external__/cases/types.js +1 -0
  100. package/dist/esm/__tests_external__/index.js +4 -0
  101. package/dist/esm/__tests_external__/page-objects/Editor.js +56 -0
  102. package/dist/esm/__tests_external__/page-objects/EditorMedia.js +83 -0
  103. package/dist/esm/__tests_external__/page-objects/EditorSmartLink.js +218 -0
  104. package/dist/esm/__tests_external__/page-objects/Renderer.js +45 -0
  105. package/dist/esm/messages/codeBlockCopyButton.js +13 -0
  106. package/dist/esm/messages/index.js +2 -1
  107. package/dist/esm/styles/shared/block-marks.js +1 -1
  108. package/dist/esm/styles/shared/code-block.js +4 -2
  109. package/dist/esm/version.json +1 -1
  110. package/dist/types/messages/codeBlockCopyButton.d.ts +12 -0
  111. package/dist/types/messages/index.d.ts +1 -0
  112. package/dist/types/styles/shared/code-block.d.ts +2 -0
  113. package/package.json +10 -11
@@ -0,0 +1,26 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { InlineCardPageObject } from '@atlaskit/smart-card/in-product';
3
+ import { EditorPageObject } from '../../../../page-objects/Editor';
4
+ import { EditorSmartLinkPageObject } from '../../../../page-objects/EditorSmartLink';
5
+ export var switchToUrlTestCase = function switchToUrlTestCase(_ref) {
6
+ var ui = _ref.ui,
7
+ url = _ref.url;
8
+ return new InProductTestCase({
9
+ title: 'switching to a Blue Link works',
10
+ id: 'switch-to-url',
11
+ assertions: function assertions(cy) {
12
+ var editor = new EditorPageObject(cy);
13
+ var editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ var inlineCard = new InlineCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('url');
17
+ inlineCard.assertHrefRendered(url);
18
+
19
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
20
+ var renderer = editor.publish(ui);
21
+ renderer.expectContentReady();
22
+ inlineCard.assertHrefRendered(url);
23
+ }
24
+ }
25
+ });
26
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export { EditorPageObject } from './page-objects/Editor';
2
+ export { fundamentalsTestCollection } from './cases/fundamentals/collection';
3
+ export { inlineSmartLinksTestCollection, blockSmartLinksTestCollection, embedSmartLinksTestCollection, blueLinksTestCollection } from './cases/smart-links';
4
+ export { mediaTestCollection } from './cases/media/test-cases';
@@ -0,0 +1,56 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _inherits from "@babel/runtime/helpers/inherits";
4
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
+
7
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8
+
9
+ 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; } }
10
+
11
+ import { InProductTestPageObject } from '@atlaskit/in-product-testing';
12
+ import { RendererPageObject } from './Renderer';
13
+ export var EditorPageObject = /*#__PURE__*/function (_InProductTestPageObj) {
14
+ _inherits(EditorPageObject, _InProductTestPageObj);
15
+
16
+ var _super = _createSuper(EditorPageObject);
17
+
18
+ function EditorPageObject() {
19
+ _classCallCheck(this, EditorPageObject);
20
+
21
+ return _super.apply(this, arguments);
22
+ }
23
+
24
+ _createClass(EditorPageObject, [{
25
+ key: "getEditorArea",
26
+ value: function getEditorArea() {
27
+ return this.cy.get('div.ProseMirror', {
28
+ timeout: 30000
29
+ });
30
+ }
31
+ }, {
32
+ key: "getTitleArea",
33
+ value: function getTitleArea() {
34
+ return this.cy.get('[data-test-id="editor-title"]');
35
+ }
36
+ }, {
37
+ key: "publish",
38
+ value: function publish(opts) {
39
+ if (opts !== null && opts !== void 0 && opts.publishButton) {
40
+ this.cy.get(opts.publishButton).click();
41
+ return new RendererPageObject(this.cy);
42
+ }
43
+
44
+ throw Error('No publish button selector supplied!');
45
+ }
46
+ }, {
47
+ key: "upload",
48
+ value: function upload(fixtures) {
49
+ return this.getEditorArea().attachFile(fixtures, {
50
+ subjectType: 'drag-n-drop'
51
+ });
52
+ }
53
+ }]);
54
+
55
+ return EditorPageObject;
56
+ }(InProductTestPageObject);
@@ -0,0 +1,83 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
+ import _inherits from "@babel/runtime/helpers/inherits";
5
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
+
9
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+
11
+ 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; } }
12
+
13
+ import { InProductTestPageObject } from '@atlaskit/in-product-testing';
14
+ import { MediaCardPageObject } from '@atlaskit/media-card/in-product';
15
+ export var EditorMediaPageObject = /*#__PURE__*/function (_InProductTestPageObj) {
16
+ _inherits(EditorMediaPageObject, _InProductTestPageObj);
17
+
18
+ var _super = _createSuper(EditorMediaPageObject);
19
+
20
+ function EditorMediaPageObject(cy) {
21
+ var _this;
22
+
23
+ _classCallCheck(this, EditorMediaPageObject);
24
+
25
+ _this = _super.call(this, cy);
26
+
27
+ _defineProperty(_assertThisInitialized(_this), "testIds", {
28
+ altTextButton: 'alt-text-edit-button',
29
+ altTextInput: 'alt-text-input',
30
+ captionPlaceholder: 'caption-placeholder',
31
+ caption: 'media-caption'
32
+ });
33
+
34
+ _this.cy = cy;
35
+ return _this;
36
+ }
37
+
38
+ _createClass(EditorMediaPageObject, [{
39
+ key: "addAltTextToImage",
40
+ value: function addAltTextToImage(altText) {
41
+ var cardNumber = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
42
+ var mediaCard = new MediaCardPageObject(this.cy);
43
+ mediaCard.findCardNth(cardNumber).click();
44
+ this.getAltTextButton().click();
45
+ this.getAltTextInput().type("".concat(altText, "{enter}"));
46
+ }
47
+ }, {
48
+ key: "addCaptionToImage",
49
+ value: function addCaptionToImage(captionText) {
50
+ var cardNumber = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
51
+ var mediaCard = new MediaCardPageObject(this.cy);
52
+ mediaCard.findCardNth(cardNumber).click();
53
+ this.getCaptionInput().type("".concat(captionText, "{enter}"));
54
+ }
55
+ }, {
56
+ key: "assertCaptionText",
57
+ value: function assertCaptionText(captionText) {
58
+ return this.cy.get(this.toTestId(this.testIds.caption)).should('have.text', captionText);
59
+ }
60
+ }, {
61
+ key: "assertAltText",
62
+ value: function assertAltText(altText) {
63
+ return this.cy.get('.mediaView-content-wrap').should('have.attr', 'alt', altText);
64
+ }
65
+ }, {
66
+ key: "getAltTextButton",
67
+ value: function getAltTextButton() {
68
+ return this.cy.get(this.toTestId(this.testIds.altTextButton)).should('be.visible');
69
+ }
70
+ }, {
71
+ key: "getAltTextInput",
72
+ value: function getAltTextInput() {
73
+ return this.cy.get(this.toTestId(this.testIds.altTextInput)).should('be.visible');
74
+ }
75
+ }, {
76
+ key: "getCaptionInput",
77
+ value: function getCaptionInput() {
78
+ return this.cy.get(this.toTestId(this.testIds.captionPlaceholder)).should('be.visible');
79
+ }
80
+ }]);
81
+
82
+ return EditorMediaPageObject;
83
+ }(InProductTestPageObject);
@@ -0,0 +1,218 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
+ import _inherits from "@babel/runtime/helpers/inherits";
5
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
+
9
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+
11
+ 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; } }
12
+
13
+ import { InProductTestPageObject } from '@atlaskit/in-product-testing';
14
+ import { BlockCardPageObject, EmbedCardPageObject, InlineCardPageObject } from '@atlaskit/smart-card/in-product';
15
+ export var EditorSmartLinkPageObject = /*#__PURE__*/function (_InProductTestPageObj) {
16
+ _inherits(EditorSmartLinkPageObject, _InProductTestPageObj);
17
+
18
+ var _super = _createSuper(EditorSmartLinkPageObject);
19
+
20
+ function EditorSmartLinkPageObject(cy, editor) {
21
+ var _this;
22
+
23
+ _classCallCheck(this, EditorSmartLinkPageObject);
24
+
25
+ _this = _super.call(this, cy);
26
+
27
+ _defineProperty(_assertThisInitialized(_this), "testIds", {
28
+ viewSwitcher: 'link-toolbar-appearance-button',
29
+ displayUrlOption: 'url-appearance',
30
+ displayInlineOption: 'inline-appearance',
31
+ displayCardOption: 'block-appearance',
32
+ displayEmbedOption: 'embed-appearance',
33
+ linkUrl: 'link-url',
34
+ linkLabel: 'link-label'
35
+ });
36
+
37
+ _defineProperty(_assertThisInitialized(_this), "ariaLabels", {
38
+ editLink: 'Edit link',
39
+ deleteLink: 'Remove',
40
+ unlinkLink: 'Unlink'
41
+ });
42
+
43
+ _this.cy = cy;
44
+ _this.editor = editor;
45
+ return _this;
46
+ }
47
+
48
+ _createClass(EditorSmartLinkPageObject, [{
49
+ key: "getViewSwitcher",
50
+ value: function getViewSwitcher() {
51
+ return this.cy.get(this.toTestId(this.testIds.viewSwitcher));
52
+ }
53
+ }, {
54
+ key: "openViewSwitcher",
55
+ value: function openViewSwitcher() {
56
+ return this.getViewSwitcher().click();
57
+ }
58
+ }, {
59
+ key: "getViewSwitcherOption",
60
+ value: function getViewSwitcherOption() {
61
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
62
+
63
+ switch (type) {
64
+ case 'url':
65
+ {
66
+ return this.cy.get(this.toTestId(this.testIds.displayUrlOption));
67
+ }
68
+
69
+ case 'inline':
70
+ {
71
+ return this.cy.get(this.toTestId(this.testIds.displayInlineOption));
72
+ }
73
+
74
+ case 'block':
75
+ {
76
+ return this.cy.get(this.toTestId(this.testIds.displayCardOption));
77
+ }
78
+
79
+ case 'embed':
80
+ {
81
+ return this.cy.get(this.toTestId(this.testIds.displayEmbedOption));
82
+ }
83
+
84
+ default:
85
+ {
86
+ throw Error("Attempted to switch to `".concat(type, "`: unknown Smart Link view switcher option!"));
87
+ }
88
+ }
89
+ }
90
+ }, {
91
+ key: "selectViewSwitcherOption",
92
+ value: function selectViewSwitcherOption() {
93
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
94
+ var viewSwitcherOption = this.getViewSwitcherOption(type);
95
+ return viewSwitcherOption.click();
96
+ }
97
+ }, {
98
+ key: "insertSmartLinkByTyping",
99
+ value: function insertSmartLinkByTyping(url) {
100
+ return this.editor.getEditorArea().focus().type("".concat(url, " {enter}"), {
101
+ delay: 0
102
+ });
103
+ }
104
+ }, {
105
+ key: "switchAfterInsert",
106
+ value: function switchAfterInsert() {
107
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
108
+ // NOTE: inline inserted by default for all Smart Links.
109
+ var inlineCard = new InlineCardPageObject(this.cy);
110
+ inlineCard.click();
111
+ this.openViewSwitcher();
112
+ this.selectViewSwitcherOption(type);
113
+ }
114
+ }, {
115
+ key: "getSmartLink",
116
+ value: function getSmartLink() {
117
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
118
+
119
+ switch (type) {
120
+ case 'inline':
121
+ {
122
+ return new InlineCardPageObject(this.cy);
123
+ }
124
+
125
+ case 'block':
126
+ {
127
+ return new BlockCardPageObject(this.cy);
128
+ }
129
+
130
+ case 'embed':
131
+ {
132
+ return new EmbedCardPageObject(this.cy);
133
+ }
134
+
135
+ case 'url':
136
+ {
137
+ return new InlineCardPageObject(this.cy);
138
+ }
139
+ }
140
+ }
141
+ }, {
142
+ key: "getEditLinkButton",
143
+ value: function getEditLinkButton() {
144
+ return this.cy.get(this.toAriaLabel(this.ariaLabels.editLink));
145
+ }
146
+ }, {
147
+ key: "openEditLinkMenu",
148
+ value: function openEditLinkMenu() {
149
+ var button = this.getEditLinkButton();
150
+ return button.click();
151
+ }
152
+ }, {
153
+ key: "changeLinkLabel",
154
+ value: function changeLinkLabel(title) {
155
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'inline';
156
+ var smartLink = this.getSmartLink(type);
157
+ smartLink.click();
158
+ this.openEditLinkMenu();
159
+ this.typeIntoLabelField(title);
160
+ }
161
+ }, {
162
+ key: "changeLinkUrl",
163
+ value: function changeLinkUrl(url) {
164
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'inline';
165
+ this.getSmartLink(type).click();
166
+ this.openEditLinkMenu();
167
+ this.typeIntoUrlField(url);
168
+ }
169
+ }, {
170
+ key: "typeIntoLabelField",
171
+ value: function typeIntoLabelField(title) {
172
+ var titleField = this.cy.get(this.toTestId(this.testIds.linkLabel)).focus();
173
+ titleField.clear();
174
+ titleField.type("".concat(title, "{enter}"), {
175
+ delay: 0
176
+ });
177
+ }
178
+ }, {
179
+ key: "typeIntoUrlField",
180
+ value: function typeIntoUrlField(url) {
181
+ var urlField = this.cy.get(this.toTestId(this.testIds.linkUrl)).focus();
182
+ urlField.clear();
183
+ urlField.type("".concat(url, "{enter}"), {
184
+ delay: 0
185
+ });
186
+ }
187
+ }, {
188
+ key: "deleteSmartLink",
189
+ value: function deleteSmartLink() {
190
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
191
+ this.getSmartLink(type).click();
192
+ this.clickDeleteIcon();
193
+ }
194
+ }, {
195
+ key: "clickDeleteIcon",
196
+ value: function clickDeleteIcon() {
197
+ var ariaLabelSelector = this.toAriaLabel(this.ariaLabels.deleteLink);
198
+ var deleteButtonSelector = "button".concat(ariaLabelSelector);
199
+ return this.cy.get(deleteButtonSelector).click();
200
+ }
201
+ }, {
202
+ key: "unlink",
203
+ value: function unlink() {
204
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';
205
+ this.getSmartLink(type).click();
206
+ this.clickUnlinkIcon();
207
+ }
208
+ }, {
209
+ key: "clickUnlinkIcon",
210
+ value: function clickUnlinkIcon() {
211
+ var ariaLabelSelector = this.toAriaLabel(this.ariaLabels.unlinkLink);
212
+ var unlinkButtonSelector = "button".concat(ariaLabelSelector);
213
+ return this.cy.get(unlinkButtonSelector).click();
214
+ }
215
+ }]);
216
+
217
+ return EditorSmartLinkPageObject;
218
+ }(InProductTestPageObject);
@@ -0,0 +1,45 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _inherits from "@babel/runtime/helpers/inherits";
4
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
+
7
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8
+
9
+ 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; } }
10
+
11
+ import { InProductTestPageObject } from '@atlaskit/in-product-testing';
12
+ export var RendererPageObject = /*#__PURE__*/function (_InProductTestPageObj) {
13
+ _inherits(RendererPageObject, _InProductTestPageObj);
14
+
15
+ var _super = _createSuper(RendererPageObject);
16
+
17
+ function RendererPageObject() {
18
+ _classCallCheck(this, RendererPageObject);
19
+
20
+ return _super.apply(this, arguments);
21
+ }
22
+
23
+ _createClass(RendererPageObject, [{
24
+ key: "getContent",
25
+ value: function getContent() {
26
+ return this.cy.get('.ak-renderer-document');
27
+ }
28
+ }, {
29
+ key: "expectContentReady",
30
+ value: function expectContentReady() {
31
+ return this.cy.get('.ak-renderer-document').should('be.visible');
32
+ }
33
+ }, {
34
+ key: "expectMediaSingleRenders",
35
+ value: function expectMediaSingleRenders(numOfMedia) {
36
+ var _this = this;
37
+
38
+ return this.cy.get('.rich-media-item').should('have.length', numOfMedia).each(function (element) {
39
+ _this.cy.wrap(element).should('have.attr', 'data-layout', 'center').should('have.attr', 'data-node-type', 'mediaSingle').should('be.visible');
40
+ });
41
+ }
42
+ }]);
43
+
44
+ return RendererPageObject;
45
+ }(InProductTestPageObject);
@@ -0,0 +1,13 @@
1
+ import { defineMessages } from 'react-intl-next';
2
+ export var codeBlockCopyButtonMessages = defineMessages({
3
+ copyCodeToClipboard: {
4
+ id: 'fabric.editor.codeBlockCopyButton.copyToClipboard',
5
+ defaultMessage: 'Copy as text',
6
+ description: 'Copy the content of the code block as text to your clipboard'
7
+ },
8
+ copiedCodeToClipboard: {
9
+ id: 'fabric.editor.codeBlockCopyButton.copiedToClipboard',
10
+ defaultMessage: 'Copied!',
11
+ description: 'Copied the content of the code block as text to clipboard'
12
+ }
13
+ });
@@ -1,3 +1,4 @@
1
1
  export { codeBidiWarningMessages } from './codeBidiWarning';
2
2
  export { linkMessages } from './link';
3
- export { unsupportedContentMessages } from './unsupportedContent';
3
+ export { unsupportedContentMessages } from './unsupportedContent';
4
+ export { codeBlockCopyButtonMessages } from './codeBlockCopyButton';
@@ -3,4 +3,4 @@ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral
3
3
  var _templateObject;
4
4
 
5
5
  import { css } from '@emotion/react';
6
- export var blockMarksSharedStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n /**\n * We need to remove margin-top from first item\n * inside doc, tableCell, tableHeader, blockquote, etc.\n */\n *:not(.fabric-editor-block-mark) >,\n /* For nested block marks */\n *:not(.fabric-editor-block-mark) > div.fabric-editor-block-mark:first-of-type {\n p,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n .heading-wrapper {\n :first-child:not(style),\n style:first-child + * {\n margin-top: 0;\n }\n }\n }\n"])));
6
+ export var blockMarksSharedStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n /**\n * We need to remove margin-top from first item\n * inside doc, tableCell, tableHeader, blockquote, etc.\n */\n *:not(.fabric-editor-block-mark) >,\n /* For nested block marks apart from those with indentation mark */\n *:not(.fabric-editor-block-mark) > div.fabric-editor-block-mark:first-of-type:not(.fabric-editor-indentation-mark),\n // If first document element has indentation mark remove margin-top\n .ProseMirror .fabric-editor-indentation-mark:first-of-type:first-child {\n p,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n .heading-wrapper {\n :first-child:not(style),\n style:first-child + * {\n margin-top: 0;\n }\n }\n }\n"])));
@@ -10,12 +10,14 @@ import { borderRadius, fontSize, gridSize } from '@atlaskit/theme/constants';
10
10
  import { token } from '@atlaskit/tokens';
11
11
  export var CodeBlockSharedCssClassName = {
12
12
  CODEBLOCK_CONTAINER: 'code-block',
13
+ CODEBLOCK_START: 'code-block--start',
14
+ CODEBLOCK_END: 'code-block--end',
13
15
  CODEBLOCK_LINE_NUMBER_GUTTER: 'line-number-gutter',
14
16
  CODEBLOCK_CONTENT: 'code-content',
15
17
  DS_CODEBLOCK: '[data-ds--code--code-block]'
16
18
  };
17
19
  export var codeBlockSharedStyles = function codeBlockSharedStyles(props) {
18
- return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .", " {\n position: relative;\n background-color: ", ";\n border-radius: ", "px;\n counter-reset: line;\n display: flex;\n overflow-x: auto;\n\n background-image: ", ";\n\n --ds--code--bg-color: transparent;\n\n background-repeat: no-repeat;\n background-attachment: local, scroll, scroll;\n background-size: 8px 100%, 8px 100%, 8px 100%;\n background-position: 100% 0, 100% 0, 0 0;\n font-family: ", ";\n margin: ", " 0 0 0;\n min-width: ", "px;\n cursor: pointer;\n\n .", " {\n flex-shrink: 0;\n text-align: right;\n background-color: ", ";\n padding: ", "px;\n\n span {\n display: block;\n line-height: 0;\n font-size: 0;\n\n ::before {\n display: inline-block;\n content: counter(line);\n counter-increment: line;\n color: ", ";\n font-size: ", ";\n line-height: 1.5rem;\n }\n }\n }\n\n .", " {\n display: flex;\n flex: 1;\n\n code {\n flex-grow: 1;\n tab-size: 4;\n cursor: text;\n color: ", ";\n border-radius: ", "px;\n margin: ", "px;\n white-space: pre;\n font-size: ", ";\n line-height: 1.5rem;\n }\n }\n }\n"])), CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, themed({
20
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .", " {\n position: relative;\n background-color: ", ";\n border-radius: ", "px;\n counter-reset: line;\n display: flex;\n overflow-x: auto;\n\n background-image: ", ";\n\n --ds--code--bg-color: transparent;\n\n background-repeat: no-repeat;\n background-attachment: local, scroll, scroll;\n background-size: 8px 100%, 8px 100%, 8px 100%;\n background-position: 100% 0, 100% 0, 0 0;\n font-family: ", ";\n margin: ", " 0 0 0;\n min-width: ", "px;\n cursor: pointer;\n\n .", " {\n position: absolute;\n visibility: hidden;\n height: 1.5rem;\n top: 0px;\n left: 0px;\n }\n\n .", " {\n position: absolute;\n visibility: hidden;\n height: 1.5rem;\n bottom: 0px;\n right: 0px;\n }\n\n .", " {\n flex-shrink: 0;\n text-align: right;\n background-color: ", ";\n padding: ", "px;\n\n span {\n display: block;\n line-height: 0;\n font-size: 0;\n\n ::before {\n display: inline-block;\n content: counter(line);\n counter-increment: line;\n color: ", ";\n font-size: ", ";\n line-height: 1.5rem;\n }\n }\n }\n\n .", " {\n display: flex;\n flex: 1;\n\n code {\n flex-grow: 1;\n tab-size: 4;\n cursor: text;\n color: ", ";\n border-radius: ", "px;\n margin: ", "px;\n white-space: pre;\n font-size: ", ";\n line-height: 1.5rem;\n }\n }\n }\n"])), CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, themed({
19
21
  light: token('color.background.neutral', N20),
20
22
  dark: token('color.background.neutral', DN50)
21
23
  })(props), borderRadius(), overflowShadow({
@@ -26,7 +28,7 @@ export var codeBlockSharedStyles = function codeBlockSharedStyles(props) {
26
28
  dark: DN50
27
29
  })(props),
28
30
  width: '8px'
29
- }), akEditorCodeFontFamily, blockNodesVerticalMargin, akEditorTableCellMinWidth, CodeBlockSharedCssClassName.CODEBLOCK_LINE_NUMBER_GUTTER, themed({
31
+ }), akEditorCodeFontFamily, blockNodesVerticalMargin, akEditorTableCellMinWidth, CodeBlockSharedCssClassName.CODEBLOCK_START, CodeBlockSharedCssClassName.CODEBLOCK_END, CodeBlockSharedCssClassName.CODEBLOCK_LINE_NUMBER_GUTTER, themed({
30
32
  light: token('color.background.neutral', N30),
31
33
  dark: token('color.background.neutral', DN20)
32
34
  })(props), gridSize(), themed({
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "69.1.2",
3
+ "version": "69.2.2",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1,12 @@
1
+ export declare const codeBlockCopyButtonMessages: {
2
+ copyCodeToClipboard: {
3
+ id: string;
4
+ defaultMessage: string;
5
+ description: string;
6
+ };
7
+ copiedCodeToClipboard: {
8
+ id: string;
9
+ defaultMessage: string;
10
+ description: string;
11
+ };
12
+ };
@@ -1,3 +1,4 @@
1
1
  export { codeBidiWarningMessages } from './codeBidiWarning';
2
2
  export { linkMessages } from './link';
3
3
  export { unsupportedContentMessages } from './unsupportedContent';
4
+ export { codeBlockCopyButtonMessages } from './codeBlockCopyButton';
@@ -1,6 +1,8 @@
1
1
  import { ThemeProps } from '@atlaskit/theme/types';
2
2
  export declare const CodeBlockSharedCssClassName: {
3
3
  CODEBLOCK_CONTAINER: string;
4
+ CODEBLOCK_START: string;
5
+ CODEBLOCK_END: string;
4
6
  CODEBLOCK_LINE_NUMBER_GUTTER: string;
5
7
  CODEBLOCK_CONTENT: string;
6
8
  DS_CODEBLOCK: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "69.1.2",
3
+ "version": "69.2.2",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -44,26 +44,26 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@atlaskit/activity-provider": "^2.3.0",
47
- "@atlaskit/adf-schema": "^23.3.0",
47
+ "@atlaskit/adf-schema": "^24.0.0",
48
48
  "@atlaskit/adf-utils": "^17.1.0",
49
49
  "@atlaskit/analytics-namespaced-context": "^6.5.0",
50
50
  "@atlaskit/analytics-next": "^8.2.0",
51
51
  "@atlaskit/code": "^14.3.0",
52
52
  "@atlaskit/codemod-utils": "^4.1.0",
53
- "@atlaskit/editor-json-transformer": "^8.7.0",
53
+ "@atlaskit/editor-json-transformer": "^8.8.0",
54
54
  "@atlaskit/editor-shared-styles": "^2.1.0",
55
- "@atlaskit/emoji": "^65.1.0",
55
+ "@atlaskit/emoji": "^65.2.0",
56
56
  "@atlaskit/icon": "^21.10.0",
57
57
  "@atlaskit/in-product-testing": "^0.1.0",
58
58
  "@atlaskit/media-card": "^74.1.0",
59
59
  "@atlaskit/media-client": "^17.1.0",
60
60
  "@atlaskit/media-picker": "^63.0.0",
61
61
  "@atlaskit/mention": "^21.0.0",
62
- "@atlaskit/profilecard": "^16.12.0",
63
- "@atlaskit/smart-card": "^22.0.0",
62
+ "@atlaskit/profilecard": "^17.0.0",
63
+ "@atlaskit/smart-card": "^22.1.0",
64
64
  "@atlaskit/smart-user-picker": "^6.0.0",
65
- "@atlaskit/task-decision": "^17.4.0",
66
- "@atlaskit/theme": "^12.1.0",
65
+ "@atlaskit/task-decision": "^17.5.0",
66
+ "@atlaskit/theme": "^12.2.0",
67
67
  "@atlaskit/tokens": "^0.10.0",
68
68
  "@atlaskit/tooltip": "^17.5.0",
69
69
  "@atlaskit/ufo": "^0.1.0",
@@ -92,18 +92,17 @@
92
92
  "react-intl-next": "npm:react-intl@^5.18.1"
93
93
  },
94
94
  "devDependencies": {
95
- "@atlaskit/editor-json-transformer": "^8.7.0",
95
+ "@atlaskit/editor-json-transformer": "^8.8.0",
96
96
  "@atlaskit/editor-test-helpers": "^17.1.0",
97
97
  "@atlaskit/media-core": "^33.0.0",
98
98
  "@atlaskit/util-data-test": "^17.5.0",
99
99
  "@atlaskit/visual-regression": "*",
100
100
  "@atlaskit/webdriver-runner": "*",
101
101
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
102
- "@testing-library/react": "^8.0.1",
102
+ "@testing-library/react": "^12.1.5",
103
103
  "@types/raf-schd": "^4.0.1",
104
104
  "cypress-file-upload": "^5.0.2",
105
105
  "enzyme": "^3.10.0",
106
- "local-cypress": "^1.2.1",
107
106
  "raf-stub": "^2.0.1",
108
107
  "react": "^16.8.0",
109
108
  "react-test-renderer": "^16.8.0",