@atlaskit/editor-common 78.8.5 → 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 +6 -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/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/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/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,11 @@
|
|
|
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
|
+
|
|
3
9
|
## 78.8.5
|
|
4
10
|
|
|
5
11
|
### 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;
|
|
@@ -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
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/react';
|
|
3
|
+
import EditorFileIcon from '@atlaskit/icon/glyph/editor/file';
|
|
4
|
+
import { SimpleTag as Tag } from '@atlaskit/tag';
|
|
5
|
+
import { lozengeWrapper, placeholderFallback, placeholderFallbackParams } from './styles';
|
|
6
|
+
export const ICON_SIZE = 24;
|
|
7
|
+
const capitalizeFirstLetter = str => {
|
|
8
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
9
|
+
};
|
|
10
|
+
export const LozengeComponent = ({
|
|
11
|
+
lozengeData,
|
|
12
|
+
isBlockExtension,
|
|
13
|
+
title,
|
|
14
|
+
params,
|
|
15
|
+
renderImage,
|
|
16
|
+
isNodeSelected,
|
|
17
|
+
showMacroInteractionDesignUpdates
|
|
18
|
+
}) => {
|
|
19
|
+
const capitalizedTitle = capitalizeFirstLetter(title);
|
|
20
|
+
// TODO: only show on lozenge on hover: https://product-fabric.atlassian.net/browse/PGXT-4945
|
|
21
|
+
if (showMacroInteractionDesignUpdates) {
|
|
22
|
+
return jsx("div", {
|
|
23
|
+
className: "extension-title",
|
|
24
|
+
css: lozengeWrapper,
|
|
25
|
+
"data-testid": "new-lozenge"
|
|
26
|
+
}, jsx(Tag, {
|
|
27
|
+
text: capitalizedTitle,
|
|
28
|
+
color: isNodeSelected ? 'blueLight' : 'greyLight'
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
return jsx("div", {
|
|
32
|
+
"data-testid": "lozenge-fallback",
|
|
33
|
+
css: placeholderFallback
|
|
34
|
+
}, lozengeData && !isBlockExtension ? renderImage({
|
|
35
|
+
height: ICON_SIZE,
|
|
36
|
+
width: ICON_SIZE,
|
|
37
|
+
...lozengeData
|
|
38
|
+
}) : jsx(EditorFileIcon, {
|
|
39
|
+
label: title
|
|
40
|
+
}), jsx("span", {
|
|
41
|
+
className: "extension-title"
|
|
42
|
+
}, capitalizedTitle), params && !isBlockExtension && jsx("span", {
|
|
43
|
+
css: placeholderFallbackParams
|
|
44
|
+
}, Object.keys(params).map(key => key && ` | ${key} = ${params[key].value}`)));
|
|
45
|
+
};
|
|
@@ -40,6 +40,7 @@ export const placeholderFallback = css`
|
|
|
40
40
|
& > img {
|
|
41
41
|
margin: 0 ${"var(--ds-space-050, 4px)"};
|
|
42
42
|
}
|
|
43
|
+
|
|
43
44
|
/* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */
|
|
44
45
|
/* stylelint-disable-next-line */
|
|
45
46
|
label: placeholder-fallback;
|
|
@@ -59,4 +60,10 @@ export const styledImage = css`
|
|
|
59
60
|
/* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */
|
|
60
61
|
/* stylelint-disable-next-line */
|
|
61
62
|
label: lozenge-image;
|
|
63
|
+
`;
|
|
64
|
+
export const lozengeWrapper = css`
|
|
65
|
+
display: flex;
|
|
66
|
+
justify-content: left;
|
|
67
|
+
width: 100%;
|
|
68
|
+
margin-left: ${"var(--ds-space-050, 4px)"};
|
|
62
69
|
`;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import React, { Component } from 'react';
|
|
3
3
|
import memoizeOne from 'memoize-one';
|
|
4
|
+
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
4
5
|
import { getExtensionModuleNodePrivateProps, getNodeRenderer } from '../extensions';
|
|
5
6
|
import { getExtensionRenderer } from '../utils';
|
|
6
7
|
import Extension from './Extension/Extension';
|
|
@@ -148,6 +149,10 @@ export class ExtensionComponent extends Component {
|
|
|
148
149
|
eventDispatcher,
|
|
149
150
|
showMacroInteractionDesignUpdates
|
|
150
151
|
} = this.props;
|
|
152
|
+
const {
|
|
153
|
+
selection
|
|
154
|
+
} = editorView.state;
|
|
155
|
+
const selectedNode = selection instanceof NodeSelection && selection.node;
|
|
151
156
|
if (node.type.name === 'multiBodiedExtension') {
|
|
152
157
|
return /*#__PURE__*/React.createElement(MultiBodiedExtension, {
|
|
153
158
|
node: node,
|
|
@@ -175,12 +180,14 @@ export class ExtensionComponent extends Component {
|
|
|
175
180
|
editorAppearance: editorAppearance,
|
|
176
181
|
hideFrame: (_this$state$_privateP = this.state._privateProps) === null || _this$state$_privateP === void 0 ? void 0 : _this$state$_privateP.__hideFrame,
|
|
177
182
|
pluginInjectionApi: pluginInjectionApi,
|
|
178
|
-
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
183
|
+
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
|
|
184
|
+
isNodeSelected: selectedNode === node
|
|
179
185
|
}, extensionHandlerResult);
|
|
180
186
|
case 'inlineExtension':
|
|
181
187
|
return /*#__PURE__*/React.createElement(InlineExtension, {
|
|
182
188
|
node: node,
|
|
183
|
-
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
189
|
+
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
|
|
190
|
+
isNodeSelected: selectedNode === node
|
|
184
191
|
}, extensionHandlerResult);
|
|
185
192
|
default:
|
|
186
193
|
return null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
2
2
|
const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
3
|
-
const packageVersion = "78.
|
|
3
|
+
const packageVersion = "78.9.0";
|
|
4
4
|
const sanitiseSentryEvents = (data, _hint) => {
|
|
5
5
|
// Remove URL as it has UGC
|
|
6
6
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -7,7 +7,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
|
|
|
7
7
|
import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
|
|
8
8
|
import Layer from '../Layer';
|
|
9
9
|
const packageName = "@atlaskit/editor-common";
|
|
10
|
-
const packageVersion = "78.
|
|
10
|
+
const packageVersion = "78.9.0";
|
|
11
11
|
const halfFocusRing = 1;
|
|
12
12
|
const dropOffset = '0, 8';
|
|
13
13
|
class DropList extends Component {
|
|
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
6
6
|
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) { _defineProperty(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; }
|
|
7
7
|
/** @jsx jsx */
|
|
8
8
|
|
|
9
|
-
import React from 'react';
|
|
9
|
+
import React, { Fragment } from 'react';
|
|
10
10
|
import { jsx } from '@emotion/react';
|
|
11
11
|
import classnames from 'classnames';
|
|
12
12
|
import { WithPluginState } from '../../..//with-plugin-state';
|
|
@@ -27,11 +27,13 @@ function ExtensionWithPluginState(props) {
|
|
|
27
27
|
handleRef = props.handleRef,
|
|
28
28
|
shadowClassNames = props.shadowClassNames,
|
|
29
29
|
hideFrame = props.hideFrame,
|
|
30
|
-
editorAppearance = props.editorAppearance
|
|
30
|
+
editorAppearance = props.editorAppearance,
|
|
31
|
+
showMacroInteractionDesignUpdates = props.showMacroInteractionDesignUpdates,
|
|
32
|
+
isNodeSelected = props.isNodeSelected;
|
|
31
33
|
var hasBody = ['bodiedExtension', 'multiBodiedExtension'].includes(node.type.name);
|
|
32
34
|
var isMobile = editorAppearance === 'mobile';
|
|
33
35
|
var hasChildren = !!children;
|
|
34
|
-
var removeBorder = hideFrame && !isMobile && !hasBody
|
|
36
|
+
var removeBorder = showMacroInteractionDesignUpdates || !!(hideFrame && !isMobile && !hasBody);
|
|
35
37
|
var getPos = props.getPos,
|
|
36
38
|
view = props.view;
|
|
37
39
|
var isTopLevelNode = React.useMemo(function () {
|
|
@@ -70,7 +72,11 @@ function ExtensionWithPluginState(props) {
|
|
|
70
72
|
customContainerStyles = breakoutStyles;
|
|
71
73
|
}
|
|
72
74
|
newContentStyles = _objectSpread(_objectSpread({}, newContentStyles), contentWrapper);
|
|
73
|
-
return jsx(
|
|
75
|
+
return jsx(Fragment, null, showMacroInteractionDesignUpdates && jsx(ExtensionLozenge, {
|
|
76
|
+
isNodeSelected: isNodeSelected,
|
|
77
|
+
node: node,
|
|
78
|
+
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
79
|
+
}), jsx("div", {
|
|
74
80
|
ref: handleRef,
|
|
75
81
|
"data-layout": node.attrs.layout,
|
|
76
82
|
className: classNames,
|
|
@@ -86,14 +92,16 @@ function ExtensionWithPluginState(props) {
|
|
|
86
92
|
contentEditable: false,
|
|
87
93
|
className: headerClassNames
|
|
88
94
|
}, !removeBorder && jsx(ExtensionLozenge, {
|
|
89
|
-
|
|
95
|
+
isNodeSelected: isNodeSelected,
|
|
96
|
+
node: node,
|
|
97
|
+
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
90
98
|
}), children), hasBody && jsx("div", {
|
|
91
99
|
css: newContentStyles
|
|
92
100
|
}, jsx("div", {
|
|
93
101
|
css: content,
|
|
94
102
|
ref: handleContentDOMRef,
|
|
95
103
|
className: "extension-content block"
|
|
96
|
-
}))));
|
|
104
|
+
})))));
|
|
97
105
|
}
|
|
98
106
|
var Extension = function Extension(props) {
|
|
99
107
|
// TODO: ED-17836 This code is here because confluence injects
|
|
@@ -6,8 +6,7 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
|
6
6
|
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); }; }
|
|
7
7
|
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; } }
|
|
8
8
|
/** @jsx jsx */
|
|
9
|
-
import React from 'react';
|
|
10
|
-
import { Component } from 'react';
|
|
9
|
+
import React, { Component } from 'react';
|
|
11
10
|
import { jsx } from '@emotion/react';
|
|
12
11
|
import ExtensionLozenge from '../Lozenge';
|
|
13
12
|
import { overlay } from '../styles';
|
|
@@ -24,7 +23,9 @@ var InlineExtension = /*#__PURE__*/function (_Component) {
|
|
|
24
23
|
value: function render() {
|
|
25
24
|
var _this$props = this.props,
|
|
26
25
|
node = _this$props.node,
|
|
27
|
-
children = _this$props.children
|
|
26
|
+
children = _this$props.children,
|
|
27
|
+
showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
|
|
28
|
+
isNodeSelected = _this$props.isNodeSelected;
|
|
28
29
|
var hasChildren = !!children;
|
|
29
30
|
var className = hasChildren ? 'with-overlay with-children' : 'with-overlay';
|
|
30
31
|
return jsx("div", {
|
|
@@ -34,7 +35,9 @@ var InlineExtension = /*#__PURE__*/function (_Component) {
|
|
|
34
35
|
css: overlay,
|
|
35
36
|
className: "extension-overlay"
|
|
36
37
|
}), children ? children : jsx(ExtensionLozenge, {
|
|
37
|
-
node: node
|
|
38
|
+
node: node,
|
|
39
|
+
isNodeSelected: isNodeSelected,
|
|
40
|
+
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
38
41
|
}));
|
|
39
42
|
}
|
|
40
43
|
}]);
|
|
@@ -1,32 +1,64 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
3
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
4
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
5
|
+
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
6
6
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
7
7
|
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
8
8
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
9
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
10
|
var _excluded = ["url"];
|
|
10
|
-
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; }
|
|
11
|
-
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) { _defineProperty(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; }
|
|
12
11
|
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); }; }
|
|
13
12
|
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; } }
|
|
14
13
|
/** @jsx jsx */
|
|
15
14
|
import { Component } from 'react';
|
|
16
15
|
import { jsx } from '@emotion/react';
|
|
17
|
-
import EditorFileIcon from '@atlaskit/icon/glyph/editor/file';
|
|
18
16
|
import { getExtensionLozengeData } from '../../utils';
|
|
19
|
-
import {
|
|
20
|
-
|
|
21
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
22
|
-
};
|
|
23
|
-
export var ICON_SIZE = 24;
|
|
17
|
+
import { LozengeComponent } from './LozengeComponent';
|
|
18
|
+
import { styledImage } from './styles';
|
|
24
19
|
var ExtensionLozenge = /*#__PURE__*/function (_Component) {
|
|
25
20
|
_inherits(ExtensionLozenge, _Component);
|
|
26
21
|
var _super = _createSuper(ExtensionLozenge);
|
|
27
22
|
function ExtensionLozenge() {
|
|
23
|
+
var _this;
|
|
28
24
|
_classCallCheck(this, ExtensionLozenge);
|
|
29
|
-
|
|
25
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
26
|
+
args[_key] = arguments[_key];
|
|
27
|
+
}
|
|
28
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
29
|
+
_defineProperty(_assertThisInitialized(_this), "renderImage", function (lozengeData) {
|
|
30
|
+
var extensionKey = _this.props.node.attrs.extensionKey;
|
|
31
|
+
var url = lozengeData.url,
|
|
32
|
+
rest = _objectWithoutProperties(lozengeData, _excluded);
|
|
33
|
+
return jsx("img", _extends({
|
|
34
|
+
css: styledImage,
|
|
35
|
+
src: url
|
|
36
|
+
}, rest, {
|
|
37
|
+
alt: extensionKey
|
|
38
|
+
}));
|
|
39
|
+
});
|
|
40
|
+
_defineProperty(_assertThisInitialized(_this), "renderFallback", function (lozengeData) {
|
|
41
|
+
var _this$props = _this.props,
|
|
42
|
+
showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
|
|
43
|
+
isNodeSelected = _this$props.isNodeSelected;
|
|
44
|
+
var _this$props$node$attr = _this.props.node.attrs,
|
|
45
|
+
parameters = _this$props$node$attr.parameters,
|
|
46
|
+
extensionKey = _this$props$node$attr.extensionKey;
|
|
47
|
+
var name = _this.props.node.type.name;
|
|
48
|
+
var params = parameters && parameters.macroParams;
|
|
49
|
+
var title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
|
|
50
|
+
var isBlockExtension = name === 'extension';
|
|
51
|
+
return jsx(LozengeComponent, {
|
|
52
|
+
isNodeSelected: isNodeSelected,
|
|
53
|
+
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
|
|
54
|
+
isBlockExtension: isBlockExtension,
|
|
55
|
+
lozengeData: lozengeData,
|
|
56
|
+
params: params,
|
|
57
|
+
title: title,
|
|
58
|
+
renderImage: _this.renderImage
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
return _this;
|
|
30
62
|
}
|
|
31
63
|
_createClass(ExtensionLozenge, [{
|
|
32
64
|
key: "render",
|
|
@@ -45,45 +77,6 @@ var ExtensionLozenge = /*#__PURE__*/function (_Component) {
|
|
|
45
77
|
});
|
|
46
78
|
return this.renderFallback(iconData);
|
|
47
79
|
}
|
|
48
|
-
}, {
|
|
49
|
-
key: "renderImage",
|
|
50
|
-
value: function renderImage(lozengeData) {
|
|
51
|
-
var extensionKey = this.props.node.attrs.extensionKey;
|
|
52
|
-
var url = lozengeData.url,
|
|
53
|
-
rest = _objectWithoutProperties(lozengeData, _excluded);
|
|
54
|
-
return jsx("img", _extends({
|
|
55
|
-
css: styledImage,
|
|
56
|
-
src: url
|
|
57
|
-
}, rest, {
|
|
58
|
-
alt: extensionKey
|
|
59
|
-
}));
|
|
60
|
-
}
|
|
61
|
-
}, {
|
|
62
|
-
key: "renderFallback",
|
|
63
|
-
value: function renderFallback(lozengeData) {
|
|
64
|
-
var _this$props$node$attr = this.props.node.attrs,
|
|
65
|
-
parameters = _this$props$node$attr.parameters,
|
|
66
|
-
extensionKey = _this$props$node$attr.extensionKey;
|
|
67
|
-
var name = this.props.node.type.name;
|
|
68
|
-
var params = parameters && parameters.macroParams;
|
|
69
|
-
var title = parameters && parameters.extensionTitle || parameters && parameters.macroMetadata && parameters.macroMetadata.title || extensionKey;
|
|
70
|
-
var isBlockExtension = name === 'extension';
|
|
71
|
-
return jsx("div", {
|
|
72
|
-
"data-testid": "lozenge-fallback",
|
|
73
|
-
css: placeholderFallback
|
|
74
|
-
}, lozengeData && !isBlockExtension ? this.renderImage(_objectSpread({
|
|
75
|
-
height: ICON_SIZE,
|
|
76
|
-
width: ICON_SIZE
|
|
77
|
-
}, lozengeData)) : jsx(EditorFileIcon, {
|
|
78
|
-
label: title
|
|
79
|
-
}), jsx("span", {
|
|
80
|
-
className: "extension-title"
|
|
81
|
-
}, capitalizeFirstLetter(title)), params && !isBlockExtension && jsx("span", {
|
|
82
|
-
css: placeholderFallbackParams
|
|
83
|
-
}, Object.keys(params).map(function (key) {
|
|
84
|
-
return key && " | ".concat(key, " = ").concat(params[key].value);
|
|
85
|
-
})));
|
|
86
|
-
}
|
|
87
80
|
}]);
|
|
88
81
|
return ExtensionLozenge;
|
|
89
82
|
}(Component);
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
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; }
|
|
3
|
+
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) { _defineProperty(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; }
|
|
4
|
+
/** @jsx jsx */
|
|
5
|
+
import { jsx } from '@emotion/react';
|
|
6
|
+
import EditorFileIcon from '@atlaskit/icon/glyph/editor/file';
|
|
7
|
+
import { SimpleTag as Tag } from '@atlaskit/tag';
|
|
8
|
+
import { lozengeWrapper, placeholderFallback, placeholderFallbackParams } from './styles';
|
|
9
|
+
export var ICON_SIZE = 24;
|
|
10
|
+
var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
|
|
11
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
12
|
+
};
|
|
13
|
+
export var LozengeComponent = function LozengeComponent(_ref) {
|
|
14
|
+
var lozengeData = _ref.lozengeData,
|
|
15
|
+
isBlockExtension = _ref.isBlockExtension,
|
|
16
|
+
title = _ref.title,
|
|
17
|
+
params = _ref.params,
|
|
18
|
+
renderImage = _ref.renderImage,
|
|
19
|
+
isNodeSelected = _ref.isNodeSelected,
|
|
20
|
+
showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates;
|
|
21
|
+
var capitalizedTitle = capitalizeFirstLetter(title);
|
|
22
|
+
// TODO: only show on lozenge on hover: https://product-fabric.atlassian.net/browse/PGXT-4945
|
|
23
|
+
if (showMacroInteractionDesignUpdates) {
|
|
24
|
+
return jsx("div", {
|
|
25
|
+
className: "extension-title",
|
|
26
|
+
css: lozengeWrapper,
|
|
27
|
+
"data-testid": "new-lozenge"
|
|
28
|
+
}, jsx(Tag, {
|
|
29
|
+
text: capitalizedTitle,
|
|
30
|
+
color: isNodeSelected ? 'blueLight' : 'greyLight'
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
return jsx("div", {
|
|
34
|
+
"data-testid": "lozenge-fallback",
|
|
35
|
+
css: placeholderFallback
|
|
36
|
+
}, lozengeData && !isBlockExtension ? renderImage(_objectSpread({
|
|
37
|
+
height: ICON_SIZE,
|
|
38
|
+
width: ICON_SIZE
|
|
39
|
+
}, lozengeData)) : jsx(EditorFileIcon, {
|
|
40
|
+
label: title
|
|
41
|
+
}), jsx("span", {
|
|
42
|
+
className: "extension-title"
|
|
43
|
+
}, capitalizedTitle), params && !isBlockExtension && jsx("span", {
|
|
44
|
+
css: placeholderFallbackParams
|
|
45
|
+
}, Object.keys(params).map(function (key) {
|
|
46
|
+
return key && " | ".concat(key, " = ").concat(params[key].value);
|
|
47
|
+
})));
|
|
48
|
+
};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
2
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
3
3
|
import { css } from '@emotion/react';
|
|
4
4
|
import { B200, N20, N20A, N70 } from '@atlaskit/theme/colors';
|
|
5
5
|
import { BODIED_EXT_PADDING, EXTENSION_PADDING } from '../../styles';
|
|
6
6
|
export { EXTENSION_PADDING as padding, BODIED_EXT_PADDING };
|
|
7
7
|
export var wrapperDefault = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\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(N20, ")"), "var(--ds-border-radius, 3px)", "var(--ds-border-selected, ".concat(B200, ")"), "var(--ds-background-neutral-hovered, ".concat(N20A, ")"));
|
|
8
8
|
export var overlay = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\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)");
|
|
9
|
-
export var placeholderFallback = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\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)");
|
|
9
|
+
export var placeholderFallback = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\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)");
|
|
10
10
|
export var placeholderFallbackParams = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\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(N70, ")"));
|
|
11
|
-
export var styledImage = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\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"])));
|
|
11
|
+
export var styledImage = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\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"])));
|
|
12
|
+
export var lozengeWrapper = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: left;\n width: 100%;\n margin-left: ", ";\n"])), "var(--ds-space-050, 4px)");
|
|
@@ -11,6 +11,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
11
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
12
|
import React, { Component } from 'react';
|
|
13
13
|
import memoizeOne from 'memoize-one';
|
|
14
|
+
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
14
15
|
import { getExtensionModuleNodePrivateProps, getNodeRenderer } from '../extensions';
|
|
15
16
|
import { getExtensionRenderer } from '../utils';
|
|
16
17
|
import Extension from './Extension/Extension';
|
|
@@ -185,6 +186,8 @@ export var ExtensionComponent = /*#__PURE__*/function (_Component) {
|
|
|
185
186
|
getPos = _this$props2.getPos,
|
|
186
187
|
eventDispatcher = _this$props2.eventDispatcher,
|
|
187
188
|
showMacroInteractionDesignUpdates = _this$props2.showMacroInteractionDesignUpdates;
|
|
189
|
+
var selection = editorView.state.selection;
|
|
190
|
+
var selectedNode = selection instanceof NodeSelection && selection.node;
|
|
188
191
|
if (node.type.name === 'multiBodiedExtension') {
|
|
189
192
|
return /*#__PURE__*/React.createElement(MultiBodiedExtension, {
|
|
190
193
|
node: node,
|
|
@@ -212,12 +215,14 @@ export var ExtensionComponent = /*#__PURE__*/function (_Component) {
|
|
|
212
215
|
editorAppearance: editorAppearance,
|
|
213
216
|
hideFrame: (_this$state$_privateP = this.state._privateProps) === null || _this$state$_privateP === void 0 ? void 0 : _this$state$_privateP.__hideFrame,
|
|
214
217
|
pluginInjectionApi: pluginInjectionApi,
|
|
215
|
-
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
218
|
+
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
|
|
219
|
+
isNodeSelected: selectedNode === node
|
|
216
220
|
}, extensionHandlerResult);
|
|
217
221
|
case 'inlineExtension':
|
|
218
222
|
return /*#__PURE__*/React.createElement(InlineExtension, {
|
|
219
223
|
node: node,
|
|
220
|
-
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
224
|
+
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
|
|
225
|
+
isNodeSelected: selectedNode === node
|
|
221
226
|
}, extensionHandlerResult);
|
|
222
227
|
default:
|
|
223
228
|
return null;
|
|
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
6
6
|
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) { _defineProperty(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; }
|
|
7
7
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
8
8
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
9
|
-
var packageVersion = "78.
|
|
9
|
+
var packageVersion = "78.9.0";
|
|
10
10
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
11
11
|
// Remove URL as it has UGC
|
|
12
12
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -17,7 +17,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
|
|
|
17
17
|
import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
|
|
18
18
|
import Layer from '../Layer';
|
|
19
19
|
var packageName = "@atlaskit/editor-common";
|
|
20
|
-
var packageVersion = "78.
|
|
20
|
+
var packageVersion = "78.9.0";
|
|
21
21
|
var halfFocusRing = 1;
|
|
22
22
|
var dropOffset = '0, 8';
|
|
23
23
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -1,12 +1,12 @@
|
|
|
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 type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
|
|
6
5
|
export interface Props {
|
|
7
6
|
node: PmNode;
|
|
8
7
|
children?: React.ReactNode;
|
|
9
8
|
showMacroInteractionDesignUpdates?: boolean;
|
|
9
|
+
isNodeSelected?: boolean;
|
|
10
10
|
}
|
|
11
11
|
export default class InlineExtension extends Component<Props, any> {
|
|
12
12
|
render(): jsx.JSX.Element;
|
|
@@ -2,11 +2,16 @@
|
|
|
2
2
|
import { Component } from 'react';
|
|
3
3
|
import { jsx } from '@emotion/react';
|
|
4
4
|
import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
|
|
5
|
-
export declare const capitalizeFirstLetter: (str: string) => string;
|
|
6
5
|
export interface Props {
|
|
7
6
|
node: PmNode;
|
|
7
|
+
showMacroInteractionDesignUpdates?: boolean;
|
|
8
|
+
isNodeSelected?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface LozengeData {
|
|
11
|
+
url: string;
|
|
12
|
+
height?: number;
|
|
13
|
+
width?: number;
|
|
8
14
|
}
|
|
9
|
-
export declare const ICON_SIZE = 24;
|
|
10
15
|
export default class ExtensionLozenge extends Component<Props, any> {
|
|
11
16
|
render(): jsx.JSX.Element;
|
|
12
17
|
private renderImage;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/react';
|
|
3
|
+
import type { LozengeData } from './Lozenge';
|
|
4
|
+
export declare const ICON_SIZE = 24;
|
|
5
|
+
type LozengeComponentProps = {
|
|
6
|
+
lozengeData?: LozengeData;
|
|
7
|
+
isBlockExtension: boolean;
|
|
8
|
+
title: string;
|
|
9
|
+
params: any;
|
|
10
|
+
renderImage: (lozengeData: LozengeData) => void;
|
|
11
|
+
isNodeSelected?: boolean;
|
|
12
|
+
showMacroInteractionDesignUpdates?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare const LozengeComponent: ({ lozengeData, isBlockExtension, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, }: LozengeComponentProps) => jsx.JSX.Element;
|
|
15
|
+
export {};
|
|
@@ -5,3 +5,4 @@ export declare const overlay: import("@emotion/react").SerializedStyles;
|
|
|
5
5
|
export declare const placeholderFallback: import("@emotion/react").SerializedStyles;
|
|
6
6
|
export declare const placeholderFallbackParams: import("@emotion/react").SerializedStyles;
|
|
7
7
|
export declare const styledImage: import("@emotion/react").SerializedStyles;
|
|
8
|
+
export declare const lozengeWrapper: import("@emotion/react").SerializedStyles;
|
|
@@ -1,12 +1,12 @@
|
|
|
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 type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
|
|
6
5
|
export interface Props {
|
|
7
6
|
node: PmNode;
|
|
8
7
|
children?: React.ReactNode;
|
|
9
8
|
showMacroInteractionDesignUpdates?: boolean;
|
|
9
|
+
isNodeSelected?: boolean;
|
|
10
10
|
}
|
|
11
11
|
export default class InlineExtension extends Component<Props, any> {
|
|
12
12
|
render(): jsx.JSX.Element;
|
|
@@ -2,11 +2,16 @@
|
|
|
2
2
|
import { Component } from 'react';
|
|
3
3
|
import { jsx } from '@emotion/react';
|
|
4
4
|
import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
|
|
5
|
-
export declare const capitalizeFirstLetter: (str: string) => string;
|
|
6
5
|
export interface Props {
|
|
7
6
|
node: PmNode;
|
|
7
|
+
showMacroInteractionDesignUpdates?: boolean;
|
|
8
|
+
isNodeSelected?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface LozengeData {
|
|
11
|
+
url: string;
|
|
12
|
+
height?: number;
|
|
13
|
+
width?: number;
|
|
8
14
|
}
|
|
9
|
-
export declare const ICON_SIZE = 24;
|
|
10
15
|
export default class ExtensionLozenge extends Component<Props, any> {
|
|
11
16
|
render(): jsx.JSX.Element;
|
|
12
17
|
private renderImage;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/react';
|
|
3
|
+
import type { LozengeData } from './Lozenge';
|
|
4
|
+
export declare const ICON_SIZE = 24;
|
|
5
|
+
type LozengeComponentProps = {
|
|
6
|
+
lozengeData?: LozengeData;
|
|
7
|
+
isBlockExtension: boolean;
|
|
8
|
+
title: string;
|
|
9
|
+
params: any;
|
|
10
|
+
renderImage: (lozengeData: LozengeData) => void;
|
|
11
|
+
isNodeSelected?: boolean;
|
|
12
|
+
showMacroInteractionDesignUpdates?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare const LozengeComponent: ({ lozengeData, isBlockExtension, title, params, renderImage, isNodeSelected, showMacroInteractionDesignUpdates, }: LozengeComponentProps) => jsx.JSX.Element;
|
|
15
|
+
export {};
|
|
@@ -5,3 +5,4 @@ export declare const overlay: import("@emotion/react").SerializedStyles;
|
|
|
5
5
|
export declare const placeholderFallback: import("@emotion/react").SerializedStyles;
|
|
6
6
|
export declare const placeholderFallbackParams: import("@emotion/react").SerializedStyles;
|
|
7
7
|
export declare const styledImage: import("@emotion/react").SerializedStyles;
|
|
8
|
+
export declare const lozengeWrapper: import("@emotion/react").SerializedStyles;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-common",
|
|
3
|
-
"version": "78.
|
|
3
|
+
"version": "78.9.0",
|
|
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/"
|
|
@@ -128,6 +128,7 @@
|
|
|
128
128
|
"@atlaskit/smart-card": "^26.48.0",
|
|
129
129
|
"@atlaskit/smart-user-picker": "^6.9.0",
|
|
130
130
|
"@atlaskit/spinner": "^16.0.0",
|
|
131
|
+
"@atlaskit/tag": "^12.0.0",
|
|
131
132
|
"@atlaskit/task-decision": "^17.9.0",
|
|
132
133
|
"@atlaskit/textfield": "^6.0.0",
|
|
133
134
|
"@atlaskit/theme": "^12.6.0",
|