@atlaskit/smart-user-picker 4.0.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 +140 -0
- package/LICENSE +13 -0
- package/build/tsconfig.json +16 -0
- package/dist/cjs/analytics.js +131 -0
- package/dist/cjs/components/MessagesIntlProvider.js +72 -0
- package/dist/cjs/components/SmartUserPicker.js +473 -0
- package/dist/cjs/components/index.js +24 -0
- package/dist/cjs/config/index.js +50 -0
- package/dist/cjs/i18n/cs.js +26 -0
- package/dist/cjs/i18n/da.js +26 -0
- package/dist/cjs/i18n/de.js +26 -0
- package/dist/cjs/i18n/en.js +14 -0
- package/dist/cjs/i18n/en_GB.js +14 -0
- package/dist/cjs/i18n/en_ZZ.js +26 -0
- package/dist/cjs/i18n/es.js +26 -0
- package/dist/cjs/i18n/et.js +16 -0
- package/dist/cjs/i18n/fi.js +26 -0
- package/dist/cjs/i18n/fr.js +26 -0
- package/dist/cjs/i18n/hu.js +26 -0
- package/dist/cjs/i18n/index.js +247 -0
- package/dist/cjs/i18n/is.js +14 -0
- package/dist/cjs/i18n/it.js +26 -0
- package/dist/cjs/i18n/ja.js +26 -0
- package/dist/cjs/i18n/ko.js +26 -0
- package/dist/cjs/i18n/languages.js +33 -0
- package/dist/cjs/i18n/nb.js +26 -0
- package/dist/cjs/i18n/nl.js +26 -0
- package/dist/cjs/i18n/pl.js +26 -0
- package/dist/cjs/i18n/pt_BR.js +26 -0
- package/dist/cjs/i18n/pt_PT.js +16 -0
- package/dist/cjs/i18n/ro.js +14 -0
- package/dist/cjs/i18n/ru.js +26 -0
- package/dist/cjs/i18n/sk.js +16 -0
- package/dist/cjs/i18n/sv.js +26 -0
- package/dist/cjs/i18n/th.js +26 -0
- package/dist/cjs/i18n/tr.js +26 -0
- package/dist/cjs/i18n/uk.js +26 -0
- package/dist/cjs/i18n/vi.js +26 -0
- package/dist/cjs/i18n/zh.js +26 -0
- package/dist/cjs/i18n/zh_TW.js +26 -0
- package/dist/cjs/i18n.js +57 -0
- package/dist/cjs/index.js +87 -0
- package/dist/cjs/service/constants.js +20 -0
- package/dist/cjs/service/default-value-hydration-client.js +278 -0
- package/dist/cjs/service/graphqlUtils.js +48 -0
- package/dist/cjs/service/index.js +23 -0
- package/dist/cjs/service/recommendation-client.js +71 -0
- package/dist/cjs/service/teams-client.js +56 -0
- package/dist/cjs/service/users-client.js +97 -0
- package/dist/cjs/service/users-transformer.js +94 -0
- package/dist/cjs/types.js +14 -0
- package/dist/cjs/ufoExperiences.js +39 -0
- package/dist/cjs/util/i18n-util.js +274 -0
- package/dist/cjs/version.json +5 -0
- package/dist/es2019/analytics.js +85 -0
- package/dist/es2019/components/MessagesIntlProvider.js +43 -0
- package/dist/es2019/components/SmartUserPicker.js +316 -0
- package/dist/es2019/components/index.js +11 -0
- package/dist/es2019/config/index.js +42 -0
- package/dist/es2019/i18n/cs.js +18 -0
- package/dist/es2019/i18n/da.js +18 -0
- package/dist/es2019/i18n/de.js +18 -0
- package/dist/es2019/i18n/en.js +7 -0
- package/dist/es2019/i18n/en_GB.js +7 -0
- package/dist/es2019/i18n/en_ZZ.js +18 -0
- package/dist/es2019/i18n/es.js +18 -0
- package/dist/es2019/i18n/et.js +8 -0
- package/dist/es2019/i18n/fi.js +18 -0
- package/dist/es2019/i18n/fr.js +18 -0
- package/dist/es2019/i18n/hu.js +18 -0
- package/dist/es2019/i18n/index.js +36 -0
- package/dist/es2019/i18n/is.js +7 -0
- package/dist/es2019/i18n/it.js +18 -0
- package/dist/es2019/i18n/ja.js +18 -0
- package/dist/es2019/i18n/ko.js +18 -0
- package/dist/es2019/i18n/languages.js +26 -0
- package/dist/es2019/i18n/nb.js +18 -0
- package/dist/es2019/i18n/nl.js +18 -0
- package/dist/es2019/i18n/pl.js +18 -0
- package/dist/es2019/i18n/pt_BR.js +18 -0
- package/dist/es2019/i18n/pt_PT.js +8 -0
- package/dist/es2019/i18n/ro.js +7 -0
- package/dist/es2019/i18n/ru.js +18 -0
- package/dist/es2019/i18n/sk.js +8 -0
- package/dist/es2019/i18n/sv.js +18 -0
- package/dist/es2019/i18n/th.js +18 -0
- package/dist/es2019/i18n/tr.js +18 -0
- package/dist/es2019/i18n/uk.js +18 -0
- package/dist/es2019/i18n/vi.js +18 -0
- package/dist/es2019/i18n/zh.js +18 -0
- package/dist/es2019/i18n/zh_TW.js +18 -0
- package/dist/es2019/i18n.js +48 -0
- package/dist/es2019/index.js +6 -0
- package/dist/es2019/service/constants.js +11 -0
- package/dist/es2019/service/default-value-hydration-client.js +125 -0
- package/dist/es2019/service/graphqlUtils.js +39 -0
- package/dist/es2019/service/index.js +2 -0
- package/dist/es2019/service/recommendation-client.js +52 -0
- package/dist/es2019/service/teams-client.js +37 -0
- package/dist/es2019/service/users-client.js +52 -0
- package/dist/es2019/service/users-transformer.js +73 -0
- package/dist/es2019/types.js +7 -0
- package/dist/es2019/ufoExperiences.js +26 -0
- package/dist/es2019/util/i18n-util.js +231 -0
- package/dist/es2019/version.json +5 -0
- package/dist/esm/analytics.js +99 -0
- package/dist/esm/components/MessagesIntlProvider.js +50 -0
- package/dist/esm/components/SmartUserPicker.js +454 -0
- package/dist/esm/components/index.js +11 -0
- package/dist/esm/config/index.js +39 -0
- package/dist/esm/i18n/cs.js +18 -0
- package/dist/esm/i18n/da.js +18 -0
- package/dist/esm/i18n/de.js +18 -0
- package/dist/esm/i18n/en.js +7 -0
- package/dist/esm/i18n/en_GB.js +7 -0
- package/dist/esm/i18n/en_ZZ.js +18 -0
- package/dist/esm/i18n/es.js +18 -0
- package/dist/esm/i18n/et.js +8 -0
- package/dist/esm/i18n/fi.js +18 -0
- package/dist/esm/i18n/fr.js +18 -0
- package/dist/esm/i18n/hu.js +18 -0
- package/dist/esm/i18n/index.js +36 -0
- package/dist/esm/i18n/is.js +7 -0
- package/dist/esm/i18n/it.js +18 -0
- package/dist/esm/i18n/ja.js +18 -0
- package/dist/esm/i18n/ko.js +18 -0
- package/dist/esm/i18n/languages.js +26 -0
- package/dist/esm/i18n/nb.js +18 -0
- package/dist/esm/i18n/nl.js +18 -0
- package/dist/esm/i18n/pl.js +18 -0
- package/dist/esm/i18n/pt_BR.js +18 -0
- package/dist/esm/i18n/pt_PT.js +8 -0
- package/dist/esm/i18n/ro.js +7 -0
- package/dist/esm/i18n/ru.js +18 -0
- package/dist/esm/i18n/sk.js +8 -0
- package/dist/esm/i18n/sv.js +18 -0
- package/dist/esm/i18n/th.js +18 -0
- package/dist/esm/i18n/tr.js +18 -0
- package/dist/esm/i18n/uk.js +18 -0
- package/dist/esm/i18n/vi.js +18 -0
- package/dist/esm/i18n/zh.js +18 -0
- package/dist/esm/i18n/zh_TW.js +18 -0
- package/dist/esm/i18n.js +48 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/service/constants.js +11 -0
- package/dist/esm/service/default-value-hydration-client.js +261 -0
- package/dist/esm/service/graphqlUtils.js +41 -0
- package/dist/esm/service/index.js +2 -0
- package/dist/esm/service/recommendation-client.js +60 -0
- package/dist/esm/service/teams-client.js +45 -0
- package/dist/esm/service/users-client.js +83 -0
- package/dist/esm/service/users-transformer.js +83 -0
- package/dist/esm/types.js +7 -0
- package/dist/esm/ufoExperiences.js +26 -0
- package/dist/esm/util/i18n-util.js +256 -0
- package/dist/esm/version.json +5 -0
- package/dist/types/analytics.d.ts +21 -0
- package/dist/types/components/MessagesIntlProvider.d.ts +9 -0
- package/dist/types/components/SmartUserPicker.d.ts +30 -0
- package/dist/types/components/index.d.ts +4 -0
- package/dist/types/config/index.d.ts +9 -0
- package/dist/types/i18n/cs.d.ts +18 -0
- package/dist/types/i18n/da.d.ts +18 -0
- package/dist/types/i18n/de.d.ts +18 -0
- package/dist/types/i18n/en.d.ts +7 -0
- package/dist/types/i18n/en_GB.d.ts +7 -0
- package/dist/types/i18n/en_ZZ.d.ts +18 -0
- package/dist/types/i18n/es.d.ts +18 -0
- package/dist/types/i18n/et.d.ts +8 -0
- package/dist/types/i18n/fi.d.ts +18 -0
- package/dist/types/i18n/fr.d.ts +18 -0
- package/dist/types/i18n/hu.d.ts +18 -0
- package/dist/types/i18n/index.d.ts +36 -0
- package/dist/types/i18n/is.d.ts +7 -0
- package/dist/types/i18n/it.d.ts +18 -0
- package/dist/types/i18n/ja.d.ts +18 -0
- package/dist/types/i18n/ko.d.ts +18 -0
- package/dist/types/i18n/languages.d.ts +27 -0
- package/dist/types/i18n/nb.d.ts +18 -0
- package/dist/types/i18n/nl.d.ts +18 -0
- package/dist/types/i18n/pl.d.ts +18 -0
- package/dist/types/i18n/pt_BR.d.ts +18 -0
- package/dist/types/i18n/pt_PT.d.ts +8 -0
- package/dist/types/i18n/ro.d.ts +7 -0
- package/dist/types/i18n/ru.d.ts +18 -0
- package/dist/types/i18n/sk.d.ts +8 -0
- package/dist/types/i18n/sv.d.ts +18 -0
- package/dist/types/i18n/th.d.ts +18 -0
- package/dist/types/i18n/tr.d.ts +18 -0
- package/dist/types/i18n/uk.d.ts +18 -0
- package/dist/types/i18n/vi.d.ts +18 -0
- package/dist/types/i18n/zh.d.ts +18 -0
- package/dist/types/i18n/zh_TW.d.ts +18 -0
- package/dist/types/i18n.d.ts +47 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/service/constants.d.ts +4 -0
- package/dist/types/service/default-value-hydration-client.d.ts +8 -0
- package/dist/types/service/graphqlUtils.d.ts +14 -0
- package/dist/types/service/index.d.ts +2 -0
- package/dist/types/service/recommendation-client.d.ts +5 -0
- package/dist/types/service/teams-client.d.ts +12 -0
- package/dist/types/service/users-client.d.ts +11 -0
- package/dist/types/service/users-transformer.d.ts +22 -0
- package/dist/types/types.d.ts +208 -0
- package/dist/types/ufoExperiences.d.ts +3 -0
- package/dist/types/util/i18n-util.d.ts +11 -0
- package/docs/0-intro.tsx +52 -0
- package/package.json +56 -0
- package/tsconfig.json +16 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
zh: 'Chinese',
|
|
3
|
+
cs: 'Czech',
|
|
4
|
+
da: 'Danish',
|
|
5
|
+
nl: 'Dutch',
|
|
6
|
+
en: 'English',
|
|
7
|
+
en_GB: 'English (United Kingdom)',
|
|
8
|
+
et: 'Estonian',
|
|
9
|
+
fi: 'Finnish',
|
|
10
|
+
fr: 'French',
|
|
11
|
+
de: 'German',
|
|
12
|
+
hu: 'Hungarian',
|
|
13
|
+
is: 'Icelandic',
|
|
14
|
+
it: 'Italian',
|
|
15
|
+
ja: 'Japanese',
|
|
16
|
+
ko: 'Korean',
|
|
17
|
+
nb: 'Norwegian Bokmål',
|
|
18
|
+
pl: 'Polish',
|
|
19
|
+
pt_BR: 'Portuguese (Brazil)',
|
|
20
|
+
pt_PT: 'Portuguese (Portugal)',
|
|
21
|
+
ro: 'Romanian',
|
|
22
|
+
ru: 'Russian',
|
|
23
|
+
sk: 'Slovak',
|
|
24
|
+
es: 'Spanish',
|
|
25
|
+
sv: 'Swedish'
|
|
26
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// Norwegian Bokmål
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': 'Funnet på:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': 'GJEST',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Gjestegrupper har bare tilgang til enkelte områder, og har begrenset tilgang til brukeropplysninger.',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Gjester har bare tilgang til enkelte områder, og har begrenset tilgang til brukeropplysninger.',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': 'Medlem',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// Dutch
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': 'Gevonden in:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': 'GAST',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Gastgroepen hebben alleen toegang tot bepaalde spaces en hebben beperkte toegang tot gebruikersinformatie.',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Gasten hebben alleen toegang tot bepaalde spaces en hebben beperkte toegang tot gebruikersinformatie.',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': 'LID',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// Polish
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': 'Znaleziono w:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': 'GOŚĆ',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Grupy gości mają dostęp wyłącznie do określonych przestrzeni i ograniczony dostęp do informacji o użytkownikach.',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Goście mają dostęp wyłącznie do określonych przestrzeni i ograniczony dostęp do informacji o użytkownikach.',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': 'CZŁONEK',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// Portuguese (Brazil)
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': 'Encontrado em:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': 'CONVIDADO',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Os grupos de convidados só podem acessar determinados espaços e têm acesso limitado às informações do usuário.',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Os convidados só podem acessar determinados espaços e têm acesso limitado às informações do usuário.',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': 'Membro',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Romanian
|
|
2
|
+
export default {
|
|
3
|
+
'fabric.elements.user-picker.placeholder': 'Găsiți o persoană...',
|
|
4
|
+
'fabric.elements.user-picker.placeholder.add-more': 'și alte persoane',
|
|
5
|
+
'fabric.elements.user-picker.multi.remove-item': 'Eliminare',
|
|
6
|
+
'fabric.elements.user-picker.single.clear': 'Ștergere'
|
|
7
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// Russian
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': 'Найден в:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': 'ГОСТЬ',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Гостевые группы имеют доступ только к определенным разделам и ограниченный доступ к информации о пользователях.',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Гости имеют доступ только к определенным разделам и ограниченный доступ к информации о пользователях.',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': 'УЧАСТНИК',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// Swedish
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': 'Hittades i:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': 'GÄST',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Gästgrupper kan endast komma åt vissa utrymmen och har begränsad åtkomst till användarinformation.',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Gästerna kan endast komma åt vissa utrymmen och har begränsad åtkomst till användarinformation.',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': 'medlem',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// Thai
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': 'พบใน:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': 'ผู้ใช้ทั่วไป',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'กลุ่มผู้ใช้ทั่วไปสามารถเข้าถึงได้เฉพาะบางพื้นที่เท่านั้นและมีสิทธิ์ในการเข้าถึงข้อมูลผู้ใช้ที่จำกัด',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'ผู้ใช้ทั่วไปสามารถเข้าถึงได้เฉพาะบางพื้นที่เท่านั้นและมีสิทธิ์ในการเข้าถึงข้อมูลผู้ใช้ที่จำกัด',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': 'สมาชิก',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// Turkish
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': 'Bulunduğu yer:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': 'KONUK',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Konuk gruplar yalnızca bazı alanlara erişebilir ve kullanıcı bilgilerine erişimleri de kısıtlıdır.',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Konuklar yalnızca bazı alanlara erişebilir ve kullanıcı bilgilerine erişimleri de kısıtlıdır.',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': 'ÜYE',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// Ukrainian
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': 'Знайдено в:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': 'ГІСТЬ',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Групи гостей мають доступ лише до певних розділів, а також обмежений доступ до інформації про користувачів.',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Гості мають доступ лише до певних розділів, а також обмежений доступ до інформації про користувачів.',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': 'Учасник',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// Vietnamese
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': 'Tìm thấy trong:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': 'KHÁCH',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Các nhóm khách chỉ có thể vào một số không gian nhất định và có quyền truy cập hạn chế vào thông tin người dùng.',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Khách chỉ có thể vào một số không gian nhất định và có quyền truy cập hạn chế vào thông tin người dùng.',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': 'Thành viên',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// Chinese
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': '发现位置:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': '访客',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': '访客群组只能访问特定的空间,并对用户信息具有有限的访问权限。',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': '访客只能访问特定的空间,并对用户信息具有有限的访问权限。',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': '成员',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTE:
|
|
3
|
+
*
|
|
4
|
+
* This file is automatically generated by i18n-tools.
|
|
5
|
+
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
|
+
*/
|
|
7
|
+
// undefined
|
|
8
|
+
export default {
|
|
9
|
+
'fabric.elements.user-picker.external.sourced.from': '尋找位置:',
|
|
10
|
+
'fabric.elements.user-picker.github.provider': 'GitHub',
|
|
11
|
+
'fabric.elements.user-picker.google.provider': 'Google',
|
|
12
|
+
'fabric.elements.user-picker.guest.lozenge.text': '訪客',
|
|
13
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.group': '訪客群組只能存取特定空間,而且只能存取有限的使用者資訊。',
|
|
14
|
+
'fabric.elements.user-picker.guest.lozenge.tooltip.user': '訪客只能存取特定空間,而且只能存取有限的使用者資訊。',
|
|
15
|
+
'fabric.elements.user-picker.member.lozenge.text': '成員',
|
|
16
|
+
'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
|
|
17
|
+
'fabric.elements.user-picker.slack.provider': 'Slack'
|
|
18
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
export const messages = defineMessages({
|
|
3
|
+
externalUserSourcesHeading: {
|
|
4
|
+
id: 'fabric.elements.user-picker.external.sourced.from',
|
|
5
|
+
defaultMessage: 'Found in:',
|
|
6
|
+
description: 'From where the external user is coming'
|
|
7
|
+
},
|
|
8
|
+
slackProvider: {
|
|
9
|
+
id: 'fabric.elements.user-picker.slack.provider',
|
|
10
|
+
defaultMessage: 'Slack',
|
|
11
|
+
description: 'This external user is sourced from Slack provider'
|
|
12
|
+
},
|
|
13
|
+
googleProvider: {
|
|
14
|
+
id: 'fabric.elements.user-picker.google.provider',
|
|
15
|
+
defaultMessage: 'Google',
|
|
16
|
+
description: 'This external user is sourced from Google provider'
|
|
17
|
+
},
|
|
18
|
+
microsoftProvider: {
|
|
19
|
+
id: 'fabric.elements.user-picker.microsoft.provider',
|
|
20
|
+
defaultMessage: 'Microsoft',
|
|
21
|
+
description: 'This external user is sourced from Microsoft provider'
|
|
22
|
+
},
|
|
23
|
+
gitHubProvider: {
|
|
24
|
+
id: 'fabric.elements.user-picker.github.provider',
|
|
25
|
+
defaultMessage: 'GitHub',
|
|
26
|
+
description: 'This external user is sourced from GitHub provider'
|
|
27
|
+
},
|
|
28
|
+
memberLozengeText: {
|
|
29
|
+
id: 'fabric.elements.user-picker.member.lozenge.text',
|
|
30
|
+
defaultMessage: 'MEMBER',
|
|
31
|
+
description: 'Text within the Lozenge when the user is a workspace member'
|
|
32
|
+
},
|
|
33
|
+
guestLozengeText: {
|
|
34
|
+
id: 'fabric.elements.user-picker.guest.lozenge.text',
|
|
35
|
+
defaultMessage: 'GUEST',
|
|
36
|
+
description: 'Text within the lozenge when the user is a guest of confluence'
|
|
37
|
+
},
|
|
38
|
+
guestUserLozengeTooltip: {
|
|
39
|
+
id: 'fabric.elements.user-picker.guest.lozenge.tooltip.user',
|
|
40
|
+
defaultMessage: 'Guests can only access certain spaces and have limited access to user info.',
|
|
41
|
+
description: 'Tooltip text for guest lozenge showing that a user is a guest in Confluence'
|
|
42
|
+
},
|
|
43
|
+
guestGroupLozengeTooltip: {
|
|
44
|
+
id: 'fabric.elements.user-picker.guest.lozenge.tooltip.group',
|
|
45
|
+
defaultMessage: 'Guest groups can only access certain spaces and have limited access to user info.',
|
|
46
|
+
description: 'Tooltip text for lozenge showing that a group is for guests in Confluence'
|
|
47
|
+
}
|
|
48
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default } from './components';
|
|
2
|
+
export { getUserRecommendations, hydrateDefaultValues } from './service';
|
|
3
|
+
export { //Utils
|
|
4
|
+
isEmail, isTeam, isUser, isValidEmail, // Constants
|
|
5
|
+
EmailType, GroupType, TeamType, UserType } from '@atlaskit/user-picker';
|
|
6
|
+
export { setSmartUserPickerEnv } from './config';
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { UserType } from '@atlaskit/user-picker';
|
|
2
|
+
import { getConfig } from '../config';
|
|
3
|
+
import getHydratedUsersFromPrs from './users-client';
|
|
4
|
+
import hydrateTeamFromLegion from './teams-client';
|
|
5
|
+
import { UNKNOWN } from './constants';
|
|
6
|
+
|
|
7
|
+
const getHydratedUsersFromProducts = request => {
|
|
8
|
+
const url = `${getConfig().getUsersServiceUrl(request.productKey, request.baseUrl)}`;
|
|
9
|
+
let params = new URLSearchParams();
|
|
10
|
+
request.accountIds.map(id => params.append('accountId', id));
|
|
11
|
+
params.append('maxResults', '2000');
|
|
12
|
+
return fetch(`${url}?${params}`, {
|
|
13
|
+
method: 'GET',
|
|
14
|
+
credentials: 'include',
|
|
15
|
+
headers: {
|
|
16
|
+
'content-type': 'application/json'
|
|
17
|
+
}
|
|
18
|
+
}).then(response => {
|
|
19
|
+
if (response.status === 200) {
|
|
20
|
+
return response.json();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return Promise.reject({
|
|
24
|
+
message: `error calling users service, statusCode=${response.status}, statusText=${response.statusText}`
|
|
25
|
+
});
|
|
26
|
+
}).then(request.productKey === 'jira' ? transformJiraUsers : transformConfluenceUsers);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const transformJiraUsers = userResponse => userResponse.values.map(transformJiraUser).filter(user => !!user).map(user => user);
|
|
30
|
+
|
|
31
|
+
const transformJiraUser = item => {
|
|
32
|
+
if (!item) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
id: item.accountId,
|
|
38
|
+
type: UserType,
|
|
39
|
+
avatarUrl: item.avatarUrls ? item.avatarUrls['16x16'] : '',
|
|
40
|
+
name: item.displayName,
|
|
41
|
+
email: item.emailAddress
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const transformConfluenceUsers = userResponse => userResponse.results.map(transformConfluenceUser).filter(user => !!user).map(user => user);
|
|
46
|
+
|
|
47
|
+
const transformConfluenceUser = item => {
|
|
48
|
+
if (!item) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
id: item.accountId,
|
|
54
|
+
type: UserType,
|
|
55
|
+
avatarUrl: item.profilePicture ? item.profilePicture.path : '',
|
|
56
|
+
name: item.publicName,
|
|
57
|
+
email: item.email
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const sortResults = (options, sortIds) => {
|
|
62
|
+
const resultsMap = new Map(options.map(option => [option && option.id, option]));
|
|
63
|
+
return sortIds.map(option => {
|
|
64
|
+
const user = resultsMap.get(option.id);
|
|
65
|
+
|
|
66
|
+
if (user) {
|
|
67
|
+
return user;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return {
|
|
71
|
+
id: option.id,
|
|
72
|
+
type: option.type,
|
|
73
|
+
name: UNKNOWN
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const isOptionData = option => {
|
|
79
|
+
return option.name !== undefined;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const hydrateTeamIds = async (baseUrl, values) => {
|
|
83
|
+
if (values.length === 0) {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const legionPromises = values.map(value => hydrateTeamFromLegion({
|
|
88
|
+
baseUrl,
|
|
89
|
+
id: value.id
|
|
90
|
+
}));
|
|
91
|
+
return await Promise.all(legionPromises);
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const hydrateAccountIds = async (baseUrl, productKey, values) => {
|
|
95
|
+
if (values.length === 0) {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const accountIds = values.map(val => val.id); //if we are not jira or confluence then use PRS platform hydration
|
|
100
|
+
|
|
101
|
+
return productKey === 'jira' || productKey === 'confluence' ? await getHydratedUsersFromProducts({
|
|
102
|
+
baseUrl,
|
|
103
|
+
productKey,
|
|
104
|
+
accountIds
|
|
105
|
+
}) : await getHydratedUsersFromPrs(baseUrl, accountIds);
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
async function hydrateDefaultValues(baseUrl, value, productKey) {
|
|
109
|
+
//return if no value
|
|
110
|
+
if (!value || Array.isArray(value) && value.length === 0) {
|
|
111
|
+
return [];
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const values = Array.isArray(value) ? value : [value]; // return if all hydrated
|
|
115
|
+
|
|
116
|
+
if (!values.some(val => !isOptionData(val))) {
|
|
117
|
+
return value;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const [hydratedUsers, hydratedTeams] = await Promise.all([hydrateAccountIds(baseUrl, productKey, values.filter(val => !isOptionData(val) && val.type === 'user')), hydrateTeamIds(baseUrl, values.filter(val => !isOptionData(val) && val.type === 'team'))]);
|
|
121
|
+
const hydratedOptions = values.filter(val => isOptionData(val)).map(val => val).concat(hydratedUsers).concat(hydratedTeams);
|
|
122
|
+
return sortResults(hydratedOptions, values);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export default hydrateDefaultValues;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const buildHeaders = () => {
|
|
2
|
+
const headers = new Headers();
|
|
3
|
+
headers.append('Content-Type', 'application/json');
|
|
4
|
+
return headers;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @param {string} serviceUrl - GraphQL service endpoint
|
|
9
|
+
* @param {Query} query - GraphQL query
|
|
10
|
+
*/
|
|
11
|
+
export function graphqlQuery(serviceUrl, query) {
|
|
12
|
+
const headers = buildHeaders();
|
|
13
|
+
return fetch(new Request(`${serviceUrl}`, {
|
|
14
|
+
method: 'POST',
|
|
15
|
+
credentials: 'include',
|
|
16
|
+
mode: 'cors',
|
|
17
|
+
headers,
|
|
18
|
+
body: JSON.stringify(query)
|
|
19
|
+
})).then(response => {
|
|
20
|
+
if (!response.ok) {
|
|
21
|
+
return Promise.reject({
|
|
22
|
+
code: response.status,
|
|
23
|
+
reason: response.statusText
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return response;
|
|
28
|
+
}).then(response => response.json()).then(json => {
|
|
29
|
+
if (json.errors) {
|
|
30
|
+
var _json$errors$;
|
|
31
|
+
|
|
32
|
+
return Promise.reject({
|
|
33
|
+
reason: ((_json$errors$ = json.errors[0]) === null || _json$errors$ === void 0 ? void 0 : _json$errors$.category) || 'default'
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return json.data;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { transformUsers } from './users-transformer';
|
|
2
|
+
import { getConfig } from '../config';
|
|
3
|
+
|
|
4
|
+
const getUserRecommendations = (request, intl) => {
|
|
5
|
+
var _request$context, _request$context$prod;
|
|
6
|
+
|
|
7
|
+
const url = getConfig().getRecommendationServiceUrl(request.baseUrl || '');
|
|
8
|
+
return fetch(url, {
|
|
9
|
+
method: 'POST',
|
|
10
|
+
credentials: 'include',
|
|
11
|
+
headers: {
|
|
12
|
+
'content-type': 'application/json'
|
|
13
|
+
},
|
|
14
|
+
body: JSON.stringify({
|
|
15
|
+
context: request.context,
|
|
16
|
+
includeUsers: request.includeUsers,
|
|
17
|
+
includeGroups: request.includeGroups,
|
|
18
|
+
includeTeams: request.includeTeams,
|
|
19
|
+
maxNumberOfResults: request.maxNumberOfResults,
|
|
20
|
+
performSearchQueryOnly: false,
|
|
21
|
+
searchQuery: {
|
|
22
|
+
cpusQueryHighlights: {
|
|
23
|
+
query: '',
|
|
24
|
+
field: ''
|
|
25
|
+
},
|
|
26
|
+
...(((_request$context = request.context) === null || _request$context === void 0 ? void 0 : (_request$context$prod = _request$context.productAttributes) === null || _request$context$prod === void 0 ? void 0 : _request$context$prod.isEntitledConfluenceExternalCollaborator) && {
|
|
27
|
+
productAccessPermissionIds: ['write', 'external-collaborator-write']
|
|
28
|
+
}),
|
|
29
|
+
customQuery: '',
|
|
30
|
+
customerDirectoryId: '',
|
|
31
|
+
filter: request.searchQueryFilter || '',
|
|
32
|
+
minimumAccessLevel: 'APPLICATION',
|
|
33
|
+
queryString: request.query,
|
|
34
|
+
restrictTo: {
|
|
35
|
+
userIds: [],
|
|
36
|
+
groupIds: []
|
|
37
|
+
},
|
|
38
|
+
searchUserbase: false
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
}).then(response => {
|
|
42
|
+
if (response.status === 200) {
|
|
43
|
+
return response.json();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return Promise.reject({
|
|
47
|
+
message: `error calling smart service, statusCode=${response.status}, statusText=${response.statusText}`
|
|
48
|
+
});
|
|
49
|
+
}).then(response => transformUsers(response, intl));
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export default getUserRecommendations;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { getConfig } from '../config';
|
|
2
|
+
import { UNKNOWN_TEAM } from './constants';
|
|
3
|
+
|
|
4
|
+
const transformTeam = (team, id) => {
|
|
5
|
+
return {
|
|
6
|
+
id,
|
|
7
|
+
name: team.displayName,
|
|
8
|
+
type: 'team',
|
|
9
|
+
avatarUrl: team.smallAvatarImageUrl
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const hydrateTeamFromLegion = request => {
|
|
14
|
+
const url = `${getConfig().getTeamsUrl(request.baseUrl)}/${request.id}`;
|
|
15
|
+
return fetch(url, {
|
|
16
|
+
method: 'GET',
|
|
17
|
+
credentials: 'include',
|
|
18
|
+
headers: {
|
|
19
|
+
'content-type': 'application/json'
|
|
20
|
+
}
|
|
21
|
+
}).then(response => {
|
|
22
|
+
if (response.status === 200) {
|
|
23
|
+
return response.json();
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return Promise.reject({
|
|
27
|
+
message: `error calling Legion, statusCode=${response.status}, statusText=${response.statusText}`
|
|
28
|
+
});
|
|
29
|
+
}).then(response => {
|
|
30
|
+
return transformTeam(response, request.id);
|
|
31
|
+
}).catch(() => ({ ...UNKNOWN_TEAM,
|
|
32
|
+
// on network error, return original team with label 'Unknown'
|
|
33
|
+
id: request.id
|
|
34
|
+
}));
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export default hydrateTeamFromLegion;
|