@atlaskit/smart-card 25.5.0 → 25.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.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/extractors/flexible/extract-server-action.js +18 -0
- package/dist/cjs/extractors/flexible/extract-state.js +71 -0
- package/dist/cjs/extractors/flexible/index.js +10 -3
- package/dist/cjs/state/hooks/use-invoke/types.js +10 -1
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/index.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/styled.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/elements/lozenge/index.js +15 -11
- package/dist/cjs/view/FlexibleCard/index.js +17 -8
- package/dist/cjs/view/FlexibleCard/utils.js +12 -8
- package/dist/es2019/extractors/flexible/extract-server-action.js +11 -0
- package/dist/es2019/extractors/flexible/extract-state.js +59 -0
- package/dist/es2019/extractors/flexible/index.js +10 -3
- package/dist/es2019/state/hooks/use-invoke/types.js +11 -1
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/FlexibleCard/components/common/lozenge-action/index.js +1 -1
- package/dist/es2019/view/FlexibleCard/components/common/lozenge-action/styled.js +1 -1
- package/dist/es2019/view/FlexibleCard/components/elements/lozenge/index.js +14 -24
- package/dist/es2019/view/FlexibleCard/index.js +15 -6
- package/dist/es2019/view/FlexibleCard/utils.js +14 -9
- package/dist/esm/extractors/flexible/extract-server-action.js +11 -0
- package/dist/esm/extractors/flexible/extract-state.js +63 -0
- package/dist/esm/extractors/flexible/index.js +10 -3
- package/dist/esm/state/hooks/use-invoke/types.js +11 -1
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/FlexibleCard/components/common/lozenge-action/index.js +1 -1
- package/dist/esm/view/FlexibleCard/components/common/lozenge-action/styled.js +1 -1
- package/dist/esm/view/FlexibleCard/components/elements/lozenge/index.js +15 -11
- package/dist/esm/view/FlexibleCard/index.js +17 -8
- package/dist/esm/view/FlexibleCard/utils.js +13 -9
- package/dist/types/extractors/common/lozenge/types.d.ts +2 -0
- package/dist/types/extractors/flexible/extract-server-action.d.ts +3 -0
- package/dist/types/extractors/flexible/extract-state.d.ts +4 -0
- package/dist/types/extractors/flexible/index.d.ts +2 -3
- package/dist/types/state/hooks/use-invoke/types.d.ts +23 -3
- package/dist/types/view/Card/index.d.ts +1 -1
- package/dist/types/view/FlexibleCard/components/common/lozenge-action/lozenge-action-trigger/type.d.ts +2 -1
- package/dist/types/view/FlexibleCard/components/common/lozenge-action/types.d.ts +2 -1
- package/dist/types/view/FlexibleCard/components/elements/lozenge/index.d.ts +1 -1
- package/dist/types/view/FlexibleCard/components/elements/lozenge/types.d.ts +5 -0
- package/dist/types/view/FlexibleCard/types.d.ts +12 -2
- package/dist/types/view/FlexibleCard/utils.d.ts +3 -4
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 25.5.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`c2aab8ee44b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c2aab8ee44b) - Add lozenge dropdown action to Flexible Smart Link based element lozenge
|
|
8
|
+
|
|
9
|
+
## 25.5.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`bcc645691c5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bcc645691c5) - Add lozenge action feature flag and extract server action for state lozenge from JSON-LD response
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
|
|
3
16
|
## 25.5.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var extractServerAction = function extractServerAction(data) {
|
|
8
|
+
var actions = data === null || data === void 0 ? void 0 : data['atlassian:serverAction'];
|
|
9
|
+
if (!actions) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
if (actions && !Array.isArray(actions)) {
|
|
13
|
+
return [actions];
|
|
14
|
+
}
|
|
15
|
+
return actions;
|
|
16
|
+
};
|
|
17
|
+
var _default = extractServerAction;
|
|
18
|
+
exports.default = _default;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _lozenge = require("../common/lozenge");
|
|
10
|
+
var _helpers = require("../../state/helpers");
|
|
11
|
+
var _extractServerAction = _interopRequireDefault(require("./extract-server-action"));
|
|
12
|
+
var _extractors = require("@atlaskit/linking-common/extractors");
|
|
13
|
+
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; }
|
|
14
|
+
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; }
|
|
15
|
+
var toInvokeRequest = function toInvokeRequest(extensionKey, resourceIdentifiers, actionType, details) {
|
|
16
|
+
if (!actionType) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
action: {
|
|
21
|
+
actionType: actionType,
|
|
22
|
+
resourceIdentifiers: resourceIdentifiers
|
|
23
|
+
},
|
|
24
|
+
providerKey: extensionKey,
|
|
25
|
+
details: details
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
var extractAction = function extractAction(response, id) {
|
|
29
|
+
var _action$dataRetrieval, _action$dataUpdateAct;
|
|
30
|
+
var extensionKey = (0, _helpers.getExtensionKey)(response);
|
|
31
|
+
var data = response === null || response === void 0 ? void 0 : response.data;
|
|
32
|
+
var actions = (0, _extractServerAction.default)(data);
|
|
33
|
+
if (!extensionKey || actions.length === 0) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
var action = actions.find(function (item) {
|
|
37
|
+
return (item === null || item === void 0 ? void 0 : item.name) === 'UpdateAction' && (item === null || item === void 0 ? void 0 : item.refField) === 'tag';
|
|
38
|
+
});
|
|
39
|
+
if (!action || !action.resourceIdentifiers) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
var read = toInvokeRequest(extensionKey, action.resourceIdentifiers, (_action$dataRetrieval = action.dataRetrievalAction) === null || _action$dataRetrieval === void 0 ? void 0 : _action$dataRetrieval.name);
|
|
43
|
+
var url = (0, _extractors.extractLink)(data);
|
|
44
|
+
var details = {
|
|
45
|
+
id: id,
|
|
46
|
+
url: url
|
|
47
|
+
};
|
|
48
|
+
var update = toInvokeRequest(extensionKey, action.resourceIdentifiers, (_action$dataUpdateAct = action.dataUpdateAction) === null || _action$dataUpdateAct === void 0 ? void 0 : _action$dataUpdateAct.name, details);
|
|
49
|
+
return read || update ? {
|
|
50
|
+
read: read,
|
|
51
|
+
update: update
|
|
52
|
+
} : undefined;
|
|
53
|
+
};
|
|
54
|
+
var extractState = function extractState(response, showServerActions, id) {
|
|
55
|
+
if (!response || !response.data) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
var lozenge = (0, _lozenge.extractLozenge)(response === null || response === void 0 ? void 0 : response.data);
|
|
59
|
+
if (!lozenge) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (!showServerActions) {
|
|
63
|
+
return lozenge;
|
|
64
|
+
}
|
|
65
|
+
var action = extractAction(response, id);
|
|
66
|
+
return _objectSpread(_objectSpread({}, lozenge), {}, {
|
|
67
|
+
action: action
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
var _default = extractState;
|
|
71
|
+
exports.default = _default;
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _primitives = require("../common/primitives");
|
|
9
|
-
var _lozenge = require("../common/lozenge");
|
|
10
9
|
var _icon = require("./icon");
|
|
11
10
|
var _utils = require("./utils");
|
|
12
11
|
var _collaboratorGroup = require("./collaboratorGroup");
|
|
@@ -14,16 +13,24 @@ var _extractors = require("@atlaskit/linking-common/extractors");
|
|
|
14
13
|
var _extractPriority = _interopRequireDefault(require("./extract-priority"));
|
|
15
14
|
var _extractProviderIcon = _interopRequireDefault(require("./icon/extract-provider-icon"));
|
|
16
15
|
var _extractPreview = _interopRequireDefault(require("./extract-preview"));
|
|
16
|
+
var _extractState = _interopRequireDefault(require("./extract-state"));
|
|
17
17
|
var _latestCommit = require("./latest-commit");
|
|
18
18
|
var _extractPreviewAction = require("./actions/extract-preview-action");
|
|
19
19
|
var _extractDownloadAction = require("./actions/extract-download-action");
|
|
20
20
|
var _extractViewAction = require("./actions/extract-view-action");
|
|
21
|
-
var extractFlexibleUiContext = function extractFlexibleUiContext(
|
|
21
|
+
var extractFlexibleUiContext = function extractFlexibleUiContext() {
|
|
22
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
23
|
+
featureFlags = _ref.featureFlags,
|
|
24
|
+
id = _ref.id,
|
|
25
|
+
renderers = _ref.renderers,
|
|
26
|
+
showServerActions = _ref.showServerActions,
|
|
27
|
+
response = _ref.response;
|
|
22
28
|
if (!response) {
|
|
23
29
|
return undefined;
|
|
24
30
|
}
|
|
25
31
|
var data = response.data;
|
|
26
32
|
var url = (0, _extractors.extractLink)(data);
|
|
33
|
+
var showLozengeAction = (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.useLozengeAction) === 'experiment';
|
|
27
34
|
return {
|
|
28
35
|
attachmentCount: (0, _utils.extractAttachmentCount)(data),
|
|
29
36
|
authorGroup: (0, _extractors.extractPersonCreatedBy)(data),
|
|
@@ -50,7 +57,7 @@ var extractFlexibleUiContext = function extractFlexibleUiContext(response, rende
|
|
|
50
57
|
snippet: (0, _primitives.extractSummary)(data) || undefined,
|
|
51
58
|
// Explicitly set here to remove an empty string
|
|
52
59
|
sourceBranch: (0, _utils.extractSourceBranch)(data),
|
|
53
|
-
state: (0,
|
|
60
|
+
state: (0, _extractState.default)(response, showLozengeAction && showServerActions, id),
|
|
54
61
|
subscriberCount: (0, _utils.extractSubscriberCount)(data),
|
|
55
62
|
targetBranch: (0, _utils.extractTargetBranch)(data),
|
|
56
63
|
title: (0, _extractors.extractTitle)(data) || url,
|
|
@@ -5,8 +5,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.InvokeActionError = void 0;
|
|
7
7
|
var InvokeActionError;
|
|
8
|
+
/**
|
|
9
|
+
* Additional details for invoke function that may be required for component
|
|
10
|
+
*/
|
|
8
11
|
exports.InvokeActionError = InvokeActionError;
|
|
9
12
|
(function (InvokeActionError) {
|
|
10
13
|
InvokeActionError["NoData"] = "NoData";
|
|
11
14
|
InvokeActionError["Unknown"] = "Unknown";
|
|
12
|
-
})(InvokeActionError || (exports.InvokeActionError = InvokeActionError = {}));
|
|
15
|
+
})(InvokeActionError || (exports.InvokeActionError = InvokeActionError = {}));
|
|
16
|
+
/**
|
|
17
|
+
* Invoke request with additional details for the component
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* CRUD invoke requests for the component that support server actions
|
|
21
|
+
*/
|
package/dist/cjs/version.json
CHANGED
|
@@ -78,7 +78,7 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
78
78
|
return invoke(action.read, _extractLozengeActionItems.default);
|
|
79
79
|
case 6:
|
|
80
80
|
responseItems = _context.sent;
|
|
81
|
-
validItems = validateItems(responseItems, text);
|
|
81
|
+
validItems = typeof text === 'string' ? validateItems(responseItems, text) : responseItems;
|
|
82
82
|
setItems(validItems);
|
|
83
83
|
setIsLoaded(true);
|
|
84
84
|
if ((validItems === null || validItems === void 0 ? void 0 : validItems.length) === 0) {
|
|
@@ -8,7 +8,7 @@ exports.triggerLozengeStyles = exports.triggerButtonStyles = exports.dropdownIte
|
|
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
9
|
var _react = require("@emotion/react");
|
|
10
10
|
var _templateObject, _templateObject2, _templateObject3;
|
|
11
|
-
var triggerButtonStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n all: unset;\n background-color: transparent;\n color: unset;\n cursor: pointer;\n font-family: unset;\n font-size: unset;\n font-style: unset;\n font-weight: unset;\n font-variant: unset;\n line-height: 0;\n padding: 0;\n text-transform: unset;\n\n border: 2px solid transparent;\n margin:
|
|
11
|
+
var triggerButtonStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n all: unset;\n background-color: transparent;\n color: unset;\n cursor: pointer;\n font-family: unset;\n font-size: unset;\n font-style: unset;\n font-weight: unset;\n font-variant: unset;\n line-height: 0;\n padding: 0;\n text-transform: unset;\n\n border: 2px solid transparent;\n margin: 2px;\n\n &:focus-visible,\n &:focus-within,\n &[aria-expanded='true'] {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n border-radius: 5px;\n }\n"])), "var(--ds-border-focused, #388BFF)");
|
|
12
12
|
exports.triggerButtonStyles = triggerButtonStyles;
|
|
13
13
|
var triggerLozengeStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n\n span[role='img'] {\n margin: -4px -8px -4px -1px;\n }\n"])));
|
|
14
14
|
exports.triggerLozengeStyles = triggerLozengeStyles;
|
|
@@ -11,13 +11,13 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
|
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _react2 = require("@emotion/react");
|
|
13
13
|
var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
|
|
14
|
-
var
|
|
14
|
+
var _lozengeAction = _interopRequireDefault(require("../../common/lozenge-action"));
|
|
15
15
|
var _templateObject, _templateObject2;
|
|
16
16
|
/** @jsx jsx */
|
|
17
17
|
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); }
|
|
18
18
|
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; }
|
|
19
19
|
var styles = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n line-height: inherit;\n"])));
|
|
20
|
-
var actionStyles = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n
|
|
20
|
+
var actionStyles = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n overflow: visible;\n"])));
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* A base element that displays a Lozenge.
|
|
@@ -26,7 +26,8 @@ var actionStyles = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0,
|
|
|
26
26
|
* @see State
|
|
27
27
|
*/
|
|
28
28
|
var Lozenge = function Lozenge(_ref) {
|
|
29
|
-
var
|
|
29
|
+
var action = _ref.action,
|
|
30
|
+
_ref$appearance = _ref.appearance,
|
|
30
31
|
appearance = _ref$appearance === void 0 ? 'default' : _ref$appearance,
|
|
31
32
|
name = _ref.name,
|
|
32
33
|
onClick = _ref.onClick,
|
|
@@ -52,6 +53,16 @@ var Lozenge = function Lozenge(_ref) {
|
|
|
52
53
|
if (!text) {
|
|
53
54
|
return null;
|
|
54
55
|
}
|
|
56
|
+
var lozenge = action ? (0, _react2.jsx)(_lozengeAction.default, {
|
|
57
|
+
action: action,
|
|
58
|
+
appearance: appearance,
|
|
59
|
+
testId: testId,
|
|
60
|
+
text: text
|
|
61
|
+
}) : (0, _react2.jsx)(_lozenge.default, {
|
|
62
|
+
appearance: appearance,
|
|
63
|
+
isBold: isBold,
|
|
64
|
+
testId: "".concat(testId, "-lozenge")
|
|
65
|
+
}, text);
|
|
55
66
|
return (0, _react2.jsx)("span", {
|
|
56
67
|
css: [styles, onClick ? actionStyles : undefined, overrideCss],
|
|
57
68
|
"data-fit-to-content": true,
|
|
@@ -62,14 +73,7 @@ var Lozenge = function Lozenge(_ref) {
|
|
|
62
73
|
onMouseEnter: onMouseEnter,
|
|
63
74
|
onMouseLeave: onMouseLeave,
|
|
64
75
|
tabIndex: onClick ? 0 : -1
|
|
65
|
-
},
|
|
66
|
-
appearance: appearance,
|
|
67
|
-
isBold: isBold,
|
|
68
|
-
testId: "".concat(testId, "-lozenge")
|
|
69
|
-
}, text, onClick && (0, _react2.jsx)(_chevronDown.default, {
|
|
70
|
-
label: "action",
|
|
71
|
-
testId: "".concat(testId, "-action")
|
|
72
|
-
})));
|
|
76
|
+
}, lozenge);
|
|
73
77
|
};
|
|
74
78
|
var _default = Lozenge;
|
|
75
79
|
exports.default = _default;
|
|
@@ -21,24 +21,33 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
21
21
|
* @see Container
|
|
22
22
|
*/
|
|
23
23
|
var FlexibleCard = function FlexibleCard(_ref) {
|
|
24
|
-
var
|
|
24
|
+
var analytics = _ref.analytics,
|
|
25
|
+
cardState = _ref.cardState,
|
|
25
26
|
children = _ref.children,
|
|
27
|
+
id = _ref.id,
|
|
26
28
|
onAuthorize = _ref.onAuthorize,
|
|
29
|
+
onClick = _ref.onClick,
|
|
27
30
|
onError = _ref.onError,
|
|
28
31
|
onResolve = _ref.onResolve,
|
|
29
32
|
renderers = _ref.renderers,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
onClick = _ref.onClick,
|
|
33
|
+
showHoverPreview = _ref.showHoverPreview,
|
|
34
|
+
showServerActions = _ref.showServerActions,
|
|
33
35
|
testId = _ref.testId,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
ui = _ref.ui,
|
|
37
|
+
url = _ref.url;
|
|
36
38
|
var cardType = cardState.status,
|
|
37
39
|
details = cardState.details;
|
|
38
40
|
var status = cardType;
|
|
39
41
|
var context = (0, _react.useMemo)(function () {
|
|
40
|
-
return (0, _utils.getContextByStatus)(
|
|
41
|
-
|
|
42
|
+
return (0, _utils.getContextByStatus)({
|
|
43
|
+
response: details,
|
|
44
|
+
id: id,
|
|
45
|
+
renderers: renderers,
|
|
46
|
+
showServerActions: showServerActions,
|
|
47
|
+
status: status,
|
|
48
|
+
url: url
|
|
49
|
+
});
|
|
50
|
+
}, [details, id, renderers, showServerActions, status, url]);
|
|
42
51
|
var retry = (0, _utils.getRetryOptions)(url, status, details, onAuthorize);
|
|
43
52
|
var _ref2 = context || {},
|
|
44
53
|
title = _ref2.title;
|
|
@@ -14,7 +14,11 @@ var _icon = require("../../extractors/flexible/icon");
|
|
|
14
14
|
var _utils = require("../../utils");
|
|
15
15
|
var _extractors = require("@atlaskit/linking-common/extractors");
|
|
16
16
|
var _extractProviderIcon = _interopRequireDefault(require("../../extractors/flexible/icon/extract-provider-icon"));
|
|
17
|
-
var getContextByStatus = function getContextByStatus(
|
|
17
|
+
var getContextByStatus = function getContextByStatus(params) {
|
|
18
|
+
var _ref = params !== null && params !== void 0 ? params : {},
|
|
19
|
+
response = _ref.response,
|
|
20
|
+
status = _ref.status,
|
|
21
|
+
url = _ref.url;
|
|
18
22
|
switch (status) {
|
|
19
23
|
case _constants.SmartLinkStatus.Pending:
|
|
20
24
|
case _constants.SmartLinkStatus.Resolving:
|
|
@@ -23,15 +27,15 @@ var getContextByStatus = function getContextByStatus(url, status, details, rende
|
|
|
23
27
|
url: url
|
|
24
28
|
};
|
|
25
29
|
case _constants.SmartLinkStatus.Resolved:
|
|
26
|
-
return (0, _flexible.default)(
|
|
30
|
+
return (0, _flexible.default)(params);
|
|
27
31
|
case _constants.SmartLinkStatus.Unauthorized:
|
|
28
32
|
case _constants.SmartLinkStatus.Forbidden:
|
|
29
33
|
case _constants.SmartLinkStatus.NotFound:
|
|
30
34
|
case _constants.SmartLinkStatus.Errored:
|
|
31
35
|
case _constants.SmartLinkStatus.Fallback:
|
|
32
36
|
default:
|
|
33
|
-
var linkIcon = (0, _icon.extractErrorIcon)(
|
|
34
|
-
var provider = (0, _extractProviderIcon.default)(
|
|
37
|
+
var linkIcon = (0, _icon.extractErrorIcon)(response, status);
|
|
38
|
+
var provider = (0, _extractProviderIcon.default)(response === null || response === void 0 ? void 0 : response.data);
|
|
35
39
|
return {
|
|
36
40
|
linkIcon: linkIcon,
|
|
37
41
|
title: url,
|
|
@@ -59,9 +63,9 @@ var getForbiddenMessageKey = function getForbiddenMessageKey(meta) {
|
|
|
59
63
|
return 'restricted_link';
|
|
60
64
|
}
|
|
61
65
|
};
|
|
62
|
-
var getRetryOptions = function getRetryOptions(url, status,
|
|
63
|
-
var
|
|
64
|
-
var data =
|
|
66
|
+
var getRetryOptions = function getRetryOptions(url, status, response, onAuthorize) {
|
|
67
|
+
var _response$meta, _access$action;
|
|
68
|
+
var data = response && response.data || (0, _jsonld.getEmptyJsonLd)();
|
|
65
69
|
var provider = (0, _extractors.extractProvider)(data);
|
|
66
70
|
var context = provider === null || provider === void 0 ? void 0 : provider.text;
|
|
67
71
|
var values = context ? {
|
|
@@ -69,7 +73,7 @@ var getRetryOptions = function getRetryOptions(url, status, details, onAuthorize
|
|
|
69
73
|
} : undefined;
|
|
70
74
|
switch (status) {
|
|
71
75
|
case _constants.SmartLinkStatus.Forbidden:
|
|
72
|
-
var meta = (
|
|
76
|
+
var meta = (_response$meta = response === null || response === void 0 ? void 0 : response.meta) !== null && _response$meta !== void 0 ? _response$meta : (0, _jsonld.getForbiddenJsonLd)().meta;
|
|
73
77
|
var access = (0, _context.extractRequestAccessContext)({
|
|
74
78
|
jsonLd: meta,
|
|
75
79
|
url: url,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const extractServerAction = data => {
|
|
2
|
+
const actions = data === null || data === void 0 ? void 0 : data['atlassian:serverAction'];
|
|
3
|
+
if (!actions) {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
if (actions && !Array.isArray(actions)) {
|
|
7
|
+
return [actions];
|
|
8
|
+
}
|
|
9
|
+
return actions;
|
|
10
|
+
};
|
|
11
|
+
export default extractServerAction;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { extractLozenge } from '../common/lozenge';
|
|
2
|
+
import { getExtensionKey } from '../../state/helpers';
|
|
3
|
+
import extractServerAction from './extract-server-action';
|
|
4
|
+
import { extractLink } from '@atlaskit/linking-common/extractors';
|
|
5
|
+
const toInvokeRequest = (extensionKey, resourceIdentifiers, actionType, details) => {
|
|
6
|
+
if (!actionType) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
return {
|
|
10
|
+
action: {
|
|
11
|
+
actionType,
|
|
12
|
+
resourceIdentifiers
|
|
13
|
+
},
|
|
14
|
+
providerKey: extensionKey,
|
|
15
|
+
details
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
const extractAction = (response, id) => {
|
|
19
|
+
var _action$dataRetrieval, _action$dataUpdateAct;
|
|
20
|
+
const extensionKey = getExtensionKey(response);
|
|
21
|
+
const data = response === null || response === void 0 ? void 0 : response.data;
|
|
22
|
+
const actions = extractServerAction(data);
|
|
23
|
+
if (!extensionKey || actions.length === 0) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const action = actions.find(item => (item === null || item === void 0 ? void 0 : item.name) === 'UpdateAction' && (item === null || item === void 0 ? void 0 : item.refField) === 'tag');
|
|
27
|
+
if (!action || !action.resourceIdentifiers) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const read = toInvokeRequest(extensionKey, action.resourceIdentifiers, (_action$dataRetrieval = action.dataRetrievalAction) === null || _action$dataRetrieval === void 0 ? void 0 : _action$dataRetrieval.name);
|
|
31
|
+
const url = extractLink(data);
|
|
32
|
+
const details = {
|
|
33
|
+
id,
|
|
34
|
+
url
|
|
35
|
+
};
|
|
36
|
+
const update = toInvokeRequest(extensionKey, action.resourceIdentifiers, (_action$dataUpdateAct = action.dataUpdateAction) === null || _action$dataUpdateAct === void 0 ? void 0 : _action$dataUpdateAct.name, details);
|
|
37
|
+
return read || update ? {
|
|
38
|
+
read,
|
|
39
|
+
update
|
|
40
|
+
} : undefined;
|
|
41
|
+
};
|
|
42
|
+
const extractState = (response, showServerActions, id) => {
|
|
43
|
+
if (!response || !response.data) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const lozenge = extractLozenge(response === null || response === void 0 ? void 0 : response.data);
|
|
47
|
+
if (!lozenge) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!showServerActions) {
|
|
51
|
+
return lozenge;
|
|
52
|
+
}
|
|
53
|
+
const action = extractAction(response, id);
|
|
54
|
+
return {
|
|
55
|
+
...lozenge,
|
|
56
|
+
action
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export default extractState;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { extractSummary } from '../common/primitives';
|
|
2
|
-
import { extractLozenge } from '../common/lozenge';
|
|
3
2
|
import { extractLinkIcon } from './icon';
|
|
4
3
|
import { extractAttachmentCount, extractChecklistProgress, extractCommentCount, extractCreatedBy, extractModifiedBy, extractProgrammingLanguage, extractSubscriberCount, extractViewCount, extractReactCount, extractVoteCount, extractSourceBranch, extractTargetBranch, extractDueOn } from './utils';
|
|
5
4
|
import { extractPersonsUpdatedBy } from './collaboratorGroup';
|
|
@@ -7,16 +6,24 @@ import { extractPersonCreatedBy, extractTitle, extractDateUpdated, extractDateCr
|
|
|
7
6
|
import extractPriority from './extract-priority';
|
|
8
7
|
import extractProviderIcon from './icon/extract-provider-icon';
|
|
9
8
|
import extractPreview from './extract-preview';
|
|
9
|
+
import extractState from './extract-state';
|
|
10
10
|
import { extractLatestCommit } from './latest-commit';
|
|
11
11
|
import { extractPreviewAction } from './actions/extract-preview-action';
|
|
12
12
|
import { extractDownloadAction } from './actions/extract-download-action';
|
|
13
13
|
import { extractViewAction } from './actions/extract-view-action';
|
|
14
|
-
const extractFlexibleUiContext = (
|
|
14
|
+
const extractFlexibleUiContext = ({
|
|
15
|
+
featureFlags,
|
|
16
|
+
id,
|
|
17
|
+
renderers,
|
|
18
|
+
showServerActions,
|
|
19
|
+
response
|
|
20
|
+
} = {}) => {
|
|
15
21
|
if (!response) {
|
|
16
22
|
return undefined;
|
|
17
23
|
}
|
|
18
24
|
const data = response.data;
|
|
19
25
|
const url = extractLink(data);
|
|
26
|
+
const showLozengeAction = (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.useLozengeAction) === 'experiment';
|
|
20
27
|
return {
|
|
21
28
|
attachmentCount: extractAttachmentCount(data),
|
|
22
29
|
authorGroup: extractPersonCreatedBy(data),
|
|
@@ -43,7 +50,7 @@ const extractFlexibleUiContext = (response, renderers) => {
|
|
|
43
50
|
snippet: extractSummary(data) || undefined,
|
|
44
51
|
// Explicitly set here to remove an empty string
|
|
45
52
|
sourceBranch: extractSourceBranch(data),
|
|
46
|
-
state:
|
|
53
|
+
state: extractState(response, showLozengeAction && showServerActions, id),
|
|
47
54
|
subscriberCount: extractSubscriberCount(data),
|
|
48
55
|
targetBranch: extractTargetBranch(data),
|
|
49
56
|
title: extractTitle(data) || url,
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
export let InvokeActionError;
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Additional details for invoke function that may be required for component
|
|
5
|
+
*/
|
|
2
6
|
(function (InvokeActionError) {
|
|
3
7
|
InvokeActionError["NoData"] = "NoData";
|
|
4
8
|
InvokeActionError["Unknown"] = "Unknown";
|
|
5
|
-
})(InvokeActionError || (InvokeActionError = {}));
|
|
9
|
+
})(InvokeActionError || (InvokeActionError = {}));
|
|
10
|
+
/**
|
|
11
|
+
* Invoke request with additional details for the component
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* CRUD invoke requests for the component that support server actions
|
|
15
|
+
*/
|
package/dist/es2019/version.json
CHANGED
|
@@ -35,7 +35,7 @@ const LozengeAction = ({
|
|
|
35
35
|
try {
|
|
36
36
|
setIsLoading(true);
|
|
37
37
|
const responseItems = await invoke(action.read, extractLozengeActionItems);
|
|
38
|
-
const validItems = validateItems(responseItems, text);
|
|
38
|
+
const validItems = typeof text === 'string' ? validateItems(responseItems, text) : responseItems;
|
|
39
39
|
setItems(validItems);
|
|
40
40
|
setIsLoaded(true);
|
|
41
41
|
if ((validItems === null || validItems === void 0 ? void 0 : validItems.length) === 0) {
|
|
@@ -2,27 +2,13 @@
|
|
|
2
2
|
import React, { useCallback, useState } from 'react';
|
|
3
3
|
import { css, jsx } from '@emotion/react';
|
|
4
4
|
import AtlaskitLozenge from '@atlaskit/lozenge';
|
|
5
|
-
import
|
|
5
|
+
import LozengeAction from '../../common/lozenge-action';
|
|
6
6
|
const styles = css`
|
|
7
7
|
display: inline-flex;
|
|
8
8
|
line-height: inherit;
|
|
9
9
|
`;
|
|
10
10
|
const actionStyles = css`
|
|
11
|
-
|
|
12
|
-
display: inline-flex;
|
|
13
|
-
align-items: center;
|
|
14
|
-
margin-right: -2px;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
svg {
|
|
18
|
-
width: unset;
|
|
19
|
-
height: unset;
|
|
20
|
-
margin: -4px 0;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
:hover {
|
|
24
|
-
cursor: pointer;
|
|
25
|
-
}
|
|
11
|
+
overflow: visible;
|
|
26
12
|
`;
|
|
27
13
|
|
|
28
14
|
/**
|
|
@@ -32,6 +18,7 @@ const actionStyles = css`
|
|
|
32
18
|
* @see State
|
|
33
19
|
*/
|
|
34
20
|
const Lozenge = ({
|
|
21
|
+
action,
|
|
35
22
|
appearance = 'default',
|
|
36
23
|
name,
|
|
37
24
|
onClick,
|
|
@@ -50,6 +37,16 @@ const Lozenge = ({
|
|
|
50
37
|
if (!text) {
|
|
51
38
|
return null;
|
|
52
39
|
}
|
|
40
|
+
const lozenge = action ? jsx(LozengeAction, {
|
|
41
|
+
action: action,
|
|
42
|
+
appearance: appearance,
|
|
43
|
+
testId: testId,
|
|
44
|
+
text: text
|
|
45
|
+
}) : jsx(AtlaskitLozenge, {
|
|
46
|
+
appearance: appearance,
|
|
47
|
+
isBold: isBold,
|
|
48
|
+
testId: `${testId}-lozenge`
|
|
49
|
+
}, text);
|
|
53
50
|
return jsx("span", {
|
|
54
51
|
css: [styles, onClick ? actionStyles : undefined, overrideCss],
|
|
55
52
|
"data-fit-to-content": true,
|
|
@@ -60,13 +57,6 @@ const Lozenge = ({
|
|
|
60
57
|
onMouseEnter: onMouseEnter,
|
|
61
58
|
onMouseLeave: onMouseLeave,
|
|
62
59
|
tabIndex: onClick ? 0 : -1
|
|
63
|
-
},
|
|
64
|
-
appearance: appearance,
|
|
65
|
-
isBold: isBold,
|
|
66
|
-
testId: `${testId}-lozenge`
|
|
67
|
-
}, text, onClick && jsx(ChevronDownIcon, {
|
|
68
|
-
label: "action",
|
|
69
|
-
testId: `${testId}-action`
|
|
70
|
-
})));
|
|
60
|
+
}, lozenge);
|
|
71
61
|
};
|
|
72
62
|
export default Lozenge;
|
|
@@ -12,25 +12,34 @@ import { getContextByStatus, getRetryOptions } from './utils';
|
|
|
12
12
|
* @see Container
|
|
13
13
|
*/
|
|
14
14
|
const FlexibleCard = ({
|
|
15
|
+
analytics,
|
|
15
16
|
cardState,
|
|
16
17
|
children,
|
|
18
|
+
id,
|
|
17
19
|
onAuthorize,
|
|
20
|
+
onClick,
|
|
18
21
|
onError,
|
|
19
22
|
onResolve,
|
|
20
23
|
renderers,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
onClick,
|
|
24
|
+
showHoverPreview,
|
|
25
|
+
showServerActions,
|
|
24
26
|
testId,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
ui,
|
|
28
|
+
url
|
|
27
29
|
}) => {
|
|
28
30
|
const {
|
|
29
31
|
status: cardType,
|
|
30
32
|
details
|
|
31
33
|
} = cardState;
|
|
32
34
|
const status = cardType;
|
|
33
|
-
const context = useMemo(() => getContextByStatus(
|
|
35
|
+
const context = useMemo(() => getContextByStatus({
|
|
36
|
+
response: details,
|
|
37
|
+
id,
|
|
38
|
+
renderers,
|
|
39
|
+
showServerActions,
|
|
40
|
+
status,
|
|
41
|
+
url
|
|
42
|
+
}), [details, id, renderers, showServerActions, status, url]);
|
|
34
43
|
const retry = getRetryOptions(url, status, details, onAuthorize);
|
|
35
44
|
const {
|
|
36
45
|
title
|
|
@@ -2,12 +2,17 @@ import { SmartLinkStatus } from '../../constants';
|
|
|
2
2
|
import { getEmptyJsonLd, getForbiddenJsonLd } from '../../utils/jsonld';
|
|
3
3
|
import { extractRequestAccessContext } from '../../extractors/common/context';
|
|
4
4
|
import { messages } from '../../messages';
|
|
5
|
-
import
|
|
5
|
+
import extractFlexibleUiContext from '../../extractors/flexible';
|
|
6
6
|
import { extractErrorIcon } from '../../extractors/flexible/icon';
|
|
7
7
|
import { handleOnClick } from '../../utils';
|
|
8
8
|
import { extractProvider } from '@atlaskit/linking-common/extractors';
|
|
9
9
|
import extractProviderIcon from '../../extractors/flexible/icon/extract-provider-icon';
|
|
10
|
-
export const getContextByStatus =
|
|
10
|
+
export const getContextByStatus = params => {
|
|
11
|
+
const {
|
|
12
|
+
response,
|
|
13
|
+
status,
|
|
14
|
+
url
|
|
15
|
+
} = params !== null && params !== void 0 ? params : {};
|
|
11
16
|
switch (status) {
|
|
12
17
|
case SmartLinkStatus.Pending:
|
|
13
18
|
case SmartLinkStatus.Resolving:
|
|
@@ -16,15 +21,15 @@ export const getContextByStatus = (url, status, details, renderers) => {
|
|
|
16
21
|
url
|
|
17
22
|
};
|
|
18
23
|
case SmartLinkStatus.Resolved:
|
|
19
|
-
return
|
|
24
|
+
return extractFlexibleUiContext(params);
|
|
20
25
|
case SmartLinkStatus.Unauthorized:
|
|
21
26
|
case SmartLinkStatus.Forbidden:
|
|
22
27
|
case SmartLinkStatus.NotFound:
|
|
23
28
|
case SmartLinkStatus.Errored:
|
|
24
29
|
case SmartLinkStatus.Fallback:
|
|
25
30
|
default:
|
|
26
|
-
const linkIcon = extractErrorIcon(
|
|
27
|
-
const provider = extractProviderIcon(
|
|
31
|
+
const linkIcon = extractErrorIcon(response, status);
|
|
32
|
+
const provider = extractProviderIcon(response === null || response === void 0 ? void 0 : response.data);
|
|
28
33
|
return {
|
|
29
34
|
linkIcon,
|
|
30
35
|
title: url,
|
|
@@ -51,9 +56,9 @@ const getForbiddenMessageKey = meta => {
|
|
|
51
56
|
return 'restricted_link';
|
|
52
57
|
}
|
|
53
58
|
};
|
|
54
|
-
export const getRetryOptions = (url, status,
|
|
55
|
-
var
|
|
56
|
-
const data =
|
|
59
|
+
export const getRetryOptions = (url, status, response, onAuthorize) => {
|
|
60
|
+
var _response$meta, _access$action;
|
|
61
|
+
const data = response && response.data || getEmptyJsonLd();
|
|
57
62
|
const provider = extractProvider(data);
|
|
58
63
|
const context = provider === null || provider === void 0 ? void 0 : provider.text;
|
|
59
64
|
const values = context ? {
|
|
@@ -61,7 +66,7 @@ export const getRetryOptions = (url, status, details, onAuthorize) => {
|
|
|
61
66
|
} : undefined;
|
|
62
67
|
switch (status) {
|
|
63
68
|
case SmartLinkStatus.Forbidden:
|
|
64
|
-
const meta = (
|
|
69
|
+
const meta = (_response$meta = response === null || response === void 0 ? void 0 : response.meta) !== null && _response$meta !== void 0 ? _response$meta : getForbiddenJsonLd().meta;
|
|
65
70
|
const access = extractRequestAccessContext({
|
|
66
71
|
jsonLd: meta,
|
|
67
72
|
url,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var extractServerAction = function extractServerAction(data) {
|
|
2
|
+
var actions = data === null || data === void 0 ? void 0 : data['atlassian:serverAction'];
|
|
3
|
+
if (!actions) {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
if (actions && !Array.isArray(actions)) {
|
|
7
|
+
return [actions];
|
|
8
|
+
}
|
|
9
|
+
return actions;
|
|
10
|
+
};
|
|
11
|
+
export default extractServerAction;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
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; }
|
|
3
|
+
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) { _defineProperty(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; }
|
|
4
|
+
import { extractLozenge } from '../common/lozenge';
|
|
5
|
+
import { getExtensionKey } from '../../state/helpers';
|
|
6
|
+
import extractServerAction from './extract-server-action';
|
|
7
|
+
import { extractLink } from '@atlaskit/linking-common/extractors';
|
|
8
|
+
var toInvokeRequest = function toInvokeRequest(extensionKey, resourceIdentifiers, actionType, details) {
|
|
9
|
+
if (!actionType) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
action: {
|
|
14
|
+
actionType: actionType,
|
|
15
|
+
resourceIdentifiers: resourceIdentifiers
|
|
16
|
+
},
|
|
17
|
+
providerKey: extensionKey,
|
|
18
|
+
details: details
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
var extractAction = function extractAction(response, id) {
|
|
22
|
+
var _action$dataRetrieval, _action$dataUpdateAct;
|
|
23
|
+
var extensionKey = getExtensionKey(response);
|
|
24
|
+
var data = response === null || response === void 0 ? void 0 : response.data;
|
|
25
|
+
var actions = extractServerAction(data);
|
|
26
|
+
if (!extensionKey || actions.length === 0) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
var action = actions.find(function (item) {
|
|
30
|
+
return (item === null || item === void 0 ? void 0 : item.name) === 'UpdateAction' && (item === null || item === void 0 ? void 0 : item.refField) === 'tag';
|
|
31
|
+
});
|
|
32
|
+
if (!action || !action.resourceIdentifiers) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
var read = toInvokeRequest(extensionKey, action.resourceIdentifiers, (_action$dataRetrieval = action.dataRetrievalAction) === null || _action$dataRetrieval === void 0 ? void 0 : _action$dataRetrieval.name);
|
|
36
|
+
var url = extractLink(data);
|
|
37
|
+
var details = {
|
|
38
|
+
id: id,
|
|
39
|
+
url: url
|
|
40
|
+
};
|
|
41
|
+
var update = toInvokeRequest(extensionKey, action.resourceIdentifiers, (_action$dataUpdateAct = action.dataUpdateAction) === null || _action$dataUpdateAct === void 0 ? void 0 : _action$dataUpdateAct.name, details);
|
|
42
|
+
return read || update ? {
|
|
43
|
+
read: read,
|
|
44
|
+
update: update
|
|
45
|
+
} : undefined;
|
|
46
|
+
};
|
|
47
|
+
var extractState = function extractState(response, showServerActions, id) {
|
|
48
|
+
if (!response || !response.data) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
var lozenge = extractLozenge(response === null || response === void 0 ? void 0 : response.data);
|
|
52
|
+
if (!lozenge) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (!showServerActions) {
|
|
56
|
+
return lozenge;
|
|
57
|
+
}
|
|
58
|
+
var action = extractAction(response, id);
|
|
59
|
+
return _objectSpread(_objectSpread({}, lozenge), {}, {
|
|
60
|
+
action: action
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
export default extractState;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { extractSummary } from '../common/primitives';
|
|
2
|
-
import { extractLozenge } from '../common/lozenge';
|
|
3
2
|
import { extractLinkIcon } from './icon';
|
|
4
3
|
import { extractAttachmentCount, extractChecklistProgress, extractCommentCount, extractCreatedBy, extractModifiedBy, extractProgrammingLanguage, extractSubscriberCount, extractViewCount, extractReactCount, extractVoteCount, extractSourceBranch, extractTargetBranch, extractDueOn } from './utils';
|
|
5
4
|
import { extractPersonsUpdatedBy } from './collaboratorGroup';
|
|
@@ -7,16 +6,24 @@ import { extractPersonCreatedBy, extractTitle, extractDateUpdated, extractDateCr
|
|
|
7
6
|
import extractPriority from './extract-priority';
|
|
8
7
|
import extractProviderIcon from './icon/extract-provider-icon';
|
|
9
8
|
import extractPreview from './extract-preview';
|
|
9
|
+
import extractState from './extract-state';
|
|
10
10
|
import { extractLatestCommit } from './latest-commit';
|
|
11
11
|
import { extractPreviewAction } from './actions/extract-preview-action';
|
|
12
12
|
import { extractDownloadAction } from './actions/extract-download-action';
|
|
13
13
|
import { extractViewAction } from './actions/extract-view-action';
|
|
14
|
-
var extractFlexibleUiContext = function extractFlexibleUiContext(
|
|
14
|
+
var extractFlexibleUiContext = function extractFlexibleUiContext() {
|
|
15
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
16
|
+
featureFlags = _ref.featureFlags,
|
|
17
|
+
id = _ref.id,
|
|
18
|
+
renderers = _ref.renderers,
|
|
19
|
+
showServerActions = _ref.showServerActions,
|
|
20
|
+
response = _ref.response;
|
|
15
21
|
if (!response) {
|
|
16
22
|
return undefined;
|
|
17
23
|
}
|
|
18
24
|
var data = response.data;
|
|
19
25
|
var url = extractLink(data);
|
|
26
|
+
var showLozengeAction = (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.useLozengeAction) === 'experiment';
|
|
20
27
|
return {
|
|
21
28
|
attachmentCount: extractAttachmentCount(data),
|
|
22
29
|
authorGroup: extractPersonCreatedBy(data),
|
|
@@ -43,7 +50,7 @@ var extractFlexibleUiContext = function extractFlexibleUiContext(response, rende
|
|
|
43
50
|
snippet: extractSummary(data) || undefined,
|
|
44
51
|
// Explicitly set here to remove an empty string
|
|
45
52
|
sourceBranch: extractSourceBranch(data),
|
|
46
|
-
state:
|
|
53
|
+
state: extractState(response, showLozengeAction && showServerActions, id),
|
|
47
54
|
subscriberCount: extractSubscriberCount(data),
|
|
48
55
|
targetBranch: extractTargetBranch(data),
|
|
49
56
|
title: extractTitle(data) || url,
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
export var InvokeActionError;
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Additional details for invoke function that may be required for component
|
|
5
|
+
*/
|
|
2
6
|
(function (InvokeActionError) {
|
|
3
7
|
InvokeActionError["NoData"] = "NoData";
|
|
4
8
|
InvokeActionError["Unknown"] = "Unknown";
|
|
5
|
-
})(InvokeActionError || (InvokeActionError = {}));
|
|
9
|
+
})(InvokeActionError || (InvokeActionError = {}));
|
|
10
|
+
/**
|
|
11
|
+
* Invoke request with additional details for the component
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* CRUD invoke requests for the component that support server actions
|
|
15
|
+
*/
|
package/dist/esm/version.json
CHANGED
|
@@ -70,7 +70,7 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
70
70
|
return invoke(action.read, extractLozengeActionItems);
|
|
71
71
|
case 6:
|
|
72
72
|
responseItems = _context.sent;
|
|
73
|
-
validItems = validateItems(responseItems, text);
|
|
73
|
+
validItems = typeof text === 'string' ? validateItems(responseItems, text) : responseItems;
|
|
74
74
|
setItems(validItems);
|
|
75
75
|
setIsLoaded(true);
|
|
76
76
|
if ((validItems === null || validItems === void 0 ? void 0 : validItems.length) === 0) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
2
|
var _templateObject, _templateObject2, _templateObject3;
|
|
3
3
|
import { css } from '@emotion/react';
|
|
4
|
-
export var triggerButtonStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n all: unset;\n background-color: transparent;\n color: unset;\n cursor: pointer;\n font-family: unset;\n font-size: unset;\n font-style: unset;\n font-weight: unset;\n font-variant: unset;\n line-height: 0;\n padding: 0;\n text-transform: unset;\n\n border: 2px solid transparent;\n margin:
|
|
4
|
+
export var triggerButtonStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n all: unset;\n background-color: transparent;\n color: unset;\n cursor: pointer;\n font-family: unset;\n font-size: unset;\n font-style: unset;\n font-weight: unset;\n font-variant: unset;\n line-height: 0;\n padding: 0;\n text-transform: unset;\n\n border: 2px solid transparent;\n margin: 2px;\n\n &:focus-visible,\n &:focus-within,\n &[aria-expanded='true'] {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n border-radius: 5px;\n }\n"])), "var(--ds-border-focused, #388BFF)");
|
|
5
5
|
export var triggerLozengeStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n\n span[role='img'] {\n margin: -4px -8px -4px -1px;\n }\n"])));
|
|
6
6
|
export var dropdownItemGroupStyles = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n button {\n padding: 6px 12px;\n min-height: 28px;\n width: 220px;\n\n &:hover {\n background-color: inherit;\n }\n\n &:focus,\n &:focus-visible {\n background-color: ", ";\n box-sizing: border-box;\n box-shadow: inset 2px 0 0 ", ";\n outline: none;\n }\n }\n"])), "var(--ds-background-neutral-subtle-hovered, #091E420F)", "var(--ds-border-selected, #0C66E4)");
|
|
@@ -5,9 +5,9 @@ var _templateObject, _templateObject2;
|
|
|
5
5
|
import React, { useCallback, useState } from 'react';
|
|
6
6
|
import { css, jsx } from '@emotion/react';
|
|
7
7
|
import AtlaskitLozenge from '@atlaskit/lozenge';
|
|
8
|
-
import
|
|
8
|
+
import LozengeAction from '../../common/lozenge-action';
|
|
9
9
|
var styles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: inline-flex;\n line-height: inherit;\n"])));
|
|
10
|
-
var actionStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n
|
|
10
|
+
var actionStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n overflow: visible;\n"])));
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* A base element that displays a Lozenge.
|
|
@@ -16,7 +16,8 @@ var actionStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLi
|
|
|
16
16
|
* @see State
|
|
17
17
|
*/
|
|
18
18
|
var Lozenge = function Lozenge(_ref) {
|
|
19
|
-
var
|
|
19
|
+
var action = _ref.action,
|
|
20
|
+
_ref$appearance = _ref.appearance,
|
|
20
21
|
appearance = _ref$appearance === void 0 ? 'default' : _ref$appearance,
|
|
21
22
|
name = _ref.name,
|
|
22
23
|
onClick = _ref.onClick,
|
|
@@ -42,6 +43,16 @@ var Lozenge = function Lozenge(_ref) {
|
|
|
42
43
|
if (!text) {
|
|
43
44
|
return null;
|
|
44
45
|
}
|
|
46
|
+
var lozenge = action ? jsx(LozengeAction, {
|
|
47
|
+
action: action,
|
|
48
|
+
appearance: appearance,
|
|
49
|
+
testId: testId,
|
|
50
|
+
text: text
|
|
51
|
+
}) : jsx(AtlaskitLozenge, {
|
|
52
|
+
appearance: appearance,
|
|
53
|
+
isBold: isBold,
|
|
54
|
+
testId: "".concat(testId, "-lozenge")
|
|
55
|
+
}, text);
|
|
45
56
|
return jsx("span", {
|
|
46
57
|
css: [styles, onClick ? actionStyles : undefined, overrideCss],
|
|
47
58
|
"data-fit-to-content": true,
|
|
@@ -52,13 +63,6 @@ var Lozenge = function Lozenge(_ref) {
|
|
|
52
63
|
onMouseEnter: onMouseEnter,
|
|
53
64
|
onMouseLeave: onMouseLeave,
|
|
54
65
|
tabIndex: onClick ? 0 : -1
|
|
55
|
-
},
|
|
56
|
-
appearance: appearance,
|
|
57
|
-
isBold: isBold,
|
|
58
|
-
testId: "".concat(testId, "-lozenge")
|
|
59
|
-
}, text, onClick && jsx(ChevronDownIcon, {
|
|
60
|
-
label: "action",
|
|
61
|
-
testId: "".concat(testId, "-action")
|
|
62
|
-
})));
|
|
66
|
+
}, lozenge);
|
|
63
67
|
};
|
|
64
68
|
export default Lozenge;
|
|
@@ -12,24 +12,33 @@ import { getContextByStatus, getRetryOptions } from './utils';
|
|
|
12
12
|
* @see Container
|
|
13
13
|
*/
|
|
14
14
|
var FlexibleCard = function FlexibleCard(_ref) {
|
|
15
|
-
var
|
|
15
|
+
var analytics = _ref.analytics,
|
|
16
|
+
cardState = _ref.cardState,
|
|
16
17
|
children = _ref.children,
|
|
18
|
+
id = _ref.id,
|
|
17
19
|
onAuthorize = _ref.onAuthorize,
|
|
20
|
+
onClick = _ref.onClick,
|
|
18
21
|
onError = _ref.onError,
|
|
19
22
|
onResolve = _ref.onResolve,
|
|
20
23
|
renderers = _ref.renderers,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
onClick = _ref.onClick,
|
|
24
|
+
showHoverPreview = _ref.showHoverPreview,
|
|
25
|
+
showServerActions = _ref.showServerActions,
|
|
24
26
|
testId = _ref.testId,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
ui = _ref.ui,
|
|
28
|
+
url = _ref.url;
|
|
27
29
|
var cardType = cardState.status,
|
|
28
30
|
details = cardState.details;
|
|
29
31
|
var status = cardType;
|
|
30
32
|
var context = useMemo(function () {
|
|
31
|
-
return getContextByStatus(
|
|
32
|
-
|
|
33
|
+
return getContextByStatus({
|
|
34
|
+
response: details,
|
|
35
|
+
id: id,
|
|
36
|
+
renderers: renderers,
|
|
37
|
+
showServerActions: showServerActions,
|
|
38
|
+
status: status,
|
|
39
|
+
url: url
|
|
40
|
+
});
|
|
41
|
+
}, [details, id, renderers, showServerActions, status, url]);
|
|
33
42
|
var retry = getRetryOptions(url, status, details, onAuthorize);
|
|
34
43
|
var _ref2 = context || {},
|
|
35
44
|
title = _ref2.title;
|
|
@@ -2,12 +2,16 @@ import { SmartLinkStatus } from '../../constants';
|
|
|
2
2
|
import { getEmptyJsonLd, getForbiddenJsonLd } from '../../utils/jsonld';
|
|
3
3
|
import { extractRequestAccessContext } from '../../extractors/common/context';
|
|
4
4
|
import { messages } from '../../messages';
|
|
5
|
-
import
|
|
5
|
+
import extractFlexibleUiContext from '../../extractors/flexible';
|
|
6
6
|
import { extractErrorIcon } from '../../extractors/flexible/icon';
|
|
7
7
|
import { handleOnClick } from '../../utils';
|
|
8
8
|
import { extractProvider } from '@atlaskit/linking-common/extractors';
|
|
9
9
|
import extractProviderIcon from '../../extractors/flexible/icon/extract-provider-icon';
|
|
10
|
-
export var getContextByStatus = function getContextByStatus(
|
|
10
|
+
export var getContextByStatus = function getContextByStatus(params) {
|
|
11
|
+
var _ref = params !== null && params !== void 0 ? params : {},
|
|
12
|
+
response = _ref.response,
|
|
13
|
+
status = _ref.status,
|
|
14
|
+
url = _ref.url;
|
|
11
15
|
switch (status) {
|
|
12
16
|
case SmartLinkStatus.Pending:
|
|
13
17
|
case SmartLinkStatus.Resolving:
|
|
@@ -16,15 +20,15 @@ export var getContextByStatus = function getContextByStatus(url, status, details
|
|
|
16
20
|
url: url
|
|
17
21
|
};
|
|
18
22
|
case SmartLinkStatus.Resolved:
|
|
19
|
-
return
|
|
23
|
+
return extractFlexibleUiContext(params);
|
|
20
24
|
case SmartLinkStatus.Unauthorized:
|
|
21
25
|
case SmartLinkStatus.Forbidden:
|
|
22
26
|
case SmartLinkStatus.NotFound:
|
|
23
27
|
case SmartLinkStatus.Errored:
|
|
24
28
|
case SmartLinkStatus.Fallback:
|
|
25
29
|
default:
|
|
26
|
-
var linkIcon = extractErrorIcon(
|
|
27
|
-
var provider = extractProviderIcon(
|
|
30
|
+
var linkIcon = extractErrorIcon(response, status);
|
|
31
|
+
var provider = extractProviderIcon(response === null || response === void 0 ? void 0 : response.data);
|
|
28
32
|
return {
|
|
29
33
|
linkIcon: linkIcon,
|
|
30
34
|
title: url,
|
|
@@ -51,9 +55,9 @@ var getForbiddenMessageKey = function getForbiddenMessageKey(meta) {
|
|
|
51
55
|
return 'restricted_link';
|
|
52
56
|
}
|
|
53
57
|
};
|
|
54
|
-
export var getRetryOptions = function getRetryOptions(url, status,
|
|
55
|
-
var
|
|
56
|
-
var data =
|
|
58
|
+
export var getRetryOptions = function getRetryOptions(url, status, response, onAuthorize) {
|
|
59
|
+
var _response$meta, _access$action;
|
|
60
|
+
var data = response && response.data || getEmptyJsonLd();
|
|
57
61
|
var provider = extractProvider(data);
|
|
58
62
|
var context = provider === null || provider === void 0 ? void 0 : provider.text;
|
|
59
63
|
var values = context ? {
|
|
@@ -61,7 +65,7 @@ export var getRetryOptions = function getRetryOptions(url, status, details, onAu
|
|
|
61
65
|
} : undefined;
|
|
62
66
|
switch (status) {
|
|
63
67
|
case SmartLinkStatus.Forbidden:
|
|
64
|
-
var meta = (
|
|
68
|
+
var meta = (_response$meta = response === null || response === void 0 ? void 0 : response.meta) !== null && _response$meta !== void 0 ? _response$meta : getForbiddenJsonLd().meta;
|
|
65
69
|
var access = extractRequestAccessContext({
|
|
66
70
|
jsonLd: meta,
|
|
67
71
|
url: url,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { InvokeActions } from '../../../state/hooks/use-invoke/types';
|
|
1
2
|
export declare type LinkLozengeColor = 'default' | 'success' | 'removed' | 'inprogress' | 'new' | 'moved';
|
|
2
3
|
export interface LinkLozenge {
|
|
4
|
+
action?: InvokeActions;
|
|
3
5
|
text: string;
|
|
4
6
|
appearance?: LinkLozengeColor;
|
|
5
7
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { JsonLd } from 'json-ld-types';
|
|
2
|
+
import type { LinkLozenge } from '../common/lozenge/types';
|
|
3
|
+
declare const extractState: (response?: JsonLd.Response<JsonLd.Data.BaseData> | undefined, showServerActions?: boolean | undefined, id?: string | undefined) => LinkLozenge | undefined;
|
|
4
|
+
export default extractState;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { JsonLd } from 'json-ld-types';
|
|
2
|
-
import { CardProviderRenderers } from '@atlaskit/link-provider';
|
|
3
1
|
import { FlexibleUiDataContext } from '../../state/flexible-ui-context/types';
|
|
4
|
-
|
|
2
|
+
import { ExtractFlexibleUiDataContextParams } from '../../view/FlexibleCard/types';
|
|
3
|
+
declare const extractFlexibleUiContext: ({ featureFlags, id, renderers, showServerActions, response, }?: Partial<ExtractFlexibleUiDataContextParams>) => FlexibleUiDataContext | undefined;
|
|
5
4
|
export default extractFlexibleUiContext;
|
|
@@ -3,11 +3,31 @@ export declare enum InvokeActionError {
|
|
|
3
3
|
NoData = "NoData",
|
|
4
4
|
Unknown = "Unknown"
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Additional details for invoke function that may be required for component
|
|
8
|
+
*/
|
|
9
|
+
export declare type CardDetails = {
|
|
10
|
+
/**
|
|
11
|
+
* An identifier for Smart Link analytics
|
|
12
|
+
*/
|
|
13
|
+
id?: string;
|
|
14
|
+
/**
|
|
15
|
+
* The URL of the Smart Link
|
|
16
|
+
*/
|
|
17
|
+
url?: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Invoke request with additional details for the component
|
|
21
|
+
*/
|
|
22
|
+
export declare type InvokeRequestWithCardDetails = InvokeRequest & {
|
|
23
|
+
details?: CardDetails;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* CRUD invoke requests for the component that support server actions
|
|
27
|
+
*/
|
|
6
28
|
export declare type InvokeActions = {
|
|
7
29
|
create?: InvokeRequest;
|
|
8
30
|
read?: InvokeRequest;
|
|
9
|
-
update?:
|
|
10
|
-
details?: Record<string, any>;
|
|
11
|
-
};
|
|
31
|
+
update?: InvokeRequestWithCardDetails;
|
|
12
32
|
delete?: InvokeRequest;
|
|
13
33
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CardAppearance, CardPlatform, CardProps } from './types';
|
|
3
3
|
import { WrappedComponentProps } from 'react-intl-next';
|
|
4
|
-
export declare const Card: React.ForwardRefExoticComponent<Pick<Omit<React.PropsWithChildren<import("react-intl-next").WithIntlProps<CardProps & WrappedComponentProps<"intl">>>, keyof import("@atlaskit/analytics-next").WithAnalyticsEventsProps> & React.RefAttributes<any> & import("@atlaskit/analytics-next").WithContextProps, "url" | "children" | "data" | "key" | "id" | "placeholder" | "onError" | "onClick" | "appearance" | "testId" | "analyticsContext" | "isSelected" | "inheritDimensions" | "ui" | "showActions" | "showHoverPreview" | "
|
|
4
|
+
export declare const Card: React.ForwardRefExoticComponent<Pick<Omit<React.PropsWithChildren<import("react-intl-next").WithIntlProps<CardProps & WrappedComponentProps<"intl">>>, keyof import("@atlaskit/analytics-next").WithAnalyticsEventsProps> & React.RefAttributes<any> & import("@atlaskit/analytics-next").WithContextProps, "url" | "children" | "data" | "key" | "id" | "placeholder" | "onError" | "onClick" | "appearance" | "testId" | "analyticsContext" | "isSelected" | "inheritDimensions" | "ui" | "showActions" | "showHoverPreview" | "showServerActions" | "showAuthTooltip" | "onResolve" | "platform" | "frameStyle" | "embedIframeRef" | "inlinePreloaderStyle" | "isFrameVisible" | "importer" | "container" | "embedIframeUrlType" | "analyticsEvents" | "forwardedRef"> & React.RefAttributes<any>>;
|
|
5
5
|
export type { CardAppearance, CardProps, CardPlatform };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import type { ThemeAppearance } from '@atlaskit/lozenge';
|
|
2
3
|
import type { CustomTriggerProps } from '@atlaskit/dropdown-menu';
|
|
3
4
|
export declare type LozengeActionTriggerProps = {
|
|
4
5
|
appearance?: ThemeAppearance;
|
|
5
6
|
testId?: string;
|
|
6
|
-
text: string;
|
|
7
|
+
text: string | React.ReactNode;
|
|
7
8
|
} & CustomTriggerProps<HTMLButtonElement>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import type { ThemeAppearance } from '@atlaskit/lozenge';
|
|
2
3
|
import type { InvokeActions } from '../../../../../state/hooks/use-invoke/types';
|
|
3
4
|
export declare type LozengeItem = {
|
|
@@ -9,5 +10,5 @@ export declare type LozengeActionProps = {
|
|
|
9
10
|
action?: InvokeActions;
|
|
10
11
|
appearance?: ThemeAppearance;
|
|
11
12
|
testId?: string;
|
|
12
|
-
text: string;
|
|
13
|
+
text: string | React.ReactNode;
|
|
13
14
|
};
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { ElementProps } from '../types';
|
|
3
|
+
import { InvokeActions } from '../../../../../state/hooks/use-invoke/types';
|
|
3
4
|
export declare type LozengeAppearance = 'default' | 'inprogress' | 'moved' | 'new' | 'removed' | 'success';
|
|
4
5
|
export declare type LozengeProps = ElementProps & {
|
|
6
|
+
/**
|
|
7
|
+
* Action that can be performed on the element
|
|
8
|
+
*/
|
|
9
|
+
action?: InvokeActions;
|
|
5
10
|
/**
|
|
6
11
|
* Determines the appearance of the Atlaskit lozenge.
|
|
7
12
|
*/
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { MessageDescriptor } from 'react-intl-next';
|
|
3
|
-
import {
|
|
3
|
+
import type { JsonLd } from 'json-ld-types';
|
|
4
|
+
import { CardState, LinkingPlatformFeatureFlags } from '@atlaskit/linking-common';
|
|
4
5
|
import { CardProviderRenderers } from '@atlaskit/link-provider';
|
|
5
|
-
import { SmartLinkSize, SmartLinkTheme } from '../../constants';
|
|
6
|
+
import { SmartLinkSize, SmartLinkStatus, SmartLinkTheme } from '../../constants';
|
|
6
7
|
import { CardAppearance } from '../../view/Card';
|
|
7
8
|
import { OnResolveCallback } from '../Card/types';
|
|
8
9
|
import { OnErrorCallback } from '../types';
|
|
@@ -56,6 +57,10 @@ export declare type FlexibleCardProps = {
|
|
|
56
57
|
* to render Emoji.
|
|
57
58
|
*/
|
|
58
59
|
renderers?: CardProviderRenderers;
|
|
60
|
+
/**
|
|
61
|
+
* Determines whether to show available server actions.
|
|
62
|
+
*/
|
|
63
|
+
showServerActions?: boolean;
|
|
59
64
|
/**
|
|
60
65
|
* A `testId` prop is provided for specified elements, which is a unique
|
|
61
66
|
* string that appears as a data attribute `data-testid` in the rendered code,
|
|
@@ -127,3 +132,8 @@ export declare type RetryOptions = {
|
|
|
127
132
|
*/
|
|
128
133
|
values?: Record<string, string>;
|
|
129
134
|
};
|
|
135
|
+
export declare type ExtractFlexibleUiDataContextParams = Pick<FlexibleCardProps, 'id' | 'showServerActions' | 'renderers' | 'url'> & {
|
|
136
|
+
status?: SmartLinkStatus;
|
|
137
|
+
response?: JsonLd.Response;
|
|
138
|
+
featureFlags?: Partial<LinkingPlatformFeatureFlags>;
|
|
139
|
+
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { JsonLd } from 'json-ld-types';
|
|
2
|
-
import {
|
|
3
|
-
import { RetryOptions } from './types';
|
|
2
|
+
import { ExtractFlexibleUiDataContextParams, RetryOptions } from './types';
|
|
4
3
|
import { SmartLinkStatus } from '../../constants';
|
|
5
4
|
import { FlexibleUiDataContext } from '../../state/flexible-ui-context/types';
|
|
6
|
-
export declare const getContextByStatus: (
|
|
7
|
-
export declare const getRetryOptions: (url: string, status?: SmartLinkStatus | undefined,
|
|
5
|
+
export declare const getContextByStatus: (params: ExtractFlexibleUiDataContextParams) => FlexibleUiDataContext | undefined;
|
|
6
|
+
export declare const getRetryOptions: (url: string, status?: SmartLinkStatus | undefined, response?: JsonLd.Response<JsonLd.Data.BaseData> | undefined, onAuthorize?: (() => void) | undefined) => RetryOptions | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/smart-card",
|
|
3
|
-
"version": "25.5.
|
|
3
|
+
"version": "25.5.2",
|
|
4
4
|
"description": "Smart card component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@atlaskit/icon-priority": "^6.3.0",
|
|
35
35
|
"@atlaskit/in-product-testing": "^0.1.0",
|
|
36
36
|
"@atlaskit/link-client-extension": "^0.4.0",
|
|
37
|
-
"@atlaskit/linking-common": "^2.
|
|
37
|
+
"@atlaskit/linking-common": "^2.5.0",
|
|
38
38
|
"@atlaskit/linking-types": "^0.4.0",
|
|
39
39
|
"@atlaskit/logo": "^13.12.0",
|
|
40
40
|
"@atlaskit/lozenge": "^11.3.0",
|