@atlaskit/smart-card 26.47.1 → 26.48.1
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 +12 -0
- package/dist/cjs/i18n/cs.js +17 -21
- package/dist/cjs/i18n/da.js +17 -21
- package/dist/cjs/i18n/de.js +17 -21
- package/dist/cjs/i18n/en.js +17 -21
- package/dist/cjs/i18n/en_GB.js +17 -21
- package/dist/cjs/i18n/en_ZZ.js +17 -21
- package/dist/cjs/i18n/es.js +17 -21
- package/dist/cjs/i18n/fi.js +17 -21
- package/dist/cjs/i18n/fr.js +17 -21
- package/dist/cjs/i18n/hu.js +17 -21
- package/dist/cjs/i18n/it.js +17 -21
- package/dist/cjs/i18n/ja.js +17 -21
- package/dist/cjs/i18n/ko.js +17 -21
- package/dist/cjs/i18n/nb.js +17 -21
- package/dist/cjs/i18n/nl.js +17 -21
- package/dist/cjs/i18n/pl.js +17 -21
- package/dist/cjs/i18n/pt_BR.js +17 -21
- package/dist/cjs/i18n/ru.js +17 -21
- package/dist/cjs/i18n/sv.js +17 -21
- package/dist/cjs/i18n/th.js +17 -21
- package/dist/cjs/i18n/tr.js +17 -21
- package/dist/cjs/i18n/uk.js +17 -21
- package/dist/cjs/i18n/vi.js +17 -21
- package/dist/cjs/i18n/zh.js +13 -21
- package/dist/cjs/i18n/zh_TW.js +17 -21
- package/dist/cjs/state/hooks/use-ai-summary/ai-summary-service/index.js +179 -0
- package/dist/cjs/state/hooks/use-ai-summary/ai-summary-service/store.js +11 -0
- package/dist/cjs/state/hooks/use-ai-summary/ai-summary-service/types.js +5 -0
- package/dist/cjs/state/hooks/use-ai-summary/ai-summary-service/utils.js +131 -0
- package/dist/cjs/state/hooks/use-ai-summary/index.js +44 -0
- package/dist/cjs/utils/analytics/analytics.js +1 -1
- package/dist/cjs/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.js +51 -3
- package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +12 -0
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/es2019/i18n/cs.js +17 -21
- package/dist/es2019/i18n/da.js +17 -21
- package/dist/es2019/i18n/de.js +17 -21
- package/dist/es2019/i18n/en.js +17 -21
- package/dist/es2019/i18n/en_GB.js +17 -21
- package/dist/es2019/i18n/en_ZZ.js +17 -21
- package/dist/es2019/i18n/es.js +17 -21
- package/dist/es2019/i18n/fi.js +17 -21
- package/dist/es2019/i18n/fr.js +17 -21
- package/dist/es2019/i18n/hu.js +17 -21
- package/dist/es2019/i18n/it.js +17 -21
- package/dist/es2019/i18n/ja.js +17 -21
- package/dist/es2019/i18n/ko.js +17 -21
- package/dist/es2019/i18n/nb.js +17 -21
- package/dist/es2019/i18n/nl.js +17 -21
- package/dist/es2019/i18n/pl.js +17 -21
- package/dist/es2019/i18n/pt_BR.js +17 -21
- package/dist/es2019/i18n/ru.js +17 -21
- package/dist/es2019/i18n/sv.js +17 -21
- package/dist/es2019/i18n/th.js +17 -21
- package/dist/es2019/i18n/tr.js +17 -21
- package/dist/es2019/i18n/uk.js +17 -21
- package/dist/es2019/i18n/vi.js +17 -21
- package/dist/es2019/i18n/zh.js +13 -21
- package/dist/es2019/i18n/zh_TW.js +17 -21
- package/dist/es2019/state/hooks/use-ai-summary/ai-summary-service/index.js +71 -0
- package/dist/es2019/state/hooks/use-ai-summary/ai-summary-service/store.js +5 -0
- package/dist/es2019/state/hooks/use-ai-summary/ai-summary-service/types.js +1 -0
- package/dist/es2019/state/hooks/use-ai-summary/ai-summary-service/utils.js +55 -0
- package/dist/es2019/state/hooks/use-ai-summary/index.js +35 -0
- package/dist/es2019/utils/analytics/analytics.js +1 -1
- package/dist/es2019/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.js +46 -3
- package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +15 -1
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/esm/i18n/cs.js +17 -21
- package/dist/esm/i18n/da.js +17 -21
- package/dist/esm/i18n/de.js +17 -21
- package/dist/esm/i18n/en.js +17 -21
- package/dist/esm/i18n/en_GB.js +17 -21
- package/dist/esm/i18n/en_ZZ.js +17 -21
- package/dist/esm/i18n/es.js +17 -21
- package/dist/esm/i18n/fi.js +17 -21
- package/dist/esm/i18n/fr.js +17 -21
- package/dist/esm/i18n/hu.js +17 -21
- package/dist/esm/i18n/it.js +17 -21
- package/dist/esm/i18n/ja.js +17 -21
- package/dist/esm/i18n/ko.js +17 -21
- package/dist/esm/i18n/nb.js +17 -21
- package/dist/esm/i18n/nl.js +17 -21
- package/dist/esm/i18n/pl.js +17 -21
- package/dist/esm/i18n/pt_BR.js +17 -21
- package/dist/esm/i18n/ru.js +17 -21
- package/dist/esm/i18n/sv.js +17 -21
- package/dist/esm/i18n/th.js +17 -21
- package/dist/esm/i18n/tr.js +17 -21
- package/dist/esm/i18n/uk.js +17 -21
- package/dist/esm/i18n/vi.js +17 -21
- package/dist/esm/i18n/zh.js +13 -21
- package/dist/esm/i18n/zh_TW.js +17 -21
- package/dist/esm/state/hooks/use-ai-summary/ai-summary-service/index.js +172 -0
- package/dist/esm/state/hooks/use-ai-summary/ai-summary-service/store.js +5 -0
- package/dist/esm/state/hooks/use-ai-summary/ai-summary-service/types.js +1 -0
- package/dist/esm/state/hooks/use-ai-summary/ai-summary-service/utils.js +123 -0
- package/dist/esm/state/hooks/use-ai-summary/index.js +37 -0
- package/dist/esm/utils/analytics/analytics.js +1 -1
- package/dist/esm/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.js +51 -3
- package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +13 -1
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/types/i18n/cs.d.ts +10 -14
- package/dist/types/i18n/da.d.ts +10 -14
- package/dist/types/i18n/de.d.ts +10 -14
- package/dist/types/i18n/en.d.ts +10 -14
- package/dist/types/i18n/en_GB.d.ts +10 -14
- package/dist/types/i18n/en_ZZ.d.ts +10 -14
- package/dist/types/i18n/es.d.ts +10 -14
- package/dist/types/i18n/fi.d.ts +10 -14
- package/dist/types/i18n/fr.d.ts +10 -14
- package/dist/types/i18n/hu.d.ts +10 -14
- package/dist/types/i18n/it.d.ts +10 -14
- package/dist/types/i18n/ja.d.ts +10 -14
- package/dist/types/i18n/ko.d.ts +10 -14
- package/dist/types/i18n/nb.d.ts +10 -14
- package/dist/types/i18n/nl.d.ts +10 -14
- package/dist/types/i18n/pl.d.ts +10 -14
- package/dist/types/i18n/pt_BR.d.ts +10 -14
- package/dist/types/i18n/ru.d.ts +10 -14
- package/dist/types/i18n/sv.d.ts +10 -14
- package/dist/types/i18n/th.d.ts +10 -14
- package/dist/types/i18n/tr.d.ts +10 -14
- package/dist/types/i18n/uk.d.ts +10 -14
- package/dist/types/i18n/vi.d.ts +10 -14
- package/dist/types/i18n/zh.d.ts +6 -14
- package/dist/types/i18n/zh_TW.d.ts +10 -14
- package/dist/types/state/hooks/use-ai-summary/ai-summary-service/index.d.ts +11 -0
- package/dist/types/state/hooks/use-ai-summary/ai-summary-service/store.d.ts +3 -0
- package/dist/types/state/hooks/use-ai-summary/ai-summary-service/types.d.ts +158 -0
- package/dist/types/state/hooks/use-ai-summary/ai-summary-service/utils.d.ts +3 -0
- package/dist/types/state/hooks/use-ai-summary/index.d.ts +9 -0
- package/dist/types/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.d.ts +4 -1
- package/dist/types-ts4.5/i18n/cs.d.ts +10 -14
- package/dist/types-ts4.5/i18n/da.d.ts +10 -14
- package/dist/types-ts4.5/i18n/de.d.ts +10 -14
- package/dist/types-ts4.5/i18n/en.d.ts +10 -14
- package/dist/types-ts4.5/i18n/en_GB.d.ts +10 -14
- package/dist/types-ts4.5/i18n/en_ZZ.d.ts +10 -14
- package/dist/types-ts4.5/i18n/es.d.ts +10 -14
- package/dist/types-ts4.5/i18n/fi.d.ts +10 -14
- package/dist/types-ts4.5/i18n/fr.d.ts +10 -14
- package/dist/types-ts4.5/i18n/hu.d.ts +10 -14
- package/dist/types-ts4.5/i18n/it.d.ts +10 -14
- package/dist/types-ts4.5/i18n/ja.d.ts +10 -14
- package/dist/types-ts4.5/i18n/ko.d.ts +10 -14
- package/dist/types-ts4.5/i18n/nb.d.ts +10 -14
- package/dist/types-ts4.5/i18n/nl.d.ts +10 -14
- package/dist/types-ts4.5/i18n/pl.d.ts +10 -14
- package/dist/types-ts4.5/i18n/pt_BR.d.ts +10 -14
- package/dist/types-ts4.5/i18n/ru.d.ts +10 -14
- package/dist/types-ts4.5/i18n/sv.d.ts +10 -14
- package/dist/types-ts4.5/i18n/th.d.ts +10 -14
- package/dist/types-ts4.5/i18n/tr.d.ts +10 -14
- package/dist/types-ts4.5/i18n/uk.d.ts +10 -14
- package/dist/types-ts4.5/i18n/vi.d.ts +10 -14
- package/dist/types-ts4.5/i18n/zh.d.ts +6 -14
- package/dist/types-ts4.5/i18n/zh_TW.d.ts +10 -14
- package/dist/types-ts4.5/state/hooks/use-ai-summary/ai-summary-service/index.d.ts +11 -0
- package/dist/types-ts4.5/state/hooks/use-ai-summary/ai-summary-service/store.d.ts +3 -0
- package/dist/types-ts4.5/state/hooks/use-ai-summary/ai-summary-service/types.d.ts +158 -0
- package/dist/types-ts4.5/state/hooks/use-ai-summary/ai-summary-service/utils.d.ts +3 -0
- package/dist/types-ts4.5/state/hooks/use-ai-summary/index.d.ts +9 -0
- package/dist/types-ts4.5/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.d.ts +4 -1
- package/package.json +12 -6
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
6
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
8
|
+
function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
|
|
9
|
+
function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(r) { var n = this.s.return; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, throw: function _throw(r) { var n = this.s.return; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
|
|
10
|
+
import { readStream, addPath } from './utils';
|
|
11
|
+
export var AISummaryService = /*#__PURE__*/function () {
|
|
12
|
+
function AISummaryService(props) {
|
|
13
|
+
var _this = this;
|
|
14
|
+
_classCallCheck(this, AISummaryService);
|
|
15
|
+
_defineProperty(this, "state", {
|
|
16
|
+
content: '',
|
|
17
|
+
status: 'ready'
|
|
18
|
+
});
|
|
19
|
+
_defineProperty(this, "subscribedStateSetter", function (state) {});
|
|
20
|
+
_defineProperty(this, "fetchStream", /*#__PURE__*/function () {
|
|
21
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(summaryStyle) {
|
|
22
|
+
var payload, options, path, requestUrl, response;
|
|
23
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
24
|
+
while (1) switch (_context.prev = _context.next) {
|
|
25
|
+
case 0:
|
|
26
|
+
payload = {
|
|
27
|
+
recipient_agent_named_id: 'summary_agent',
|
|
28
|
+
agent_input: {
|
|
29
|
+
urls: [_this.url],
|
|
30
|
+
summary_style: summaryStyle
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
options = {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
headers: _this.config.headers,
|
|
36
|
+
body: JSON.stringify(payload)
|
|
37
|
+
};
|
|
38
|
+
path = 'chat/v1/invoke_agent/stream';
|
|
39
|
+
requestUrl = addPath(_this.config.baseUrl, path);
|
|
40
|
+
_context.next = 6;
|
|
41
|
+
return fetch(requestUrl, options);
|
|
42
|
+
case 6:
|
|
43
|
+
response = _context.sent;
|
|
44
|
+
return _context.abrupt("return", readStream(response));
|
|
45
|
+
case 8:
|
|
46
|
+
case "end":
|
|
47
|
+
return _context.stop();
|
|
48
|
+
}
|
|
49
|
+
}, _callee);
|
|
50
|
+
}));
|
|
51
|
+
return function (_x) {
|
|
52
|
+
return _ref.apply(this, arguments);
|
|
53
|
+
};
|
|
54
|
+
}());
|
|
55
|
+
var defaultConfig = {
|
|
56
|
+
baseUrl: '/gateway/api/assist',
|
|
57
|
+
headers: {
|
|
58
|
+
'Content-Type': 'application/json;charset=UTF-8',
|
|
59
|
+
'x-experience-id': 'smart-link',
|
|
60
|
+
//TODO: EDM-9337 - Remove the hardcoded Confluence product name and find a way to populate the product name here
|
|
61
|
+
'x-product': props.product || 'confluence'
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
this.config = {
|
|
65
|
+
baseUrl: props.baseUrl || defaultConfig.baseUrl,
|
|
66
|
+
headers: _objectSpread({}, props.headers || defaultConfig.headers)
|
|
67
|
+
};
|
|
68
|
+
this.url = props.url;
|
|
69
|
+
}
|
|
70
|
+
_createClass(AISummaryService, [{
|
|
71
|
+
key: "summariseUrl",
|
|
72
|
+
value: function () {
|
|
73
|
+
var _summariseUrl = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
74
|
+
var summaryStyle,
|
|
75
|
+
stream,
|
|
76
|
+
bufferContent,
|
|
77
|
+
_iteratorAbruptCompletion,
|
|
78
|
+
_didIteratorError,
|
|
79
|
+
_iteratorError,
|
|
80
|
+
_iterator,
|
|
81
|
+
_step,
|
|
82
|
+
chunk,
|
|
83
|
+
_args2 = arguments;
|
|
84
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
85
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
86
|
+
case 0:
|
|
87
|
+
summaryStyle = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : 'short';
|
|
88
|
+
this.state = _objectSpread(_objectSpread({}, this.state), {}, {
|
|
89
|
+
status: 'loading'
|
|
90
|
+
});
|
|
91
|
+
this.subscribedStateSetter(this.state);
|
|
92
|
+
_context2.next = 5;
|
|
93
|
+
return this.fetchStream(summaryStyle);
|
|
94
|
+
case 5:
|
|
95
|
+
stream = _context2.sent;
|
|
96
|
+
bufferContent = '';
|
|
97
|
+
_iteratorAbruptCompletion = false;
|
|
98
|
+
_didIteratorError = false;
|
|
99
|
+
_context2.prev = 9;
|
|
100
|
+
_iterator = _asyncIterator(stream);
|
|
101
|
+
case 11:
|
|
102
|
+
_context2.next = 13;
|
|
103
|
+
return _iterator.next();
|
|
104
|
+
case 13:
|
|
105
|
+
if (!(_iteratorAbruptCompletion = !(_step = _context2.sent).done)) {
|
|
106
|
+
_context2.next = 19;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
chunk = _step.value;
|
|
110
|
+
if (chunk.type === 'ANSWER_PART') {
|
|
111
|
+
bufferContent += chunk.message.content;
|
|
112
|
+
this.subscribedStateSetter(_objectSpread(_objectSpread({}, this.state), {}, {
|
|
113
|
+
content: bufferContent
|
|
114
|
+
}));
|
|
115
|
+
}
|
|
116
|
+
case 16:
|
|
117
|
+
_iteratorAbruptCompletion = false;
|
|
118
|
+
_context2.next = 11;
|
|
119
|
+
break;
|
|
120
|
+
case 19:
|
|
121
|
+
_context2.next = 25;
|
|
122
|
+
break;
|
|
123
|
+
case 21:
|
|
124
|
+
_context2.prev = 21;
|
|
125
|
+
_context2.t0 = _context2["catch"](9);
|
|
126
|
+
_didIteratorError = true;
|
|
127
|
+
_iteratorError = _context2.t0;
|
|
128
|
+
case 25:
|
|
129
|
+
_context2.prev = 25;
|
|
130
|
+
_context2.prev = 26;
|
|
131
|
+
if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
|
|
132
|
+
_context2.next = 30;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
_context2.next = 30;
|
|
136
|
+
return _iterator.return();
|
|
137
|
+
case 30:
|
|
138
|
+
_context2.prev = 30;
|
|
139
|
+
if (!_didIteratorError) {
|
|
140
|
+
_context2.next = 33;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
throw _iteratorError;
|
|
144
|
+
case 33:
|
|
145
|
+
return _context2.finish(30);
|
|
146
|
+
case 34:
|
|
147
|
+
return _context2.finish(25);
|
|
148
|
+
case 35:
|
|
149
|
+
this.state = {
|
|
150
|
+
status: 'done',
|
|
151
|
+
content: bufferContent
|
|
152
|
+
};
|
|
153
|
+
this.subscribedStateSetter(this.state);
|
|
154
|
+
case 37:
|
|
155
|
+
case "end":
|
|
156
|
+
return _context2.stop();
|
|
157
|
+
}
|
|
158
|
+
}, _callee2, this, [[9, 21, 25, 35], [26,, 30, 34]]);
|
|
159
|
+
}));
|
|
160
|
+
function summariseUrl() {
|
|
161
|
+
return _summariseUrl.apply(this, arguments);
|
|
162
|
+
}
|
|
163
|
+
return summariseUrl;
|
|
164
|
+
}()
|
|
165
|
+
}, {
|
|
166
|
+
key: "subscribe",
|
|
167
|
+
value: function subscribe(stateSetter) {
|
|
168
|
+
this.subscribedStateSetter = stateSetter;
|
|
169
|
+
}
|
|
170
|
+
}]);
|
|
171
|
+
return AISummaryService;
|
|
172
|
+
}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import _awaitAsyncGenerator from "@babel/runtime/helpers/awaitAsyncGenerator";
|
|
2
|
+
import _wrapAsyncGenerator from "@babel/runtime/helpers/wrapAsyncGenerator";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
7
|
+
export function readStream(_x) {
|
|
8
|
+
return _readStream.apply(this, arguments);
|
|
9
|
+
}
|
|
10
|
+
function _readStream() {
|
|
11
|
+
_readStream = _wrapAsyncGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(response) {
|
|
12
|
+
var reader, doneStreaming, chunkBuffer, _yield$_awaitAsyncGen, value, done, processedChunks, _iterator, _step, chunk, error, _error;
|
|
13
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
14
|
+
while (1) switch (_context.prev = _context.next) {
|
|
15
|
+
case 0:
|
|
16
|
+
reader = getBufferReader(response);
|
|
17
|
+
doneStreaming = false;
|
|
18
|
+
chunkBuffer = '';
|
|
19
|
+
case 3:
|
|
20
|
+
_context.prev = 3;
|
|
21
|
+
_context.next = 6;
|
|
22
|
+
return _awaitAsyncGenerator(reader.read());
|
|
23
|
+
case 6:
|
|
24
|
+
_yield$_awaitAsyncGen = _context.sent;
|
|
25
|
+
value = _yield$_awaitAsyncGen.value;
|
|
26
|
+
done = _yield$_awaitAsyncGen.done;
|
|
27
|
+
doneStreaming = done;
|
|
28
|
+
if (!value) {
|
|
29
|
+
_context.next = 43;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
_context.prev = 11;
|
|
33
|
+
processedChunks = "".concat(chunkBuffer).concat(value).split('\n'); // assumes that all JSON chunks are separated by a new-line;
|
|
34
|
+
chunkBuffer = '';
|
|
35
|
+
_iterator = _createForOfIteratorHelper(processedChunks);
|
|
36
|
+
_context.prev = 15;
|
|
37
|
+
_iterator.s();
|
|
38
|
+
case 17:
|
|
39
|
+
if ((_step = _iterator.n()).done) {
|
|
40
|
+
_context.next = 29;
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
chunk = _step.value;
|
|
44
|
+
_context.prev = 19;
|
|
45
|
+
_context.next = 22;
|
|
46
|
+
return JSON.parse(chunk);
|
|
47
|
+
case 22:
|
|
48
|
+
_context.next = 27;
|
|
49
|
+
break;
|
|
50
|
+
case 24:
|
|
51
|
+
_context.prev = 24;
|
|
52
|
+
_context.t0 = _context["catch"](19);
|
|
53
|
+
// the chunk may be incomplete, so we'll save it for the next iteration.
|
|
54
|
+
chunkBuffer = chunk;
|
|
55
|
+
case 27:
|
|
56
|
+
_context.next = 17;
|
|
57
|
+
break;
|
|
58
|
+
case 29:
|
|
59
|
+
_context.next = 34;
|
|
60
|
+
break;
|
|
61
|
+
case 31:
|
|
62
|
+
_context.prev = 31;
|
|
63
|
+
_context.t1 = _context["catch"](15);
|
|
64
|
+
_iterator.e(_context.t1);
|
|
65
|
+
case 34:
|
|
66
|
+
_context.prev = 34;
|
|
67
|
+
_iterator.f();
|
|
68
|
+
return _context.finish(34);
|
|
69
|
+
case 37:
|
|
70
|
+
_context.next = 43;
|
|
71
|
+
break;
|
|
72
|
+
case 39:
|
|
73
|
+
_context.prev = 39;
|
|
74
|
+
_context.t2 = _context["catch"](11);
|
|
75
|
+
error = new Error("Error Processing Stream Data: ".concat(value));
|
|
76
|
+
throw error;
|
|
77
|
+
case 43:
|
|
78
|
+
_context.next = 52;
|
|
79
|
+
break;
|
|
80
|
+
case 45:
|
|
81
|
+
_context.prev = 45;
|
|
82
|
+
_context.t3 = _context["catch"](3);
|
|
83
|
+
if (!(_context.t3 instanceof DOMException && _context.t3.name === 'AbortError')) {
|
|
84
|
+
_context.next = 51;
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
doneStreaming = true;
|
|
88
|
+
_context.next = 52;
|
|
89
|
+
break;
|
|
90
|
+
case 51:
|
|
91
|
+
throw _context.t3;
|
|
92
|
+
case 52:
|
|
93
|
+
if (!doneStreaming) {
|
|
94
|
+
_context.next = 3;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
case 53:
|
|
98
|
+
if (!chunkBuffer) {
|
|
99
|
+
_context.next = 56;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
_error = new Error("Not all the data was processed: ".concat(chunkBuffer));
|
|
103
|
+
throw _error;
|
|
104
|
+
case 56:
|
|
105
|
+
case "end":
|
|
106
|
+
return _context.stop();
|
|
107
|
+
}
|
|
108
|
+
}, _callee, null, [[3, 45], [11, 39], [15, 31, 34, 37], [19, 24]]);
|
|
109
|
+
}));
|
|
110
|
+
return _readStream.apply(this, arguments);
|
|
111
|
+
}
|
|
112
|
+
export var getBufferReader = function getBufferReader(response) {
|
|
113
|
+
if (!response.body) {
|
|
114
|
+
throw new Error('Response body is empty');
|
|
115
|
+
}
|
|
116
|
+
return response.body.pipeThrough(new TextDecoderStream()).getReader();
|
|
117
|
+
};
|
|
118
|
+
export var addPath = function addPath(baseUrl, path) {
|
|
119
|
+
var urlWithTrailingSlash = baseUrl.endsWith('/') ? baseUrl : "".concat(baseUrl, "/");
|
|
120
|
+
var pathWithoutLeadingSlash = !path.startsWith('/') ? path : path.substring(1, path.length);
|
|
121
|
+
var url = [urlWithTrailingSlash, pathWithoutLeadingSlash].join('');
|
|
122
|
+
return url;
|
|
123
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { AISummariesStore } from './ai-summary-service/store';
|
|
4
|
+
import { AISummaryService } from './ai-summary-service';
|
|
5
|
+
export var useAISummary = function useAISummary(props) {
|
|
6
|
+
var url = props.url;
|
|
7
|
+
var aISummaryService = AISummariesStore.get(url);
|
|
8
|
+
var isAISummaryServiceInitiated = !!aISummaryService;
|
|
9
|
+
var _useState = useState(isAISummaryServiceInitiated ? aISummaryService.state : {
|
|
10
|
+
status: 'ready',
|
|
11
|
+
content: ''
|
|
12
|
+
}),
|
|
13
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
14
|
+
state = _useState2[0],
|
|
15
|
+
setState = _useState2[1];
|
|
16
|
+
var isSummarised = isAISummaryServiceInitiated && state.status === 'done';
|
|
17
|
+
useEffect(function () {
|
|
18
|
+
if (!isSummarised) {
|
|
19
|
+
var _AISummariesStore$get;
|
|
20
|
+
if (!isAISummaryServiceInitiated) {
|
|
21
|
+
AISummariesStore.set(url, new AISummaryService(props));
|
|
22
|
+
}
|
|
23
|
+
return (_AISummariesStore$get = AISummariesStore.get(url)) === null || _AISummariesStore$get === void 0 ? void 0 : _AISummariesStore$get.subscribe(setState);
|
|
24
|
+
}
|
|
25
|
+
}, [isSummarised, isAISummaryServiceInitiated, url, props]);
|
|
26
|
+
var summariseUrl = function summariseUrl() {
|
|
27
|
+
if (isAISummaryServiceInitiated) {
|
|
28
|
+
return aISummaryService.summariseUrl();
|
|
29
|
+
}
|
|
30
|
+
return;
|
|
31
|
+
};
|
|
32
|
+
return {
|
|
33
|
+
isSummarised: isSummarised,
|
|
34
|
+
summariseUrl: summariseUrl,
|
|
35
|
+
state: state
|
|
36
|
+
};
|
|
37
|
+
};
|
|
@@ -15,7 +15,7 @@ export var ANALYTICS_CHANNEL = 'media';
|
|
|
15
15
|
export var context = {
|
|
16
16
|
componentName: 'smart-cards',
|
|
17
17
|
packageName: "@atlaskit/smart-card",
|
|
18
|
-
packageVersion: "26.
|
|
18
|
+
packageVersion: "26.48.1"
|
|
19
19
|
};
|
|
20
20
|
export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
21
21
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import React, { useCallback, useState } from 'react';
|
|
2
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
3
4
|
import { usePrefetch } from '../../../state';
|
|
4
5
|
import { CardWithUrlContent } from '../component';
|
|
5
6
|
import { LoadingCardLink } from './LoadingCardLink';
|
|
@@ -10,7 +11,7 @@ import { startUfoExperience } from '../../../state/analytics/ufoExperiences';
|
|
|
10
11
|
// being compared to. Since the default container is the `document`, we set this
|
|
11
12
|
// up to check once a Smart Link is within `X` px from the bottom of the viewport.
|
|
12
13
|
var ROOT_MARGIN_VERTICAL = '360px';
|
|
13
|
-
|
|
14
|
+
function LazyIntersectionObserverCardLegacy(props) {
|
|
14
15
|
var _useState = useState(false),
|
|
15
16
|
_useState2 = _slicedToArray(_useState, 2),
|
|
16
17
|
isIntersecting = _useState2[0],
|
|
@@ -51,4 +52,51 @@ export function LazyIntersectionObserverCard(props) {
|
|
|
51
52
|
return /*#__PURE__*/React.createElement(Component, {
|
|
52
53
|
className: "loader-wrapper"
|
|
53
54
|
}, content);
|
|
54
|
-
}
|
|
55
|
+
}
|
|
56
|
+
function LazyIntersectionObserverCardNext(props) {
|
|
57
|
+
var ref = useRef(null);
|
|
58
|
+
var _useState3 = useState(false),
|
|
59
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
60
|
+
isIntersecting = _useState4[0],
|
|
61
|
+
setIsIntersecting = _useState4[1];
|
|
62
|
+
var appearance = props.appearance,
|
|
63
|
+
url = props.url,
|
|
64
|
+
id = props.id;
|
|
65
|
+
var prefetch = usePrefetch(url);
|
|
66
|
+
var Component = appearance === 'inline' ? 'span' : 'div';
|
|
67
|
+
var ComponentObserver = Component;
|
|
68
|
+
var onIntersection = useCallback(function (entries, observer) {
|
|
69
|
+
var isVisible = entries.some(function (entry) {
|
|
70
|
+
return entry.isIntersecting;
|
|
71
|
+
});
|
|
72
|
+
if (isVisible) {
|
|
73
|
+
startUfoExperience('smart-link-rendered', id);
|
|
74
|
+
setIsIntersecting(true);
|
|
75
|
+
observer.disconnect();
|
|
76
|
+
} else {
|
|
77
|
+
prefetch();
|
|
78
|
+
}
|
|
79
|
+
}, [prefetch, id]);
|
|
80
|
+
useEffect(function () {
|
|
81
|
+
if (!ref.current) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
var intersectionObserver = new IntersectionObserver(onIntersection, {
|
|
85
|
+
rootMargin: "".concat(ROOT_MARGIN_VERTICAL, " 0px ").concat(ROOT_MARGIN_VERTICAL, " 0px")
|
|
86
|
+
});
|
|
87
|
+
intersectionObserver.observe(ref.current);
|
|
88
|
+
return function () {
|
|
89
|
+
return intersectionObserver.disconnect();
|
|
90
|
+
};
|
|
91
|
+
}, [ref, onIntersection]);
|
|
92
|
+
var content = isIntersecting ? /*#__PURE__*/React.createElement(CardWithUrlContent, props) : /*#__PURE__*/React.createElement(ComponentObserver, {
|
|
93
|
+
ref: ref
|
|
94
|
+
}, /*#__PURE__*/React.createElement(LoadingCardLink, props));
|
|
95
|
+
return /*#__PURE__*/React.createElement(Component, {
|
|
96
|
+
className: "loader-wrapper"
|
|
97
|
+
}, content);
|
|
98
|
+
}
|
|
99
|
+
export var LazyIntersectionObserverCard = function LazyIntersectionObserverCard(props) {
|
|
100
|
+
var Component = getBooleanFF('platform.linking-platform.smart-card.fix-intersection-observer') ? LazyIntersectionObserverCardNext : LazyIntersectionObserverCardLegacy;
|
|
101
|
+
return /*#__PURE__*/React.createElement(Component, props);
|
|
102
|
+
};
|
|
@@ -4,7 +4,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
4
4
|
import React, { useCallback, useMemo, useState } from 'react';
|
|
5
5
|
import { FormattedMessage } from 'react-intl-next';
|
|
6
6
|
import { Box, Inline } from '@atlaskit/primitives';
|
|
7
|
-
import { ActionName, SmartLinkSize, SmartLinkWidth } from '../../../../../../constants';
|
|
7
|
+
import { ActionName, SmartLinkSize, SmartLinkWidth, SmartLinkDirection } from '../../../../../../constants';
|
|
8
8
|
import ActionGroup from '../../action-group';
|
|
9
9
|
import Block from '../../block';
|
|
10
10
|
import ElementGroup from '../../element-group';
|
|
@@ -12,6 +12,9 @@ import AIStateIndicator from '../ai-state-indicator';
|
|
|
12
12
|
import { renderElementItems } from '../../utils';
|
|
13
13
|
import { messages } from '../../../../../../messages';
|
|
14
14
|
import AiIcon from '../../../../../common/ai-icon';
|
|
15
|
+
import AISummary from '../../../../../common/ai-summary';
|
|
16
|
+
import { useAISummary } from '../../../../../../state/hooks/use-ai-summary';
|
|
17
|
+
import { useFlexibleUiContext } from '../../../../../../state/flexible-ui-context';
|
|
15
18
|
var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
|
|
16
19
|
var _props$actions = props.actions,
|
|
17
20
|
actions = _props$actions === void 0 ? [] : _props$actions,
|
|
@@ -26,6 +29,12 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
|
|
|
26
29
|
aiState = _useState2[0],
|
|
27
30
|
setAIState = _useState2[1];
|
|
28
31
|
var metadataElements = renderElementItems(metadata);
|
|
32
|
+
var context = useFlexibleUiContext();
|
|
33
|
+
var url = (context === null || context === void 0 ? void 0 : context.url) || '';
|
|
34
|
+
var aiSummary = useAISummary({
|
|
35
|
+
url: url
|
|
36
|
+
});
|
|
37
|
+
var content = aiSummary.state.content;
|
|
29
38
|
var onAIActionClick = useCallback(function () {
|
|
30
39
|
setAIState('loading');
|
|
31
40
|
if (onAIActionChange) {
|
|
@@ -55,7 +64,10 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
|
|
|
55
64
|
}
|
|
56
65
|
}, [onActionMenuOpenChange]);
|
|
57
66
|
return /*#__PURE__*/React.createElement(Block, _extends({}, props, {
|
|
67
|
+
direction: SmartLinkDirection.Vertical,
|
|
58
68
|
testId: "".concat(testId, "-resolved-view")
|
|
69
|
+
}), /*#__PURE__*/React.createElement(AISummary, {
|
|
70
|
+
content: content
|
|
59
71
|
}), /*#__PURE__*/React.createElement(Inline, {
|
|
60
72
|
alignBlock: "center",
|
|
61
73
|
alignInline: "end",
|
|
@@ -10,7 +10,7 @@ import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-m
|
|
|
10
10
|
import LinkWarningModal from './LinkWarningModal';
|
|
11
11
|
var PACKAGE_DATA = {
|
|
12
12
|
packageName: "@atlaskit/smart-card",
|
|
13
|
-
packageVersion: "26.
|
|
13
|
+
packageVersion: "26.48.1",
|
|
14
14
|
componentName: 'linkUrl'
|
|
15
15
|
};
|
|
16
16
|
var Link = withLinkClickedEvent('a');
|
package/dist/types/i18n/cs.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ declare const _default: {
|
|
|
8
8
|
'fabric.linking.access_exists_description': string;
|
|
9
9
|
'fabric.linking.actions': string;
|
|
10
10
|
'fabric.linking.add_account': string;
|
|
11
|
+
'fabric.linking.ai_summarize': string;
|
|
12
|
+
'fabric.linking.ai_summarized': string;
|
|
13
|
+
'fabric.linking.ai_summarized_info': string;
|
|
14
|
+
'fabric.linking.ai_summarizing': string;
|
|
11
15
|
'fabric.linking.assigned_to': string;
|
|
12
16
|
'fabric.linking.cancel': string;
|
|
13
17
|
'fabric.linking.cannot_connect': string;
|
|
@@ -32,16 +36,15 @@ declare const _default: {
|
|
|
32
36
|
'fabric.linking.create_on_relative': string;
|
|
33
37
|
'fabric.linking.created_by': string;
|
|
34
38
|
'fabric.linking.delete': string;
|
|
35
|
-
'fabric.linking.
|
|
36
|
-
'fabric.linking.
|
|
37
|
-
'fabric.linking.
|
|
39
|
+
'fabric.linking.direct_access': string;
|
|
40
|
+
'fabric.linking.direct_access_description': string;
|
|
41
|
+
'fabric.linking.direct_access_title': string;
|
|
38
42
|
'fabric.linking.download': string;
|
|
39
43
|
'fabric.linking.edit': string;
|
|
40
44
|
'fabric.linking.follow': string;
|
|
41
45
|
'fabric.linking.forbidden_access': string;
|
|
42
46
|
'fabric.linking.forbidden_description': string;
|
|
43
|
-
'fabric.linking.
|
|
44
|
-
'fabric.linking.forbidden_title_crossjoin': string;
|
|
47
|
+
'fabric.linking.forbidden_title': string;
|
|
45
48
|
'fabric.linking.generic_error_message': string;
|
|
46
49
|
'fabric.linking.go_back': string;
|
|
47
50
|
'fabric.linking.invalid_permissions': string;
|
|
@@ -55,11 +58,9 @@ declare const _default: {
|
|
|
55
58
|
'fabric.linking.modified_on_absolute': string;
|
|
56
59
|
'fabric.linking.modified_on_relative': string;
|
|
57
60
|
'fabric.linking.more_actions': string;
|
|
58
|
-
'fabric.linking.
|
|
61
|
+
'fabric.linking.no_access_title': string;
|
|
59
62
|
'fabric.linking.not_found_description': string;
|
|
60
|
-
'fabric.linking.not_found_description_crossjoin': string;
|
|
61
63
|
'fabric.linking.not_found_title': string;
|
|
62
|
-
'fabric.linking.not_found_title_crossjoin': string;
|
|
63
64
|
'fabric.linking.open_issue_in_jira': string;
|
|
64
65
|
'fabric.linking.open_link_in_a_new_tab': string;
|
|
65
66
|
'fabric.linking.owned_by': string;
|
|
@@ -83,18 +84,13 @@ declare const _default: {
|
|
|
83
84
|
'fabric.linking.related': string;
|
|
84
85
|
'fabric.linking.related_work_items_not_found': string;
|
|
85
86
|
'fabric.linking.request_access': string;
|
|
86
|
-
'fabric.linking.request_access_crossjoin': string;
|
|
87
87
|
'fabric.linking.request_access_description': string;
|
|
88
|
-
'fabric.linking.request_access_description_crossjoin': string;
|
|
89
88
|
'fabric.linking.request_access_pending': string;
|
|
90
|
-
'fabric.linking.request_access_pending_crossjoin': string;
|
|
91
89
|
'fabric.linking.request_access_pending_description': string;
|
|
92
|
-
'fabric.linking.
|
|
93
|
-
'fabric.linking.request_access_pending_title_crossjoin': string;
|
|
90
|
+
'fabric.linking.request_access_pending_title': string;
|
|
94
91
|
'fabric.linking.request_access_to_view': string;
|
|
95
92
|
'fabric.linking.request_denied': string;
|
|
96
93
|
'fabric.linking.request_denied_description': string;
|
|
97
|
-
'fabric.linking.request_denied_description_crossjoin': string;
|
|
98
94
|
'fabric.linking.restricted_link': string;
|
|
99
95
|
'fabric.linking.retry': string;
|
|
100
96
|
'fabric.linking.save': string;
|
package/dist/types/i18n/da.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ declare const _default: {
|
|
|
8
8
|
'fabric.linking.access_exists_description': string;
|
|
9
9
|
'fabric.linking.actions': string;
|
|
10
10
|
'fabric.linking.add_account': string;
|
|
11
|
+
'fabric.linking.ai_summarize': string;
|
|
12
|
+
'fabric.linking.ai_summarized': string;
|
|
13
|
+
'fabric.linking.ai_summarized_info': string;
|
|
14
|
+
'fabric.linking.ai_summarizing': string;
|
|
11
15
|
'fabric.linking.assigned_to': string;
|
|
12
16
|
'fabric.linking.cancel': string;
|
|
13
17
|
'fabric.linking.cannot_connect': string;
|
|
@@ -32,16 +36,15 @@ declare const _default: {
|
|
|
32
36
|
'fabric.linking.create_on_relative': string;
|
|
33
37
|
'fabric.linking.created_by': string;
|
|
34
38
|
'fabric.linking.delete': string;
|
|
35
|
-
'fabric.linking.
|
|
36
|
-
'fabric.linking.
|
|
37
|
-
'fabric.linking.
|
|
39
|
+
'fabric.linking.direct_access': string;
|
|
40
|
+
'fabric.linking.direct_access_description': string;
|
|
41
|
+
'fabric.linking.direct_access_title': string;
|
|
38
42
|
'fabric.linking.download': string;
|
|
39
43
|
'fabric.linking.edit': string;
|
|
40
44
|
'fabric.linking.follow': string;
|
|
41
45
|
'fabric.linking.forbidden_access': string;
|
|
42
46
|
'fabric.linking.forbidden_description': string;
|
|
43
|
-
'fabric.linking.
|
|
44
|
-
'fabric.linking.forbidden_title_crossjoin': string;
|
|
47
|
+
'fabric.linking.forbidden_title': string;
|
|
45
48
|
'fabric.linking.generic_error_message': string;
|
|
46
49
|
'fabric.linking.go_back': string;
|
|
47
50
|
'fabric.linking.invalid_permissions': string;
|
|
@@ -55,11 +58,9 @@ declare const _default: {
|
|
|
55
58
|
'fabric.linking.modified_on_absolute': string;
|
|
56
59
|
'fabric.linking.modified_on_relative': string;
|
|
57
60
|
'fabric.linking.more_actions': string;
|
|
58
|
-
'fabric.linking.
|
|
61
|
+
'fabric.linking.no_access_title': string;
|
|
59
62
|
'fabric.linking.not_found_description': string;
|
|
60
|
-
'fabric.linking.not_found_description_crossjoin': string;
|
|
61
63
|
'fabric.linking.not_found_title': string;
|
|
62
|
-
'fabric.linking.not_found_title_crossjoin': string;
|
|
63
64
|
'fabric.linking.open_issue_in_jira': string;
|
|
64
65
|
'fabric.linking.open_link_in_a_new_tab': string;
|
|
65
66
|
'fabric.linking.owned_by': string;
|
|
@@ -83,18 +84,13 @@ declare const _default: {
|
|
|
83
84
|
'fabric.linking.related': string;
|
|
84
85
|
'fabric.linking.related_work_items_not_found': string;
|
|
85
86
|
'fabric.linking.request_access': string;
|
|
86
|
-
'fabric.linking.request_access_crossjoin': string;
|
|
87
87
|
'fabric.linking.request_access_description': string;
|
|
88
|
-
'fabric.linking.request_access_description_crossjoin': string;
|
|
89
88
|
'fabric.linking.request_access_pending': string;
|
|
90
|
-
'fabric.linking.request_access_pending_crossjoin': string;
|
|
91
89
|
'fabric.linking.request_access_pending_description': string;
|
|
92
|
-
'fabric.linking.
|
|
93
|
-
'fabric.linking.request_access_pending_title_crossjoin': string;
|
|
90
|
+
'fabric.linking.request_access_pending_title': string;
|
|
94
91
|
'fabric.linking.request_access_to_view': string;
|
|
95
92
|
'fabric.linking.request_denied': string;
|
|
96
93
|
'fabric.linking.request_denied_description': string;
|
|
97
|
-
'fabric.linking.request_denied_description_crossjoin': string;
|
|
98
94
|
'fabric.linking.restricted_link': string;
|
|
99
95
|
'fabric.linking.retry': string;
|
|
100
96
|
'fabric.linking.save': string;
|