@atlaskit/editor-common 78.10.0 → 78.11.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 +16 -0
- package/dist/cjs/extensibility/Extension/InlineExtension/index.js +40 -42
- package/dist/cjs/extensibility/Extension/InlineExtension/styles.js +32 -5
- package/dist/cjs/extensibility/ExtensionComponent.js +4 -2
- package/dist/cjs/extensibility/MultiBodiedExtension/index.js +21 -7
- package/dist/cjs/extensibility/MultiBodiedExtension/styles.js +17 -4
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui/MediaSingle/index.js +5 -2
- package/dist/cjs/ui/MediaSingle/styled.js +44 -8
- package/dist/cjs/ui/MultiBodiedExtension/index.js +1 -8
- package/dist/cjs/ui/WidthProvider/index.js +35 -49
- package/dist/cjs/ui/index.js +6 -0
- package/dist/es2019/extensibility/Extension/InlineExtension/index.js +43 -28
- package/dist/es2019/extensibility/Extension/InlineExtension/styles.js +29 -22
- package/dist/es2019/extensibility/ExtensionComponent.js +4 -2
- package/dist/es2019/extensibility/MultiBodiedExtension/index.js +22 -8
- package/dist/es2019/extensibility/MultiBodiedExtension/styles.js +16 -14
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui/MediaSingle/index.js +4 -2
- package/dist/es2019/ui/MediaSingle/styled.js +40 -10
- package/dist/es2019/ui/MultiBodiedExtension/index.js +1 -8
- package/dist/es2019/ui/WidthProvider/index.js +29 -35
- package/dist/es2019/ui/index.js +1 -1
- package/dist/esm/extensibility/Extension/InlineExtension/index.js +40 -45
- package/dist/esm/extensibility/Extension/InlineExtension/styles.js +31 -3
- package/dist/esm/extensibility/ExtensionComponent.js +4 -2
- package/dist/esm/extensibility/MultiBodiedExtension/index.js +22 -8
- package/dist/esm/extensibility/MultiBodiedExtension/styles.js +17 -3
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui/MediaSingle/index.js +5 -2
- package/dist/esm/ui/MediaSingle/styled.js +44 -9
- package/dist/esm/ui/MultiBodiedExtension/index.js +1 -8
- package/dist/esm/ui/WidthProvider/index.js +31 -49
- package/dist/esm/ui/index.js +1 -1
- package/dist/types/extensibility/Extension/InlineExtension/index.d.ts +5 -4
- package/dist/types/extensibility/Extension/InlineExtension/styles.d.ts +1 -0
- package/dist/types/extensibility/MultiBodiedExtension/index.d.ts +1 -0
- package/dist/types/preset/plugin-injection-api.d.ts +1 -1
- package/dist/types/types/feature-flags.d.ts +16 -0
- package/dist/types/ui/MediaSingle/index.d.ts +2 -1
- package/dist/types/ui/MediaSingle/styled.d.ts +11 -2
- package/dist/types/ui/WidthProvider/index.d.ts +3 -10
- package/dist/types/ui/index.d.ts +1 -1
- package/dist/types-ts4.5/extensibility/Extension/InlineExtension/index.d.ts +5 -4
- package/dist/types-ts4.5/extensibility/Extension/InlineExtension/styles.d.ts +1 -0
- package/dist/types-ts4.5/extensibility/MultiBodiedExtension/index.d.ts +1 -0
- package/dist/types-ts4.5/preset/plugin-injection-api.d.ts +2 -2
- package/dist/types-ts4.5/types/feature-flags.d.ts +16 -0
- package/dist/types-ts4.5/ui/MediaSingle/index.d.ts +2 -1
- package/dist/types-ts4.5/ui/MediaSingle/styled.d.ts +11 -2
- package/dist/types-ts4.5/ui/WidthProvider/index.d.ts +3 -10
- package/dist/types-ts4.5/ui/index.d.ts +1 -1
- package/package.json +4 -1
- package/tsconfig.json +1 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 78.11.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#63691](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/63691) [`02293e70771b`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/02293e70771b) - add allowWidthDetector option to be used to skip width detector in renderer, to make media single works in inline extension like excerpt include
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#78210](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/78210) [`cf7638b2d3e9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/cf7638b2d3e9) - [ux] ED-22329: removed additional CSS added for decisionItem margin-top
|
|
12
|
+
|
|
13
|
+
## 78.10.1
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#77796](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/77796) [`eab996d08513`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/eab996d08513) - Add new statsig experiement for preserve table width, add support for passing through width to create table. Allow tables to be inserted at full width
|
|
18
|
+
|
|
3
19
|
## 78.10.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
|
@@ -6,53 +6,51 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
12
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
10
|
var _react2 = require("@emotion/react");
|
|
11
|
+
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
12
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
13
|
+
var _hooks = require("../../../hooks");
|
|
14
|
+
var _ui = require("../../../ui");
|
|
16
15
|
var _Lozenge = _interopRequireDefault(require("../Lozenge"));
|
|
17
16
|
var _styles = require("../styles");
|
|
18
17
|
var _styles2 = require("./styles");
|
|
19
18
|
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); }
|
|
20
19
|
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; }
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
var InlineExtension =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
/** @jsx jsx */
|
|
21
|
+
|
|
22
|
+
var InlineExtension = function InlineExtension(props) {
|
|
23
|
+
var node = props.node,
|
|
24
|
+
pluginInjectionApi = props.pluginInjectionApi,
|
|
25
|
+
showMacroInteractionDesignUpdates = props.showMacroInteractionDesignUpdates,
|
|
26
|
+
isNodeSelected = props.isNodeSelected,
|
|
27
|
+
children = props.children;
|
|
28
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['width']),
|
|
29
|
+
widthState = _useSharedPluginState.widthState;
|
|
30
|
+
var hasChildren = !!children;
|
|
31
|
+
var className = hasChildren ? 'with-overlay with-children' : 'with-overlay';
|
|
32
|
+
var rendererContainerWidth = widthState ? widthState.width - _editorSharedStyles.akEditorGutterPadding * 2 : 0;
|
|
33
|
+
var extendedInlineExtension = (0, _platformFeatureFlags.getBooleanFF)('platform.editor.inline_extension.extended_lcqdn') || false;
|
|
34
|
+
var inlineExtensionInternal = (0, _react2.jsx)(_react.Fragment, null, showMacroInteractionDesignUpdates && (0, _react2.jsx)(_Lozenge.default, {
|
|
35
|
+
node: node,
|
|
36
|
+
isNodeSelected: isNodeSelected,
|
|
37
|
+
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
38
|
+
}), (0, _react2.jsx)("div", {
|
|
39
|
+
css: [_styles2.wrapperStyle, extendedInlineExtension && _styles2.inlineWrapperStyels],
|
|
40
|
+
className: "extension-container inline ".concat(className)
|
|
41
|
+
}, (0, _react2.jsx)("div", {
|
|
42
|
+
css: _styles.overlay,
|
|
43
|
+
className: "extension-overlay"
|
|
44
|
+
}), children ? children : (0, _react2.jsx)(_Lozenge.default, {
|
|
45
|
+
node: node,
|
|
46
|
+
isNodeSelected: isNodeSelected,
|
|
47
|
+
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
48
|
+
})));
|
|
49
|
+
if (extendedInlineExtension) {
|
|
50
|
+
return (0, _react2.jsx)(_ui.WidthContext.Provider, {
|
|
51
|
+
value: (0, _ui.createWidthContext)(rendererContainerWidth)
|
|
52
|
+
}, inlineExtensionInternal);
|
|
29
53
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
var _this$props = this.props,
|
|
34
|
-
node = _this$props.node,
|
|
35
|
-
children = _this$props.children,
|
|
36
|
-
showMacroInteractionDesignUpdates = _this$props.showMacroInteractionDesignUpdates,
|
|
37
|
-
isNodeSelected = _this$props.isNodeSelected;
|
|
38
|
-
var hasChildren = !!children;
|
|
39
|
-
var className = hasChildren ? 'with-overlay with-children' : 'with-overlay';
|
|
40
|
-
return (0, _react2.jsx)(_react.Fragment, null, showMacroInteractionDesignUpdates && (0, _react2.jsx)(_Lozenge.default, {
|
|
41
|
-
node: node,
|
|
42
|
-
isNodeSelected: isNodeSelected,
|
|
43
|
-
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
44
|
-
}), (0, _react2.jsx)("div", {
|
|
45
|
-
css: _styles2.wrapperStyle,
|
|
46
|
-
className: "extension-container inline ".concat(className)
|
|
47
|
-
}, (0, _react2.jsx)("div", {
|
|
48
|
-
css: _styles.overlay,
|
|
49
|
-
className: "extension-overlay"
|
|
50
|
-
}), children ? children : (0, _react2.jsx)(_Lozenge.default, {
|
|
51
|
-
node: node,
|
|
52
|
-
isNodeSelected: isNodeSelected,
|
|
53
|
-
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
54
|
-
})));
|
|
55
|
-
}
|
|
56
|
-
}]);
|
|
57
|
-
return InlineExtension;
|
|
58
|
-
}(_react.Component);
|
|
54
|
+
return inlineExtensionInternal;
|
|
55
|
+
};
|
|
56
|
+
var _default = exports.default = InlineExtension;
|
|
@@ -1,12 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports.wrapperStyle = void 0;
|
|
8
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
6
|
+
exports.wrapperStyle = exports.inlineWrapperStyels = void 0;
|
|
9
7
|
var _react = require("@emotion/react");
|
|
10
8
|
var _styles = require("../styles");
|
|
11
|
-
var
|
|
12
|
-
|
|
9
|
+
var wrapperStyle = exports.wrapperStyle = (0, _react.css)(_styles.wrapperDefault, {
|
|
10
|
+
cursor: 'pointer',
|
|
11
|
+
display: 'inline-flex',
|
|
12
|
+
margin: "1px 1px ".concat("var(--ds-space-050, 4px)"),
|
|
13
|
+
'> img': {
|
|
14
|
+
borderRadius: "var(--ds-border-radius, 3px)"
|
|
15
|
+
},
|
|
16
|
+
'&::after, &::before': {
|
|
17
|
+
verticalAlign: 'text-top',
|
|
18
|
+
display: 'inline-block',
|
|
19
|
+
width: '1px',
|
|
20
|
+
content: "''"
|
|
21
|
+
},
|
|
22
|
+
'&.with-children': {
|
|
23
|
+
padding: 0,
|
|
24
|
+
background: "var(--ds-background-neutral-subtle, white)"
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
var inlineWrapperStyels = exports.inlineWrapperStyels = (0, _react.css)({
|
|
28
|
+
maxWidth: '100%',
|
|
29
|
+
display: 'inline-block',
|
|
30
|
+
'&::after, &::before': {
|
|
31
|
+
display: 'block'
|
|
32
|
+
},
|
|
33
|
+
'tr &': {
|
|
34
|
+
maxWidth: 'inherit'
|
|
35
|
+
},
|
|
36
|
+
'.rich-media-item': {
|
|
37
|
+
maxWidth: '100%'
|
|
38
|
+
}
|
|
39
|
+
});
|
|
@@ -208,7 +208,8 @@ var ExtensionComponent = exports.ExtensionComponent = /*#__PURE__*/function (_Co
|
|
|
208
208
|
eventDispatcher: eventDispatcher,
|
|
209
209
|
pluginInjectionApi: pluginInjectionApi,
|
|
210
210
|
editorAppearance: editorAppearance,
|
|
211
|
-
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
|
|
211
|
+
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
|
|
212
|
+
isNodeSelected: selectedNode === node
|
|
212
213
|
});
|
|
213
214
|
}
|
|
214
215
|
var extensionHandlerResult = this.tryExtensionHandler(undefined);
|
|
@@ -232,7 +233,8 @@ var ExtensionComponent = exports.ExtensionComponent = /*#__PURE__*/function (_Co
|
|
|
232
233
|
return /*#__PURE__*/_react.default.createElement(_InlineExtension.default, {
|
|
233
234
|
node: node,
|
|
234
235
|
showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates,
|
|
235
|
-
isNodeSelected: selectedNode === node
|
|
236
|
+
isNodeSelected: selectedNode === node,
|
|
237
|
+
pluginInjectionApi: pluginInjectionApi
|
|
236
238
|
}, extensionHandlerResult);
|
|
237
239
|
default:
|
|
238
240
|
return null;
|
|
@@ -19,6 +19,7 @@ var _hooks = require("../../hooks");
|
|
|
19
19
|
var _MultiBodiedExtension = require("../../ui/MultiBodiedExtension");
|
|
20
20
|
var _utils = require("../../utils");
|
|
21
21
|
var _withPluginState = require("../../with-plugin-state");
|
|
22
|
+
var _Lozenge = _interopRequireDefault(require("../Extension/Lozenge"));
|
|
22
23
|
var _actionApi = require("./action-api");
|
|
23
24
|
var _styles = require("./styles");
|
|
24
25
|
var _excluded = ["url"];
|
|
@@ -27,7 +28,10 @@ var _excluded = ["url"];
|
|
|
27
28
|
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); }
|
|
28
29
|
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; }
|
|
29
30
|
// Similar to the one in platform/packages/editor/editor-common/src/extensibility/Extension/Lozenge.tsx
|
|
30
|
-
var getWrapperTitleContent = function getWrapperTitleContent(imageData, title) {
|
|
31
|
+
var getWrapperTitleContent = function getWrapperTitleContent(imageData, title, showMacroInteractionDesignUpdates) {
|
|
32
|
+
if (showMacroInteractionDesignUpdates) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
31
35
|
if (imageData) {
|
|
32
36
|
var url = imageData.url,
|
|
33
37
|
rest = (0, _objectWithoutProperties2.default)(imageData, _excluded);
|
|
@@ -44,7 +48,8 @@ var getWrapperTitleContent = function getWrapperTitleContent(imageData, title) {
|
|
|
44
48
|
})), title);
|
|
45
49
|
}
|
|
46
50
|
return (0, _react2.jsx)("div", {
|
|
47
|
-
className: "extension-title"
|
|
51
|
+
className: "extension-title",
|
|
52
|
+
"data-testid": 'multiBodiedExtension-default-lozenge'
|
|
48
53
|
}, (0, _react2.jsx)(_file.default, {
|
|
49
54
|
label: title
|
|
50
55
|
}), title);
|
|
@@ -57,7 +62,9 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
|
|
|
57
62
|
editorView = _ref.editorView,
|
|
58
63
|
eventDispatcher = _ref.eventDispatcher,
|
|
59
64
|
widthState = _ref.widthState,
|
|
60
|
-
editorAppearance = _ref.editorAppearance
|
|
65
|
+
editorAppearance = _ref.editorAppearance,
|
|
66
|
+
showMacroInteractionDesignUpdates = _ref.showMacroInteractionDesignUpdates,
|
|
67
|
+
isNodeSelected = _ref.isNodeSelected;
|
|
61
68
|
var _node$attrs = node.attrs,
|
|
62
69
|
parameters = _node$attrs.parameters,
|
|
63
70
|
extensionKey = _node$attrs.extensionKey;
|
|
@@ -108,13 +115,20 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
|
|
|
108
115
|
breakoutStyles = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_calculateBreakoutSty), _calculateBreakoutSty));
|
|
109
116
|
mbeWrapperStyles = breakoutStyles;
|
|
110
117
|
}
|
|
111
|
-
var wrapperClassNames = (0, _classnames.default)('multiBodiedExtension--wrapper', 'extension-container', 'block'
|
|
112
|
-
|
|
118
|
+
var wrapperClassNames = (0, _classnames.default)('multiBodiedExtension--wrapper', 'extension-container', 'block', {
|
|
119
|
+
'remove-margin-top': showMacroInteractionDesignUpdates
|
|
120
|
+
});
|
|
121
|
+
return (0, _react2.jsx)(_react.Fragment, null, showMacroInteractionDesignUpdates && (0, _react2.jsx)(_Lozenge.default, {
|
|
122
|
+
isNodeSelected: isNodeSelected,
|
|
123
|
+
node: node,
|
|
124
|
+
showMacroInteractionDesignUpdates: true,
|
|
125
|
+
customContainerStyles: mbeWrapperStyles
|
|
126
|
+
}), (0, _react2.jsx)("div", {
|
|
113
127
|
className: wrapperClassNames,
|
|
114
128
|
css: _styles.mbeExtensionWrapperCSS,
|
|
115
129
|
"data-testid": "multiBodiedExtension--wrapper",
|
|
116
130
|
style: mbeWrapperStyles
|
|
117
|
-
}, getWrapperTitleContent(imageData, title), (0, _react2.jsx)("div", {
|
|
131
|
+
}, getWrapperTitleContent(imageData, title, showMacroInteractionDesignUpdates), (0, _react2.jsx)("div", {
|
|
118
132
|
className: "multiBodiedExtension--container",
|
|
119
133
|
css: containerCssExtended,
|
|
120
134
|
"data-testid": "multiBodiedExtension--container",
|
|
@@ -127,7 +141,7 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
|
|
|
127
141
|
className: "multiBodiedExtension--frames",
|
|
128
142
|
"data-testid": "multiBodiedExtension--frames",
|
|
129
143
|
ref: articleRef
|
|
130
|
-
})));
|
|
144
|
+
}))));
|
|
131
145
|
};
|
|
132
146
|
var MultiBodiedExtensionWithSharedState = function MultiBodiedExtensionWithSharedState(props) {
|
|
133
147
|
var pluginInjectionApi = props.pluginInjectionApi;
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.mbeExtensionWrapperCSS = void 0;
|
|
8
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
7
|
var _react = require("@emotion/react");
|
|
10
8
|
var _styles = require("../Extension/styles");
|
|
11
|
-
var _templateObject;
|
|
12
9
|
// Wrapper the extension title and extensionContainer
|
|
13
|
-
var mbeExtensionWrapperCSS = exports.mbeExtensionWrapperCSS = (0, _react.css)(
|
|
10
|
+
var mbeExtensionWrapperCSS = exports.mbeExtensionWrapperCSS = (0, _react.css)(_styles.wrapperDefault, {
|
|
11
|
+
'&.remove-margin-top': {
|
|
12
|
+
marginTop: 0
|
|
13
|
+
},
|
|
14
|
+
cursor: 'pointer',
|
|
15
|
+
marginTop: "var(--ds-space-250, 24px)",
|
|
16
|
+
marginBottom: "var(--ds-space-200, 16px)",
|
|
17
|
+
'.extension-title': {
|
|
18
|
+
display: 'flex',
|
|
19
|
+
alignItems: 'center',
|
|
20
|
+
lineHeight: '16px !important',
|
|
21
|
+
marginBottom: "var(--ds-space-100, 8px)",
|
|
22
|
+
marginLeft: "var(--ds-space-050, 4px)".concat(" !important"),
|
|
23
|
+
marginRight: "var(--ds-space-100, 8px)",
|
|
24
|
+
paddingTop: "var(--ds-space-100, 8px)".concat(" !important")
|
|
25
|
+
}
|
|
26
|
+
});
|
|
@@ -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.11.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.11.0";
|
|
26
26
|
var halfFocusRing = 1;
|
|
27
27
|
var dropOffset = '0, 8';
|
|
28
28
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -34,7 +34,9 @@ function MediaSingle(_ref) {
|
|
|
34
34
|
editorWidth = _ref.lineLength,
|
|
35
35
|
_ref$hasFallbackConta = _ref.hasFallbackContainer,
|
|
36
36
|
hasFallbackContainer = _ref$hasFallbackConta === void 0 ? true : _ref$hasFallbackConta,
|
|
37
|
-
handleMediaSingleRef = _ref.handleMediaSingleRef
|
|
37
|
+
handleMediaSingleRef = _ref.handleMediaSingleRef,
|
|
38
|
+
_ref$isInsideOfInline = _ref.isInsideOfInlineExtension,
|
|
39
|
+
isInsideOfInlineExtension = _ref$isInsideOfInline === void 0 ? false : _ref$isInsideOfInline;
|
|
38
40
|
var isPixelWidth = (size === null || size === void 0 ? void 0 : size.widthType) === 'pixel';
|
|
39
41
|
var mediaSingleWidth = (size === null || size === void 0 ? void 0 : size.width) || pctWidth;
|
|
40
42
|
var children = _react.default.Children.toArray(propsChildren);
|
|
@@ -93,7 +95,8 @@ function MediaSingle(_ref) {
|
|
|
93
95
|
containerWidth: containerWidth,
|
|
94
96
|
mediaSingleWidth: mediaSingleWidth,
|
|
95
97
|
fullWidthMode: fullWidthMode,
|
|
96
|
-
isExtendedResizeExperienceOn: isPixelWidth
|
|
98
|
+
isExtendedResizeExperienceOn: isPixelWidth,
|
|
99
|
+
isInsideOfInlineExtension: isInsideOfInlineExtension
|
|
97
100
|
}),
|
|
98
101
|
"data-layout": layout,
|
|
99
102
|
"data-width": mediaSingleWidth,
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.MediaWrapper = exports.MediaSingleDimensionHelper = exports.MediaBorderGapFiller = void 0;
|
|
8
8
|
exports.calcLegacyWidth = calcLegacyWidth;
|
|
9
|
+
exports.calcLegacyWidthForInline = calcLegacyWidthForInline;
|
|
9
10
|
exports.calcResizedWidth = calcResizedWidth;
|
|
10
11
|
exports.mediaWrapperStyle = void 0;
|
|
11
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
@@ -28,11 +29,17 @@ function float(layout) {
|
|
|
28
29
|
return 'none';
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
|
-
function getWidthIfFullWidthMode(
|
|
32
|
-
|
|
32
|
+
function getWidthIfFullWidthMode(originalWidth, containerWidth, isInsideOfInlineExtension) {
|
|
33
|
+
if (isInsideOfInlineExtension) {
|
|
34
|
+
return originalWidth > _editorSharedStyles.akEditorFullWidthLayoutWidth ? "".concat(Math.min(containerWidth, _editorSharedStyles.akEditorFullWidthLayoutWidth), "px") : "".concat(originalWidth, "px");
|
|
35
|
+
}
|
|
36
|
+
return originalWidth > _editorSharedStyles.akEditorFullWidthLayoutWidth ? '100%' : "".concat(originalWidth, "px");
|
|
33
37
|
}
|
|
34
|
-
function getWidthIfDefaultMode(
|
|
35
|
-
|
|
38
|
+
function getWidthIfDefaultMode(originalWidth, containerWidth, isInsideOfInlineExtension) {
|
|
39
|
+
if (isInsideOfInlineExtension) {
|
|
40
|
+
return originalWidth > _editorSharedStyles.akEditorFullPageMaxWidth ? "".concat(Math.min(containerWidth, _editorSharedStyles.akEditorDefaultLayoutWidth), "px") : "".concat(originalWidth, "px");
|
|
41
|
+
}
|
|
42
|
+
return originalWidth > _editorSharedStyles.akEditorFullPageMaxWidth ? '100%' : "".concat(originalWidth, "px");
|
|
36
43
|
}
|
|
37
44
|
|
|
38
45
|
/**
|
|
@@ -46,6 +53,7 @@ function calcLegacyWidth(layout, width) {
|
|
|
46
53
|
var containerWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
47
54
|
var fullWidthMode = arguments.length > 3 ? arguments[3] : undefined;
|
|
48
55
|
var isResized = arguments.length > 4 ? arguments[4] : undefined;
|
|
56
|
+
var isInsideOfInlineExtension = arguments.length > 5 ? arguments[5] : undefined;
|
|
49
57
|
switch (layout) {
|
|
50
58
|
case 'align-start':
|
|
51
59
|
case 'align-end':
|
|
@@ -53,11 +61,37 @@ function calcLegacyWidth(layout, width) {
|
|
|
53
61
|
case 'wrap-left':
|
|
54
62
|
return width > containerWidth / 2 ? 'calc(50% - 12px)' : "".concat(width, "px");
|
|
55
63
|
case 'wide':
|
|
56
|
-
return (0, _breakout.calcWideWidth)(containerWidth);
|
|
64
|
+
return isInsideOfInlineExtension ? (0, _breakout.calcWideWidth)(containerWidth, Infinity, "".concat(containerWidth, "px")) : (0, _breakout.calcWideWidth)(containerWidth);
|
|
65
|
+
case 'full-width':
|
|
66
|
+
return (0, _breakout.calcBreakoutWidth)(layout, containerWidth);
|
|
67
|
+
default:
|
|
68
|
+
return isResized ? "".concat(width, "px") : fullWidthMode ? getWidthIfFullWidthMode(width, containerWidth, isInsideOfInlineExtension) : getWidthIfDefaultMode(width, containerWidth, isInsideOfInlineExtension);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Calculates the image width for non-resized images.
|
|
74
|
+
*
|
|
75
|
+
* If an image has not been resized using the pctWidth attribute,
|
|
76
|
+
* then an image in wide or full-width can not be wider than the image's
|
|
77
|
+
* original width.
|
|
78
|
+
*/
|
|
79
|
+
function calcLegacyWidthForInline(layout, width) {
|
|
80
|
+
var containerWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
81
|
+
var fullWidthMode = arguments.length > 3 ? arguments[3] : undefined;
|
|
82
|
+
var isResized = arguments.length > 4 ? arguments[4] : undefined;
|
|
83
|
+
switch (layout) {
|
|
84
|
+
case 'align-start':
|
|
85
|
+
case 'align-end':
|
|
86
|
+
case 'wrap-right':
|
|
87
|
+
case 'wrap-left':
|
|
88
|
+
return width > containerWidth / 2 ? 'calc(50% - 12px)' : "".concat(width, "px");
|
|
89
|
+
case 'wide':
|
|
90
|
+
return (0, _breakout.calcWideWidth)(containerWidth, Infinity, "".concat(containerWidth, "px"));
|
|
57
91
|
case 'full-width':
|
|
58
92
|
return (0, _breakout.calcBreakoutWidth)(layout, containerWidth);
|
|
59
93
|
default:
|
|
60
|
-
return isResized ? "".concat(width, "px") : fullWidthMode ? getWidthIfFullWidthMode(width) : getWidthIfDefaultMode(width);
|
|
94
|
+
return isResized ? "".concat(width, "px") : fullWidthMode ? getWidthIfFullWidthMode(width, containerWidth) : getWidthIfDefaultMode(width, containerWidth);
|
|
61
95
|
}
|
|
62
96
|
}
|
|
63
97
|
|
|
@@ -122,8 +156,10 @@ var MediaSingleDimensionHelper = exports.MediaSingleDimensionHelper = function M
|
|
|
122
156
|
width = _ref.width,
|
|
123
157
|
isExtendedResizeExperienceOn = _ref.isExtendedResizeExperienceOn,
|
|
124
158
|
_ref$isNestedNode = _ref.isNestedNode,
|
|
125
|
-
isNestedNode = _ref$isNestedNode === void 0 ? false : _ref$isNestedNode
|
|
126
|
-
|
|
159
|
+
isNestedNode = _ref$isNestedNode === void 0 ? false : _ref$isNestedNode,
|
|
160
|
+
_ref$isInsideOfInline = _ref.isInsideOfInlineExtension,
|
|
161
|
+
isInsideOfInlineExtension = _ref$isInsideOfInline === void 0 ? false : _ref$isInsideOfInline;
|
|
162
|
+
return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n /* For nested rich media items, set max-width to 100% */\n tr &,\n [data-layout-column] &,\n [data-node-type='expand'] &,\n [data-panel-type] &,\n li & {\n max-width: 100%;\n }\n\n width: ", ";\n ", "\n max-width: ", ";\n\n ", "\n\n &:not(.is-resizing) {\n transition: width 100ms ease-in;\n }\n\n float: ", ";\n margin: ", ";\n\n &[class*='not-resizing'] {\n ", "\n }\n\n ", ";\n"])), isExtendedResizeExperienceOn ? "".concat(mediaSingleWidth || width, "px") : mediaSingleWidth ? calcResizedWidth(layout, width || 0, containerWidth) : calcLegacyWidth(layout, width || 0, containerWidth, fullWidthMode, isResized, isInsideOfInlineExtension), layout === 'full-width' &&
|
|
127
163
|
/* This causes issues for new experience where we don't strip layout attributes
|
|
128
164
|
when copying top-level node and pasting into a table/layout,
|
|
129
165
|
because full-width layout will remain, causing node to be edge-to-edge */
|
|
@@ -11,9 +11,8 @@ var _styles = require("../../styles");
|
|
|
11
11
|
|
|
12
12
|
// Wraps the navigation bar and extensionFrames
|
|
13
13
|
var mbeExtensionContainer = (0, _react.css)({
|
|
14
|
-
background: '
|
|
14
|
+
background: 'transparent !important',
|
|
15
15
|
'padding:': {
|
|
16
|
-
bottom: "var(--ds-space-100, 8px)".concat(" !important"),
|
|
17
16
|
left: "var(--ds-space-100, 8px)".concat(" !important"),
|
|
18
17
|
right: "var(--ds-space-100, 8px)".concat(" !important")
|
|
19
18
|
},
|
|
@@ -65,12 +64,6 @@ var extensionFrameContent = (0, _react.css)({
|
|
|
65
64
|
},
|
|
66
65
|
'.extensionView-content-wrap': {
|
|
67
66
|
marginTop: "var(--ds-space-100, 8px)".concat(" !important")
|
|
68
|
-
},
|
|
69
|
-
'.decisionItemView-content-wrap': {
|
|
70
|
-
marginTop: '0px !important'
|
|
71
|
-
},
|
|
72
|
-
'.decisionItemView-content-wrap > [data-decision-wrapper]': {
|
|
73
|
-
marginTop: '0px !important'
|
|
74
67
|
}
|
|
75
68
|
});
|
|
76
69
|
var sharedMultiBodiedExtensionStyles = exports.sharedMultiBodiedExtensionStyles = {
|
|
@@ -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,20 +9,15 @@ exports.WidthProvider = exports.WidthContext = exports.WidthConsumer = void 0;
|
|
|
8
9
|
exports.createWidthContext = createWidthContext;
|
|
9
10
|
exports.getBreakpoint = getBreakpoint;
|
|
10
11
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
16
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
17
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
|
-
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
14
|
var _react2 = require("@emotion/react");
|
|
20
15
|
var _rafSchd = _interopRequireDefault(require("raf-schd"));
|
|
21
16
|
var _widthDetector = require("@atlaskit/width-detector");
|
|
22
17
|
var _templateObject;
|
|
23
|
-
|
|
24
|
-
function
|
|
18
|
+
/** @jsx jsx */
|
|
19
|
+
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); }
|
|
20
|
+
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; }
|
|
25
21
|
var SCROLLBAR_WIDTH = 30;
|
|
26
22
|
function getBreakpoint() {
|
|
27
23
|
var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
@@ -44,43 +40,33 @@ function createWidthContext() {
|
|
|
44
40
|
var WidthContext = exports.WidthContext = /*#__PURE__*/_react.default.createContext(createWidthContext());
|
|
45
41
|
var Provider = WidthContext.Provider,
|
|
46
42
|
Consumer = exports.WidthConsumer = WidthContext.Consumer;
|
|
47
|
-
var WidthProvider = exports.WidthProvider =
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
width: width
|
|
64
|
-
});
|
|
65
|
-
}));
|
|
66
|
-
if (typeof document !== 'undefined') {
|
|
67
|
-
_this.state.width = document.body.offsetWidth;
|
|
43
|
+
var WidthProvider = exports.WidthProvider = function WidthProvider(_ref) {
|
|
44
|
+
var className = _ref.className,
|
|
45
|
+
shouldCheckExistingValue = _ref.shouldCheckExistingValue,
|
|
46
|
+
children = _ref.children;
|
|
47
|
+
var existingContextValue = _react.default.useContext(WidthContext);
|
|
48
|
+
var _React$useState = _react.default.useState(typeof document !== 'undefined' ? document.body.offsetWidth : 0),
|
|
49
|
+
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
50
|
+
width = _React$useState2[0],
|
|
51
|
+
setWidth = _React$useState2[1];
|
|
52
|
+
var providerValue = _react.default.useMemo(function () {
|
|
53
|
+
return createWidthContext(width);
|
|
54
|
+
}, [width]);
|
|
55
|
+
var updateWidth = (0, _rafSchd.default)(function (nextWidth) {
|
|
56
|
+
// Ignore changes that are less than SCROLLBAR_WIDTH, otherwise it can cause infinite re-scaling
|
|
57
|
+
if (Math.abs(width - nextWidth) < SCROLLBAR_WIDTH) {
|
|
58
|
+
return;
|
|
68
59
|
}
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}, this.props.children));
|
|
83
|
-
}
|
|
84
|
-
}]);
|
|
85
|
-
return WidthProvider;
|
|
86
|
-
}(_react.default.Component);
|
|
60
|
+
setWidth(nextWidth);
|
|
61
|
+
});
|
|
62
|
+
var skipWidthDetection = shouldCheckExistingValue && existingContextValue.width > 0;
|
|
63
|
+
return (0, _react2.jsx)("div", {
|
|
64
|
+
css: (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n width: 100%;\n "]))),
|
|
65
|
+
className: className
|
|
66
|
+
}, !skipWidthDetection && (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_widthDetector.WidthObserver, {
|
|
67
|
+
setWidth: updateWidth,
|
|
68
|
+
offscreen: true
|
|
69
|
+
}), (0, _react2.jsx)(Provider, {
|
|
70
|
+
value: providerValue
|
|
71
|
+
}, children)), skipWidthDetection && children);
|
|
72
|
+
};
|
package/dist/cjs/ui/index.js
CHANGED
|
@@ -269,6 +269,12 @@ Object.defineProperty(exports, "clearNextSiblingMarginTopStyle", {
|
|
|
269
269
|
return _clearNextSiblingMarginTop.clearNextSiblingMarginTopStyle;
|
|
270
270
|
}
|
|
271
271
|
});
|
|
272
|
+
Object.defineProperty(exports, "createWidthContext", {
|
|
273
|
+
enumerable: true,
|
|
274
|
+
get: function get() {
|
|
275
|
+
return _WidthProvider.createWidthContext;
|
|
276
|
+
}
|
|
277
|
+
});
|
|
272
278
|
Object.defineProperty(exports, "expandLayoutWrapperStyle", {
|
|
273
279
|
enumerable: true,
|
|
274
280
|
get: function get() {
|