@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.
- package/CHANGELOG.md +12 -0
- package/afm-cc/tsconfig.json +3 -0
- package/dist/cjs/extensibility/Extension/Extension/index.js +17 -6
- package/dist/cjs/extensibility/Extension/InlineExtension/index.js +6 -2
- package/dist/cjs/extensibility/Extension/Lozenge.js +42 -49
- package/dist/cjs/extensibility/Extension/LozengeComponent.js +54 -0
- package/dist/cjs/extensibility/Extension/styles.js +5 -4
- package/dist/cjs/extensibility/ExtensionComponent.js +7 -2
- package/dist/cjs/i18n/en.js +1 -1
- package/dist/cjs/i18n/en_GB.js +1 -1
- package/dist/cjs/i18n/en_ZZ.js +1 -1
- package/dist/cjs/messages/paste-options-toolbar.js +1 -1
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/es2019/extensibility/Extension/Extension/index.js +14 -6
- package/dist/es2019/extensibility/Extension/InlineExtension/index.js +7 -4
- package/dist/es2019/extensibility/Extension/Lozenge.js +46 -47
- package/dist/es2019/extensibility/Extension/LozengeComponent.js +45 -0
- package/dist/es2019/extensibility/Extension/styles.js +7 -0
- package/dist/es2019/extensibility/ExtensionComponent.js +9 -2
- package/dist/es2019/i18n/en.js +1 -1
- package/dist/es2019/i18n/en_GB.js +1 -1
- package/dist/es2019/i18n/en_ZZ.js +1 -1
- package/dist/es2019/messages/paste-options-toolbar.js +1 -1
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/esm/extensibility/Extension/Extension/index.js +14 -6
- package/dist/esm/extensibility/Extension/InlineExtension/index.js +7 -4
- package/dist/esm/extensibility/Extension/Lozenge.js +42 -49
- package/dist/esm/extensibility/Extension/LozengeComponent.js +48 -0
- package/dist/esm/extensibility/Extension/styles.js +4 -3
- package/dist/esm/extensibility/ExtensionComponent.js +7 -2
- package/dist/esm/i18n/en.js +1 -1
- package/dist/esm/i18n/en_GB.js +1 -1
- package/dist/esm/i18n/en_ZZ.js +1 -1
- package/dist/esm/messages/paste-options-toolbar.js +1 -1
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/types/extensibility/Extension/Extension/index.d.ts +1 -0
- package/dist/types/extensibility/Extension/InlineExtension/index.d.ts +2 -2
- package/dist/types/extensibility/Extension/Lozenge.d.ts +7 -2
- package/dist/types/extensibility/Extension/LozengeComponent.d.ts +15 -0
- package/dist/types/extensibility/Extension/styles.d.ts +1 -0
- package/dist/types-ts4.5/extensibility/Extension/Extension/index.d.ts +1 -0
- package/dist/types-ts4.5/extensibility/Extension/InlineExtension/index.d.ts +2 -2
- package/dist/types-ts4.5/extensibility/Extension/Lozenge.d.ts +7 -2
- package/dist/types-ts4.5/extensibility/Extension/LozengeComponent.d.ts +15 -0
- package/dist/types-ts4.5/extensibility/Extension/styles.d.ts +1 -0
- 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
|
package/afm-cc/tsconfig.json
CHANGED
|
@@ -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 =
|
|
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
|
|
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)(
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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;
|
package/dist/cjs/i18n/en.js
CHANGED
|
@@ -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
|
|
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',
|
package/dist/cjs/i18n/en_GB.js
CHANGED
|
@@ -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
|
|
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',
|
package/dist/cjs/i18n/en_ZZ.js
CHANGED
|
@@ -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': '
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
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(
|
|
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
|
-
|
|
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 {
|
|
8
|
-
|
|
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
|
}
|