@atlaskit/smart-card 23.4.7 → 23.5.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/constants.js +10 -2
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/state/flexible-ui-context/utils.js +16 -0
- package/dist/cjs/utils/flexible.js +8 -2
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/BlockCard/components/flexible/footer/index.js +2 -2
- package/dist/cjs/view/BlockCard/index.js +83 -12
- package/dist/cjs/view/BlockCard/views/flexible/FlexibleResolvedView.js +108 -0
- package/dist/cjs/view/BlockCard/views/flexible/FlexibleUnauthorisedView.js +1 -1
- package/dist/cjs/view/CardWithUrl/component.js +4 -2
- package/dist/cjs/view/EmbedModal/components/link-info/index.js +2 -1
- package/dist/cjs/view/FlexibleCard/components/blocks/preview-block/index.js +6 -9
- package/dist/cjs/view/FlexibleCard/components/blocks/preview-block/resolved/index.js +109 -0
- package/dist/cjs/view/FlexibleCard/components/common/image-icon/index.js +4 -2
- package/dist/cjs/view/FlexibleCard/components/container/index.js +40 -4
- package/dist/cjs/view/FlexibleCard/components/elements/media/index.js +2 -0
- package/dist/es2019/constants.js +8 -1
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/state/flexible-ui-context/utils.js +5 -0
- package/dist/es2019/utils/flexible.js +3 -2
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/BlockCard/components/flexible/footer/index.js +2 -2
- package/dist/es2019/view/BlockCard/index.js +80 -13
- package/dist/es2019/view/BlockCard/views/flexible/FlexibleErroredView.js +2 -2
- package/dist/es2019/view/BlockCard/views/flexible/FlexibleForbiddenView.js +2 -2
- package/dist/es2019/view/BlockCard/views/flexible/FlexibleNotFoundView.js +2 -2
- package/dist/es2019/view/BlockCard/views/flexible/FlexibleResolvedView.js +81 -0
- package/dist/es2019/view/BlockCard/views/flexible/FlexibleUnauthorisedView.js +3 -3
- package/dist/es2019/view/CardWithUrl/component.js +4 -2
- package/dist/es2019/view/EmbedModal/components/link-info/index.js +2 -1
- package/dist/es2019/view/FlexibleCard/components/blocks/preview-block/index.js +6 -7
- package/dist/es2019/view/FlexibleCard/components/blocks/preview-block/resolved/index.js +103 -0
- package/dist/es2019/view/FlexibleCard/components/common/image-icon/index.js +4 -2
- package/dist/es2019/view/FlexibleCard/components/container/index.js +73 -21
- package/dist/es2019/view/FlexibleCard/components/elements/media/index.js +2 -0
- package/dist/esm/constants.js +8 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/state/flexible-ui-context/utils.js +7 -0
- package/dist/esm/utils/flexible.js +4 -1
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/BlockCard/components/flexible/footer/index.js +2 -2
- package/dist/esm/view/BlockCard/index.js +77 -12
- package/dist/esm/view/BlockCard/views/flexible/FlexibleErroredView.js +2 -2
- package/dist/esm/view/BlockCard/views/flexible/FlexibleForbiddenView.js +2 -2
- package/dist/esm/view/BlockCard/views/flexible/FlexibleNotFoundView.js +2 -2
- package/dist/esm/view/BlockCard/views/flexible/FlexibleResolvedView.js +87 -0
- package/dist/esm/view/BlockCard/views/flexible/FlexibleUnauthorisedView.js +3 -3
- package/dist/esm/view/CardWithUrl/component.js +4 -2
- package/dist/esm/view/EmbedModal/components/link-info/index.js +2 -1
- package/dist/esm/view/FlexibleCard/components/blocks/preview-block/index.js +7 -8
- package/dist/esm/view/FlexibleCard/components/blocks/preview-block/resolved/index.js +86 -0
- package/dist/esm/view/FlexibleCard/components/common/image-icon/index.js +4 -2
- package/dist/esm/view/FlexibleCard/components/container/index.js +42 -6
- package/dist/esm/view/FlexibleCard/components/elements/media/index.js +2 -0
- package/dist/types/constants.d.ts +4 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/state/flexible-ui-context/utils.d.ts +6 -0
- package/dist/types/utils/flexible.d.ts +1 -0
- package/dist/types/view/BlockCard/components/flexible/footer/index.d.ts +2 -2
- package/dist/types/view/BlockCard/index.d.ts +1 -0
- package/dist/types/view/BlockCard/types.d.ts +1 -0
- package/dist/types/view/BlockCard/views/flexible/FlexibleResolvedView.d.ts +9 -0
- package/dist/types/view/BlockCard/views/flexible/FlexibleUnauthorisedView.d.ts +1 -1
- package/dist/types/view/FlexibleCard/components/blocks/preview-block/index.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/blocks/preview-block/resolved/index.d.ts +11 -0
- package/dist/types/view/FlexibleCard/components/blocks/preview-block/types.d.ts +15 -0
- package/dist/types/view/FlexibleCard/components/common/image-icon/types.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/container/index.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/container/types.d.ts +4 -0
- package/dist/types/view/FlexibleCard/components/elements/media/types.d.ts +1 -0
- package/package.json +2 -2
- package/report.api.md +10 -0
- package/tmp/api-report-tmp.d.ts +10 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 23.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`9dd3377f9bb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9dd3377f9bb) - [ux] This adds support for the new Flexible UI Block Card, added behind a feature flag "useFlexibleBlockCard"
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
|
|
13
|
+
## 23.4.8
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [`ca2b5b1a999`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ca2b5b1a999) - [ux] fix Safari opening downloads in the same tab
|
|
18
|
+
|
|
3
19
|
## 23.4.7
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/dist/cjs/constants.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SmartLinkWidth = exports.SmartLinkTheme = exports.SmartLinkStatus = exports.SmartLinkSize = exports.SmartLinkPosition = exports.SmartLinkDirection = exports.SmartLinkAlignment = exports.MediaType = exports.IconType = exports.ElementName = exports.CONTENT_URL_SECURITY_AND_PERMISSIONS = exports.ActionName = void 0;
|
|
6
|
+
exports.SmartLinkWidth = exports.SmartLinkTheme = exports.SmartLinkStatus = exports.SmartLinkSize = exports.SmartLinkPosition = exports.SmartLinkDirection = exports.SmartLinkAlignment = exports.MediaType = exports.MediaPlacement = exports.IconType = exports.ElementName = exports.CONTENT_URL_SECURITY_AND_PERMISSIONS = exports.ActionName = void 0;
|
|
7
7
|
var CONTENT_URL_SECURITY_AND_PERMISSIONS = 'https://support.atlassian.com/confluence-cloud/docs/insert-links-and-anchors/#Smart-links';
|
|
8
8
|
/**
|
|
9
9
|
* The alignment of Flexible UI component.
|
|
@@ -249,4 +249,12 @@ exports.MediaType = MediaType;
|
|
|
249
249
|
|
|
250
250
|
(function (MediaType) {
|
|
251
251
|
MediaType["Image"] = "image";
|
|
252
|
-
})(MediaType || (exports.MediaType = MediaType = {}));
|
|
252
|
+
})(MediaType || (exports.MediaType = MediaType = {}));
|
|
253
|
+
|
|
254
|
+
var MediaPlacement;
|
|
255
|
+
exports.MediaPlacement = MediaPlacement;
|
|
256
|
+
|
|
257
|
+
(function (MediaPlacement) {
|
|
258
|
+
MediaPlacement["Left"] = "left";
|
|
259
|
+
MediaPlacement["Right"] = "right";
|
|
260
|
+
})(MediaPlacement || (exports.MediaPlacement = MediaPlacement = {}));
|
package/dist/cjs/index.js
CHANGED
|
@@ -57,6 +57,12 @@ Object.defineProperty(exports, "FooterBlock", {
|
|
|
57
57
|
return _blocks.FooterBlock;
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
|
+
Object.defineProperty(exports, "MediaPlacement", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function get() {
|
|
63
|
+
return _constants.MediaPlacement;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
60
66
|
Object.defineProperty(exports, "MetadataBlock", {
|
|
61
67
|
enumerable: true,
|
|
62
68
|
get: function get() {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isFlexUiPreviewPresent = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Returns true if preview data is available in the FlexibleUiDataContext
|
|
10
|
+
* @param context is the FlexibleUiDataContext
|
|
11
|
+
*/
|
|
12
|
+
var isFlexUiPreviewPresent = function isFlexUiPreviewPresent(context) {
|
|
13
|
+
return Boolean(context && context.preview);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
exports.isFlexUiPreviewPresent = isFlexUiPreviewPresent;
|
|
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.isFlexibleUiTitleBlock = exports.isFlexibleUiElement = exports.isFlexibleUiCard = exports.isFlexibleUiBlock = void 0;
|
|
10
|
+
exports.isFlexibleUiTitleBlock = exports.isFlexibleUiPreviewBlock = exports.isFlexibleUiElement = exports.isFlexibleUiCard = exports.isFlexibleUiBlock = void 0;
|
|
11
11
|
|
|
12
12
|
var _react = _interopRequireDefault(require("react"));
|
|
13
13
|
|
|
@@ -51,4 +51,10 @@ var isFlexibleUiTitleBlock = function isFlexibleUiTitleBlock(node) {
|
|
|
51
51
|
return /*#__PURE__*/_react.default.isValidElement(node) && node.type === Blocks.TitleBlock;
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
-
exports.isFlexibleUiTitleBlock = isFlexibleUiTitleBlock;
|
|
54
|
+
exports.isFlexibleUiTitleBlock = isFlexibleUiTitleBlock;
|
|
55
|
+
|
|
56
|
+
var isFlexibleUiPreviewBlock = function isFlexibleUiPreviewBlock(node) {
|
|
57
|
+
return /*#__PURE__*/_react.default.isValidElement(node) && node.type === Blocks.PreviewBlock;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
exports.isFlexibleUiPreviewBlock = isFlexibleUiPreviewBlock;
|
package/dist/cjs/version.json
CHANGED
|
@@ -42,7 +42,7 @@ var providerStyles = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0
|
|
|
42
42
|
* @param props are the data required for the block, such as actions to be displayed.
|
|
43
43
|
*/
|
|
44
44
|
|
|
45
|
-
var
|
|
45
|
+
var BlockCardFooter = function BlockCardFooter(props) {
|
|
46
46
|
var actions = props.actions,
|
|
47
47
|
_props$size = props.size,
|
|
48
48
|
size = _props$size === void 0 ? _constants.SmartLinkSize.Medium : _props$size,
|
|
@@ -63,5 +63,5 @@ var Footer = function Footer(props) {
|
|
|
63
63
|
})) : null);
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
var _default =
|
|
66
|
+
var _default = BlockCardFooter;
|
|
67
67
|
exports.default = _default;
|
|
@@ -63,7 +63,7 @@ Object.defineProperty(exports, "PreviewAction", {
|
|
|
63
63
|
|
|
64
64
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
65
65
|
|
|
66
|
-
var
|
|
66
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
67
67
|
|
|
68
68
|
var _helpers = require("../../state/helpers");
|
|
69
69
|
|
|
@@ -91,15 +91,31 @@ var _ForbiddenView = require("./views/ForbiddenView");
|
|
|
91
91
|
|
|
92
92
|
var _ErroredView = require("./views/ErroredView");
|
|
93
93
|
|
|
94
|
+
var _FlexibleResolvedView = _interopRequireDefault(require("./views/flexible/FlexibleResolvedView"));
|
|
95
|
+
|
|
96
|
+
var _FlexibleUnauthorisedView = _interopRequireDefault(require("./views/flexible/FlexibleUnauthorisedView"));
|
|
97
|
+
|
|
98
|
+
var _FlexibleNotFoundView = _interopRequireDefault(require("./views/flexible/FlexibleNotFoundView"));
|
|
99
|
+
|
|
100
|
+
var _FlexibleErroredView = _interopRequireDefault(require("./views/flexible/FlexibleErroredView"));
|
|
101
|
+
|
|
102
|
+
var _FlexibleForbiddenView = _interopRequireDefault(require("./views/flexible/FlexibleForbiddenView"));
|
|
103
|
+
|
|
104
|
+
var _token = require("../../utils/token");
|
|
105
|
+
|
|
106
|
+
var _react = require("@emotion/react");
|
|
107
|
+
|
|
94
108
|
var _PreviewAction = _interopRequireDefault(require("./actions/PreviewAction"));
|
|
95
109
|
|
|
110
|
+
var _templateObject;
|
|
111
|
+
|
|
112
|
+
var flexibleBlockCardElevationStyle = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border-radius: 1.5px;\n box-shadow: ", ";\n margin: 2px;\n"])), _token.tokens.elevation);
|
|
113
|
+
|
|
96
114
|
var BlockCard = function BlockCard(_ref) {
|
|
97
115
|
var _details$meta, _forbiddenViewProps$c;
|
|
98
116
|
|
|
99
117
|
var url = _ref.url,
|
|
100
|
-
|
|
101
|
-
status = _ref$cardState.status,
|
|
102
|
-
details = _ref$cardState.details,
|
|
118
|
+
cardState = _ref.cardState,
|
|
103
119
|
authFlow = _ref.authFlow,
|
|
104
120
|
handleAuthorize = _ref.handleAuthorize,
|
|
105
121
|
handleErrorRetry = _ref.handleErrorRetry,
|
|
@@ -112,7 +128,10 @@ var BlockCard = function BlockCard(_ref) {
|
|
|
112
128
|
testId = _ref.testId,
|
|
113
129
|
showActions = _ref.showActions,
|
|
114
130
|
platform = _ref.platform,
|
|
115
|
-
analytics = _ref.analytics
|
|
131
|
+
analytics = _ref.analytics,
|
|
132
|
+
enableFlexibleBlockCard = _ref.enableFlexibleBlockCard;
|
|
133
|
+
var status = cardState.status,
|
|
134
|
+
details = cardState.details;
|
|
116
135
|
var data = details && details.data || (0, _jsonld.getEmptyJsonLd)();
|
|
117
136
|
var meta = details && details.meta;
|
|
118
137
|
var extractorOpts = {
|
|
@@ -122,10 +141,62 @@ var BlockCard = function BlockCard(_ref) {
|
|
|
122
141
|
extensionKey: (0, _helpers.getExtensionKey)(details)
|
|
123
142
|
};
|
|
124
143
|
|
|
144
|
+
if (enableFlexibleBlockCard) {
|
|
145
|
+
var ui = {
|
|
146
|
+
hideElevation: true
|
|
147
|
+
};
|
|
148
|
+
var flexibleProps = {
|
|
149
|
+
cardState: cardState,
|
|
150
|
+
url: url,
|
|
151
|
+
testId: testId,
|
|
152
|
+
onError: onError,
|
|
153
|
+
renderers: renderers,
|
|
154
|
+
ui: ui
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
switch (status) {
|
|
158
|
+
case 'pending':
|
|
159
|
+
case 'resolving':
|
|
160
|
+
case 'resolved':
|
|
161
|
+
return (0, _react.jsx)("div", {
|
|
162
|
+
css: flexibleBlockCardElevationStyle
|
|
163
|
+
}, (0, _react.jsx)(_FlexibleResolvedView.default, flexibleProps));
|
|
164
|
+
|
|
165
|
+
case 'unauthorized':
|
|
166
|
+
return (0, _react.jsx)("div", {
|
|
167
|
+
css: flexibleBlockCardElevationStyle
|
|
168
|
+
}, (0, _react.jsx)(_FlexibleUnauthorisedView.default, (0, _extends2.default)({}, flexibleProps, {
|
|
169
|
+
onAuthorize: handleAuthorize
|
|
170
|
+
})));
|
|
171
|
+
|
|
172
|
+
case 'forbidden':
|
|
173
|
+
return (0, _react.jsx)("div", {
|
|
174
|
+
css: flexibleBlockCardElevationStyle
|
|
175
|
+
}, (0, _react.jsx)(_FlexibleForbiddenView.default, (0, _extends2.default)({}, flexibleProps, {
|
|
176
|
+
onAuthorize: handleAuthorize
|
|
177
|
+
})));
|
|
178
|
+
|
|
179
|
+
case 'not_found':
|
|
180
|
+
return (0, _react.jsx)("div", {
|
|
181
|
+
css: flexibleBlockCardElevationStyle
|
|
182
|
+
}, (0, _react.jsx)(_FlexibleNotFoundView.default, (0, _extends2.default)({}, flexibleProps, {
|
|
183
|
+
onAuthorize: handleAuthorize
|
|
184
|
+
})));
|
|
185
|
+
|
|
186
|
+
case 'fallback':
|
|
187
|
+
case 'errored':
|
|
188
|
+
return (0, _react.jsx)("div", {
|
|
189
|
+
css: flexibleBlockCardElevationStyle
|
|
190
|
+
}, (0, _react.jsx)(_FlexibleErroredView.default, (0, _extends2.default)({}, flexibleProps, {
|
|
191
|
+
onAuthorize: handleAuthorize
|
|
192
|
+
})));
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
125
196
|
switch (status) {
|
|
126
197
|
case 'pending':
|
|
127
198
|
case 'resolving':
|
|
128
|
-
return
|
|
199
|
+
return (0, _react.jsx)(_ResolvingView.ResolvingView, {
|
|
129
200
|
testId: testId,
|
|
130
201
|
isSelected: isSelected
|
|
131
202
|
});
|
|
@@ -140,7 +211,7 @@ var BlockCard = function BlockCard(_ref) {
|
|
|
140
211
|
});
|
|
141
212
|
}
|
|
142
213
|
|
|
143
|
-
return
|
|
214
|
+
return (0, _react.jsx)(_ResolvedView.ResolvedView, (0, _extends2.default)({}, resolvedViewProps, {
|
|
144
215
|
isSelected: isSelected,
|
|
145
216
|
testId: testId,
|
|
146
217
|
showActions: showActions,
|
|
@@ -156,7 +227,7 @@ var BlockCard = function BlockCard(_ref) {
|
|
|
156
227
|
}
|
|
157
228
|
|
|
158
229
|
var unauthorizedViewProps = (0, _block.extractBlockProps)(data, meta, extractorOpts);
|
|
159
|
-
return
|
|
230
|
+
return (0, _react.jsx)(_UnauthorizedView.UnauthorizedView, (0, _extends2.default)({}, unauthorizedViewProps, {
|
|
160
231
|
isSelected: isSelected,
|
|
161
232
|
testId: testId,
|
|
162
233
|
showActions: showActions,
|
|
@@ -179,7 +250,7 @@ var BlockCard = function BlockCard(_ref) {
|
|
|
179
250
|
url: url,
|
|
180
251
|
context: (_forbiddenViewProps$c = forbiddenViewProps.context) === null || _forbiddenViewProps$c === void 0 ? void 0 : _forbiddenViewProps$c.text
|
|
181
252
|
});
|
|
182
|
-
return
|
|
253
|
+
return (0, _react.jsx)(_ForbiddenView.ForbiddenView, (0, _extends2.default)({}, forbiddenViewProps, {
|
|
183
254
|
isSelected: isSelected,
|
|
184
255
|
showActions: showActions,
|
|
185
256
|
actions: handleAuthorize ? [(0, _ForbiddenAction.ForbiddenAction)(handleAuthorize)] : [],
|
|
@@ -196,7 +267,7 @@ var BlockCard = function BlockCard(_ref) {
|
|
|
196
267
|
}
|
|
197
268
|
|
|
198
269
|
var notFoundViewProps = (0, _block.extractBlockProps)(data, meta, extractorOpts);
|
|
199
|
-
return
|
|
270
|
+
return (0, _react.jsx)(_NotFoundView.NotFoundView, (0, _extends2.default)({}, notFoundViewProps, {
|
|
200
271
|
isSelected: isSelected,
|
|
201
272
|
testId: testId,
|
|
202
273
|
onClick: handleFrameClick
|
|
@@ -213,7 +284,7 @@ var BlockCard = function BlockCard(_ref) {
|
|
|
213
284
|
}
|
|
214
285
|
|
|
215
286
|
if (authFlow && authFlow === 'disabled') {
|
|
216
|
-
return
|
|
287
|
+
return (0, _react.jsx)(_LinkView.CardLinkView, {
|
|
217
288
|
link: url,
|
|
218
289
|
isSelected: isSelected,
|
|
219
290
|
onClick: handleFrameClick,
|
|
@@ -221,7 +292,7 @@ var BlockCard = function BlockCard(_ref) {
|
|
|
221
292
|
});
|
|
222
293
|
}
|
|
223
294
|
|
|
224
|
-
return
|
|
295
|
+
return (0, _react.jsx)(_ErroredView.ErroredView, {
|
|
225
296
|
link: url,
|
|
226
297
|
isSelected: isSelected,
|
|
227
298
|
onRetry: handleErrorRetry,
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _FlexibleCard = _interopRequireDefault(require("../../../FlexibleCard"));
|
|
17
|
+
|
|
18
|
+
var _titleBlock = _interopRequireDefault(require("../../../FlexibleCard/components/blocks/title-block"));
|
|
19
|
+
|
|
20
|
+
var _blocks = require("../../../FlexibleCard/components/blocks");
|
|
21
|
+
|
|
22
|
+
var _constants = require("../../../../constants");
|
|
23
|
+
|
|
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
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* This view represents a Block card that has an 'Resolved' status.
|
|
30
|
+
* @see SmartLinkStatus
|
|
31
|
+
* @see FlexibleCardProps
|
|
32
|
+
*/
|
|
33
|
+
var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
|
|
34
|
+
var cardState = _ref.cardState,
|
|
35
|
+
onClick = _ref.onClick,
|
|
36
|
+
onError = _ref.onError,
|
|
37
|
+
_ref$testId = _ref.testId,
|
|
38
|
+
testId = _ref$testId === void 0 ? 'smart-block-resolved-view' : _ref$testId,
|
|
39
|
+
ui = _ref.ui,
|
|
40
|
+
url = _ref.url;
|
|
41
|
+
|
|
42
|
+
var _useState = (0, _react.useState)(false),
|
|
43
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
44
|
+
isPreviewBlockErrored = _useState2[0],
|
|
45
|
+
setIsPreviewBlockErrored = _useState2[1];
|
|
46
|
+
|
|
47
|
+
(0, _react.useEffect)(function () {
|
|
48
|
+
setIsPreviewBlockErrored(false);
|
|
49
|
+
}, [url, cardState]);
|
|
50
|
+
return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, {
|
|
51
|
+
appearance: "block",
|
|
52
|
+
cardState: cardState,
|
|
53
|
+
onClick: onClick,
|
|
54
|
+
onError: onError,
|
|
55
|
+
testId: testId,
|
|
56
|
+
ui: ui,
|
|
57
|
+
url: url
|
|
58
|
+
}, /*#__PURE__*/_react.default.createElement(_titleBlock.default, {
|
|
59
|
+
position: _constants.SmartLinkPosition.Center,
|
|
60
|
+
metadata: [{
|
|
61
|
+
name: _constants.ElementName.AuthorGroup
|
|
62
|
+
}, {
|
|
63
|
+
name: _constants.ElementName.Priority
|
|
64
|
+
}, {
|
|
65
|
+
name: _constants.ElementName.State
|
|
66
|
+
}],
|
|
67
|
+
hideRetry: true
|
|
68
|
+
}), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
|
|
69
|
+
primary: [{
|
|
70
|
+
name: _constants.ElementName.ModifiedBy
|
|
71
|
+
}, {
|
|
72
|
+
name: _constants.ElementName.ModifiedOn
|
|
73
|
+
}],
|
|
74
|
+
secondary: [{
|
|
75
|
+
name: _constants.ElementName.AttachmentCount
|
|
76
|
+
}, {
|
|
77
|
+
name: _constants.ElementName.CommentCount
|
|
78
|
+
}, {
|
|
79
|
+
name: _constants.ElementName.ReactCount
|
|
80
|
+
}, {
|
|
81
|
+
name: _constants.ElementName.SubscriberCount
|
|
82
|
+
}, {
|
|
83
|
+
name: _constants.ElementName.ViewCount
|
|
84
|
+
}, {
|
|
85
|
+
name: _constants.ElementName.VoteCount
|
|
86
|
+
}, {
|
|
87
|
+
name: _constants.ElementName.DueOn
|
|
88
|
+
}],
|
|
89
|
+
maxLines: 1
|
|
90
|
+
}), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, null), /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, null), !isPreviewBlockErrored ? /*#__PURE__*/_react.default.createElement(_blocks.PreviewBlock, {
|
|
91
|
+
placement: _constants.MediaPlacement.Right,
|
|
92
|
+
ignoreContainerPadding: true,
|
|
93
|
+
onError: function onError() {
|
|
94
|
+
setIsPreviewBlockErrored(true);
|
|
95
|
+
}
|
|
96
|
+
}) : null, /*#__PURE__*/_react.default.createElement(_blocks.FooterBlock, {
|
|
97
|
+
actions: [{
|
|
98
|
+
name: _constants.ActionName.PreviewAction
|
|
99
|
+
}, {
|
|
100
|
+
name: _constants.ActionName.ViewAction
|
|
101
|
+
}, {
|
|
102
|
+
name: _constants.ActionName.DownloadAction
|
|
103
|
+
}]
|
|
104
|
+
}));
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
var _default = FlexibleResolvedView;
|
|
108
|
+
exports.default = _default;
|
|
@@ -34,7 +34,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
34
34
|
* It should have a "Connect" button that will allow a user to connect their account and view the block card.
|
|
35
35
|
*
|
|
36
36
|
* @see SmartLinkStatus
|
|
37
|
-
* @see
|
|
37
|
+
* @see FlexibleCardProps
|
|
38
38
|
*/
|
|
39
39
|
var FlexibleUnauthorisedView = function FlexibleUnauthorisedView(_ref) {
|
|
40
40
|
var cardState = _ref.cardState,
|
|
@@ -81,8 +81,9 @@ function CardWithUrlContent(_ref) {
|
|
|
81
81
|
|
|
82
82
|
if (showHoverPreview === undefined && showHoverPreviewFlag !== undefined) {
|
|
83
83
|
showHoverPreview = Boolean(showHoverPreviewFlag);
|
|
84
|
-
}
|
|
84
|
+
}
|
|
85
85
|
|
|
86
|
+
var enableFlexibleBlockCardFlag = Boolean((0, _linkProvider.useFeatureFlag)('enableFlexibleBlockCard')); // Setup UI handlers.
|
|
86
87
|
|
|
87
88
|
var handleClick = (0, _react.useCallback)(function (event) {
|
|
88
89
|
var clickUrl = (0, _helpers.getClickUrl)(url, state.details);
|
|
@@ -215,7 +216,8 @@ function CardWithUrlContent(_ref) {
|
|
|
215
216
|
onError: onError,
|
|
216
217
|
testId: testId,
|
|
217
218
|
showActions: showActions,
|
|
218
|
-
platform: platform
|
|
219
|
+
platform: platform,
|
|
220
|
+
enableFlexibleBlockCard: enableFlexibleBlockCardFlag
|
|
219
221
|
});
|
|
220
222
|
|
|
221
223
|
case 'embed':
|
|
@@ -66,7 +66,8 @@ var LinkInfo = function LinkInfo(_ref) {
|
|
|
66
66
|
label: _messages.messages.download.defaultMessage
|
|
67
67
|
}),
|
|
68
68
|
onClick: onDownloadButtonClick,
|
|
69
|
-
testId: "".concat(testId, "-download")
|
|
69
|
+
testId: "".concat(testId, "-download"),
|
|
70
|
+
target: "_blank"
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
73
|
}, [downloadUrl, onDownloadButtonClick, testId]);
|
|
@@ -13,13 +13,13 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
13
13
|
|
|
14
14
|
var _react = _interopRequireDefault(require("react"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _react2 = require("@emotion/react");
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _constants = require("../../../../../constants");
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _resolved = _interopRequireDefault(require("./resolved"));
|
|
21
21
|
|
|
22
|
-
var _excluded = ["status", "testId"
|
|
22
|
+
var _excluded = ["status", "testId"];
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Represents a PreviewBlock, which typically contains media or other large format content.
|
|
@@ -32,17 +32,14 @@ var PreviewBlock = function PreviewBlock(_ref) {
|
|
|
32
32
|
status = _ref$status === void 0 ? _constants.SmartLinkStatus.Fallback : _ref$status,
|
|
33
33
|
_ref$testId = _ref.testId,
|
|
34
34
|
testId = _ref$testId === void 0 ? 'smart-block-preview' : _ref$testId,
|
|
35
|
-
onError = _ref.onError,
|
|
36
35
|
blockProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
37
36
|
|
|
38
37
|
if (status !== _constants.SmartLinkStatus.Resolved) {
|
|
39
38
|
return null;
|
|
40
39
|
}
|
|
41
40
|
|
|
42
|
-
return
|
|
43
|
-
testId:
|
|
44
|
-
}), /*#__PURE__*/_react.default.createElement(_elements.Preview, {
|
|
45
|
-
onError: onError
|
|
41
|
+
return (0, _react2.jsx)(_resolved.default, (0, _extends2.default)({}, blockProps, {
|
|
42
|
+
testId: testId
|
|
46
43
|
}));
|
|
47
44
|
};
|
|
48
45
|
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
|
+
|
|
18
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
19
|
+
|
|
20
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
+
|
|
22
|
+
var _react2 = require("@emotion/react");
|
|
23
|
+
|
|
24
|
+
var _constants = require("../../../../../../constants");
|
|
25
|
+
|
|
26
|
+
var _block = _interopRequireDefault(require("../../block"));
|
|
27
|
+
|
|
28
|
+
var _elements = require("../../../elements");
|
|
29
|
+
|
|
30
|
+
var _excluded = ["ignoreContainerPadding", "onError", "overrideCss", "placement", "testId"];
|
|
31
|
+
|
|
32
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
33
|
+
|
|
34
|
+
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); }
|
|
35
|
+
|
|
36
|
+
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; }
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Due to its placement on the left/right and ignoreContainerPadding prop
|
|
40
|
+
* rely on its parent container styling, css variables are declared in
|
|
41
|
+
* <Container /> to preset the base values for the preview block styling.
|
|
42
|
+
*
|
|
43
|
+
* `--container-padding` is the padding of the Container. This value is based
|
|
44
|
+
* on size and hidePadding.
|
|
45
|
+
* `--container-gap-left` and `--container-gap-right` are the gap or padding of
|
|
46
|
+
* the Container depending on whether the container has other preview blocks
|
|
47
|
+
* with left/right positioning.
|
|
48
|
+
* `--preview-block-width` is the size of the preview image in relation to
|
|
49
|
+
* the Container width when the placement is left/right.
|
|
50
|
+
* @param placement
|
|
51
|
+
* @param ignoreContainerPadding
|
|
52
|
+
*/
|
|
53
|
+
var getPreviewBlockStyles = function getPreviewBlockStyles(placement, ignoreContainerPadding) {
|
|
54
|
+
if (placement === _constants.MediaPlacement.Left || placement === _constants.MediaPlacement.Right) {
|
|
55
|
+
var containerPadding = ignoreContainerPadding ? '0rem' : 'var(--container-padding)';
|
|
56
|
+
return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: ", ";\n bottom: ", ";\n width: calc(var(--preview-block-width) - ", ");\n\n ", "\n ", "\n\n [data-smart-element-media='image'] {\n aspect-ratio: unset;\n padding-top: unset;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n "])), containerPadding, containerPadding, containerPadding, placement === _constants.MediaPlacement.Left ? "left: ".concat(containerPadding, ";") : '', placement === _constants.MediaPlacement.Right ? "right: ".concat(containerPadding, ";") : '');
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (ignoreContainerPadding) {
|
|
60
|
+
return (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: calc(var(--container-gap-left) * -1);\n margin-right: calc(var(--container-gap-right) * -1);\n &:first-of-type {\n margin-top: calc(var(--container-padding) * -1);\n }\n &:last-of-type {\n margin-bottom: calc(var(--container-padding) * -1);\n }\n "])));
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Represents a resolved PreviewBlock, which typically contains media or other large format content.
|
|
65
|
+
* @public
|
|
66
|
+
* @param {PreviewBlock} PreviewBlock
|
|
67
|
+
* @see Block
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
var PreviewBlockResolvedView = function PreviewBlockResolvedView(_ref) {
|
|
72
|
+
var _ref$ignoreContainerP = _ref.ignoreContainerPadding,
|
|
73
|
+
ignoreContainerPadding = _ref$ignoreContainerP === void 0 ? false : _ref$ignoreContainerP,
|
|
74
|
+
onError = _ref.onError,
|
|
75
|
+
overrideCss = _ref.overrideCss,
|
|
76
|
+
placement = _ref.placement,
|
|
77
|
+
testId = _ref.testId,
|
|
78
|
+
blockProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
79
|
+
|
|
80
|
+
var _useState = (0, _react.useState)(overrideCss),
|
|
81
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
82
|
+
styles = _useState2[0],
|
|
83
|
+
setStyles = _useState2[1];
|
|
84
|
+
|
|
85
|
+
var updateStyles = (0, _react.useCallback)(function () {
|
|
86
|
+
setStyles((0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n "])), getPreviewBlockStyles(placement, ignoreContainerPadding), overrideCss));
|
|
87
|
+
}, [ignoreContainerPadding, overrideCss, placement]);
|
|
88
|
+
(0, _react.useEffect)(function () {
|
|
89
|
+
updateStyles();
|
|
90
|
+
}, [ignoreContainerPadding, overrideCss, placement, updateStyles]);
|
|
91
|
+
var handleOnLoad = (0, _react.useCallback)(function () {
|
|
92
|
+
updateStyles();
|
|
93
|
+
}, [updateStyles]);
|
|
94
|
+
var handleOnError = (0, _react.useCallback)(function () {
|
|
95
|
+
if (onError) {
|
|
96
|
+
onError();
|
|
97
|
+
}
|
|
98
|
+
}, [onError]);
|
|
99
|
+
return (0, _react2.jsx)(_block.default, (0, _extends2.default)({}, blockProps, {
|
|
100
|
+
overrideCss: styles,
|
|
101
|
+
testId: "".concat(testId, "-resolved-view")
|
|
102
|
+
}), (0, _react2.jsx)(_elements.Preview, {
|
|
103
|
+
onError: handleOnError,
|
|
104
|
+
onLoad: handleOnLoad
|
|
105
|
+
}));
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
var _default = PreviewBlockResolvedView;
|
|
109
|
+
exports.default = _default;
|
|
@@ -20,7 +20,8 @@ var ImageIcon = function ImageIcon(_ref) {
|
|
|
20
20
|
var defaultIcon = _ref.defaultIcon,
|
|
21
21
|
testId = _ref.testId,
|
|
22
22
|
url = _ref.url,
|
|
23
|
-
onError = _ref.onError
|
|
23
|
+
onError = _ref.onError,
|
|
24
|
+
onLoad = _ref.onLoad;
|
|
24
25
|
return (0, _react2.jsx)(_reactRenderImage.default, {
|
|
25
26
|
src: url,
|
|
26
27
|
loading: (0, _react2.jsx)(_loadingSkeleton.default, {
|
|
@@ -31,7 +32,8 @@ var ImageIcon = function ImageIcon(_ref) {
|
|
|
31
32
|
"data-testid": "".concat(testId, "-image")
|
|
32
33
|
}),
|
|
33
34
|
errored: defaultIcon,
|
|
34
|
-
onError: onError
|
|
35
|
+
onError: onError,
|
|
36
|
+
onLoad: onLoad
|
|
35
37
|
});
|
|
36
38
|
};
|
|
37
39
|
|