@atlaskit/mention 27.17.1 → 27.18.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 (225) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/cjs/api/AbstractMentionResource.js +111 -0
  3. package/dist/cjs/api/AbstractPresenceResource.js +41 -0
  4. package/dist/cjs/api/AbstractResource.js +48 -0
  5. package/dist/cjs/api/Callback.js +5 -0
  6. package/dist/cjs/api/DefaultMentionNameResolver.js +178 -0
  7. package/dist/cjs/api/DefaultPresenceCache.js +159 -0
  8. package/dist/cjs/api/DefaultPresenceParser.js +91 -0
  9. package/dist/cjs/api/HttpError.js +16 -0
  10. package/dist/cjs/api/MentionNameResolver.js +13 -201
  11. package/dist/cjs/api/MentionResource.js +52 -157
  12. package/dist/cjs/api/PresenceResource.js +39 -263
  13. package/dist/cjs/api/Queue.js +5 -0
  14. package/dist/cjs/api/isResolvingMentionProvider.js +9 -0
  15. package/dist/cjs/api/mergeNameResolverQueues.js +36 -0
  16. package/dist/cjs/components/Mention/MentionInternal.js +247 -0
  17. package/dist/cjs/components/Mention/ResourcedMention.js +5 -4
  18. package/dist/cjs/components/Mention/index.js +29 -243
  19. package/dist/cjs/components/MentionAvatar/index.js +5 -4
  20. package/dist/cjs/components/MentionItem/index.js +18 -12
  21. package/dist/cjs/components/MentionList/index.js +4 -3
  22. package/dist/cjs/components/MentionPicker/MentionPicker.js +231 -0
  23. package/dist/cjs/components/MentionPicker/index.js +18 -225
  24. package/dist/cjs/components/MessagesIntlProvider/index.js +2 -2
  25. package/dist/cjs/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +228 -0
  26. package/dist/cjs/components/ResourcedMentionList/index.js +14 -223
  27. package/dist/cjs/index.js +17 -15
  28. package/dist/cjs/is-agent-mention.js +12 -0
  29. package/dist/cjs/is-app-mention.js +10 -0
  30. package/dist/cjs/is-promise.js +9 -0
  31. package/dist/cjs/is-restricted.js +10 -0
  32. package/dist/cjs/is-special-mention-text.js +9 -0
  33. package/dist/cjs/is-special-mention.js +10 -0
  34. package/dist/cjs/is-team-mention.js +10 -0
  35. package/dist/cjs/resource.js +15 -12
  36. package/dist/cjs/team-resource.js +9 -9
  37. package/dist/cjs/typeahead.js +4 -0
  38. package/dist/cjs/types.js +71 -30
  39. package/dist/cjs/util/actual-mouse-move.js +14 -0
  40. package/dist/cjs/util/analytics.js +91 -107
  41. package/dist/cjs/util/build-sli-payload.js +27 -0
  42. package/dist/cjs/util/fire-analytics-mention-event.js +32 -0
  43. package/dist/cjs/util/fire-analytics-mention-hydration-event.js +33 -0
  44. package/dist/cjs/util/fire-analytics-mention-typeahead-event.js +34 -0
  45. package/dist/cjs/util/fire-analytics.js +18 -0
  46. package/dist/cjs/util/fire-sli-analytics-event.js +16 -0
  47. package/dist/cjs/util/get-messages-for-locale.js +233 -0
  48. package/dist/cjs/util/i18n.js +9 -254
  49. package/dist/cjs/util/left-click.js +9 -0
  50. package/dist/cjs/util/mouse-location.js +12 -0
  51. package/dist/cjs/util/mouse.js +1 -26
  52. package/dist/cjs/util/package-name.js +7 -0
  53. package/dist/cjs/util/package-version.js +7 -0
  54. package/dist/cjs/util/prop-formatter.js +25 -0
  55. package/dist/es2019/api/AbstractMentionResource.js +73 -0
  56. package/dist/es2019/api/AbstractPresenceResource.js +17 -0
  57. package/dist/es2019/api/AbstractResource.js +33 -0
  58. package/dist/es2019/api/Callback.js +1 -0
  59. package/dist/es2019/api/DefaultMentionNameResolver.js +152 -0
  60. package/dist/es2019/api/DefaultPresenceCache.js +111 -0
  61. package/dist/es2019/api/DefaultPresenceParser.js +58 -0
  62. package/dist/es2019/api/HttpError.js +8 -0
  63. package/dist/es2019/api/MentionNameResolver.js +13 -176
  64. package/dist/es2019/api/MentionResource.js +28 -122
  65. package/dist/es2019/api/PresenceResource.js +19 -185
  66. package/dist/es2019/api/Queue.js +1 -0
  67. package/dist/es2019/api/isResolvingMentionProvider.js +1 -0
  68. package/dist/es2019/api/mergeNameResolverQueues.js +25 -0
  69. package/dist/es2019/components/Mention/MentionInternal.js +225 -0
  70. package/dist/es2019/components/Mention/ResourcedMention.js +4 -3
  71. package/dist/es2019/components/Mention/index.js +19 -223
  72. package/dist/es2019/components/MentionAvatar/index.js +3 -2
  73. package/dist/es2019/components/MentionItem/index.js +14 -8
  74. package/dist/es2019/components/MentionList/index.js +2 -1
  75. package/dist/es2019/components/MentionPicker/MentionPicker.js +198 -0
  76. package/dist/es2019/components/MentionPicker/index.js +15 -198
  77. package/dist/es2019/components/MessagesIntlProvider/index.js +1 -1
  78. package/dist/es2019/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +187 -0
  79. package/dist/es2019/components/ResourcedMentionList/index.js +9 -187
  80. package/dist/es2019/element.js +5 -0
  81. package/dist/es2019/index.js +13 -9
  82. package/dist/es2019/is-agent-mention.js +6 -0
  83. package/dist/es2019/is-app-mention.js +4 -0
  84. package/dist/es2019/is-promise.js +1 -0
  85. package/dist/es2019/is-restricted.js +4 -0
  86. package/dist/es2019/is-special-mention-text.js +3 -0
  87. package/dist/es2019/is-special-mention.js +4 -0
  88. package/dist/es2019/is-team-mention.js +4 -0
  89. package/dist/es2019/item.js +5 -0
  90. package/dist/es2019/resource.js +15 -5
  91. package/dist/es2019/team-resource.js +10 -4
  92. package/dist/es2019/typeahead.js +5 -0
  93. package/dist/es2019/types.js +30 -21
  94. package/dist/es2019/util/actual-mouse-move.js +8 -0
  95. package/dist/es2019/util/analytics.js +35 -91
  96. package/dist/es2019/util/build-sli-payload.js +18 -0
  97. package/dist/es2019/util/fire-analytics-mention-event.js +24 -0
  98. package/dist/es2019/util/fire-analytics-mention-hydration-event.js +25 -0
  99. package/dist/es2019/util/fire-analytics-mention-typeahead-event.js +24 -0
  100. package/dist/es2019/util/fire-analytics.js +10 -0
  101. package/dist/es2019/util/fire-sli-analytics-event.js +8 -0
  102. package/dist/es2019/util/get-messages-for-locale.js +145 -0
  103. package/dist/es2019/util/i18n.js +2 -165
  104. package/dist/es2019/util/left-click.js +3 -0
  105. package/dist/es2019/util/mouse-location.js +6 -0
  106. package/dist/es2019/util/mouse.js +0 -18
  107. package/dist/es2019/util/package-name.js +1 -0
  108. package/dist/es2019/util/package-version.js +1 -0
  109. package/dist/es2019/util/prop-formatter.js +18 -0
  110. package/dist/esm/api/AbstractMentionResource.js +104 -0
  111. package/dist/esm/api/AbstractPresenceResource.js +34 -0
  112. package/dist/esm/api/AbstractResource.js +41 -0
  113. package/dist/esm/api/Callback.js +1 -0
  114. package/dist/esm/api/DefaultMentionNameResolver.js +171 -0
  115. package/dist/esm/api/DefaultPresenceCache.js +152 -0
  116. package/dist/esm/api/DefaultPresenceParser.js +84 -0
  117. package/dist/esm/api/HttpError.js +9 -0
  118. package/dist/esm/api/MentionNameResolver.js +13 -198
  119. package/dist/esm/api/MentionResource.js +30 -154
  120. package/dist/esm/api/PresenceResource.js +22 -256
  121. package/dist/esm/api/Queue.js +1 -0
  122. package/dist/esm/api/isResolvingMentionProvider.js +3 -0
  123. package/dist/esm/api/mergeNameResolverQueues.js +29 -0
  124. package/dist/esm/components/Mention/MentionInternal.js +242 -0
  125. package/dist/esm/components/Mention/ResourcedMention.js +4 -3
  126. package/dist/esm/components/Mention/index.js +19 -240
  127. package/dist/esm/components/MentionAvatar/index.js +3 -2
  128. package/dist/esm/components/MentionItem/index.js +14 -8
  129. package/dist/esm/components/MentionList/index.js +2 -1
  130. package/dist/esm/components/MentionPicker/MentionPicker.js +225 -0
  131. package/dist/esm/components/MentionPicker/index.js +15 -225
  132. package/dist/esm/components/MessagesIntlProvider/index.js +1 -1
  133. package/dist/esm/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +221 -0
  134. package/dist/esm/components/ResourcedMentionList/index.js +9 -221
  135. package/dist/esm/element.js +5 -0
  136. package/dist/esm/index.js +13 -9
  137. package/dist/esm/is-agent-mention.js +6 -0
  138. package/dist/esm/is-app-mention.js +4 -0
  139. package/dist/esm/is-promise.js +3 -0
  140. package/dist/esm/is-restricted.js +4 -0
  141. package/dist/esm/is-special-mention-text.js +3 -0
  142. package/dist/esm/is-special-mention.js +4 -0
  143. package/dist/esm/is-team-mention.js +4 -0
  144. package/dist/esm/item.js +5 -0
  145. package/dist/esm/resource.js +15 -5
  146. package/dist/esm/team-resource.js +10 -4
  147. package/dist/esm/typeahead.js +5 -0
  148. package/dist/esm/types.js +30 -23
  149. package/dist/esm/util/actual-mouse-move.js +8 -0
  150. package/dist/esm/util/analytics.js +35 -105
  151. package/dist/esm/util/build-sli-payload.js +20 -0
  152. package/dist/esm/util/fire-analytics-mention-event.js +26 -0
  153. package/dist/esm/util/fire-analytics-mention-hydration-event.js +27 -0
  154. package/dist/esm/util/fire-analytics-mention-typeahead-event.js +28 -0
  155. package/dist/esm/util/fire-analytics.js +12 -0
  156. package/dist/esm/util/fire-sli-analytics-event.js +10 -0
  157. package/dist/esm/util/get-messages-for-locale.js +163 -0
  158. package/dist/esm/util/i18n.js +2 -183
  159. package/dist/esm/util/left-click.js +3 -0
  160. package/dist/esm/util/mouse-location.js +6 -0
  161. package/dist/esm/util/mouse.js +0 -18
  162. package/dist/esm/util/package-name.js +1 -0
  163. package/dist/esm/util/package-version.js +1 -0
  164. package/dist/esm/util/prop-formatter.js +18 -0
  165. package/dist/types/api/AbstractMentionResource.d.ts +15 -0
  166. package/dist/types/api/AbstractPresenceResource.d.ts +6 -0
  167. package/dist/types/api/AbstractResource.d.ts +11 -0
  168. package/dist/types/api/Callback.d.ts +4 -0
  169. package/dist/types/api/DefaultMentionNameResolver.d.ts +27 -0
  170. package/dist/types/api/DefaultPresenceCache.d.ts +57 -0
  171. package/dist/types/api/DefaultPresenceParser.d.ts +8 -0
  172. package/dist/types/api/HttpError.d.ts +7 -0
  173. package/dist/types/api/MentionNameResolver.d.ts +14 -35
  174. package/dist/types/api/MentionResource.d.ts +18 -33
  175. package/dist/types/api/PresenceResource.d.ts +15 -69
  176. package/dist/types/api/Queue.d.ts +2 -0
  177. package/dist/types/api/isResolvingMentionProvider.d.ts +2 -0
  178. package/dist/types/api/mergeNameResolverQueues.d.ts +6 -0
  179. package/dist/types/components/Mention/MentionInternal.d.ts +27 -0
  180. package/dist/types/components/Mention/ResourcedMention.d.ts +1 -1
  181. package/dist/types/components/Mention/index.d.ts +9 -20
  182. package/dist/types/components/MentionAvatar/index.d.ts +1 -1
  183. package/dist/types/components/MentionItem/index.d.ts +4 -1
  184. package/dist/types/components/MentionPicker/MentionPicker.d.ts +46 -0
  185. package/dist/types/components/MentionPicker/index.d.ts +5 -42
  186. package/dist/types/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.d.ts +30 -0
  187. package/dist/types/components/ResourcedMentionList/index.d.ts +5 -27
  188. package/dist/types/element.d.ts +3 -0
  189. package/dist/types/index.d.ts +15 -10
  190. package/dist/types/is-agent-mention.d.ts +2 -0
  191. package/dist/types/is-app-mention.d.ts +2 -0
  192. package/dist/types/is-promise.d.ts +1 -0
  193. package/dist/types/is-restricted.d.ts +1 -0
  194. package/dist/types/is-special-mention-text.d.ts +1 -0
  195. package/dist/types/is-special-mention.d.ts +2 -0
  196. package/dist/types/is-team-mention.d.ts +2 -0
  197. package/dist/types/item.d.ts +3 -0
  198. package/dist/types/resource.d.ts +15 -6
  199. package/dist/types/team-resource.d.ts +10 -4
  200. package/dist/types/typeahead.d.ts +3 -0
  201. package/dist/types/types.d.ts +28 -8
  202. package/dist/types/util/actual-mouse-move.d.ts +2 -0
  203. package/dist/types/util/analytics.d.ts +33 -10
  204. package/dist/types/util/build-sli-payload.d.ts +4 -0
  205. package/dist/types/util/fire-analytics-mention-event.d.ts +1 -0
  206. package/dist/types/util/fire-analytics-mention-hydration-event.d.ts +1 -0
  207. package/dist/types/util/fire-analytics-mention-typeahead-event.d.ts +1 -0
  208. package/dist/types/util/fire-analytics.d.ts +1 -0
  209. package/dist/types/util/fire-sli-analytics-event.d.ts +1 -0
  210. package/dist/types/util/get-messages-for-locale.d.ts +11 -0
  211. package/dist/types/util/i18n.d.ts +0 -15
  212. package/dist/types/util/left-click.d.ts +2 -0
  213. package/dist/types/util/mouse-location.d.ts +3 -0
  214. package/dist/types/util/mouse.d.ts +0 -4
  215. package/dist/types/util/package-name.d.ts +1 -0
  216. package/dist/types/util/package-version.d.ts +1 -0
  217. package/dist/types/util/prop-formatter.d.ts +5 -0
  218. package/package.json +1 -1
  219. package/dist/cjs/i18n/index.js +0 -216
  220. package/dist/es2019/i18n/index.js +0 -37
  221. package/dist/esm/i18n/index.js +0 -37
  222. package/dist/types/i18n/index.d.ts +0 -37
  223. /package/dist/cjs/components/Mention/{index.compiled.css → MentionInternal.compiled.css} +0 -0
  224. /package/dist/es2019/components/Mention/{index.compiled.css → MentionInternal.compiled.css} +0 -0
  225. /package/dist/esm/components/Mention/{index.compiled.css → MentionInternal.compiled.css} +0 -0
@@ -1,172 +1,9 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import React from 'react';
3
- import { FormattedMessage, useIntl } from 'react-intl';
4
1
  import { messages } from '../components/i18n';
5
- export const propFormatter = messageDescriptor => ({
6
- values,
7
- children
8
- }) => {
9
- const {
10
- formatMessage
11
- } = useIntl();
12
- const message = formatMessage(messageDescriptor, values);
13
- if (typeof children === 'function') {
14
- return children(message);
15
- }
16
- return /*#__PURE__*/React.createElement(FormattedMessage, _extends({
17
- values: values
18
- }, messageDescriptor));
19
- };
2
+ import { propFormatter } from './prop-formatter';
20
3
  export const UnknownUserError = propFormatter(messages.unknownUserError);
21
4
  export const NoAccessWarning = propFormatter(messages.noAccessWarning);
22
5
  export const NoAccessLabel = propFormatter(messages.noAccessLabel);
23
6
  export const DefaultHeadline = propFormatter(messages.defaultHeadline);
24
7
  export const DefaultAdvisedAction = propFormatter(messages.defaultAdvisedAction);
25
8
  export const LoginAgain = propFormatter(messages.loginAgain);
26
- export const DifferentText = propFormatter(messages.differentText);
27
-
28
- /**
29
- * Tries to get the most specific messages bundle for a given locale.
30
- *
31
- * Strategy:
32
- * 1. Try to find messages with the exact string (i.e. 'fr_FR')
33
- * 2. If that doesn't work, try to find messages for the country locale (i.e. 'fr')
34
- * 3. If that doesn't work, return english messages as a fallback.
35
- *
36
- * @param locale string specifying the locale like 'en_GB', or 'fr'.
37
- */
38
- export const getMessagesForLocale = async locale => {
39
- switch (locale) {
40
- case 'cs':
41
- {
42
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-cs" */'../i18n/cs').then(mod => mod.default);
43
- }
44
- case 'da':
45
- {
46
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-da" */'../i18n/da').then(mod => mod.default);
47
- }
48
- case 'de':
49
- {
50
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-de" */'../i18n/de').then(mod => mod.default);
51
- }
52
- case 'en':
53
- {
54
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-en" */'../i18n/en').then(mod => mod.default);
55
- }
56
- case 'en_GB':
57
- {
58
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-en_GB" */'../i18n/en_GB').then(mod => mod.default);
59
- }
60
- case 'en_ZZ':
61
- {
62
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-en_ZZ" */'../i18n/en_ZZ').then(mod => mod.default);
63
- }
64
- case 'es':
65
- {
66
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-es" */'../i18n/es').then(mod => mod.default);
67
- }
68
- case 'et':
69
- {
70
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-et" */'../i18n/et').then(mod => mod.default);
71
- }
72
- case 'fi':
73
- {
74
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-fi" */'../i18n/fi').then(mod => mod.default);
75
- }
76
- case 'fr':
77
- {
78
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-fr" */'../i18n/fr').then(mod => mod.default);
79
- }
80
- case 'hu':
81
- {
82
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-hu" */'../i18n/hu').then(mod => mod.default);
83
- }
84
- case 'is':
85
- {
86
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-is" */'../i18n/is').then(mod => mod.default);
87
- }
88
- case 'it':
89
- {
90
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-it" */'../i18n/it').then(mod => mod.default);
91
- }
92
- case 'ja':
93
- {
94
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-ja" */'../i18n/ja').then(mod => mod.default);
95
- }
96
- case 'ko':
97
- {
98
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-ko" */'../i18n/ko').then(mod => mod.default);
99
- }
100
- case 'nb':
101
- {
102
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-nb" */'../i18n/nb').then(mod => mod.default);
103
- }
104
- case 'nl':
105
- {
106
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-nl" */'../i18n/nl').then(mod => mod.default);
107
- }
108
- case 'pl':
109
- {
110
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-pl" */'../i18n/pl').then(mod => mod.default);
111
- }
112
- case 'pt_BR':
113
- case 'pt-BR':
114
- {
115
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-pt_BR" */'../i18n/pt_BR').then(mod => mod.default);
116
- }
117
- case 'pt_PT':
118
- case 'pt-PT':
119
- {
120
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-pt_PT" */'../i18n/pt_PT').then(mod => mod.default);
121
- }
122
- case 'ro':
123
- {
124
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-ro" */'../i18n/ro').then(mod => mod.default);
125
- }
126
- case 'ru':
127
- {
128
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-ru" */'../i18n/ru').then(mod => mod.default);
129
- }
130
- case 'sk':
131
- {
132
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-sk" */'../i18n/sk').then(mod => mod.default);
133
- }
134
- case 'sv':
135
- {
136
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-sv" */'../i18n/sv').then(mod => mod.default);
137
- }
138
- case 'th':
139
- {
140
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-th" */'../i18n/th').then(mod => mod.default);
141
- }
142
- case 'tr':
143
- {
144
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-tr" */'../i18n/tr').then(mod => mod.default);
145
- }
146
- case 'uk':
147
- {
148
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-uk" */'../i18n/uk').then(mod => mod.default);
149
- }
150
- case 'vi':
151
- {
152
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-vi" */'../i18n/vi').then(mod => mod.default);
153
- }
154
- case 'zh_TW':
155
- {
156
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-zh_TW" */'../i18n/zh_TW').then(mod => mod.default);
157
- }
158
- case 'zh':
159
- {
160
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-zh" */'../i18n/zh').then(mod => mod.default);
161
- }
162
- default:
163
- {
164
- const fragments = locale.split(/[_-]/);
165
- if (fragments.length === 2) {
166
- return getMessagesForLocale(fragments[0]);
167
- } else {
168
- return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-en" */'../i18n/en').then(mod => mod.default);
169
- }
170
- }
171
- }
172
- };
9
+ export const DifferentText = propFormatter(messages.differentText);
@@ -0,0 +1,3 @@
1
+ export function leftClick(event) {
2
+ return event.button === 0 && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
3
+ }
@@ -0,0 +1,6 @@
1
+ export function mouseLocation(event) {
2
+ return {
3
+ x: event.clientX,
4
+ y: event.clientY
5
+ };
6
+ }
@@ -1,18 +0,0 @@
1
- export function mouseLocation(event) {
2
- return {
3
- x: event.clientX,
4
- y: event.clientY
5
- };
6
- }
7
-
8
- // Used to prevent invalid mouse move detection on scroll
9
- // lastPosition is object (x, y)
10
- export function actualMouseMove(oldPosition, newPosition) {
11
- if (!oldPosition || oldPosition.x !== newPosition.x || oldPosition.y !== newPosition.y) {
12
- return true;
13
- }
14
- return false;
15
- }
16
- export function leftClick(event) {
17
- return event.button === 0 && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
18
- }
@@ -0,0 +1 @@
1
+ export const packageName = "@atlaskit/mention";
@@ -0,0 +1 @@
1
+ export const packageVersion = "27.17.1";
@@ -0,0 +1,18 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import { FormattedMessage, useIntl } from 'react-intl';
4
+ export const propFormatter = messageDescriptor => ({
5
+ values,
6
+ children
7
+ }) => {
8
+ const {
9
+ formatMessage
10
+ } = useIntl();
11
+ const message = formatMessage(messageDescriptor, values);
12
+ if (typeof children === 'function') {
13
+ return children(message);
14
+ }
15
+ return /*#__PURE__*/React.createElement(FormattedMessage, _extends({
16
+ values: values
17
+ }, messageDescriptor));
18
+ };
@@ -0,0 +1,104 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
4
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
5
+ import _inherits from "@babel/runtime/helpers/inherits";
6
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
7
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
8
+ import debug from '../util/logger';
9
+ import { AbstractResource } from './AbstractResource';
10
+ var MAX_NOTIFIED_ITEMS = 20;
11
+ export var AbstractMentionResource = /*#__PURE__*/function (_AbstractResource) {
12
+ function AbstractMentionResource() {
13
+ _classCallCheck(this, AbstractMentionResource);
14
+ return _callSuper(this, AbstractMentionResource, arguments);
15
+ }
16
+ _inherits(AbstractMentionResource, _AbstractResource);
17
+ return _createClass(AbstractMentionResource, [{
18
+ key: "shouldHighlightMention",
19
+ value: function shouldHighlightMention(_mention) {
20
+ return false;
21
+ }
22
+
23
+ // eslint-disable-next-line class-methods-use-this
24
+ }, {
25
+ key: "filter",
26
+ value: function filter(query) {
27
+ throw new Error("not yet implemented.\nParams: query=".concat(query));
28
+ }
29
+
30
+ // eslint-disable-next-line class-methods-use-this, no-unused-vars
31
+ }, {
32
+ key: "recordMentionSelection",
33
+ value: function recordMentionSelection(_mention) {
34
+ // Do nothing
35
+ }
36
+ }, {
37
+ key: "isFiltering",
38
+ value: function isFiltering(_query) {
39
+ return false;
40
+ }
41
+ }, {
42
+ key: "_notifyListeners",
43
+ value: function _notifyListeners(mentionsResult, stats) {
44
+ debug('ak-mention-resource._notifyListeners', mentionsResult && mentionsResult.mentions && mentionsResult.mentions.length, this.changeListeners);
45
+ this.changeListeners.forEach(function (listener, key) {
46
+ try {
47
+ listener(mentionsResult.mentions.slice(0, MAX_NOTIFIED_ITEMS), mentionsResult.query, stats);
48
+ } catch (e) {
49
+ // ignore error from listener
50
+ debug("error from listener '".concat(key, "', ignoring"), e);
51
+ }
52
+ });
53
+ }
54
+ }, {
55
+ key: "_notifyAllResultsListeners",
56
+ value: function _notifyAllResultsListeners(mentionsResult) {
57
+ debug('ak-mention-resource._notifyAllResultsListeners', mentionsResult && mentionsResult.mentions && mentionsResult.mentions.length, this.changeListeners);
58
+ this.allResultsListeners.forEach(function (listener, key) {
59
+ try {
60
+ listener(mentionsResult.mentions.slice(0, MAX_NOTIFIED_ITEMS), mentionsResult.query);
61
+ } catch (e) {
62
+ // ignore error from listener
63
+ debug("error from listener '".concat(key, "', ignoring"), e);
64
+ }
65
+ });
66
+ }
67
+ }, {
68
+ key: "_notifyErrorListeners",
69
+ value: function _notifyErrorListeners(error, query) {
70
+ this.errListeners.forEach(function (listener, key) {
71
+ try {
72
+ listener(error, query);
73
+ } catch (e) {
74
+ // ignore error from listener
75
+ debug("error from listener '".concat(key, "', ignoring"), e);
76
+ }
77
+ });
78
+ }
79
+ }, {
80
+ key: "_notifyInfoListeners",
81
+ value: function _notifyInfoListeners(info) {
82
+ this.infoListeners.forEach(function (listener, key) {
83
+ try {
84
+ listener(info);
85
+ } catch (e) {
86
+ // ignore error fromr listener
87
+ debug("error from listener '".concat(key, "', ignoring"), e);
88
+ }
89
+ });
90
+ }
91
+ }, {
92
+ key: "_notifyAnalyticsListeners",
93
+ value: function _notifyAnalyticsListeners(event, actionSubject, action, attributes) {
94
+ this.analyticsListeners.forEach(function (listener, key) {
95
+ try {
96
+ listener(event, actionSubject, action, attributes);
97
+ } catch (e) {
98
+ // ignore error from listener
99
+ debug("error from listener '".concat(key, "', ignoring"), e);
100
+ }
101
+ });
102
+ }
103
+ }]);
104
+ }(AbstractResource);
@@ -0,0 +1,34 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
4
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
5
+ import _inherits from "@babel/runtime/helpers/inherits";
6
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
7
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
8
+ import debug from '../util/logger';
9
+ import { AbstractResource } from './AbstractResource';
10
+ export var AbstractPresenceResource = /*#__PURE__*/function (_AbstractResource) {
11
+ function AbstractPresenceResource() {
12
+ _classCallCheck(this, AbstractPresenceResource);
13
+ return _callSuper(this, AbstractPresenceResource, arguments);
14
+ }
15
+ _inherits(AbstractPresenceResource, _AbstractResource);
16
+ return _createClass(AbstractPresenceResource, [{
17
+ key: "refreshPresence",
18
+ value: function refreshPresence(userIds) {
19
+ throw new Error("not yet implemented.\nParams: userIds=".concat(userIds));
20
+ }
21
+ }, {
22
+ key: "notifyListeners",
23
+ value: function notifyListeners(presences) {
24
+ this.changeListeners.forEach(function (listener, key) {
25
+ try {
26
+ listener(presences);
27
+ } catch (e) {
28
+ // ignore error from listener
29
+ debug("error from listener '".concat(key, "', ignoring"), e);
30
+ }
31
+ });
32
+ }
33
+ }]);
34
+ }(AbstractResource);
@@ -0,0 +1,41 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ export var AbstractResource = /*#__PURE__*/function () {
4
+ function AbstractResource() {
5
+ _classCallCheck(this, AbstractResource);
6
+ this.changeListeners = new Map();
7
+ this.allResultsListeners = new Map();
8
+ this.errListeners = new Map();
9
+ this.infoListeners = new Map();
10
+ this.analyticsListeners = new Map();
11
+ }
12
+ return _createClass(AbstractResource, [{
13
+ key: "subscribe",
14
+ value: function subscribe(key, callback, errCallback, infoCallback, allResultsCallback, analyticsListeners) {
15
+ if (callback) {
16
+ this.changeListeners.set(key, callback);
17
+ }
18
+ if (errCallback) {
19
+ this.errListeners.set(key, errCallback);
20
+ }
21
+ if (infoCallback) {
22
+ this.infoListeners.set(key, infoCallback);
23
+ }
24
+ if (allResultsCallback) {
25
+ this.allResultsListeners.set(key, allResultsCallback);
26
+ }
27
+ if (analyticsListeners) {
28
+ this.analyticsListeners.set(key, analyticsListeners);
29
+ }
30
+ }
31
+ }, {
32
+ key: "unsubscribe",
33
+ value: function unsubscribe(key) {
34
+ this.changeListeners.delete(key);
35
+ this.errListeners.delete(key);
36
+ this.infoListeners.delete(key);
37
+ this.allResultsListeners.delete(key);
38
+ this.analyticsListeners.delete(key);
39
+ }
40
+ }]);
41
+ }();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,171 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
+ import { MentionNameStatus } from '../types';
6
+ import { fireAnalyticsMentionHydrationEvent } from '../util/fire-analytics-mention-hydration-event';
7
+ import { mergeNameResolverQueues } from './mergeNameResolverQueues';
8
+ export var DefaultMentionNameResolver = /*#__PURE__*/function () {
9
+ function DefaultMentionNameResolver(client) {
10
+ var _this = this;
11
+ var analyticsProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
+ var onResolvedAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
13
+ _classCallCheck(this, DefaultMentionNameResolver);
14
+ _defineProperty(this, "nameCache", new Map());
15
+ _defineProperty(this, "nameQueue", new Map());
16
+ _defineProperty(this, "nameStartTime", new Map());
17
+ _defineProperty(this, "processingQueue", new Map());
18
+ _defineProperty(this, "debounce", 0);
19
+ _defineProperty(this, "debounceOnResolve", null);
20
+ _defineProperty(this, "isOnResolvedAllCalled", false);
21
+ _defineProperty(this, "processQueue", function () {
22
+ clearTimeout(_this.debounce);
23
+ _this.debounce = 0;
24
+ var _this$splitQueueAtLim = _this.splitQueueAtLimit(),
25
+ queue = _this$splitQueueAtLim.queue,
26
+ extraQueue = _this$splitQueueAtLim.extraQueue;
27
+ _this.nameQueue = extraQueue;
28
+ _this.processingQueue = mergeNameResolverQueues(_this.processingQueue, queue);
29
+ _this.client.lookupMentionNames(Array.from(queue.keys())).then(function (response) {
30
+ response.forEach(function (mentionDetail) {
31
+ var id = mentionDetail.id;
32
+ queue.delete(id);
33
+ _this.resolveQueueItem(mentionDetail);
34
+ });
35
+ queue.forEach(function (_callback, id) {
36
+ // No response from client for these ids treat as unknown
37
+ _this.resolveQueueItem({
38
+ id: id,
39
+ status: MentionNameStatus.UNKNOWN
40
+ });
41
+ });
42
+ }).catch(function () {
43
+ // Service completely failed, reject all items in the queue
44
+ queue.forEach(function (_callback, id) {
45
+ _this.resolveQueueItem({
46
+ id: id,
47
+ status: MentionNameStatus.SERVICE_ERROR
48
+ });
49
+ });
50
+ });
51
+
52
+ // Make sure anything left in the queue gets processed.
53
+ if (_this.nameQueue.size > 0) {
54
+ _this.scheduleProcessQueue();
55
+ } else {
56
+ _this.scheduleOnAllResolved();
57
+ }
58
+ });
59
+ this.client = client;
60
+ this.fireHydrationEvent = fireAnalyticsMentionHydrationEvent(analyticsProps);
61
+ // If provided, this will be called once all pending mentions in the queue are resolved.
62
+ // A sample usage is scrolling to a mention on page load, after the mentions have loadad.
63
+ this.onResolvedAll = onResolvedAll;
64
+ }
65
+ return _createClass(DefaultMentionNameResolver, [{
66
+ key: "lookupName",
67
+ value: function lookupName(id) {
68
+ var _this2 = this;
69
+ var name = this.nameCache.get(id);
70
+ if (name) {
71
+ this.fireAnalytics(true, name);
72
+ if (this.nameQueue.size === 0) {
73
+ this.scheduleOnAllResolved();
74
+ }
75
+ return name;
76
+ }
77
+ return new Promise(function (resolve) {
78
+ var processingItems = _this2.processingQueue.get(id);
79
+ if (processingItems) {
80
+ _this2.processingQueue.set(id, [].concat(_toConsumableArray(processingItems), [resolve]));
81
+ }
82
+ var queuedItems = _this2.nameQueue.get(id) || [];
83
+ _this2.nameQueue.set(id, [].concat(_toConsumableArray(queuedItems), [resolve]));
84
+ if (queuedItems.length === 0 && !processingItems) {
85
+ _this2.nameStartTime.set(id, Date.now());
86
+ }
87
+ _this2.scheduleProcessQueue();
88
+ if (_this2.isQueueAtLimit()) {
89
+ _this2.processQueue();
90
+ }
91
+ });
92
+ }
93
+ }, {
94
+ key: "cacheName",
95
+ value: function cacheName(id, name) {
96
+ this.nameCache.set(id, {
97
+ id: id,
98
+ name: name,
99
+ status: MentionNameStatus.OK
100
+ });
101
+ }
102
+ }, {
103
+ key: "scheduleProcessQueue",
104
+ value: function scheduleProcessQueue() {
105
+ if (!this.debounce) {
106
+ this.debounce = window.setTimeout(this.processQueue, DefaultMentionNameResolver.waitForBatch);
107
+ }
108
+ }
109
+ }, {
110
+ key: "scheduleOnAllResolved",
111
+ value: function scheduleOnAllResolved() {
112
+ var _this3 = this;
113
+ if (this.debounceOnResolve) {
114
+ clearTimeout(this.debounceOnResolve);
115
+ }
116
+ this.debounceOnResolve = window.setTimeout(function () {
117
+ if (_this3.isOnResolvedAllCalled) {
118
+ return;
119
+ }
120
+ _this3.onResolvedAll();
121
+ _this3.isOnResolvedAllCalled = true;
122
+ }, DefaultMentionNameResolver.waitForResolveAll);
123
+ }
124
+ }, {
125
+ key: "isQueueAtLimit",
126
+ value: function isQueueAtLimit() {
127
+ return this.nameQueue.size >= this.client.getLookupLimit();
128
+ }
129
+ }, {
130
+ key: "splitQueueAtLimit",
131
+ value: function splitQueueAtLimit() {
132
+ var values = Array.from(this.nameQueue.entries());
133
+ var splitPoint = this.client.getLookupLimit();
134
+ return {
135
+ queue: new Map(values.slice(0, splitPoint)),
136
+ extraQueue: new Map(values.slice(splitPoint))
137
+ };
138
+ }
139
+ }, {
140
+ key: "resolveQueueItem",
141
+ value: function resolveQueueItem(mentionDetail) {
142
+ var id = mentionDetail.id;
143
+ var resolvers = this.processingQueue.get(id);
144
+ if (resolvers) {
145
+ this.processingQueue.delete(id);
146
+ this.nameCache.set(id, mentionDetail);
147
+ resolvers.forEach(function (resolve) {
148
+ try {
149
+ resolve(mentionDetail);
150
+ } catch (_unused) {
151
+ // ignore - exception in consumer
152
+ }
153
+ });
154
+ this.fireAnalytics(false, mentionDetail);
155
+ }
156
+ }
157
+ }, {
158
+ key: "fireAnalytics",
159
+ value: function fireAnalytics(fromCache, mentionDetail) {
160
+ var id = mentionDetail.id;
161
+ var action = mentionDetail.status === MentionNameStatus.OK ? 'completed' : 'failed';
162
+ var start = this.nameStartTime.get(id);
163
+ var duration = start ? Date.now() - start : 0;
164
+ this.nameStartTime.delete(id);
165
+ this.fireHydrationEvent(action, id, fromCache, duration);
166
+ }
167
+ }]);
168
+ }();
169
+ _defineProperty(DefaultMentionNameResolver, "waitForBatch", 100);
170
+ // ms
171
+ _defineProperty(DefaultMentionNameResolver, "waitForResolveAll", 800);