@atlaskit/smart-card 17.4.3 → 17.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/constants.js +14 -2
  3. package/dist/cjs/extractors/flexible/extract-preview.js +21 -0
  4. package/dist/cjs/extractors/flexible/index.js +3 -0
  5. package/dist/cjs/index.js +6 -0
  6. package/dist/cjs/version.json +1 -1
  7. package/dist/cjs/view/FlexibleCard/components/actions/action/index.js +18 -7
  8. package/dist/cjs/view/FlexibleCard/components/actions/utils.js +8 -1
  9. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +3 -2
  10. package/dist/cjs/view/FlexibleCard/components/blocks/footer-block/index.js +50 -0
  11. package/dist/cjs/view/FlexibleCard/components/blocks/footer-block/types.js +5 -0
  12. package/dist/cjs/view/FlexibleCard/components/blocks/index.js +16 -0
  13. package/dist/cjs/view/FlexibleCard/components/blocks/preview-block/index.js +41 -0
  14. package/dist/cjs/view/FlexibleCard/components/blocks/preview-block/types.js +5 -0
  15. package/dist/cjs/view/FlexibleCard/components/blocks/utils.js +24 -4
  16. package/dist/cjs/view/FlexibleCard/components/common/atlaskit-icon/index.js +1 -1
  17. package/dist/cjs/view/FlexibleCard/components/elements/index.js +3 -1
  18. package/dist/cjs/view/FlexibleCard/components/elements/media/index.js +45 -0
  19. package/dist/cjs/view/FlexibleCard/components/elements/media/types.js +5 -0
  20. package/dist/cjs/view/FlexibleCard/components/elements/utils.js +4 -0
  21. package/dist/es2019/constants.js +11 -1
  22. package/dist/es2019/extractors/flexible/extract-preview.js +12 -0
  23. package/dist/es2019/extractors/flexible/index.js +2 -0
  24. package/dist/es2019/index.js +1 -1
  25. package/dist/es2019/version.json +1 -1
  26. package/dist/es2019/view/FlexibleCard/components/actions/action/index.js +34 -6
  27. package/dist/es2019/view/FlexibleCard/components/actions/utils.js +5 -1
  28. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +3 -2
  29. package/dist/es2019/view/FlexibleCard/components/blocks/footer-block/index.js +35 -0
  30. package/dist/es2019/view/FlexibleCard/components/blocks/footer-block/types.js +1 -0
  31. package/dist/es2019/view/FlexibleCard/components/blocks/index.js +2 -0
  32. package/dist/es2019/view/FlexibleCard/components/blocks/preview-block/index.js +21 -0
  33. package/dist/es2019/view/FlexibleCard/components/blocks/preview-block/types.js +1 -0
  34. package/dist/es2019/view/FlexibleCard/components/blocks/utils.js +20 -5
  35. package/dist/es2019/view/FlexibleCard/components/common/atlaskit-icon/index.js +1 -1
  36. package/dist/es2019/view/FlexibleCard/components/elements/index.js +1 -0
  37. package/dist/es2019/view/FlexibleCard/components/elements/media/index.js +35 -0
  38. package/dist/es2019/view/FlexibleCard/components/elements/media/types.js +1 -0
  39. package/dist/es2019/view/FlexibleCard/components/elements/utils.js +4 -0
  40. package/dist/esm/constants.js +11 -1
  41. package/dist/esm/extractors/flexible/extract-preview.js +12 -0
  42. package/dist/esm/extractors/flexible/index.js +2 -0
  43. package/dist/esm/index.js +1 -1
  44. package/dist/esm/version.json +1 -1
  45. package/dist/esm/view/FlexibleCard/components/actions/action/index.js +17 -7
  46. package/dist/esm/view/FlexibleCard/components/actions/utils.js +9 -1
  47. package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +3 -2
  48. package/dist/esm/view/FlexibleCard/components/blocks/footer-block/index.js +34 -0
  49. package/dist/esm/view/FlexibleCard/components/blocks/footer-block/types.js +1 -0
  50. package/dist/esm/view/FlexibleCard/components/blocks/index.js +2 -0
  51. package/dist/esm/view/FlexibleCard/components/blocks/preview-block/index.js +25 -0
  52. package/dist/esm/view/FlexibleCard/components/blocks/preview-block/types.js +1 -0
  53. package/dist/esm/view/FlexibleCard/components/blocks/utils.js +25 -6
  54. package/dist/esm/view/FlexibleCard/components/common/atlaskit-icon/index.js +1 -1
  55. package/dist/esm/view/FlexibleCard/components/elements/index.js +1 -0
  56. package/dist/esm/view/FlexibleCard/components/elements/media/index.js +34 -0
  57. package/dist/esm/view/FlexibleCard/components/elements/media/types.js +1 -0
  58. package/dist/esm/view/FlexibleCard/components/elements/utils.js +3 -0
  59. package/dist/types/constants.d.ts +7 -0
  60. package/dist/types/extractors/flexible/extract-preview.d.ts +4 -0
  61. package/dist/types/index.d.ts +1 -1
  62. package/dist/types/state/flexible-ui-context/types.d.ts +6 -1
  63. package/dist/types/view/FlexibleCard/components/blocks/action-group/types.d.ts +2 -0
  64. package/dist/types/view/FlexibleCard/components/blocks/footer-block/index.d.ts +4 -0
  65. package/dist/types/view/FlexibleCard/components/blocks/footer-block/types.d.ts +4 -0
  66. package/dist/types/view/FlexibleCard/components/blocks/index.d.ts +2 -0
  67. package/dist/types/view/FlexibleCard/components/blocks/preview-block/index.d.ts +4 -0
  68. package/dist/types/view/FlexibleCard/components/blocks/preview-block/types.d.ts +2 -0
  69. package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +2 -0
  70. package/dist/types/view/FlexibleCard/components/blocks/utils.d.ts +1 -1
  71. package/dist/types/view/FlexibleCard/components/elements/index.d.ts +2 -0
  72. package/dist/types/view/FlexibleCard/components/elements/media/index.d.ts +5 -0
  73. package/dist/types/view/FlexibleCard/components/elements/media/types.d.ts +6 -0
  74. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 17.5.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`0fb7e85e70a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0fb7e85e70a) - Flexible UI: Add PreviewBlock
8
+
9
+ ## 17.5.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [`238facb8e1a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/238facb8e1a) - Flexible UI: Add Preview element
14
+
15
+ ## 17.5.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [`be8dc55e85d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/be8dc55e85d) - [ux] Add Footer block
20
+
3
21
  ## 17.4.3
4
22
 
5
23
  ### Patch Changes
@@ -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.IconType = exports.ElementName = exports.ActionName = void 0;
6
+ exports.SmartLinkWidth = exports.SmartLinkTheme = exports.SmartLinkStatus = exports.SmartLinkSize = exports.SmartLinkPosition = exports.SmartLinkDirection = exports.SmartLinkAlignment = exports.MediaType = exports.IconType = exports.ElementName = exports.ActionName = void 0;
7
7
 
8
8
  /**
9
9
  * The alignment of Flexible UI component.
@@ -137,6 +137,7 @@ exports.ElementName = ElementName;
137
137
  ElementName["LinkIcon"] = "LinkIcon";
138
138
  ElementName["ModifiedBy"] = "ModifiedBy";
139
139
  ElementName["ModifiedOn"] = "ModifiedOn";
140
+ ElementName["Preview"] = "Preview";
140
141
  ElementName["Priority"] = "Priority";
141
142
  ElementName["ProgrammingLanguage"] = "ProgrammingLanguage";
142
143
  ElementName["Snippet"] = "Snippet";
@@ -158,6 +159,10 @@ exports.ActionName = ActionName;
158
159
  })(ActionName || (exports.ActionName = ActionName = {}));
159
160
 
160
161
  var IconType;
162
+ /**
163
+ * Type for Flexible UI's Media element
164
+ */
165
+
161
166
  exports.IconType = IconType;
162
167
 
163
168
  (function (IconType) {
@@ -218,4 +223,11 @@ exports.IconType = IconType;
218
223
  IconType["PriorityUndefined"] = "Badge:PriorityUndefined";
219
224
  IconType["ProgrammingLanguage"] = "Badge:ProgrammingLanguage";
220
225
  IconType["Subscriber"] = "Badge:Subscriber";
221
- })(IconType || (exports.IconType = IconType = {}));
226
+ })(IconType || (exports.IconType = IconType = {}));
227
+
228
+ var MediaType;
229
+ exports.MediaType = MediaType;
230
+
231
+ (function (MediaType) {
232
+ MediaType["Image"] = "image";
233
+ })(MediaType || (exports.MediaType = MediaType = {}));
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _preview = require("../common/preview");
9
+
10
+ var _constants = require("../../constants");
11
+
12
+ var extractPreview = function extractPreview(data) {
13
+ var url = (0, _preview.extractImage)(data);
14
+ return url ? {
15
+ type: _constants.MediaType.Image,
16
+ url: url
17
+ } : undefined;
18
+ };
19
+
20
+ var _default = extractPreview;
21
+ exports.default = _default;
@@ -27,6 +27,8 @@ var _extractPriority = _interopRequireDefault(require("./extract-priority"));
27
27
 
28
28
  var _extractProviderIcon = _interopRequireDefault(require("./icon/extract-provider-icon"));
29
29
 
30
+ var _extractPreview = _interopRequireDefault(require("./extract-preview"));
31
+
30
32
  var extractFlexibleUiContext = function extractFlexibleUiContext(response, renderers) {
31
33
  if (!response) {
32
34
  return undefined;
@@ -43,6 +45,7 @@ var extractFlexibleUiContext = function extractFlexibleUiContext(response, rende
43
45
  linkIcon: (0, _icon.extractLinkIcon)(response, renderers),
44
46
  modifiedBy: (0, _utils.extractModifiedBy)(data),
45
47
  modifiedOn: (0, _extractDateUpdated.extractDateUpdated)(data),
48
+ preview: (0, _extractPreview.default)(data),
46
49
  priority: (0, _extractPriority.default)(data),
47
50
  programmingLanguage: (0, _utils.extractProgrammingLanguage)(data),
48
51
  snippet: (0, _primitives.extractSummary)(data) || undefined,
package/dist/cjs/index.js CHANGED
@@ -59,6 +59,12 @@ Object.defineProperty(exports, "MetadataBlock", {
59
59
  return _blocks.MetadataBlock;
60
60
  }
61
61
  });
62
+ Object.defineProperty(exports, "PreviewBlock", {
63
+ enumerable: true,
64
+ get: function get() {
65
+ return _blocks.PreviewBlock;
66
+ }
67
+ });
62
68
  Object.defineProperty(exports, "Provider", {
63
69
  enumerable: true,
64
70
  get: function get() {
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "17.4.3",
3
+ "version": "17.5.2",
4
4
  "sideEffects": false
5
5
  }
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
10
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
13
 
12
14
  var _react = _interopRequireDefault(require("react"));
@@ -25,9 +27,9 @@ var _token = require("../../../../../utils/token");
25
27
 
26
28
  var _utils2 = require("../../../../../utils");
27
29
 
28
- var _templateObject;
30
+ var _templateObject, _templateObject2, _sizeToSpacing;
29
31
 
30
- var getWidth = function getWidth(size) {
32
+ var getIconWidth = function getIconWidth(size) {
31
33
  switch (size) {
32
34
  case _constants.SmartLinkSize.XLarge:
33
35
  case _constants.SmartLinkSize.Large:
@@ -41,7 +43,11 @@ var getWidth = function getWidth(size) {
41
43
  };
42
44
 
43
45
  var getIconStyles = function getIconStyles(size) {
44
- return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", ";\n"])), _token.tokens.actionIcon, (0, _utils.getIconSizeStyles)(getWidth(size)));
46
+ return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", ";\n"])), _token.tokens.actionIcon, (0, _utils.getIconSizeStyles)(getIconWidth(size)));
47
+ };
48
+
49
+ var getButtonStyle = function getButtonStyle(size, iconOnly) {
50
+ return size === _constants.SmartLinkSize.Small ? (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n font-size: 0.75rem;\n font-weight: 500;\n line-height: 1rem;\n button,\n button:hover,\n button:focus,\n button:active {\n line-height: 1rem;\n ", "\n }\n "])), iconOnly ? "\n padding: 0.125rem;\n " : "\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n ") : '';
45
51
  };
46
52
 
47
53
  var ActionIcon = function ActionIcon(_ref) {
@@ -54,6 +60,8 @@ var ActionIcon = function ActionIcon(_ref) {
54
60
  }, icon);
55
61
  };
56
62
 
63
+ var sizeToSpacing = (_sizeToSpacing = {}, (0, _defineProperty2.default)(_sizeToSpacing, _constants.SmartLinkSize.Small, 'none'), (0, _defineProperty2.default)(_sizeToSpacing, _constants.SmartLinkSize.Medium, 'compact'), (0, _defineProperty2.default)(_sizeToSpacing, _constants.SmartLinkSize.Large, 'compact'), (0, _defineProperty2.default)(_sizeToSpacing, _constants.SmartLinkSize.XLarge, 'default'), _sizeToSpacing);
64
+
57
65
  var Action = function Action(_ref2) {
58
66
  var _ref2$appearance = _ref2.appearance,
59
67
  appearance = _ref2$appearance === void 0 ? 'subtle' : _ref2$appearance,
@@ -72,26 +80,29 @@ var Action = function Action(_ref2) {
72
80
  return null;
73
81
  }
74
82
 
75
- var iconBefore = iconPosition === 'before' ? (0, _core.jsx)(ActionIcon, {
83
+ var iconBefore = icon && iconPosition === 'before' ? (0, _core.jsx)(ActionIcon, {
76
84
  size: size,
77
85
  testId: testId,
78
86
  icon: icon
79
87
  }) : undefined;
80
- var iconAfter = iconPosition === 'after' ? (0, _core.jsx)(ActionIcon, {
88
+ var iconAfter = icon && iconPosition === 'after' ? (0, _core.jsx)(ActionIcon, {
81
89
  size: size,
82
90
  testId: testId,
83
91
  icon: icon
84
92
  }) : undefined;
93
+ var iconOnly = !content;
85
94
  return (0, _core.jsx)(_tooltip.default, {
86
95
  content: tooltipMessage
96
+ }, (0, _core.jsx)("div", {
97
+ css: getButtonStyle(size, iconOnly)
87
98
  }, (0, _core.jsx)(_customThemeButton.default, {
88
- spacing: "none",
99
+ spacing: sizeToSpacing[size],
89
100
  appearance: appearance,
90
101
  testId: testId,
91
102
  onClick: (0, _utils2.handleOnClick)(onClick),
92
103
  iconBefore: iconBefore,
93
104
  iconAfter: iconAfter
94
- }, content));
105
+ }, content)));
95
106
  };
96
107
 
97
108
  var _default = Action;
@@ -31,10 +31,15 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
31
 
32
32
  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; }
33
33
 
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
+
36
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
37
+
34
38
  var actionMappings = (0, _defineProperty2.default)({}, _constants.ActionName.DeleteAction, {
35
39
  component: _action.default,
36
40
  props: {
37
41
  testId: 'smart-action-delete-action',
42
+ content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.delete),
38
43
  icon: /*#__PURE__*/_react.default.createElement(_cross.default, {
39
44
  label: "Delete"
40
45
  }),
@@ -91,7 +96,9 @@ var createUIAction = function createUIAction(name) {
91
96
  }
92
97
 
93
98
  return function (overrides) {
94
- return /*#__PURE__*/_react.default.createElement(BaseAction, (0, _extends2.default)({}, props, overrides));
99
+ var combinedProps = _objectSpread(_objectSpread({}, props), overrides);
100
+
101
+ return /*#__PURE__*/_react.default.createElement(BaseAction, combinedProps);
95
102
  };
96
103
  };
97
104
 
@@ -25,12 +25,13 @@ var ActionGroup = function ActionGroup(_ref) {
25
25
  var _ref$items = _ref.items,
26
26
  items = _ref$items === void 0 ? [] : _ref$items,
27
27
  _ref$size = _ref.size,
28
- size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size;
28
+ size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size,
29
+ appearance = _ref.appearance;
29
30
  // Currently we only have delete action available, this prevents others from adding more delete actions
30
31
  var actionsToRender = items.slice(0, 1);
31
32
  return (0, _core.jsx)("div", {
32
33
  css: styles
33
- }, (0, _core.jsx)(_buttonGroup.default, null, (0, _utils.renderActionItems)(actionsToRender, size)));
34
+ }, (0, _core.jsx)(_buttonGroup.default, null, (0, _utils.renderActionItems)(actionsToRender, size, appearance)));
34
35
  };
35
36
 
36
37
  var _default = ActionGroup;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _constants = require("../../../../../constants");
15
+
16
+ var _block = _interopRequireDefault(require("../block"));
17
+
18
+ var _elementGroup = _interopRequireDefault(require("../element-group"));
19
+
20
+ var _elements = require("../../elements");
21
+
22
+ var _actionGroup = _interopRequireDefault(require("../action-group"));
23
+
24
+ var FooterBlock = function FooterBlock(props) {
25
+ var status = props.status,
26
+ actions = props.actions,
27
+ _props$testId = props.testId,
28
+ testId = _props$testId === void 0 ? 'smart-footer-block' : _props$testId;
29
+
30
+ if (status !== _constants.SmartLinkStatus.Resolved) {
31
+ return null;
32
+ }
33
+
34
+ return /*#__PURE__*/_react.default.createElement(_block.default, (0, _extends2.default)({}, props, {
35
+ testId: "".concat(testId, "-resolved-view")
36
+ }), /*#__PURE__*/_react.default.createElement(_elements.Provider, {
37
+ testId: "".concat(testId, "-provider")
38
+ }), actions && actions.length > 0 ? /*#__PURE__*/_react.default.createElement(_elementGroup.default, {
39
+ testId: "smart-element-group-actions",
40
+ align: _constants.SmartLinkAlignment.Right,
41
+ direction: _constants.SmartLinkDirection.Horizontal,
42
+ width: _constants.SmartLinkWidth.Flexible
43
+ }, /*#__PURE__*/_react.default.createElement(_actionGroup.default, {
44
+ items: actions,
45
+ appearance: "default"
46
+ })) : null);
47
+ };
48
+
49
+ var _default = FooterBlock;
50
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -5,12 +5,24 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ Object.defineProperty(exports, "FooterBlock", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _footerBlock.default;
12
+ }
13
+ });
8
14
  Object.defineProperty(exports, "MetadataBlock", {
9
15
  enumerable: true,
10
16
  get: function get() {
11
17
  return _metadataBlock.default;
12
18
  }
13
19
  });
20
+ Object.defineProperty(exports, "PreviewBlock", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _previewBlock.default;
24
+ }
25
+ });
14
26
  Object.defineProperty(exports, "SnippetBlock", {
15
27
  enumerable: true,
16
28
  get: function get() {
@@ -24,8 +36,12 @@ Object.defineProperty(exports, "TitleBlock", {
24
36
  }
25
37
  });
26
38
 
39
+ var _footerBlock = _interopRequireDefault(require("./footer-block"));
40
+
27
41
  var _metadataBlock = _interopRequireDefault(require("./metadata-block"));
28
42
 
43
+ var _previewBlock = _interopRequireDefault(require("./preview-block"));
44
+
29
45
  var _snippetBlock = _interopRequireDefault(require("./snippet-block"));
30
46
 
31
47
  var _titleBlock = _interopRequireDefault(require("./title-block"));
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _constants = require("../../../../../constants");
17
+
18
+ var _block = _interopRequireDefault(require("../block"));
19
+
20
+ var _elements = require("../../elements");
21
+
22
+ var _excluded = ["status", "testId"];
23
+
24
+ var PreviewBlock = function PreviewBlock(_ref) {
25
+ var _ref$status = _ref.status,
26
+ status = _ref$status === void 0 ? _constants.SmartLinkStatus.Fallback : _ref$status,
27
+ _ref$testId = _ref.testId,
28
+ testId = _ref$testId === void 0 ? 'smart-block-preview' : _ref$testId,
29
+ blockProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
30
+
31
+ if (status !== _constants.SmartLinkStatus.Resolved) {
32
+ return null;
33
+ }
34
+
35
+ return /*#__PURE__*/_react.default.createElement(_block.default, (0, _extends2.default)({}, blockProps, {
36
+ testId: "".concat(testId, "-resolved-view")
37
+ }), /*#__PURE__*/_react.default.createElement(_elements.Preview, null));
38
+ };
39
+
40
+ var _default = PreviewBlock;
41
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -36,7 +36,7 @@ var _actionGroup = _interopRequireDefault(require("./action-group"));
36
36
  var _elementGroup = _interopRequireDefault(require("./element-group"));
37
37
 
38
38
  var _excluded = ["name"],
39
- _excluded2 = ["name"];
39
+ _excluded2 = ["name", "hideContent", "hideIcon", "onClick"];
40
40
 
41
41
  var _ElementDisplaySchema, _templateObject, _templateObject2, _templateObject3;
42
42
 
@@ -44,7 +44,11 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
44
44
 
45
45
  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; }
46
46
 
47
- var ElementDisplaySchema = (_ElementDisplaySchema = {}, (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AuthorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CollaboratorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CommentCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CreatedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CreatedOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.LinkIcon, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Priority, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ProgrammingLanguage, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Snippet, ['block']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.State, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SubscriberCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Title, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Provider, ['inline']), _ElementDisplaySchema);
47
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
48
+
49
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
50
+
51
+ var ElementDisplaySchema = (_ElementDisplaySchema = {}, (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AuthorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CollaboratorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CommentCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CreatedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CreatedOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.LinkIcon, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Preview, ['block']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Priority, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ProgrammingLanguage, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Snippet, ['block']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.State, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SubscriberCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Title, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Provider, ['inline']), _ElementDisplaySchema);
48
52
  exports.ElementDisplaySchema = ElementDisplaySchema;
49
53
 
50
54
  var getDirectionStyles = function getDirectionStyles(direction) {
@@ -148,16 +152,32 @@ exports.renderElementItems = renderElementItems;
148
152
  var renderActionItems = function renderActionItems() {
149
153
  var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
150
154
  var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.SmartLinkSize.Medium;
155
+ var appearance = arguments.length > 2 ? arguments[2] : undefined;
151
156
  var actions = items.reduce(function (acc, curr, idx) {
152
157
  var name = curr.name,
158
+ hideContent = curr.hideContent,
159
+ hideIcon = curr.hideIcon,
160
+ onClick = curr.onClick,
153
161
  props = (0, _objectWithoutProperties2.default)(curr, _excluded2);
154
162
  var Action = Actions[name];
155
163
 
164
+ var actionProps = _objectSpread({}, props);
165
+
166
+ if (hideContent) {
167
+ actionProps.content = '';
168
+ }
169
+
170
+ if (hideIcon) {
171
+ actionProps.icon = undefined;
172
+ }
173
+
156
174
  if (Action) {
157
175
  return [].concat((0, _toConsumableArray2.default)(acc), [/*#__PURE__*/_react.default.createElement(Action, (0, _extends2.default)({
158
176
  size: size,
159
- key: idx
160
- }, props))]);
177
+ key: idx,
178
+ appearance: appearance,
179
+ onClick: onClick
180
+ }, actionProps))]);
161
181
  }
162
182
 
163
183
  return acc;
@@ -300,7 +300,7 @@ var AtlaskitIcon = function AtlaskitIcon(_ref3) {
300
300
  case _constants.IconType.Jira:
301
301
  // Logo component has a different prop set from other icon components
302
302
  return /*#__PURE__*/_react.default.createElement(ImportedIcon, {
303
- "data-testId": testId // Confluence and Jira imports don't have native testId prop
303
+ "data-testid": testId // Confluence and Jira imports don't have native testId prop
304
304
  ,
305
305
  textColor: _colors.N700,
306
306
  iconColor: _colors.B200,
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Title = exports.SubscriberCount = exports.State = exports.Snippet = exports.Provider = exports.ProgrammingLanguage = exports.Priority = exports.ModifiedOn = exports.ModifiedBy = exports.LinkIcon = exports.CreatedOn = exports.CreatedBy = exports.CommentCount = exports.CollaboratorGroup = exports.AuthorGroup = void 0;
6
+ exports.Title = exports.SubscriberCount = exports.State = exports.Snippet = exports.Provider = exports.ProgrammingLanguage = exports.Priority = exports.Preview = exports.ModifiedOn = exports.ModifiedBy = exports.LinkIcon = exports.CreatedOn = exports.CreatedBy = exports.CommentCount = exports.CollaboratorGroup = exports.AuthorGroup = void 0;
7
7
 
8
8
  var _utils = require("./utils");
9
9
 
@@ -28,6 +28,8 @@ var ModifiedBy = (0, _utils.createElement)(_constants.ElementName.ModifiedBy);
28
28
  exports.ModifiedBy = ModifiedBy;
29
29
  var ModifiedOn = (0, _utils.createElement)(_constants.ElementName.ModifiedOn);
30
30
  exports.ModifiedOn = ModifiedOn;
31
+ var Preview = (0, _utils.createElement)(_constants.ElementName.Preview);
32
+ exports.Preview = Preview;
31
33
  var Priority = (0, _utils.createElement)(_constants.ElementName.Priority);
32
34
  exports.Priority = Priority;
33
35
  var ProgrammingLanguage = (0, _utils.createElement)(_constants.ElementName.ProgrammingLanguage);
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _core = require("@emotion/core");
15
+
16
+ var _imageIcon = _interopRequireDefault(require("../../common/image-icon"));
17
+
18
+ var _templateObject;
19
+
20
+ var styles = function styles(url) {
21
+ return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n justify-content: center;\n width: 100%;\n > img {\n max-width: 100%;\n max-height: 100%;\n }\n"])));
22
+ };
23
+
24
+ var Media = function Media(_ref) {
25
+ var _ref$testId = _ref.testId,
26
+ testId = _ref$testId === void 0 ? 'smart-element-media' : _ref$testId,
27
+ type = _ref.type,
28
+ url = _ref.url;
29
+
30
+ if (!type || !url) {
31
+ return null;
32
+ }
33
+
34
+ return (0, _core.jsx)("div", {
35
+ css: styles(url),
36
+ "data-smart-element-media": true,
37
+ "data-testid": testId
38
+ }, (0, _core.jsx)(_imageIcon.default, {
39
+ testId: "".concat(testId, "-image"),
40
+ url: url
41
+ }));
42
+ };
43
+
44
+ var _default = Media;
45
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -29,6 +29,8 @@ var _badge = _interopRequireDefault(require("./badge"));
29
29
 
30
30
  var _avatarGroup = _interopRequireDefault(require("./avatar-group"));
31
31
 
32
+ var _media = _interopRequireDefault(require("./media"));
33
+
32
34
  var _text = _interopRequireDefault(require("./text"));
33
35
 
34
36
  var _messages = require("../../../../messages");
@@ -59,6 +61,8 @@ var elementMappings = (_elementMappings = {}, (0, _defineProperty2.default)(_ele
59
61
  component: _icon.default
60
62
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.ModifiedBy, {
61
63
  component: _text.default
64
+ }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Preview, {
65
+ component: _media.default
62
66
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Priority, {
63
67
  component: _badge.default
64
68
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.ProgrammingLanguage, {
@@ -114,6 +114,7 @@ export let ElementName;
114
114
  ElementName["LinkIcon"] = "LinkIcon";
115
115
  ElementName["ModifiedBy"] = "ModifiedBy";
116
116
  ElementName["ModifiedOn"] = "ModifiedOn";
117
+ ElementName["Preview"] = "Preview";
117
118
  ElementName["Priority"] = "Priority";
118
119
  ElementName["ProgrammingLanguage"] = "ProgrammingLanguage";
119
120
  ElementName["Snippet"] = "Snippet";
@@ -133,6 +134,9 @@ export let ActionName;
133
134
  })(ActionName || (ActionName = {}));
134
135
 
135
136
  export let IconType;
137
+ /**
138
+ * Type for Flexible UI's Media element
139
+ */
136
140
 
137
141
  (function (IconType) {
138
142
  IconType["Archive"] = "FileType:Archive";
@@ -192,4 +196,10 @@ export let IconType;
192
196
  IconType["PriorityUndefined"] = "Badge:PriorityUndefined";
193
197
  IconType["ProgrammingLanguage"] = "Badge:ProgrammingLanguage";
194
198
  IconType["Subscriber"] = "Badge:Subscriber";
195
- })(IconType || (IconType = {}));
199
+ })(IconType || (IconType = {}));
200
+
201
+ export let MediaType;
202
+
203
+ (function (MediaType) {
204
+ MediaType["Image"] = "image";
205
+ })(MediaType || (MediaType = {}));
@@ -0,0 +1,12 @@
1
+ import { extractImage } from '../common/preview';
2
+ import { MediaType } from '../../constants';
3
+
4
+ const extractPreview = data => {
5
+ const url = extractImage(data);
6
+ return url ? {
7
+ type: MediaType.Image,
8
+ url
9
+ } : undefined;
10
+ };
11
+
12
+ export default extractPreview;
@@ -8,6 +8,7 @@ import { extractDateUpdated } from '../common/date/extractDateUpdated';
8
8
  import { extractDateCreated } from '../common/date/extractDateCreated';
9
9
  import extractPriority from './extract-priority';
10
10
  import extractProviderIcon from './icon/extract-provider-icon';
11
+ import extractPreview from './extract-preview';
11
12
 
12
13
  const extractFlexibleUiContext = (response, renderers) => {
13
14
  if (!response) {
@@ -25,6 +26,7 @@ const extractFlexibleUiContext = (response, renderers) => {
25
26
  linkIcon: extractLinkIcon(response, renderers),
26
27
  modifiedBy: extractModifiedBy(data),
27
28
  modifiedOn: extractDateUpdated(data),
29
+ preview: extractPreview(data),
28
30
  priority: extractPriority(data),
29
31
  programmingLanguage: extractProgrammingLanguage(data),
30
32
  snippet: extractSummary(data) || undefined,
@@ -13,4 +13,4 @@ export { contentFooterClassName, metadataListClassName, blockCardResolvingViewCl
13
13
  export { loadingPlaceholderClassName } from './view/CardWithUrl/component-lazy/LazyFallback'; // Flexible UI
14
14
 
15
15
  export { ActionName, ElementName, SmartLinkDirection, SmartLinkPosition, SmartLinkSize, SmartLinkTheme } from './constants';
16
- export { MetadataBlock, SnippetBlock, TitleBlock } from './view/FlexibleCard/components/blocks';
16
+ export { MetadataBlock, PreviewBlock, SnippetBlock, TitleBlock } from './view/FlexibleCard/components/blocks';
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "17.4.3",
3
+ "version": "17.5.2",
4
4
  "sideEffects": false
5
5
  }