@atlaskit/editor-common 78.8.4 → 78.9.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 (49) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/dist/cjs/extensibility/Extension/Extension/index.js +17 -6
  4. package/dist/cjs/extensibility/Extension/InlineExtension/index.js +6 -2
  5. package/dist/cjs/extensibility/Extension/Lozenge.js +42 -49
  6. package/dist/cjs/extensibility/Extension/LozengeComponent.js +54 -0
  7. package/dist/cjs/extensibility/Extension/styles.js +5 -4
  8. package/dist/cjs/extensibility/ExtensionComponent.js +7 -2
  9. package/dist/cjs/i18n/en.js +1 -1
  10. package/dist/cjs/i18n/en_GB.js +1 -1
  11. package/dist/cjs/i18n/en_ZZ.js +1 -1
  12. package/dist/cjs/messages/paste-options-toolbar.js +1 -1
  13. package/dist/cjs/monitoring/error.js +1 -1
  14. package/dist/cjs/ui/DropList/index.js +1 -1
  15. package/dist/es2019/extensibility/Extension/Extension/index.js +14 -6
  16. package/dist/es2019/extensibility/Extension/InlineExtension/index.js +7 -4
  17. package/dist/es2019/extensibility/Extension/Lozenge.js +46 -47
  18. package/dist/es2019/extensibility/Extension/LozengeComponent.js +45 -0
  19. package/dist/es2019/extensibility/Extension/styles.js +7 -0
  20. package/dist/es2019/extensibility/ExtensionComponent.js +9 -2
  21. package/dist/es2019/i18n/en.js +1 -1
  22. package/dist/es2019/i18n/en_GB.js +1 -1
  23. package/dist/es2019/i18n/en_ZZ.js +1 -1
  24. package/dist/es2019/messages/paste-options-toolbar.js +1 -1
  25. package/dist/es2019/monitoring/error.js +1 -1
  26. package/dist/es2019/ui/DropList/index.js +1 -1
  27. package/dist/esm/extensibility/Extension/Extension/index.js +14 -6
  28. package/dist/esm/extensibility/Extension/InlineExtension/index.js +7 -4
  29. package/dist/esm/extensibility/Extension/Lozenge.js +42 -49
  30. package/dist/esm/extensibility/Extension/LozengeComponent.js +48 -0
  31. package/dist/esm/extensibility/Extension/styles.js +4 -3
  32. package/dist/esm/extensibility/ExtensionComponent.js +7 -2
  33. package/dist/esm/i18n/en.js +1 -1
  34. package/dist/esm/i18n/en_GB.js +1 -1
  35. package/dist/esm/i18n/en_ZZ.js +1 -1
  36. package/dist/esm/messages/paste-options-toolbar.js +1 -1
  37. package/dist/esm/monitoring/error.js +1 -1
  38. package/dist/esm/ui/DropList/index.js +1 -1
  39. package/dist/types/extensibility/Extension/Extension/index.d.ts +1 -0
  40. package/dist/types/extensibility/Extension/InlineExtension/index.d.ts +2 -2
  41. package/dist/types/extensibility/Extension/Lozenge.d.ts +7 -2
  42. package/dist/types/extensibility/Extension/LozengeComponent.d.ts +15 -0
  43. package/dist/types/extensibility/Extension/styles.d.ts +1 -0
  44. package/dist/types-ts4.5/extensibility/Extension/Extension/index.d.ts +1 -0
  45. package/dist/types-ts4.5/extensibility/Extension/InlineExtension/index.d.ts +2 -2
  46. package/dist/types-ts4.5/extensibility/Extension/Lozenge.d.ts +7 -2
  47. package/dist/types-ts4.5/extensibility/Extension/LozengeComponent.d.ts +15 -0
  48. package/dist/types-ts4.5/extensibility/Extension/styles.d.ts +1 -0
  49. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 78.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#77158](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/77158) [`4a5f437bd464`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/4a5f437bd464) - [ux] Adds initial changes to extension lozenges for the macro visual design updates project in Confluence.
8
+
9
+ ## 78.8.5
10
+
11
+ ### Patch Changes
12
+
13
+ - [#77651](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/77651) [`25b3713456e7`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/25b3713456e7) - ED-22342 Updated tooltip for paste option toolbar
14
+
3
15
  ## 78.8.4
4
16
 
5
17
  ### Patch Changes
@@ -120,6 +120,9 @@
120
120
  {
121
121
  "path": "../../../design-system/spinner/afm-cc/tsconfig.json"
122
122
  },
123
+ {
124
+ "path": "../../../design-system/tag/afm-cc/tsconfig.json"
125
+ },
123
126
  {
124
127
  "path": "../../../elements/task-decision/afm-cc/tsconfig.json"
125
128
  },
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
@@ -8,7 +9,7 @@ exports.default = void 0;
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _react = _interopRequireDefault(require("react"));
12
+ var _react = _interopRequireWildcard(require("react"));
12
13
  var _react2 = require("@emotion/react");
13
14
  var _classnames2 = _interopRequireDefault(require("classnames"));
14
15
  var _withPluginState = require("../../..//with-plugin-state");
@@ -20,6 +21,8 @@ var _styles = require("../styles");
20
21
  var _styles2 = require("./styles");
21
22
  var _excluded = ["type"];
22
23
  /** @jsx jsx */
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; }
23
26
  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; }
24
27
  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; }
25
28
  function ExtensionWithPluginState(props) {
@@ -33,11 +36,13 @@ function ExtensionWithPluginState(props) {
33
36
  handleRef = props.handleRef,
34
37
  shadowClassNames = props.shadowClassNames,
35
38
  hideFrame = props.hideFrame,
36
- editorAppearance = props.editorAppearance;
39
+ editorAppearance = props.editorAppearance,
40
+ showMacroInteractionDesignUpdates = props.showMacroInteractionDesignUpdates,
41
+ isNodeSelected = props.isNodeSelected;
37
42
  var hasBody = ['bodiedExtension', 'multiBodiedExtension'].includes(node.type.name);
38
43
  var isMobile = editorAppearance === 'mobile';
39
44
  var hasChildren = !!children;
40
- var removeBorder = hideFrame && !isMobile && !hasBody || false;
45
+ var removeBorder = showMacroInteractionDesignUpdates || !!(hideFrame && !isMobile && !hasBody);
41
46
  var getPos = props.getPos,
42
47
  view = props.view;
43
48
  var isTopLevelNode = _react.default.useMemo(function () {
@@ -76,7 +81,11 @@ function ExtensionWithPluginState(props) {
76
81
  customContainerStyles = breakoutStyles;
77
82
  }
78
83
  newContentStyles = _objectSpread(_objectSpread({}, newContentStyles), _styles2.contentWrapper);
79
- return (0, _react2.jsx)("div", {
84
+ return (0, _react2.jsx)(_react.Fragment, null, showMacroInteractionDesignUpdates && (0, _react2.jsx)(_Lozenge.default, {
85
+ isNodeSelected: isNodeSelected,
86
+ node: node,
87
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
88
+ }), (0, _react2.jsx)("div", {
80
89
  ref: handleRef,
81
90
  "data-layout": node.attrs.layout,
82
91
  className: classNames,
@@ -92,14 +101,16 @@ function ExtensionWithPluginState(props) {
92
101
  contentEditable: false,
93
102
  className: headerClassNames
94
103
  }, !removeBorder && (0, _react2.jsx)(_Lozenge.default, {
95
- node: node
104
+ isNodeSelected: isNodeSelected,
105
+ node: node,
106
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
96
107
  }), children), hasBody && (0, _react2.jsx)("div", {
97
108
  css: newContentStyles
98
109
  }, (0, _react2.jsx)("div", {
99
110
  css: _styles2.content,
100
111
  ref: handleContentDOMRef,
101
112
  className: "extension-content block"
102
- }))));
113
+ })))));
103
114
  }
104
115
  var Extension = function Extension(props) {
105
116
  // TODO: ED-17836 This code is here because confluence injects
@@ -32,7 +32,9 @@ var InlineExtension = exports.default = /*#__PURE__*/function (_Component) {
32
32
  value: function render() {
33
33
  var _this$props = this.props,
34
34
  node = _this$props.node,
35
- children = _this$props.children;
35
+ children = _this$props.children,
36
+ showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
37
+ isNodeSelected = _this$props.isNodeSelected;
36
38
  var hasChildren = !!children;
37
39
  var className = hasChildren ? 'with-overlay with-children' : 'with-overlay';
38
40
  return (0, _react2.jsx)("div", {
@@ -42,7 +44,9 @@ var InlineExtension = exports.default = /*#__PURE__*/function (_Component) {
42
44
  css: _styles.overlay,
43
45
  className: "extension-overlay"
44
46
  }), children ? children : (0, _react2.jsx)(_Lozenge.default, {
45
- node: node
47
+ node: node,
48
+ isNodeSelected: isNodeSelected,
49
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
46
50
  }));
47
51
  }
48
52
  }]);
@@ -4,35 +4,67 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = exports.capitalizeFirstLetter = exports.ICON_SIZE = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ exports.default = void 0;
9
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
17
  var _react = require("react");
17
18
  var _react2 = require("@emotion/react");
18
- var _file = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/file"));
19
19
  var _utils = require("../../utils");
20
+ var _LozengeComponent = require("./LozengeComponent");
20
21
  var _styles = require("./styles");
21
22
  var _excluded = ["url"];
22
- 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; }
23
- 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; }
24
23
  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); }; }
25
24
  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 */
26
- var capitalizeFirstLetter = exports.capitalizeFirstLetter = function capitalizeFirstLetter(str) {
27
- return str.charAt(0).toUpperCase() + str.slice(1);
28
- };
29
- var ICON_SIZE = exports.ICON_SIZE = 24;
30
25
  var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
31
26
  (0, _inherits2.default)(ExtensionLozenge, _Component);
32
27
  var _super = _createSuper(ExtensionLozenge);
33
28
  function ExtensionLozenge() {
29
+ var _this;
34
30
  (0, _classCallCheck2.default)(this, ExtensionLozenge);
35
- return _super.apply(this, arguments);
31
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
32
+ args[_key] = arguments[_key];
33
+ }
34
+ _this = _super.call.apply(_super, [this].concat(args));
35
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderImage", function (lozengeData) {
36
+ var extensionKey = _this.props.node.attrs.extensionKey;
37
+ var url = lozengeData.url,
38
+ rest = (0, _objectWithoutProperties2.default)(lozengeData, _excluded);
39
+ return (0, _react2.jsx)("img", (0, _extends2.default)({
40
+ css: _styles.styledImage,
41
+ src: url
42
+ }, rest, {
43
+ alt: extensionKey
44
+ }));
45
+ });
46
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderFallback", function (lozengeData) {
47
+ var _this$props = _this.props,
48
+ showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
49
+ isNodeSelected = _this$props.isNodeSelected;
50
+ var _this$props$node$attr = _this.props.node.attrs,
51
+ parameters = _this$props$node$attr.parameters,
52
+ extensionKey = _this$props$node$attr.extensionKey;
53
+ var name = _this.props.node.type.name;
54
+ var params = parameters && parameters.macroParams;
55
+ var title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
56
+ var isBlockExtension = name === 'extension';
57
+ return (0, _react2.jsx)(_LozengeComponent.LozengeComponent, {
58
+ isNodeSelected: isNodeSelected,
59
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
60
+ isBlockExtension: isBlockExtension,
61
+ lozengeData: lozengeData,
62
+ params: params,
63
+ title: title,
64
+ renderImage: _this.renderImage
65
+ });
66
+ });
67
+ return _this;
36
68
  }
37
69
  (0, _createClass2.default)(ExtensionLozenge, [{
38
70
  key: "render",
@@ -51,45 +83,6 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
51
83
  });
52
84
  return this.renderFallback(iconData);
53
85
  }
54
- }, {
55
- key: "renderImage",
56
- value: function renderImage(lozengeData) {
57
- var extensionKey = this.props.node.attrs.extensionKey;
58
- var url = lozengeData.url,
59
- rest = (0, _objectWithoutProperties2.default)(lozengeData, _excluded);
60
- return (0, _react2.jsx)("img", (0, _extends2.default)({
61
- css: _styles.styledImage,
62
- src: url
63
- }, rest, {
64
- alt: extensionKey
65
- }));
66
- }
67
- }, {
68
- key: "renderFallback",
69
- value: function renderFallback(lozengeData) {
70
- var _this$props$node$attr = this.props.node.attrs,
71
- parameters = _this$props$node$attr.parameters,
72
- extensionKey = _this$props$node$attr.extensionKey;
73
- var name = this.props.node.type.name;
74
- var params = parameters && parameters.macroParams;
75
- var title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
76
- var isBlockExtension = name === 'extension';
77
- return (0, _react2.jsx)("div", {
78
- "data-testid": "lozenge-fallback",
79
- css: _styles.placeholderFallback
80
- }, lozengeData && !isBlockExtension ? this.renderImage(_objectSpread({
81
- height: ICON_SIZE,
82
- width: ICON_SIZE
83
- }, lozengeData)) : (0, _react2.jsx)(_file.default, {
84
- label: title
85
- }), (0, _react2.jsx)("span", {
86
- className: "extension-title"
87
- }, capitalizeFirstLetter(title)), params && !isBlockExtension && (0, _react2.jsx)("span", {
88
- css: _styles.placeholderFallbackParams
89
- }, Object.keys(params).map(function (key) {
90
- return key && " | ".concat(key, " = ").concat(params[key].value);
91
- })));
92
- }
93
86
  }]);
94
87
  return ExtensionLozenge;
95
88
  }(_react.Component);
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LozengeComponent = exports.ICON_SIZE = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = require("@emotion/react");
10
+ var _file = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/file"));
11
+ var _tag = require("@atlaskit/tag");
12
+ var _styles = require("./styles");
13
+ 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; }
14
+ 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; } /** @jsx jsx */
15
+ var ICON_SIZE = exports.ICON_SIZE = 24;
16
+ var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
17
+ return str.charAt(0).toUpperCase() + str.slice(1);
18
+ };
19
+ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref) {
20
+ var lozengeData = _ref.lozengeData,
21
+ isBlockExtension = _ref.isBlockExtension,
22
+ title = _ref.title,
23
+ params = _ref.params,
24
+ renderImage = _ref.renderImage,
25
+ isNodeSelected = _ref.isNodeSelected,
26
+ showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
27
+ var capitalizedTitle = capitalizeFirstLetter(title);
28
+ // TODO: only show on lozenge on hover: https://product-fabric.atlassian.net/browse/PGXT-4945
29
+ if (showMacroInteractionDesignUpdates) {
30
+ return (0, _react.jsx)("div", {
31
+ className: "extension-title",
32
+ css: _styles.lozengeWrapper,
33
+ "data-testid": "new-lozenge"
34
+ }, (0, _react.jsx)(_tag.SimpleTag, {
35
+ text: capitalizedTitle,
36
+ color: isNodeSelected ? 'blueLight' : 'greyLight'
37
+ }));
38
+ }
39
+ return (0, _react.jsx)("div", {
40
+ "data-testid": "lozenge-fallback",
41
+ css: _styles.placeholderFallback
42
+ }, lozengeData && !isBlockExtension ? renderImage(_objectSpread({
43
+ height: ICON_SIZE,
44
+ width: ICON_SIZE
45
+ }, lozengeData)) : (0, _react.jsx)(_file.default, {
46
+ label: title
47
+ }), (0, _react.jsx)("span", {
48
+ className: "extension-title"
49
+ }, capitalizedTitle), params && !isBlockExtension && (0, _react.jsx)("span", {
50
+ css: _styles.placeholderFallbackParams
51
+ }, Object.keys(params).map(function (key) {
52
+ return key && " | ".concat(key, " = ").concat(params[key].value);
53
+ })));
54
+ };
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "BODIED_EXT_PADDING", {
10
10
  return _styles.BODIED_EXT_PADDING;
11
11
  }
12
12
  });
13
- exports.overlay = void 0;
13
+ exports.overlay = exports.lozengeWrapper = void 0;
14
14
  Object.defineProperty(exports, "padding", {
15
15
  enumerable: true,
16
16
  get: function get() {
@@ -22,9 +22,10 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
22
22
  var _react = require("@emotion/react");
23
23
  var _colors = require("@atlaskit/theme/colors");
24
24
  var _styles = require("../../styles");
25
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
25
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
26
26
  var wrapperDefault = exports.wrapperDefault = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: ", ";\n border-radius: ", ";\n position: relative;\n vertical-align: middle;\n\n .ProseMirror-selectednode > span > & > .extension-overlay {\n box-shadow: inset 0px 0px 0px 2px ", ";\n opacity: 1;\n }\n\n &.with-overlay {\n .extension-overlay {\n background: ", ";\n color: transparent;\n }\n\n &:hover .extension-overlay {\n opacity: 1;\n }\n }\n"])), "var(--ds-background-neutral, ".concat(_colors.N20, ")"), "var(--ds-border-radius, 3px)", "var(--ds-border-selected, ".concat(_colors.B200, ")"), "var(--ds-background-neutral-hovered, ".concat(_colors.N20A, ")"));
27
27
  var overlay = exports.overlay = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n border-radius: ", ";\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.3s;\n"])), "var(--ds-border-radius, 3px)");
28
- var placeholderFallback = exports.placeholderFallback = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n align-items: center;\n\n & > img {\n margin: 0 ", ";\n }\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: placeholder-fallback;\n"])), "var(--ds-space-050, 4px)");
28
+ var placeholderFallback = exports.placeholderFallback = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n align-items: center;\n\n & > img {\n margin: 0 ", ";\n }\n\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: placeholder-fallback;\n"])), "var(--ds-space-050, 4px)");
29
29
  var placeholderFallbackParams = exports.placeholderFallbackParams = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-block;\n max-width: 200px;\n margin-left: 5px;\n color: ", ";\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"])), "var(--ds-text-subtlest, ".concat(_colors.N70, ")"));
30
- var styledImage = exports.styledImage = (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n max-height: 16px;\n max-width: 16px;\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: lozenge-image;\n"])));
30
+ var styledImage = exports.styledImage = (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n max-height: 16px;\n max-width: 16px;\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: lozenge-image;\n"])));
31
+ var lozengeWrapper = exports.lozengeWrapper = (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n justify-content: left;\n width: 100%;\n margin-left: ", ";\n"])), "var(--ds-space-050, 4px)");
@@ -17,6 +17,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
17
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
  var _memoizeOne = _interopRequireDefault(require("memoize-one"));
20
+ var _state = require("@atlaskit/editor-prosemirror/state");
20
21
  var _extensions = require("../extensions");
21
22
  var _utils = require("../utils");
22
23
  var _Extension = _interopRequireDefault(require("./Extension/Extension"));
@@ -195,6 +196,8 @@ var ExtensionComponent = exports.ExtensionComponent = /*#__PURE__*/function (_Co
195
196
  getPos = _this$props2.getPos,
196
197
  eventDispatcher = _this$props2.eventDispatcher,
197
198
  showMacroInteractionDesignUpdates = _this$props2.showMacroInteractionDesignUpdates;
199
+ var selection = editorView.state.selection;
200
+ var selectedNode = selection instanceof _state.NodeSelection && selection.node;
198
201
  if (node.type.name === 'multiBodiedExtension') {
199
202
  return /*#__PURE__*/_react.default.createElement(_MultiBodiedExtension.default, {
200
203
  node: node,
@@ -222,12 +225,14 @@ var ExtensionComponent = exports.ExtensionComponent = /*#__PURE__*/function (_Co
222
225
  editorAppearance: editorAppearance,
223
226
  hideFrame: (_this$state$_privateP = this.state._privateProps) === null || _this$state$_privateP === void 0 ? void 0 : _this$state$_privateP.__hideFrame,
224
227
  pluginInjectionApi: pluginInjectionApi,
225
- showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
228
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
229
+ isNodeSelected: selectedNode === node
226
230
  }, extensionHandlerResult);
227
231
  case 'inlineExtension':
228
232
  return /*#__PURE__*/_react.default.createElement(_InlineExtension.default, {
229
233
  node: node,
230
- showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
234
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
235
+ isNodeSelected: selectedNode === node
231
236
  }, extensionHandlerResult);
232
237
  default:
233
238
  return null;
@@ -307,7 +307,7 @@ var _default = exports.default = {
307
307
  'fabric.editor.pageActionsLabel': 'Page actions',
308
308
  'fabric.editor.panel.backgroundColor': 'Background color',
309
309
  'fabric.editor.panel.emoji': 'Add emoji',
310
- 'fabric.editor.pasteOptions': 'Paste options floating controls',
310
+ 'fabric.editor.pasteOptions': 'Paste options',
311
311
  'fabric.editor.pastePlainText': 'Paste plain text',
312
312
  'fabric.editor.placeholderAltText': 'Describe this image with alt text',
313
313
  'fabric.editor.placeholderText': 'Placeholder text',
@@ -307,7 +307,7 @@ var _default = exports.default = {
307
307
  'fabric.editor.pageActionsLabel': 'Page actions',
308
308
  'fabric.editor.panel.backgroundColor': 'Background colour',
309
309
  'fabric.editor.panel.emoji': 'Add emoji',
310
- 'fabric.editor.pasteOptions': 'Paste options floating controls',
310
+ 'fabric.editor.pasteOptions': 'Paste options',
311
311
  'fabric.editor.pastePlainText': 'Paste plain text',
312
312
  'fabric.editor.placeholderAltText': 'Describe this image with alt text',
313
313
  'fabric.editor.placeholderText': 'Placeholder text',
@@ -307,7 +307,7 @@ var _default = exports.default = {
307
307
  'fabric.editor.pageActionsLabel': '⁣⁢Page actions‌؜؜؜‍⁡‍؜‌‍⁣⁤',
308
308
  'fabric.editor.panel.backgroundColor': '⁣⁢Background color‍‌⁠⁠‌‌‍‍⁠⁠⁣⁤',
309
309
  'fabric.editor.panel.emoji': '⁣⁢Add emoji⁠؜‍‍‌⁠؜⁠؜؜‍⁣⁤',
310
- 'fabric.editor.pasteOptions': '⁣⁢Paste options floating controls‌⁠‌⁠⁡⁡⁡‍؜⁠؜؜⁣⁤',
310
+ 'fabric.editor.pasteOptions': 'Paste options⁠‌⁠⁡⁡⁡‍؜⁠؜؜⁣⁤',
311
311
  'fabric.editor.pastePlainText': '⁣⁢Paste plain text؜؜‍‌‌⁡‍‌⁠‌‍‌⁣⁤',
312
312
  'fabric.editor.placeholderAltText': '⁣⁢Describe this image with alt text؜⁠‌‌⁡‍‍‌⁠؜‍‌⁣⁤',
313
313
  'fabric.editor.placeholderText': '⁣⁢Placeholder text⁠؜‌؜‌‌‌‌⁠‍⁣⁤',
@@ -8,7 +8,7 @@ var _reactIntlNext = require("react-intl-next");
8
8
  var pasteOptionsToolbarMessages = exports.pasteOptionsToolbarMessages = (0, _reactIntlNext.defineMessages)({
9
9
  pasteOptions: {
10
10
  id: 'fabric.editor.pasteOptions',
11
- defaultMessage: 'Paste options floating controls',
11
+ defaultMessage: 'Paste options',
12
12
  description: 'Opens a menu with additional paste options'
13
13
  },
14
14
  plainText: {
@@ -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 = "78.8.4";
19
+ var packageVersion = "78.9.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
@@ -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 = "78.8.4";
25
+ var packageVersion = "78.9.0";
26
26
  var halfFocusRing = 1;
27
27
  var dropOffset = '0, 8';
28
28
  var DropList = /*#__PURE__*/function (_Component) {
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  /** @jsx jsx */
3
3
 
4
- import React from 'react';
4
+ import React, { Fragment } from 'react';
5
5
  import { jsx } from '@emotion/react';
6
6
  import classnames from 'classnames';
7
7
  import { WithPluginState } from '../../..//with-plugin-state';
@@ -22,12 +22,14 @@ function ExtensionWithPluginState(props) {
22
22
  handleRef,
23
23
  shadowClassNames,
24
24
  hideFrame,
25
- editorAppearance
25
+ editorAppearance,
26
+ showMacroInteractionDesignUpdates,
27
+ isNodeSelected
26
28
  } = props;
27
29
  const hasBody = ['bodiedExtension', 'multiBodiedExtension'].includes(node.type.name);
28
30
  const isMobile = editorAppearance === 'mobile';
29
31
  const hasChildren = !!children;
30
- const removeBorder = hideFrame && !isMobile && !hasBody || false;
32
+ const removeBorder = showMacroInteractionDesignUpdates || !!(hideFrame && !isMobile && !hasBody);
31
33
  const {
32
34
  getPos,
33
35
  view
@@ -75,7 +77,11 @@ function ExtensionWithPluginState(props) {
75
77
  ...newContentStyles,
76
78
  ...contentWrapper
77
79
  };
78
- return jsx("div", {
80
+ return jsx(Fragment, null, showMacroInteractionDesignUpdates && jsx(ExtensionLozenge, {
81
+ isNodeSelected: isNodeSelected,
82
+ node: node,
83
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
84
+ }), jsx("div", {
79
85
  ref: handleRef,
80
86
  "data-layout": node.attrs.layout,
81
87
  className: classNames,
@@ -91,14 +97,16 @@ function ExtensionWithPluginState(props) {
91
97
  contentEditable: false,
92
98
  className: headerClassNames
93
99
  }, !removeBorder && jsx(ExtensionLozenge, {
94
- node: node
100
+ isNodeSelected: isNodeSelected,
101
+ node: node,
102
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
95
103
  }), children), hasBody && jsx("div", {
96
104
  css: newContentStyles
97
105
  }, jsx("div", {
98
106
  css: content,
99
107
  ref: handleContentDOMRef,
100
108
  className: "extension-content block"
101
- }))));
109
+ })))));
102
110
  }
103
111
  const Extension = props => {
104
112
  // TODO: ED-17836 This code is here because confluence injects
@@ -1,6 +1,5 @@
1
1
  /** @jsx jsx */
2
- import React from 'react';
3
- import { Component } from 'react';
2
+ import React, { Component } from 'react';
4
3
  import { jsx } from '@emotion/react';
5
4
  import ExtensionLozenge from '../Lozenge';
6
5
  import { overlay } from '../styles';
@@ -9,7 +8,9 @@ export default class InlineExtension extends Component {
9
8
  render() {
10
9
  const {
11
10
  node,
12
- children
11
+ children,
12
+ showMacroInteractionDesignUpdates,
13
+ isNodeSelected
13
14
  } = this.props;
14
15
  const hasChildren = !!children;
15
16
  const className = hasChildren ? 'with-overlay with-children' : 'with-overlay';
@@ -20,7 +21,9 @@ export default class InlineExtension extends Component {
20
21
  css: overlay,
21
22
  className: "extension-overlay"
22
23
  }), children ? children : jsx(ExtensionLozenge, {
23
- node: node
24
+ node: node,
25
+ isNodeSelected: isNodeSelected,
26
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
24
27
  }));
25
28
  }
26
29
  }
@@ -1,15 +1,55 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  /** @jsx jsx */
3
4
  import { Component } from 'react';
4
5
  import { jsx } from '@emotion/react';
5
- import EditorFileIcon from '@atlaskit/icon/glyph/editor/file';
6
6
  import { getExtensionLozengeData } from '../../utils';
7
- import { placeholderFallback, placeholderFallbackParams, styledImage } from './styles';
8
- export const capitalizeFirstLetter = str => {
9
- return str.charAt(0).toUpperCase() + str.slice(1);
10
- };
11
- export const ICON_SIZE = 24;
7
+ import { LozengeComponent } from './LozengeComponent';
8
+ import { styledImage } from './styles';
12
9
  export default class ExtensionLozenge extends Component {
10
+ constructor(...args) {
11
+ super(...args);
12
+ _defineProperty(this, "renderImage", lozengeData => {
13
+ const {
14
+ extensionKey
15
+ } = this.props.node.attrs;
16
+ const {
17
+ url,
18
+ ...rest
19
+ } = lozengeData;
20
+ return jsx("img", _extends({
21
+ css: styledImage,
22
+ src: url
23
+ }, rest, {
24
+ alt: extensionKey
25
+ }));
26
+ });
27
+ _defineProperty(this, "renderFallback", lozengeData => {
28
+ const {
29
+ showMacroInteractionDesignUpdates,
30
+ isNodeSelected
31
+ } = this.props;
32
+ const {
33
+ parameters,
34
+ extensionKey
35
+ } = this.props.node.attrs;
36
+ const {
37
+ name
38
+ } = this.props.node.type;
39
+ const params = parameters && parameters.macroParams;
40
+ const title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
41
+ const isBlockExtension = name === 'extension';
42
+ return jsx(LozengeComponent, {
43
+ isNodeSelected: isNodeSelected,
44
+ showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
45
+ isBlockExtension: isBlockExtension,
46
+ lozengeData: lozengeData,
47
+ params: params,
48
+ title: title,
49
+ renderImage: this.renderImage
50
+ });
51
+ });
52
+ }
13
53
  render() {
14
54
  const {
15
55
  node
@@ -27,45 +67,4 @@ export default class ExtensionLozenge extends Component {
27
67
  });
28
68
  return this.renderFallback(iconData);
29
69
  }
30
- renderImage(lozengeData) {
31
- const {
32
- extensionKey
33
- } = this.props.node.attrs;
34
- const {
35
- url,
36
- ...rest
37
- } = lozengeData;
38
- return jsx("img", _extends({
39
- css: styledImage,
40
- src: url
41
- }, rest, {
42
- alt: extensionKey
43
- }));
44
- }
45
- renderFallback(lozengeData) {
46
- const {
47
- parameters,
48
- extensionKey
49
- } = this.props.node.attrs;
50
- const {
51
- name
52
- } = this.props.node.type;
53
- const params = parameters && parameters.macroParams;
54
- const title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
55
- const isBlockExtension = name === 'extension';
56
- return jsx("div", {
57
- "data-testid": "lozenge-fallback",
58
- css: placeholderFallback
59
- }, lozengeData && !isBlockExtension ? this.renderImage({
60
- height: ICON_SIZE,
61
- width: ICON_SIZE,
62
- ...lozengeData
63
- }) : jsx(EditorFileIcon, {
64
- label: title
65
- }), jsx("span", {
66
- className: "extension-title"
67
- }, capitalizeFirstLetter(title)), params && !isBlockExtension && jsx("span", {
68
- css: placeholderFallbackParams
69
- }, Object.keys(params).map(key => key && ` | ${key} = ${params[key].value}`)));
70
- }
71
70
  }