@atlaskit/smart-card 26.47.0 → 26.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/extractors/common/meta/extractIsTrusted.js +0 -7
- 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/utils/index.js +0 -5
- package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +12 -0
- package/dist/cjs/view/HoverCard/components/ContentContainer.js +43 -0
- package/dist/cjs/view/HoverCard/components/CustomPopupContainer.js +7 -1
- package/dist/cjs/view/HoverCard/components/HoverCardContent.js +18 -3
- package/dist/cjs/view/HoverCard/components/views/resolved/index.js +6 -7
- package/dist/cjs/view/HoverCard/styled.js +4 -2
- package/dist/cjs/view/HoverCard/utils.js +7 -1
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/es2019/extractors/common/meta/extractIsTrusted.js +0 -7
- 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/utils/index.js +0 -5
- package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +15 -1
- package/dist/es2019/view/HoverCard/components/ContentContainer.js +33 -0
- package/dist/es2019/view/HoverCard/components/CustomPopupContainer.js +8 -1
- package/dist/es2019/view/HoverCard/components/HoverCardContent.js +18 -6
- package/dist/es2019/view/HoverCard/components/views/resolved/index.js +6 -8
- package/dist/es2019/view/HoverCard/styled.js +4 -1
- package/dist/es2019/view/HoverCard/utils.js +4 -0
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/esm/extractors/common/meta/extractIsTrusted.js +0 -7
- 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/utils/index.js +0 -5
- package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +13 -1
- package/dist/esm/view/HoverCard/components/ContentContainer.js +36 -0
- package/dist/esm/view/HoverCard/components/CustomPopupContainer.js +8 -1
- package/dist/esm/view/HoverCard/components/HoverCardContent.js +21 -6
- package/dist/esm/view/HoverCard/components/views/resolved/index.js +6 -7
- package/dist/esm/view/HoverCard/styled.js +4 -1
- package/dist/esm/view/HoverCard/utils.js +6 -0
- 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/utils/index.d.ts +1 -1
- package/dist/types/view/HoverCard/components/ContentContainer.d.ts +4 -0
- package/dist/types/view/HoverCard/components/CustomPopupContainer.d.ts +5 -0
- package/dist/types/view/HoverCard/components/views/resolved/types.d.ts +3 -0
- package/dist/types/view/HoverCard/styled.d.ts +1 -0
- package/dist/types/view/HoverCard/types.d.ts +5 -0
- package/dist/types/view/HoverCard/utils.d.ts +2 -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/utils/index.d.ts +1 -1
- package/dist/types-ts4.5/view/HoverCard/components/ContentContainer.d.ts +4 -0
- package/dist/types-ts4.5/view/HoverCard/components/CustomPopupContainer.d.ts +5 -0
- package/dist/types-ts4.5/view/HoverCard/components/views/resolved/types.d.ts +3 -0
- package/dist/types-ts4.5/view/HoverCard/styled.d.ts +1 -0
- package/dist/types-ts4.5/view/HoverCard/types.d.ts +5 -0
- package/dist/types-ts4.5/view/HoverCard/utils.d.ts +2 -1
- package/package.json +7 -12
|
@@ -10,6 +10,10 @@ export default {
|
|
|
10
10
|
'fabric.linking.access_exists_description': '要求存取權以檢視 {hostname} 的這項內容。',
|
|
11
11
|
'fabric.linking.actions': '動作',
|
|
12
12
|
'fabric.linking.add_account': '新增帳戶',
|
|
13
|
+
'fabric.linking.ai_summarize': '總結',
|
|
14
|
+
'fabric.linking.ai_summarized': '由 Atlassian Intelligence 總結',
|
|
15
|
+
'fabric.linking.ai_summarized_info': '資訊品質可能會有變化。<a>深入了解</a>',
|
|
16
|
+
'fabric.linking.ai_summarizing': 'Atlassian Intelligence 運作中...',
|
|
13
17
|
'fabric.linking.assigned_to': '已指派給 {context}',
|
|
14
18
|
'fabric.linking.cancel': '取消',
|
|
15
19
|
'fabric.linking.cannot_connect': '無法連結,請再試一次',
|
|
@@ -34,16 +38,15 @@ export default {
|
|
|
34
38
|
'fabric.linking.create_on_relative': '建立時間:{context}',
|
|
35
39
|
'fabric.linking.created_by': '建立者:{context}',
|
|
36
40
|
'fabric.linking.delete': '刪除',
|
|
37
|
-
'fabric.linking.
|
|
38
|
-
'fabric.linking.
|
|
39
|
-
'fabric.linking.
|
|
41
|
+
'fabric.linking.direct_access': '立即加入',
|
|
42
|
+
'fabric.linking.direct_access_description': '您的團隊使用 {product} 協作,您可以立即開始使用!',
|
|
43
|
+
'fabric.linking.direct_access_title': '加入 {product} 以檢視此內容',
|
|
40
44
|
'fabric.linking.download': '下載',
|
|
41
45
|
'fabric.linking.edit': '編輯',
|
|
42
46
|
'fabric.linking.follow': '追蹤',
|
|
43
47
|
'fabric.linking.forbidden_access': '您的存取遭拒',
|
|
44
|
-
'fabric.linking.forbidden_description': '
|
|
45
|
-
'fabric.linking.
|
|
46
|
-
'fabric.linking.forbidden_title_crossjoin': '您無法存取此內容',
|
|
48
|
+
'fabric.linking.forbidden_description': '請連絡您的管理員以要求 {hostname} 存取權。',
|
|
49
|
+
'fabric.linking.forbidden_title': '您無法存取此內容',
|
|
47
50
|
'fabric.linking.generic_error_message': '發生錯誤',
|
|
48
51
|
'fabric.linking.go_back': '返回',
|
|
49
52
|
'fabric.linking.invalid_permissions': '受限制的內容',
|
|
@@ -57,11 +60,9 @@ export default {
|
|
|
57
60
|
'fabric.linking.modified_on_absolute': '更新於 {context}',
|
|
58
61
|
'fabric.linking.modified_on_relative': '更新時間:{context}',
|
|
59
62
|
'fabric.linking.more_actions': '更多動作',
|
|
60
|
-
'fabric.linking.
|
|
61
|
-
'fabric.linking.not_found_description': '
|
|
62
|
-
'fabric.linking.
|
|
63
|
-
'fabric.linking.not_found_title': '糟糕,我們找不到此連結!',
|
|
64
|
-
'fabric.linking.not_found_title_crossjoin': '我們無法向您顯示此 {product} 頁面',
|
|
63
|
+
'fabric.linking.no_access_title': '加入 {product} 以檢視此內容',
|
|
64
|
+
'fabric.linking.not_found_description': '該頁面不存在,或在新增此連結後可能已變更。',
|
|
65
|
+
'fabric.linking.not_found_title': '我們無法向您顯示此 {product} 頁面',
|
|
65
66
|
'fabric.linking.open_issue_in_jira': 'Jira 中的待處理議題',
|
|
66
67
|
'fabric.linking.open_link_in_a_new_tab': '在新分頁中開啟連結',
|
|
67
68
|
'fabric.linking.owned_by': '負責人:{context}',
|
|
@@ -85,18 +86,13 @@ export default {
|
|
|
85
86
|
'fabric.linking.related': '相關',
|
|
86
87
|
'fabric.linking.related_work_items_not_found': '這個連結並未在其他任何位置提及。',
|
|
87
88
|
'fabric.linking.request_access': '要求存取權',
|
|
88
|
-
'fabric.linking.
|
|
89
|
-
'fabric.linking.
|
|
90
|
-
'fabric.linking.
|
|
91
|
-
'fabric.linking.
|
|
92
|
-
'fabric.linking.request_access_pending_crossjoin': '待核准',
|
|
93
|
-
'fabric.linking.request_access_pending_description': '您的存取要求擱置中。',
|
|
94
|
-
'fabric.linking.request_access_pending_description_crossjoin': '您的 {hostname} 存取要求正在等待管理員核准。',
|
|
95
|
-
'fabric.linking.request_access_pending_title_crossjoin': '{product} 的存取權待核准',
|
|
89
|
+
'fabric.linking.request_access_description': '您的團隊使用 {product} 來協作。向您的管理員傳送存取要求。',
|
|
90
|
+
'fabric.linking.request_access_pending': '待核准',
|
|
91
|
+
'fabric.linking.request_access_pending_description': '您的 {hostname} 存取要求正在等待管理員核准。',
|
|
92
|
+
'fabric.linking.request_access_pending_title': '{product} 的存取權待核准',
|
|
96
93
|
'fabric.linking.request_access_to_view': '要求存取 {context} 以檢視此議題',
|
|
97
94
|
'fabric.linking.request_denied': '您的存取要求遭拒',
|
|
98
|
-
'fabric.linking.request_denied_description': '
|
|
99
|
-
'fabric.linking.request_denied_description_crossjoin': '您的管理員並未核准您的要求,因此您無法檢視 {hostname} 的 {product} 頁面。',
|
|
95
|
+
'fabric.linking.request_denied_description': '您的管理員並未核准您的要求,因此您無法檢視 {hostname} 的 {product} 頁面。',
|
|
100
96
|
'fabric.linking.restricted_link': '連結受到限制,請嘗試其他帳戶',
|
|
101
97
|
'fabric.linking.retry': '重試',
|
|
102
98
|
'fabric.linking.save': '儲存',
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import { readStream, addPath } from './utils';
|
|
3
|
+
export class AISummaryService {
|
|
4
|
+
constructor(props) {
|
|
5
|
+
_defineProperty(this, "state", {
|
|
6
|
+
content: '',
|
|
7
|
+
status: 'ready'
|
|
8
|
+
});
|
|
9
|
+
_defineProperty(this, "subscribedStateSetter", state => {});
|
|
10
|
+
_defineProperty(this, "fetchStream", async summaryStyle => {
|
|
11
|
+
const payload = {
|
|
12
|
+
recipient_agent_named_id: 'summary_agent',
|
|
13
|
+
agent_input: {
|
|
14
|
+
urls: [this.url],
|
|
15
|
+
summary_style: summaryStyle
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const options = {
|
|
19
|
+
method: 'POST',
|
|
20
|
+
headers: this.config.headers,
|
|
21
|
+
body: JSON.stringify(payload)
|
|
22
|
+
};
|
|
23
|
+
const path = 'chat/v1/invoke_agent/stream';
|
|
24
|
+
const requestUrl = addPath(this.config.baseUrl, path);
|
|
25
|
+
const response = await fetch(requestUrl, options);
|
|
26
|
+
return readStream(response);
|
|
27
|
+
});
|
|
28
|
+
const defaultConfig = {
|
|
29
|
+
baseUrl: '/gateway/api/assist',
|
|
30
|
+
headers: {
|
|
31
|
+
'Content-Type': 'application/json;charset=UTF-8',
|
|
32
|
+
'x-experience-id': 'smart-link',
|
|
33
|
+
//TODO: EDM-9337 - Remove the hardcoded Confluence product name and find a way to populate the product name here
|
|
34
|
+
'x-product': props.product || 'confluence'
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
this.config = {
|
|
38
|
+
baseUrl: props.baseUrl || defaultConfig.baseUrl,
|
|
39
|
+
headers: {
|
|
40
|
+
...(props.headers || defaultConfig.headers)
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
this.url = props.url;
|
|
44
|
+
}
|
|
45
|
+
async summariseUrl(summaryStyle = 'short') {
|
|
46
|
+
this.state = {
|
|
47
|
+
...this.state,
|
|
48
|
+
status: 'loading'
|
|
49
|
+
};
|
|
50
|
+
this.subscribedStateSetter(this.state);
|
|
51
|
+
const stream = await this.fetchStream(summaryStyle);
|
|
52
|
+
let bufferContent = '';
|
|
53
|
+
for await (const chunk of stream) {
|
|
54
|
+
if (chunk.type === 'ANSWER_PART') {
|
|
55
|
+
bufferContent += chunk.message.content;
|
|
56
|
+
this.subscribedStateSetter({
|
|
57
|
+
...this.state,
|
|
58
|
+
content: bufferContent
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
this.state = {
|
|
63
|
+
status: 'done',
|
|
64
|
+
content: bufferContent
|
|
65
|
+
};
|
|
66
|
+
this.subscribedStateSetter(this.state);
|
|
67
|
+
}
|
|
68
|
+
subscribe(stateSetter) {
|
|
69
|
+
this.subscribedStateSetter = stateSetter;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export async function* readStream(response) {
|
|
2
|
+
const reader = getBufferReader(response);
|
|
3
|
+
let doneStreaming = false;
|
|
4
|
+
let chunkBuffer = '';
|
|
5
|
+
do {
|
|
6
|
+
try {
|
|
7
|
+
const {
|
|
8
|
+
value,
|
|
9
|
+
done
|
|
10
|
+
} = await reader.read();
|
|
11
|
+
doneStreaming = done;
|
|
12
|
+
if (value) {
|
|
13
|
+
try {
|
|
14
|
+
const processedChunks = `${chunkBuffer}${value}`.split('\n'); // assumes that all JSON chunks are separated by a new-line;
|
|
15
|
+
|
|
16
|
+
chunkBuffer = '';
|
|
17
|
+
for (let chunk of processedChunks) {
|
|
18
|
+
try {
|
|
19
|
+
yield JSON.parse(chunk);
|
|
20
|
+
} catch (e) {
|
|
21
|
+
// the chunk may be incomplete, so we'll save it for the next iteration.
|
|
22
|
+
chunkBuffer = chunk;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
} catch (e) {
|
|
26
|
+
const error = new Error(`Error Processing Stream Data: ${value}`);
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
} catch (e) {
|
|
31
|
+
// If we abort the call, this exception bubbles up, so we want to catch it and exit gracefully
|
|
32
|
+
if (e instanceof DOMException && e.name === 'AbortError') {
|
|
33
|
+
doneStreaming = true;
|
|
34
|
+
} else {
|
|
35
|
+
throw e;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
} while (!doneStreaming);
|
|
39
|
+
if (chunkBuffer) {
|
|
40
|
+
const error = new Error(`Not all the data was processed: ${chunkBuffer}`);
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export const getBufferReader = response => {
|
|
45
|
+
if (!response.body) {
|
|
46
|
+
throw new Error('Response body is empty');
|
|
47
|
+
}
|
|
48
|
+
return response.body.pipeThrough(new TextDecoderStream()).getReader();
|
|
49
|
+
};
|
|
50
|
+
export const addPath = (baseUrl, path) => {
|
|
51
|
+
const urlWithTrailingSlash = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
|
|
52
|
+
const pathWithoutLeadingSlash = !path.startsWith('/') ? path : path.substring(1, path.length);
|
|
53
|
+
const url = [urlWithTrailingSlash, pathWithoutLeadingSlash].join('');
|
|
54
|
+
return url;
|
|
55
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
import { AISummariesStore } from './ai-summary-service/store';
|
|
3
|
+
import { AISummaryService } from './ai-summary-service';
|
|
4
|
+
export const useAISummary = props => {
|
|
5
|
+
const {
|
|
6
|
+
url
|
|
7
|
+
} = props;
|
|
8
|
+
const aISummaryService = AISummariesStore.get(url);
|
|
9
|
+
const isAISummaryServiceInitiated = !!aISummaryService;
|
|
10
|
+
const [state, setState] = useState(isAISummaryServiceInitiated ? aISummaryService.state : {
|
|
11
|
+
status: 'ready',
|
|
12
|
+
content: ''
|
|
13
|
+
});
|
|
14
|
+
const isSummarised = isAISummaryServiceInitiated && state.status === 'done';
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (!isSummarised) {
|
|
17
|
+
var _AISummariesStore$get;
|
|
18
|
+
if (!isAISummaryServiceInitiated) {
|
|
19
|
+
AISummariesStore.set(url, new AISummaryService(props));
|
|
20
|
+
}
|
|
21
|
+
return (_AISummariesStore$get = AISummariesStore.get(url)) === null || _AISummariesStore$get === void 0 ? void 0 : _AISummariesStore$get.subscribe(setState);
|
|
22
|
+
}
|
|
23
|
+
}, [isSummarised, isAISummaryServiceInitiated, url, props]);
|
|
24
|
+
const summariseUrl = () => {
|
|
25
|
+
if (isAISummaryServiceInitiated) {
|
|
26
|
+
return aISummaryService.summariseUrl();
|
|
27
|
+
}
|
|
28
|
+
return;
|
|
29
|
+
};
|
|
30
|
+
return {
|
|
31
|
+
isSummarised,
|
|
32
|
+
summariseUrl,
|
|
33
|
+
state
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -4,7 +4,7 @@ export const ANALYTICS_CHANNEL = 'media';
|
|
|
4
4
|
export const context = {
|
|
5
5
|
componentName: 'smart-cards',
|
|
6
6
|
packageName: "@atlaskit/smart-card",
|
|
7
|
-
packageVersion: "26.
|
|
7
|
+
packageVersion: "26.48.0"
|
|
8
8
|
};
|
|
9
9
|
export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
10
10
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Loadable from 'react-loadable';
|
|
3
|
-
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
4
3
|
export const isCardWithData = props => !!props.data;
|
|
5
4
|
export const isSpecialEvent = evt => evt.isDefaultPrevented() && (isIframe() || isSpecialKey(evt) || isSpecialClick(evt));
|
|
6
5
|
export const isIframe = () => window.parent !== parent;
|
|
@@ -104,10 +103,6 @@ export const getIframeSandboxAttribute = isTrusted => {
|
|
|
104
103
|
return undefined;
|
|
105
104
|
}
|
|
106
105
|
const sandboxPermissions = 'allow-downloads allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts';
|
|
107
|
-
const allowStorageAccess = 'allow-storage-access-by-user-activation';
|
|
108
|
-
if (getBooleanFF('platform.linking-platform.smart-card.iframes-allow-storage-access-by-user-activation')) {
|
|
109
|
-
return `${sandboxPermissions} ${allowStorageAccess}`;
|
|
110
|
-
}
|
|
111
106
|
return sandboxPermissions;
|
|
112
107
|
};
|
|
113
108
|
export const handleOnClick = handler => e => {
|
|
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
import React, { useCallback, useMemo, useState } from 'react';
|
|
3
3
|
import { FormattedMessage } from 'react-intl-next';
|
|
4
4
|
import { Box, Inline } from '@atlaskit/primitives';
|
|
5
|
-
import { ActionName, SmartLinkSize, SmartLinkWidth } from '../../../../../../constants';
|
|
5
|
+
import { ActionName, SmartLinkSize, SmartLinkWidth, SmartLinkDirection } from '../../../../../../constants';
|
|
6
6
|
import ActionGroup from '../../action-group';
|
|
7
7
|
import Block from '../../block';
|
|
8
8
|
import ElementGroup from '../../element-group';
|
|
@@ -10,6 +10,9 @@ import AIStateIndicator from '../ai-state-indicator';
|
|
|
10
10
|
import { renderElementItems } from '../../utils';
|
|
11
11
|
import { messages } from '../../../../../../messages';
|
|
12
12
|
import AiIcon from '../../../../../common/ai-icon';
|
|
13
|
+
import AISummary from '../../../../../common/ai-summary';
|
|
14
|
+
import { useAISummary } from '../../../../../../state/hooks/use-ai-summary';
|
|
15
|
+
import { useFlexibleUiContext } from '../../../../../../state/flexible-ui-context';
|
|
13
16
|
const AISummaryBlockResolvedView = props => {
|
|
14
17
|
const {
|
|
15
18
|
actions = [],
|
|
@@ -21,6 +24,14 @@ const AISummaryBlockResolvedView = props => {
|
|
|
21
24
|
} = props;
|
|
22
25
|
const [aiState, setAIState] = useState('ready');
|
|
23
26
|
const metadataElements = renderElementItems(metadata);
|
|
27
|
+
const context = useFlexibleUiContext();
|
|
28
|
+
const url = (context === null || context === void 0 ? void 0 : context.url) || '';
|
|
29
|
+
const aiSummary = useAISummary({
|
|
30
|
+
url
|
|
31
|
+
});
|
|
32
|
+
const {
|
|
33
|
+
content
|
|
34
|
+
} = aiSummary.state;
|
|
24
35
|
const onAIActionClick = useCallback(() => {
|
|
25
36
|
setAIState('loading');
|
|
26
37
|
if (onAIActionChange) {
|
|
@@ -50,7 +61,10 @@ const AISummaryBlockResolvedView = props => {
|
|
|
50
61
|
}
|
|
51
62
|
}, [onActionMenuOpenChange]);
|
|
52
63
|
return /*#__PURE__*/React.createElement(Block, _extends({}, props, {
|
|
64
|
+
direction: SmartLinkDirection.Vertical,
|
|
53
65
|
testId: `${testId}-resolved-view`
|
|
66
|
+
}), /*#__PURE__*/React.createElement(AISummary, {
|
|
67
|
+
content: content
|
|
54
68
|
}), /*#__PURE__*/React.createElement(Inline, {
|
|
55
69
|
alignBlock: "center",
|
|
56
70
|
alignInline: "end",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
/** @jsx jsx */
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
6
|
+
import { HoverCardContainer, popupContainerStyles } from '../styled';
|
|
7
|
+
import AIPrism from '../../common/ai-prism';
|
|
8
|
+
import { hoverCardClassName } from './HoverCardContent';
|
|
9
|
+
const ContentContainer = ({
|
|
10
|
+
children,
|
|
11
|
+
isAIEnabled = false,
|
|
12
|
+
showPrism = false,
|
|
13
|
+
testId,
|
|
14
|
+
...props
|
|
15
|
+
}) => {
|
|
16
|
+
if (getBooleanFF('platform.linking-platform.smart-card.hover-card-ai-summaries')) {
|
|
17
|
+
const container = jsx("div", _extends({
|
|
18
|
+
className: hoverCardClassName,
|
|
19
|
+
css: [HoverCardContainer, isAIEnabled && showPrism ? undefined : popupContainerStyles],
|
|
20
|
+
"data-testid": testId
|
|
21
|
+
}, props), children);
|
|
22
|
+
return isAIEnabled ? jsx(AIPrism, {
|
|
23
|
+
isVisible: showPrism,
|
|
24
|
+
testId: `${testId}-prism`
|
|
25
|
+
}, container) : container;
|
|
26
|
+
}
|
|
27
|
+
return jsx("div", _extends({
|
|
28
|
+
className: hoverCardClassName,
|
|
29
|
+
css: HoverCardContainer,
|
|
30
|
+
"data-testid": testId
|
|
31
|
+
}, props), children);
|
|
32
|
+
};
|
|
33
|
+
export default ContentContainer;
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
/** @jsx jsx */
|
|
3
3
|
import React from 'react';
|
|
4
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
4
5
|
import { popupContainerStyles } from '../styled';
|
|
5
6
|
import { jsx } from '@emotion/react';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The purpose of this component is to hide the default Popup border.
|
|
10
|
+
* HoverCard border implementation is in ContentContainer where it can
|
|
11
|
+
* change between the default border and prism border during runtime.
|
|
12
|
+
*/
|
|
6
13
|
const CustomPopupContainer = /*#__PURE__*/React.forwardRef(({
|
|
7
14
|
children,
|
|
8
15
|
...props
|
|
9
16
|
}, ref) => jsx("div", _extends({
|
|
10
|
-
css: popupContainerStyles
|
|
17
|
+
css: getBooleanFF('platform.linking-platform.smart-card.hover-card-ai-summaries') ? undefined : popupContainerStyles
|
|
11
18
|
}, props, {
|
|
12
19
|
ref: ref
|
|
13
20
|
}), children));
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
import { jsx } from '@emotion/react';
|
|
3
3
|
import { useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
4
4
|
import CopyIcon from '@atlaskit/icon/glyph/copy';
|
|
5
|
-
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
5
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
6
|
+
import { useSmartLinkContext } from '@atlaskit/link-provider';
|
|
6
7
|
import { ActionName, CardDisplay, SmartLinkPosition, SmartLinkSize } from '../../../constants';
|
|
7
8
|
import { extractMetadata } from '../../../extractors/hover/extractMetadata';
|
|
8
9
|
import { useSmartLinkAnalytics } from '../../../state/analytics';
|
|
9
10
|
import { getExtensionKey, getServices } from '../../../state/helpers';
|
|
10
11
|
import { isSpecialEvent } from '../../../utils';
|
|
11
|
-
import {
|
|
12
|
-
import { getSimulatedMetadata } from '../utils';
|
|
12
|
+
import { flexibleUiOptions, titleBlockCss } from '../styled';
|
|
13
|
+
import { getSimulatedMetadata, getIsAISummaryEnabled } from '../utils';
|
|
13
14
|
import HoverCardLoadingView from './views/resolving';
|
|
14
15
|
import HoverCardUnauthorisedView from './views/unauthorised';
|
|
15
16
|
import HoverCardResolvedView from './views/resolved';
|
|
@@ -18,6 +19,7 @@ import { messages } from '../../../messages';
|
|
|
18
19
|
import { fireLinkClickedEvent } from '../../../utils/analytics/click';
|
|
19
20
|
import { useSmartCardState } from '../../../state/store';
|
|
20
21
|
import HoverCardForbiddenView from './views/forbidden';
|
|
22
|
+
import ContentContainer from './ContentContainer';
|
|
21
23
|
export const hoverCardClassName = 'smart-links-hover-preview';
|
|
22
24
|
export const getCopyAction = url => ({
|
|
23
25
|
name: ActionName.CustomAction,
|
|
@@ -52,9 +54,14 @@ const HoverCardContent = ({
|
|
|
52
54
|
const extensionKey = useMemo(() => getExtensionKey(cardState.details), [cardState.details]);
|
|
53
55
|
const linkState = useSmartCardState(url);
|
|
54
56
|
const linkStatus = (_linkState$status = linkState.status) !== null && _linkState$status !== void 0 ? _linkState$status : 'pending';
|
|
57
|
+
const {
|
|
58
|
+
isAdminHubAIEnabled
|
|
59
|
+
} = useSmartLinkContext();
|
|
60
|
+
const isAISummaryEnabled = getIsAISummaryEnabled(isAdminHubAIEnabled, cardState.details);
|
|
55
61
|
const services = getServices(linkState.details);
|
|
56
62
|
const statusRef = useRef(linkStatus);
|
|
57
63
|
const analyticsRef = useRef(analytics);
|
|
64
|
+
const [showPrism, setShowPrism] = useState(false);
|
|
58
65
|
useEffect(() => {
|
|
59
66
|
/**
|
|
60
67
|
* Must access current analytics object value via ref because its not stable
|
|
@@ -124,6 +131,9 @@ const HoverCardContent = ({
|
|
|
124
131
|
analytics
|
|
125
132
|
};
|
|
126
133
|
const onClickStopPropagation = useCallback(e => e.stopPropagation(), []);
|
|
134
|
+
const onAIActionChange = useCallback(state => {
|
|
135
|
+
setShowPrism(state === 'loading');
|
|
136
|
+
}, []);
|
|
127
137
|
const getCardView = cardState => {
|
|
128
138
|
if (cardState.metadataStatus === 'pending') {
|
|
129
139
|
return jsx(HoverCardLoadingView, {
|
|
@@ -154,19 +164,21 @@ const HoverCardContent = ({
|
|
|
154
164
|
cardActions: cardActions,
|
|
155
165
|
cardState: cardState,
|
|
156
166
|
flexibleCardProps: flexibleCardProps,
|
|
167
|
+
isAISummaryEnabled: isAISummaryEnabled,
|
|
157
168
|
onActionClick: onActionClick,
|
|
169
|
+
onAIActionChange: onAIActionChange,
|
|
158
170
|
titleBlockProps: titleBlockProps
|
|
159
171
|
});
|
|
160
172
|
}
|
|
161
173
|
return null;
|
|
162
174
|
};
|
|
163
175
|
const cardView = getCardView(cardState);
|
|
164
|
-
return cardView ? jsx(
|
|
176
|
+
return cardView ? jsx(ContentContainer, {
|
|
165
177
|
onMouseEnter: onMouseEnter,
|
|
166
178
|
onMouseLeave: onMouseLeave,
|
|
167
179
|
onClick: onClickStopPropagation,
|
|
168
|
-
|
|
169
|
-
|
|
180
|
+
isAIEnabled: isAISummaryEnabled,
|
|
181
|
+
showPrism: showPrism
|
|
170
182
|
}, cardView) : null;
|
|
171
183
|
};
|
|
172
184
|
export default HoverCardContent;
|
|
@@ -11,7 +11,6 @@ import { messages } from '../../../../../messages';
|
|
|
11
11
|
import { FormattedMessage } from 'react-intl-next';
|
|
12
12
|
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
13
13
|
import { getCanBeDatasource } from '../../../../../state/helpers';
|
|
14
|
-
import { useSmartLinkContext } from '../../../../../state';
|
|
15
14
|
export const toFooterActions = (cardActions, onActionClick) => {
|
|
16
15
|
const followAction = {
|
|
17
16
|
hideIcon: true,
|
|
@@ -52,11 +51,13 @@ const HoverCardResolvedView = ({
|
|
|
52
51
|
analytics,
|
|
53
52
|
cardState,
|
|
54
53
|
cardActions = [],
|
|
54
|
+
isAISummaryEnabled,
|
|
55
55
|
onActionClick,
|
|
56
|
+
onAIActionChange,
|
|
56
57
|
extensionKey,
|
|
57
58
|
url
|
|
58
59
|
}) => {
|
|
59
|
-
var _cardState$details
|
|
60
|
+
var _cardState$details;
|
|
60
61
|
const canBeDatasource = getCanBeDatasource(cardState.details);
|
|
61
62
|
useEffect(() => {
|
|
62
63
|
// Since this hover view is only rendered on resolved status,
|
|
@@ -91,10 +92,6 @@ const HoverCardResolvedView = ({
|
|
|
91
92
|
data: data,
|
|
92
93
|
fallbackElementHeight: snippetHeight.current
|
|
93
94
|
});
|
|
94
|
-
const {
|
|
95
|
-
isAdminHubAIEnabled
|
|
96
|
-
} = useSmartLinkContext();
|
|
97
|
-
const showAiView = getBooleanFF('platform.linking-platform.smart-card.hover-card-ai-summaries') && isAdminHubAIEnabled && ((_cardState$details2 = cardState.details) === null || _cardState$details2 === void 0 ? void 0 : (_cardState$details2$m = _cardState$details2.meta) === null || _cardState$details2$m === void 0 ? void 0 : (_cardState$details2$m2 = _cardState$details2$m.supportedFeatures) === null || _cardState$details2$m2 === void 0 ? void 0 : _cardState$details2$m2.includes('AISummary'));
|
|
98
95
|
return /*#__PURE__*/React.createElement(FlexibleCard, flexibleCardProps, imagePreview, /*#__PURE__*/React.createElement(TitleBlock, _extends({}, titleBlockProps, {
|
|
99
96
|
metadataPosition: SmartLinkPosition.Top
|
|
100
97
|
})), /*#__PURE__*/React.createElement(MetadataBlock, {
|
|
@@ -116,11 +113,12 @@ const HoverCardResolvedView = ({
|
|
|
116
113
|
}), getBooleanFF('platform.linking-platform.smart-card.enable-hover-card-related-urls') && /*#__PURE__*/React.createElement(RelatedUrlsBlock, {
|
|
117
114
|
url: url,
|
|
118
115
|
size: SmartLinkSize.Small
|
|
119
|
-
}),
|
|
116
|
+
}), isAISummaryEnabled ? /*#__PURE__*/React.createElement(AISummaryBlock, {
|
|
120
117
|
metadata: [{
|
|
121
118
|
name: ElementName.Provider
|
|
122
119
|
}],
|
|
123
|
-
actions: footerActions
|
|
120
|
+
actions: footerActions,
|
|
121
|
+
onAIActionChange: onAIActionChange
|
|
124
122
|
}) : /*#__PURE__*/React.createElement(FooterBlock, {
|
|
125
123
|
actions: footerActions,
|
|
126
124
|
size: SmartLinkSize.Large,
|
|
@@ -2,6 +2,8 @@ import { css } from '@emotion/react';
|
|
|
2
2
|
import { loadingPlaceholderClassName } from '../../index';
|
|
3
3
|
import { SmartLinkSize } from '../../constants';
|
|
4
4
|
import { layers } from '@atlaskit/theme/constants';
|
|
5
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
6
|
+
|
|
5
7
|
// Temporary fix for Confluence inline comment on editor mod has z-index of 500, Jira issue view has z-index of 510
|
|
6
8
|
export const HOVER_CARD_Z_INDEX = layers.modal();
|
|
7
9
|
export const flexibleUiOptions = {
|
|
@@ -12,6 +14,7 @@ export const flexibleUiOptions = {
|
|
|
12
14
|
zIndex: HOVER_CARD_Z_INDEX + 1
|
|
13
15
|
};
|
|
14
16
|
export const CARD_WIDTH_REM = 24;
|
|
17
|
+
export const NEW_CARD_WIDTH_REM = 28;
|
|
15
18
|
// gap between mouse cursor and hover card
|
|
16
19
|
export const CARD_GAP_PX = 10;
|
|
17
20
|
const blockGap = '0.5rem';
|
|
@@ -25,7 +28,7 @@ export const HoverCardContainer = css`
|
|
|
25
28
|
background: none;
|
|
26
29
|
border-width: 0;
|
|
27
30
|
box-sizing: border-box;
|
|
28
|
-
width: ${CARD_WIDTH_REM}rem;
|
|
31
|
+
width: ${getBooleanFF('platform.linking-platform.smart-card.hover-card-ai-summaries') ? NEW_CARD_WIDTH_REM : CARD_WIDTH_REM}rem;
|
|
29
32
|
|
|
30
33
|
.${loadingPlaceholderClassName} {
|
|
31
34
|
display: none;
|
|
@@ -201,4 +201,8 @@ export const getSimulatedBetterMetadata = (extensionKey = '', data) => {
|
|
|
201
201
|
default:
|
|
202
202
|
return defaultMetadata;
|
|
203
203
|
}
|
|
204
|
+
};
|
|
205
|
+
export const getIsAISummaryEnabled = (isAdminHubAIEnabled = false, response) => {
|
|
206
|
+
var _response$meta, _response$meta$suppor;
|
|
207
|
+
return Boolean(getBooleanFF('platform.linking-platform.smart-card.hover-card-ai-summaries') && isAdminHubAIEnabled && (response === null || response === void 0 ? void 0 : (_response$meta = response.meta) === null || _response$meta === void 0 ? void 0 : (_response$meta$suppor = _response$meta.supportedFeatures) === null || _response$meta$suppor === void 0 ? void 0 : _response$meta$suppor.includes('AISummary')));
|
|
204
208
|
};
|
|
@@ -7,7 +7,7 @@ import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-m
|
|
|
7
7
|
import LinkWarningModal from './LinkWarningModal';
|
|
8
8
|
const PACKAGE_DATA = {
|
|
9
9
|
packageName: "@atlaskit/smart-card",
|
|
10
|
-
packageVersion: "26.
|
|
10
|
+
packageVersion: "26.48.0",
|
|
11
11
|
componentName: 'linkUrl'
|
|
12
12
|
};
|
|
13
13
|
const Link = withLinkClickedEvent('a');
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
2
1
|
export var extractIsTrusted = function extractIsTrusted(meta) {
|
|
3
|
-
if (getBooleanFF('platform.linking-platform.smart-card.fix-is-trusted-pop')) {
|
|
4
|
-
if (!(meta !== null && meta !== void 0 && meta.key)) {
|
|
5
|
-
return false;
|
|
6
|
-
}
|
|
7
|
-
return !['iframely-object-provider', 'public-object-provider'].includes(meta.key);
|
|
8
|
-
}
|
|
9
2
|
return Boolean((meta === null || meta === void 0 ? void 0 : meta.key) && meta.key !== 'iframely-object-provider');
|
|
10
3
|
};
|
package/dist/esm/i18n/cs.js
CHANGED
|
@@ -10,6 +10,10 @@ export default {
|
|
|
10
10
|
'fabric.linking.access_exists_description': 'Požádejte o přístup k zobrazení tohoto obsahu z webu {hostname}.',
|
|
11
11
|
'fabric.linking.actions': 'Akce',
|
|
12
12
|
'fabric.linking.add_account': 'Přidat účet',
|
|
13
|
+
'fabric.linking.ai_summarize': 'Shrnout',
|
|
14
|
+
'fabric.linking.ai_summarized': 'Shrnuto pomocí Atlassian Intelligence',
|
|
15
|
+
'fabric.linking.ai_summarized_info': 'Kvalita informací se může různit. <a>Další informace</a>',
|
|
16
|
+
'fabric.linking.ai_summarizing': 'Atlassian Intelligence pracuje…',
|
|
13
17
|
'fabric.linking.assigned_to': 'Přiřazeno k: {context}',
|
|
14
18
|
'fabric.linking.cancel': 'Zrušit',
|
|
15
19
|
'fabric.linking.cannot_connect': 'Nelze se připojit, zkuste to znovu.',
|
|
@@ -34,16 +38,15 @@ export default {
|
|
|
34
38
|
'fabric.linking.create_on_relative': 'Vytvořeno: {context}',
|
|
35
39
|
'fabric.linking.created_by': 'Vytvořil(a) {context}',
|
|
36
40
|
'fabric.linking.delete': 'Odstranit',
|
|
37
|
-
'fabric.linking.
|
|
38
|
-
'fabric.linking.
|
|
39
|
-
'fabric.linking.
|
|
41
|
+
'fabric.linking.direct_access': 'Připojit se',
|
|
42
|
+
'fabric.linking.direct_access_description': 'Váš tým spolupracuje v {product} a vy můžete tento produkt hned začít používat také!',
|
|
43
|
+
'fabric.linking.direct_access_title': 'Chcete-li si zobrazit tento obsah, připojte se k produktu {product}',
|
|
40
44
|
'fabric.linking.download': 'Stáhnout',
|
|
41
45
|
'fabric.linking.edit': 'Upravit',
|
|
42
46
|
'fabric.linking.follow': 'Sledovat',
|
|
43
47
|
'fabric.linking.forbidden_access': 'Přístup byl odepřen',
|
|
44
|
-
'fabric.linking.forbidden_description': '
|
|
45
|
-
'fabric.linking.
|
|
46
|
-
'fabric.linking.forbidden_title_crossjoin': 'K tomuto obsahu nemáte přístup',
|
|
48
|
+
'fabric.linking.forbidden_description': 'Pokud chcete požádat o přístup k webu {hostname}, kontaktujte správce.',
|
|
49
|
+
'fabric.linking.forbidden_title': 'K tomuto obsahu nemáte přístup',
|
|
47
50
|
'fabric.linking.generic_error_message': 'Došlo k chybě',
|
|
48
51
|
'fabric.linking.go_back': 'Přejít zpět',
|
|
49
52
|
'fabric.linking.invalid_permissions': 'Omezený obsah',
|
|
@@ -57,11 +60,9 @@ export default {
|
|
|
57
60
|
'fabric.linking.modified_on_absolute': 'Aktualizováno: {context}',
|
|
58
61
|
'fabric.linking.modified_on_relative': 'Aktualizováno: {context}',
|
|
59
62
|
'fabric.linking.more_actions': 'Další akce',
|
|
60
|
-
'fabric.linking.
|
|
61
|
-
'fabric.linking.not_found_description': '
|
|
62
|
-
'fabric.linking.
|
|
63
|
-
'fabric.linking.not_found_title': 'Jejda. Tento odkaz se nepodařilo najít.',
|
|
64
|
-
'fabric.linking.not_found_title_crossjoin': 'Tuto stránku {product} vám nemůžeme zobrazit',
|
|
63
|
+
'fabric.linking.no_access_title': 'Chcete-li si zobrazit tento obsah, připojte se k produktu {product}',
|
|
64
|
+
'fabric.linking.not_found_description': 'Stránka neexistuje nebo se po přidání tohoto odkazu mohla změnit.',
|
|
65
|
+
'fabric.linking.not_found_title': 'Tuto stránku {product} vám nemůžeme zobrazit',
|
|
65
66
|
'fabric.linking.open_issue_in_jira': 'Otevřít požadavek v Jira',
|
|
66
67
|
'fabric.linking.open_link_in_a_new_tab': 'Otevřít odkaz na nové kartě',
|
|
67
68
|
'fabric.linking.owned_by': 'Vlastník: {context}',
|
|
@@ -85,18 +86,13 @@ export default {
|
|
|
85
86
|
'fabric.linking.related': 'Souvisící',
|
|
86
87
|
'fabric.linking.related_work_items_not_found': 'Tento odkaz není nikde jinde zmíněn.',
|
|
87
88
|
'fabric.linking.request_access': 'Požádat o přístup',
|
|
88
|
-
'fabric.linking.
|
|
89
|
-
'fabric.linking.
|
|
90
|
-
'fabric.linking.
|
|
91
|
-
'fabric.linking.
|
|
92
|
-
'fabric.linking.request_access_pending_crossjoin': 'Čeká na schválení',
|
|
93
|
-
'fabric.linking.request_access_pending_description': 'Vaše žádost o přístup čeká na vyřízení.',
|
|
94
|
-
'fabric.linking.request_access_pending_description_crossjoin': 'Vaše žádost o přístup z {hostname} čeká na schválení správcem.',
|
|
95
|
-
'fabric.linking.request_access_pending_title_crossjoin': 'Přístup k {product} čeká na vyřízení',
|
|
89
|
+
'fabric.linking.request_access_description': 'Váš tým spolupracuje v {product}. Pošlete správci žádost o přístup.',
|
|
90
|
+
'fabric.linking.request_access_pending': 'Čeká na schválení',
|
|
91
|
+
'fabric.linking.request_access_pending_description': 'Vaše žádost o přístup z {hostname} čeká na schválení správcem.',
|
|
92
|
+
'fabric.linking.request_access_pending_title': 'Přístup k {product} čeká na vyřízení',
|
|
96
93
|
'fabric.linking.request_access_to_view': 'Chcete-li si zobrazit tento požadavek, požádejte o přístup ke službě {context}.',
|
|
97
94
|
'fabric.linking.request_denied': 'Vaše žádost o přístup byla odmítnuta.',
|
|
98
|
-
'fabric.linking.request_denied_description': '
|
|
99
|
-
'fabric.linking.request_denied_description_crossjoin': 'Správce neschválil vaši žádost o zobrazení stránek {product} z {hostname}.',
|
|
95
|
+
'fabric.linking.request_denied_description': 'Správce neschválil vaši žádost o zobrazení stránek {product} z {hostname}.',
|
|
100
96
|
'fabric.linking.restricted_link': 'Omezený odkaz, zkuste jiný účet.',
|
|
101
97
|
'fabric.linking.retry': 'Zkusit znovu',
|
|
102
98
|
'fabric.linking.save': 'Uložit',
|