@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.
Files changed (209) hide show
  1. package/CHANGELOG.md +140 -0
  2. package/LICENSE +13 -0
  3. package/build/tsconfig.json +16 -0
  4. package/dist/cjs/analytics.js +131 -0
  5. package/dist/cjs/components/MessagesIntlProvider.js +72 -0
  6. package/dist/cjs/components/SmartUserPicker.js +473 -0
  7. package/dist/cjs/components/index.js +24 -0
  8. package/dist/cjs/config/index.js +50 -0
  9. package/dist/cjs/i18n/cs.js +26 -0
  10. package/dist/cjs/i18n/da.js +26 -0
  11. package/dist/cjs/i18n/de.js +26 -0
  12. package/dist/cjs/i18n/en.js +14 -0
  13. package/dist/cjs/i18n/en_GB.js +14 -0
  14. package/dist/cjs/i18n/en_ZZ.js +26 -0
  15. package/dist/cjs/i18n/es.js +26 -0
  16. package/dist/cjs/i18n/et.js +16 -0
  17. package/dist/cjs/i18n/fi.js +26 -0
  18. package/dist/cjs/i18n/fr.js +26 -0
  19. package/dist/cjs/i18n/hu.js +26 -0
  20. package/dist/cjs/i18n/index.js +247 -0
  21. package/dist/cjs/i18n/is.js +14 -0
  22. package/dist/cjs/i18n/it.js +26 -0
  23. package/dist/cjs/i18n/ja.js +26 -0
  24. package/dist/cjs/i18n/ko.js +26 -0
  25. package/dist/cjs/i18n/languages.js +33 -0
  26. package/dist/cjs/i18n/nb.js +26 -0
  27. package/dist/cjs/i18n/nl.js +26 -0
  28. package/dist/cjs/i18n/pl.js +26 -0
  29. package/dist/cjs/i18n/pt_BR.js +26 -0
  30. package/dist/cjs/i18n/pt_PT.js +16 -0
  31. package/dist/cjs/i18n/ro.js +14 -0
  32. package/dist/cjs/i18n/ru.js +26 -0
  33. package/dist/cjs/i18n/sk.js +16 -0
  34. package/dist/cjs/i18n/sv.js +26 -0
  35. package/dist/cjs/i18n/th.js +26 -0
  36. package/dist/cjs/i18n/tr.js +26 -0
  37. package/dist/cjs/i18n/uk.js +26 -0
  38. package/dist/cjs/i18n/vi.js +26 -0
  39. package/dist/cjs/i18n/zh.js +26 -0
  40. package/dist/cjs/i18n/zh_TW.js +26 -0
  41. package/dist/cjs/i18n.js +57 -0
  42. package/dist/cjs/index.js +87 -0
  43. package/dist/cjs/service/constants.js +20 -0
  44. package/dist/cjs/service/default-value-hydration-client.js +278 -0
  45. package/dist/cjs/service/graphqlUtils.js +48 -0
  46. package/dist/cjs/service/index.js +23 -0
  47. package/dist/cjs/service/recommendation-client.js +71 -0
  48. package/dist/cjs/service/teams-client.js +56 -0
  49. package/dist/cjs/service/users-client.js +97 -0
  50. package/dist/cjs/service/users-transformer.js +94 -0
  51. package/dist/cjs/types.js +14 -0
  52. package/dist/cjs/ufoExperiences.js +39 -0
  53. package/dist/cjs/util/i18n-util.js +274 -0
  54. package/dist/cjs/version.json +5 -0
  55. package/dist/es2019/analytics.js +85 -0
  56. package/dist/es2019/components/MessagesIntlProvider.js +43 -0
  57. package/dist/es2019/components/SmartUserPicker.js +316 -0
  58. package/dist/es2019/components/index.js +11 -0
  59. package/dist/es2019/config/index.js +42 -0
  60. package/dist/es2019/i18n/cs.js +18 -0
  61. package/dist/es2019/i18n/da.js +18 -0
  62. package/dist/es2019/i18n/de.js +18 -0
  63. package/dist/es2019/i18n/en.js +7 -0
  64. package/dist/es2019/i18n/en_GB.js +7 -0
  65. package/dist/es2019/i18n/en_ZZ.js +18 -0
  66. package/dist/es2019/i18n/es.js +18 -0
  67. package/dist/es2019/i18n/et.js +8 -0
  68. package/dist/es2019/i18n/fi.js +18 -0
  69. package/dist/es2019/i18n/fr.js +18 -0
  70. package/dist/es2019/i18n/hu.js +18 -0
  71. package/dist/es2019/i18n/index.js +36 -0
  72. package/dist/es2019/i18n/is.js +7 -0
  73. package/dist/es2019/i18n/it.js +18 -0
  74. package/dist/es2019/i18n/ja.js +18 -0
  75. package/dist/es2019/i18n/ko.js +18 -0
  76. package/dist/es2019/i18n/languages.js +26 -0
  77. package/dist/es2019/i18n/nb.js +18 -0
  78. package/dist/es2019/i18n/nl.js +18 -0
  79. package/dist/es2019/i18n/pl.js +18 -0
  80. package/dist/es2019/i18n/pt_BR.js +18 -0
  81. package/dist/es2019/i18n/pt_PT.js +8 -0
  82. package/dist/es2019/i18n/ro.js +7 -0
  83. package/dist/es2019/i18n/ru.js +18 -0
  84. package/dist/es2019/i18n/sk.js +8 -0
  85. package/dist/es2019/i18n/sv.js +18 -0
  86. package/dist/es2019/i18n/th.js +18 -0
  87. package/dist/es2019/i18n/tr.js +18 -0
  88. package/dist/es2019/i18n/uk.js +18 -0
  89. package/dist/es2019/i18n/vi.js +18 -0
  90. package/dist/es2019/i18n/zh.js +18 -0
  91. package/dist/es2019/i18n/zh_TW.js +18 -0
  92. package/dist/es2019/i18n.js +48 -0
  93. package/dist/es2019/index.js +6 -0
  94. package/dist/es2019/service/constants.js +11 -0
  95. package/dist/es2019/service/default-value-hydration-client.js +125 -0
  96. package/dist/es2019/service/graphqlUtils.js +39 -0
  97. package/dist/es2019/service/index.js +2 -0
  98. package/dist/es2019/service/recommendation-client.js +52 -0
  99. package/dist/es2019/service/teams-client.js +37 -0
  100. package/dist/es2019/service/users-client.js +52 -0
  101. package/dist/es2019/service/users-transformer.js +73 -0
  102. package/dist/es2019/types.js +7 -0
  103. package/dist/es2019/ufoExperiences.js +26 -0
  104. package/dist/es2019/util/i18n-util.js +231 -0
  105. package/dist/es2019/version.json +5 -0
  106. package/dist/esm/analytics.js +99 -0
  107. package/dist/esm/components/MessagesIntlProvider.js +50 -0
  108. package/dist/esm/components/SmartUserPicker.js +454 -0
  109. package/dist/esm/components/index.js +11 -0
  110. package/dist/esm/config/index.js +39 -0
  111. package/dist/esm/i18n/cs.js +18 -0
  112. package/dist/esm/i18n/da.js +18 -0
  113. package/dist/esm/i18n/de.js +18 -0
  114. package/dist/esm/i18n/en.js +7 -0
  115. package/dist/esm/i18n/en_GB.js +7 -0
  116. package/dist/esm/i18n/en_ZZ.js +18 -0
  117. package/dist/esm/i18n/es.js +18 -0
  118. package/dist/esm/i18n/et.js +8 -0
  119. package/dist/esm/i18n/fi.js +18 -0
  120. package/dist/esm/i18n/fr.js +18 -0
  121. package/dist/esm/i18n/hu.js +18 -0
  122. package/dist/esm/i18n/index.js +36 -0
  123. package/dist/esm/i18n/is.js +7 -0
  124. package/dist/esm/i18n/it.js +18 -0
  125. package/dist/esm/i18n/ja.js +18 -0
  126. package/dist/esm/i18n/ko.js +18 -0
  127. package/dist/esm/i18n/languages.js +26 -0
  128. package/dist/esm/i18n/nb.js +18 -0
  129. package/dist/esm/i18n/nl.js +18 -0
  130. package/dist/esm/i18n/pl.js +18 -0
  131. package/dist/esm/i18n/pt_BR.js +18 -0
  132. package/dist/esm/i18n/pt_PT.js +8 -0
  133. package/dist/esm/i18n/ro.js +7 -0
  134. package/dist/esm/i18n/ru.js +18 -0
  135. package/dist/esm/i18n/sk.js +8 -0
  136. package/dist/esm/i18n/sv.js +18 -0
  137. package/dist/esm/i18n/th.js +18 -0
  138. package/dist/esm/i18n/tr.js +18 -0
  139. package/dist/esm/i18n/uk.js +18 -0
  140. package/dist/esm/i18n/vi.js +18 -0
  141. package/dist/esm/i18n/zh.js +18 -0
  142. package/dist/esm/i18n/zh_TW.js +18 -0
  143. package/dist/esm/i18n.js +48 -0
  144. package/dist/esm/index.js +6 -0
  145. package/dist/esm/service/constants.js +11 -0
  146. package/dist/esm/service/default-value-hydration-client.js +261 -0
  147. package/dist/esm/service/graphqlUtils.js +41 -0
  148. package/dist/esm/service/index.js +2 -0
  149. package/dist/esm/service/recommendation-client.js +60 -0
  150. package/dist/esm/service/teams-client.js +45 -0
  151. package/dist/esm/service/users-client.js +83 -0
  152. package/dist/esm/service/users-transformer.js +83 -0
  153. package/dist/esm/types.js +7 -0
  154. package/dist/esm/ufoExperiences.js +26 -0
  155. package/dist/esm/util/i18n-util.js +256 -0
  156. package/dist/esm/version.json +5 -0
  157. package/dist/types/analytics.d.ts +21 -0
  158. package/dist/types/components/MessagesIntlProvider.d.ts +9 -0
  159. package/dist/types/components/SmartUserPicker.d.ts +30 -0
  160. package/dist/types/components/index.d.ts +4 -0
  161. package/dist/types/config/index.d.ts +9 -0
  162. package/dist/types/i18n/cs.d.ts +18 -0
  163. package/dist/types/i18n/da.d.ts +18 -0
  164. package/dist/types/i18n/de.d.ts +18 -0
  165. package/dist/types/i18n/en.d.ts +7 -0
  166. package/dist/types/i18n/en_GB.d.ts +7 -0
  167. package/dist/types/i18n/en_ZZ.d.ts +18 -0
  168. package/dist/types/i18n/es.d.ts +18 -0
  169. package/dist/types/i18n/et.d.ts +8 -0
  170. package/dist/types/i18n/fi.d.ts +18 -0
  171. package/dist/types/i18n/fr.d.ts +18 -0
  172. package/dist/types/i18n/hu.d.ts +18 -0
  173. package/dist/types/i18n/index.d.ts +36 -0
  174. package/dist/types/i18n/is.d.ts +7 -0
  175. package/dist/types/i18n/it.d.ts +18 -0
  176. package/dist/types/i18n/ja.d.ts +18 -0
  177. package/dist/types/i18n/ko.d.ts +18 -0
  178. package/dist/types/i18n/languages.d.ts +27 -0
  179. package/dist/types/i18n/nb.d.ts +18 -0
  180. package/dist/types/i18n/nl.d.ts +18 -0
  181. package/dist/types/i18n/pl.d.ts +18 -0
  182. package/dist/types/i18n/pt_BR.d.ts +18 -0
  183. package/dist/types/i18n/pt_PT.d.ts +8 -0
  184. package/dist/types/i18n/ro.d.ts +7 -0
  185. package/dist/types/i18n/ru.d.ts +18 -0
  186. package/dist/types/i18n/sk.d.ts +8 -0
  187. package/dist/types/i18n/sv.d.ts +18 -0
  188. package/dist/types/i18n/th.d.ts +18 -0
  189. package/dist/types/i18n/tr.d.ts +18 -0
  190. package/dist/types/i18n/uk.d.ts +18 -0
  191. package/dist/types/i18n/vi.d.ts +18 -0
  192. package/dist/types/i18n/zh.d.ts +18 -0
  193. package/dist/types/i18n/zh_TW.d.ts +18 -0
  194. package/dist/types/i18n.d.ts +47 -0
  195. package/dist/types/index.d.ts +6 -0
  196. package/dist/types/service/constants.d.ts +4 -0
  197. package/dist/types/service/default-value-hydration-client.d.ts +8 -0
  198. package/dist/types/service/graphqlUtils.d.ts +14 -0
  199. package/dist/types/service/index.d.ts +2 -0
  200. package/dist/types/service/recommendation-client.d.ts +5 -0
  201. package/dist/types/service/teams-client.d.ts +12 -0
  202. package/dist/types/service/users-client.d.ts +11 -0
  203. package/dist/types/service/users-transformer.d.ts +22 -0
  204. package/dist/types/types.d.ts +208 -0
  205. package/dist/types/ufoExperiences.d.ts +3 -0
  206. package/dist/types/util/i18n-util.d.ts +11 -0
  207. package/docs/0-intro.tsx +52 -0
  208. package/package.json +56 -0
  209. 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,8 @@
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 (Portugal)
8
+ export default {};
@@ -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,8 @@
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
+ // Slovak
8
+ export default {};
@@ -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,11 @@
1
+ export const UNKNOWN = 'Unknown';
2
+ export const UNKNOWN_USER = {
3
+ id: UNKNOWN,
4
+ name: UNKNOWN,
5
+ type: 'user'
6
+ };
7
+ export const UNKNOWN_TEAM = {
8
+ id: UNKNOWN,
9
+ name: UNKNOWN,
10
+ type: 'team'
11
+ };
@@ -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,2 @@
1
+ export { default as getUserRecommendations } from './recommendation-client';
2
+ export { default as hydrateDefaultValues } from './default-value-hydration-client';
@@ -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;