@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,38 +1,17 @@
1
- import { type WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
2
- import { type MentionNameDetails, type MentionNameResolver } from '../types';
3
- import { type MentionNameClient } from './MentionNameClient';
4
- interface Callback {
5
- (value: MentionNameDetails): void;
6
- }
7
1
  export type { MentionNameResolver } from '../types';
8
- /** A queue for user ids */
9
- type Queue = Map<string, Callback[]>;
10
- export declare class DefaultMentionNameResolver implements MentionNameResolver {
11
- static waitForBatch: number;
12
- private static waitForResolveAll;
13
- private client;
14
- private nameCache;
15
- private nameQueue;
16
- private nameStartTime;
17
- private processingQueue;
18
- private debounce;
19
- private debounceOnResolve;
20
- private onResolvedAll;
21
- private isOnResolvedAllCalled;
22
- private fireHydrationEvent;
23
- constructor(client: MentionNameClient, analyticsProps?: WithAnalyticsEventsProps, onResolvedAll?: () => void);
24
- lookupName(id: string): Promise<MentionNameDetails> | MentionNameDetails;
25
- cacheName(id: string, name: string): void;
26
- private scheduleProcessQueue;
27
- private scheduleOnAllResolved;
28
- private isQueueAtLimit;
29
- private splitQueueAtLimit;
30
- private resolveQueueItem;
31
- private processQueue;
32
- private fireAnalytics;
33
- }
34
2
  /**
35
- * Merge the two queues making sure to merge callback arrays for items in queueB already in queueA.
36
- * This addresses [this ticket](https://product-fabric.atlassian.net/browse/QS-3789).
3
+ * @deprecated Use `import { DefaultMentionNameResolver } from '@atlaskit/mention/mention-name-resolver'` instead.
37
4
  */
38
- export declare function mergeNameResolverQueues(queueA: Queue, queueB: Queue): Queue;
5
+ export { DefaultMentionNameResolver } from './DefaultMentionNameResolver';
6
+ /**
7
+ * @deprecated Use `import { mergeNameResolverQueues } from '@atlaskit/mention/mention-name-resolver'` instead.
8
+ */
9
+ export { mergeNameResolverQueues } from './mergeNameResolverQueues';
10
+ /**
11
+ * @deprecated Use `import { Callback } from '@atlaskit/mention/mention-name-resolver'` instead.
12
+ */
13
+ export type { Callback } from './Callback';
14
+ /**
15
+ * @deprecated Use `import { Queue } from '@atlaskit/mention/mention-name-resolver'` instead.
16
+ */
17
+ export type { Queue } from './Queue';
@@ -1,4 +1,5 @@
1
- import { type AnalyticsCallback, type ErrorCallback, type InfoCallback, type InviteFlow, type MentionContextIdentifier, type MentionDescription, type MentionDisabledState, type MentionDisabledStateInput, type MentionNameDetails, type MentionProvider, type MentionResourceConfig, type MentionsResult, type MentionStats, type ResourceProvider, type ResultCallback, type UserRole } from '../types';
1
+ import { type InviteFlow, type MentionContextIdentifier, type MentionDescription, type MentionDisabledState, type MentionDisabledStateInput, type MentionNameDetails, type MentionProvider, type MentionResourceConfig, type MentionsResult, type UserRole } from '../types';
2
+ import { AbstractMentionResource } from './AbstractMentionResource';
2
3
  export type { MentionStats, ResultCallback, ErrorCallback, InfoCallback, MentionResourceConfig, ResourceProvider, MentionContextIdentifier, MentionProvider, } from '../types';
3
4
  /**
4
5
  * Configuration for the TeamMentionResource, which extends {@link MentionResourceConfig}
@@ -25,29 +26,6 @@ export interface ResolvingMentionProvider extends MentionProvider {
25
26
  resolveMentionName(id: string): Promise<MentionNameDetails> | MentionNameDetails;
26
27
  supportsMentionNameResolving(): boolean;
27
28
  }
28
- declare class AbstractResource<Result> implements ResourceProvider<Result> {
29
- protected changeListeners: Map<string, ResultCallback<Result>>;
30
- protected errListeners: Map<string, ErrorCallback>;
31
- protected infoListeners: Map<string, InfoCallback>;
32
- protected allResultsListeners: Map<string, ResultCallback<Result>>;
33
- protected analyticsListeners: Map<string, AnalyticsCallback>;
34
- constructor();
35
- subscribe(key: string, callback?: ResultCallback<Result>, errCallback?: ErrorCallback, infoCallback?: InfoCallback, allResultsCallback?: ResultCallback<Result>, analyticsListeners?: AnalyticsCallback): void;
36
- unsubscribe(key: string): void;
37
- }
38
- declare class AbstractMentionResource extends AbstractResource<MentionDescription[]> implements MentionProvider {
39
- shouldHighlightMention(_mention: MentionDescription): boolean;
40
- filter(query?: string): void;
41
- recordMentionSelection(_mention: MentionDescription): void;
42
- isFiltering(_query: string): boolean;
43
- protected _notifyListeners(mentionsResult: MentionsResult, stats?: MentionStats): void;
44
- protected _notifyAllResultsListeners(mentionsResult: MentionsResult): void;
45
- protected _notifyErrorListeners(error: Error, query?: string): void;
46
- protected _notifyInfoListeners(info: string): void;
47
- protected _notifyAnalyticsListeners(event: string, actionSubject: string, action: string, attributes?: {
48
- [key: string]: any;
49
- }): void;
50
- }
51
29
  /**
52
30
  * Provides a Javascript API
53
31
  */
@@ -94,13 +72,20 @@ export declare class MentionResource extends AbstractMentionResource implements
94
72
  protected remoteSearch(query: string, contextIdentifier?: MentionContextIdentifier): Promise<MentionsResult>;
95
73
  private transformServiceResponse;
96
74
  }
97
- export declare class HttpError implements Error {
98
- name: string;
99
- message: string;
100
- statusCode: number;
101
- stack?: string;
102
- constructor(statusCode: number, statusMessage: string);
103
- }
104
- export declare const isResolvingMentionProvider: (p: any) => p is ResolvingMentionProvider;
105
- export { AbstractResource, AbstractMentionResource };
106
75
  export default MentionResource;
76
+ /**
77
+ * @deprecated Use `import { HttpError } from '@atlaskit/mention/mention-resource'` instead.
78
+ */
79
+ export { HttpError } from './HttpError';
80
+ /**
81
+ * @deprecated Use `import { isResolvingMentionProvider } from '@atlaskit/mention/mention-resource'` instead.
82
+ */
83
+ export { isResolvingMentionProvider } from './isResolvingMentionProvider';
84
+ /**
85
+ * @deprecated Use `import { AbstractResource } from '@atlaskit/mention/mention-resource'` instead.
86
+ */
87
+ export { AbstractResource } from './AbstractResource';
88
+ /**
89
+ * @deprecated Use `import { AbstractMentionResource } from '@atlaskit/mention/mention-resource'` instead.
90
+ */
91
+ export { AbstractMentionResource } from './AbstractMentionResource';
@@ -1,5 +1,6 @@
1
1
  import { type Presence } from '../types';
2
- import { AbstractResource, type ResourceProvider } from './MentionResource';
2
+ import { AbstractPresenceResource } from './AbstractPresenceResource';
3
+ import { type ResourceProvider } from './MentionResource';
3
4
  export interface PresenceMap {
4
5
  [userId: string]: Presence;
5
6
  }
@@ -78,11 +79,7 @@ export interface PresenceParser {
78
79
  export interface PresenceProvider extends ResourceProvider<PresenceMap> {
79
80
  refreshPresence(userIds: string[]): void;
80
81
  }
81
- declare class AbstractPresenceResource extends AbstractResource<PresenceMap> implements PresenceProvider {
82
- refreshPresence(userIds: string[]): void;
83
- protected notifyListeners(presences: PresenceMap): void;
84
- }
85
- declare class PresenceResource extends AbstractPresenceResource {
82
+ export declare class PresenceResource extends AbstractPresenceResource {
86
83
  private config;
87
84
  private presenceCache;
88
85
  private presenceParser;
@@ -92,67 +89,16 @@ declare class PresenceResource extends AbstractPresenceResource {
92
89
  private queryDirectoryForPresences;
93
90
  private static cleanUrl;
94
91
  }
95
- export declare class DefaultPresenceCache implements PresenceCache {
96
- private static readonly defaultTimeout;
97
- private static readonly defaultFlushTrigger;
98
- private cache;
99
- private size;
100
- private expiryInMillis;
101
- private flushTrigger;
102
- constructor(cacheTimeout?: number, cacheTrigger?: number);
103
- /**
104
- * Precondition: _delete is only called internally if userId exists in cache
105
- * Removes cache entry
106
- * @param userId
107
- */
108
- private _delete;
109
- /**
110
- * Checks a cache entry and calls delete if the info has expired
111
- * @param userId
112
- */
113
- private _deleteIfExpired;
114
- /**
115
- * Cleans expired entries from cache
116
- */
117
- private _removeExpired;
118
- /**
119
- * Checks if a user exists in the cache
120
- * @param userId
121
- */
122
- contains(userId: string): boolean;
123
- /**
124
- * Retrieves a presence from the cache after checking for expired entries
125
- * @param userId - to index the cache
126
- * @returns Presence - the presence that matches the userId
127
- */
128
- get(userId: string): Presence;
129
- /**
130
- * Retrieve multiple presences at once from the cache
131
- * @param userIds - to index the cache
132
- * @returns PresenceMap - A map of userIds to cached Presences
133
- */
134
- getBulk(userIds: string[]): PresenceMap;
135
- /**
136
- * For a given list of ids, returns a subset
137
- * of all the ids with missing cache entries.
138
- * @param userIds - to index the cache
139
- * @returns string[] - ids missing from the cache
140
- */
141
- getMissingUserIds(userIds: string[]): string[];
142
- /**
143
- * Precondition: presMap only contains ids of users not in cache
144
- * expired users must first be removed then reinserted with updated presence
145
- * Updates the cache by adding the new Presence entries and setting the expiry time
146
- * @param presMap
147
- */
148
- update(presMap: PresenceMap): void;
149
- }
150
- export declare class DefaultPresenceParser implements PresenceParser {
151
- static FOCUS_STATE: string;
152
- mapState(state: string): string;
153
- parse(response: PresenceResponse): PresenceMap;
154
- private static extractState;
155
- private static isFocusState;
156
- }
157
- export { AbstractPresenceResource };
158
92
  export default PresenceResource;
93
+ /**
94
+ * @deprecated Use `import { DefaultPresenceCache } from '@atlaskit/mention/presence-resource'` instead.
95
+ */
96
+ export { DefaultPresenceCache } from './DefaultPresenceCache';
97
+ /**
98
+ * @deprecated Use `import { DefaultPresenceParser } from '@atlaskit/mention/presence-resource'` instead.
99
+ */
100
+ export { DefaultPresenceParser } from './DefaultPresenceParser';
101
+ /**
102
+ * @deprecated Use `import { AbstractPresenceResource } from '@atlaskit/mention/presence-resource'` instead.
103
+ */
104
+ export { AbstractPresenceResource } from './AbstractPresenceResource';
@@ -0,0 +1,2 @@
1
+ import type { Callback } from './Callback';
2
+ export /** A queue for user ids */ type Queue = Map<string, Callback[]>;
@@ -0,0 +1,2 @@
1
+ import type { ResolvingMentionProvider } from './MentionResource';
2
+ export declare const isResolvingMentionProvider: (p: any) => p is ResolvingMentionProvider;
@@ -0,0 +1,6 @@
1
+ import type { Queue } from './Queue';
2
+ /**
3
+ * Merge the two queues making sure to merge callback arrays for items in queueB already in queueA.
4
+ * This addresses [this ticket](https://product-fabric.atlassian.net/browse/QS-3789).
5
+ */
6
+ export declare function mergeNameResolverQueues(queueA: Queue, queueB: Queue): Queue;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @jsxRuntime classic
3
+ * @jsx jsx
4
+ * @jsxFrag React.Fragment
5
+ */
6
+ import React from 'react';
7
+ import type { Props } from './index';
8
+ type State = {
9
+ avatarUrl?: string;
10
+ hasAvatarError: boolean;
11
+ };
12
+ export declare class MentionInternal extends React.PureComponent<Props, State> {
13
+ private hoverTimeout?;
14
+ state: State;
15
+ constructor(props: Props);
16
+ componentDidMount(): void;
17
+ static getDerivedStateFromProps(props: Props, state: State): Partial<State> | null;
18
+ private handleAvatarError;
19
+ private handleOnClick;
20
+ private handleOnMouseEnter;
21
+ private handleOnMouseLeave;
22
+ private getMentionType;
23
+ componentWillUnmount(): void;
24
+ renderUnknownUserError(id: string): React.JSX.Element;
25
+ render(): React.JSX.Element;
26
+ }
27
+ export {};
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { type MentionProvider } from '../../api/MentionResource';
2
+ import type { MentionProvider } from '../../api/MentionResource';
3
3
  import { type MentionEventHandler } from '../../types';
4
4
  export interface Props {
5
5
  accessLevel?: string;
@@ -4,9 +4,13 @@
4
4
  * @jsxFrag React.Fragment
5
5
  */
6
6
  import React from 'react';
7
- import { type MentionEventHandler } from '../../types';
8
7
  import { type WithAnalyticsEventsProps } from '@atlaskit/analytics-next/withAnalyticsEvents';
8
+ import { type MentionEventHandler } from '../../types';
9
+ import { MentionInternal } from './MentionInternal';
9
10
  export declare const ANALYTICS_HOVER_DELAY = 1000;
11
+ /**
12
+ * @deprecated Use `import { UNKNOWN_USER_ID } from '@atlaskit/mention/constants'` instead.
13
+ */
10
14
  export { UNKNOWN_USER_ID } from '../../_constants';
11
15
  export type OwnProps = {
12
16
  accessLevel?: string;
@@ -38,25 +42,10 @@ export type OwnProps = {
38
42
  text: string;
39
43
  };
40
44
  export type Props = OwnProps & WithAnalyticsEventsProps;
41
- type State = {
42
- avatarUrl?: string;
43
- hasAvatarError: boolean;
44
- };
45
- export declare class MentionInternal extends React.PureComponent<Props, State> {
46
- private hoverTimeout?;
47
- state: State;
48
- constructor(props: Props);
49
- componentDidMount(): void;
50
- static getDerivedStateFromProps(props: Props, state: State): Partial<State> | null;
51
- private handleAvatarError;
52
- private handleOnClick;
53
- private handleOnMouseEnter;
54
- private handleOnMouseLeave;
55
- private getMentionType;
56
- componentWillUnmount(): void;
57
- renderUnknownUserError(id: string): React.JSX.Element;
58
- render(): React.JSX.Element;
59
- }
60
45
  declare const Mention: React.ForwardRefExoticComponent<Omit<OwnProps, keyof WithAnalyticsEventsProps> & React.RefAttributes<any>>;
61
46
  type Mention = MentionInternal;
62
47
  export default Mention;
48
+ /**
49
+ * @deprecated Use `import { MentionInternal } from '@atlaskit/mention/mention'` instead.
50
+ */
51
+ export { MentionInternal } from './MentionInternal';
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { type MentionDescription } from '../../types';
2
+ import type { MentionDescription } from '../../types';
3
3
  type MentionAvatarProps = {
4
4
  mention: MentionDescription;
5
5
  selected?: boolean;
@@ -1,5 +1,8 @@
1
1
  import React from 'react';
2
- import { type MentionDescription, type OnMentionEvent } from '../../types';
2
+ import type { MentionDescription, OnMentionEvent } from '../../types';
3
+ /**
4
+ * @deprecated Use `import { MENTION_ITEM_HEIGHT, MENTION_ITEM_HEIGHT_REFRESHED } from '@atlaskit/mention/mention-item/styles'` instead.
5
+ */
3
6
  export { MENTION_ITEM_HEIGHT, MENTION_ITEM_HEIGHT_REFRESHED } from './styles';
4
7
  export interface Props {
5
8
  forwardedRef?: React.Ref<HTMLDivElement>;
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ import { type IntlShape } from 'react-intl';
3
+ import { type WithAnalyticsEventsProps } from '@atlaskit/analytics-next/withAnalyticsEvents';
4
+ import type { Props, State } from './index';
5
+ /**
6
+ * @class MentionPicker
7
+ */
8
+ export declare class MentionPicker extends React.PureComponent<Props & WithAnalyticsEventsProps & {
9
+ intl: IntlShape;
10
+ }, State> {
11
+ private subscriberKey;
12
+ private mentionListRef?;
13
+ static defaultProps: {
14
+ onSelection: () => void;
15
+ onOpen: () => void;
16
+ onClose: () => void;
17
+ };
18
+ constructor(props: Props & WithAnalyticsEventsProps & {
19
+ intl: IntlShape;
20
+ });
21
+ componentDidMount(): void;
22
+ UNSAFE_componentWillReceiveProps(nextProps: Props & WithAnalyticsEventsProps): void;
23
+ componentWillUnmount(): void;
24
+ selectNext: () => void;
25
+ selectPrevious: () => void;
26
+ selectIndex: (index: number, callback?: () => any) => void;
27
+ selectId: (id: string, callback?: () => any) => void;
28
+ chooseCurrentSelection: () => void;
29
+ mentionsCount: () => number;
30
+ private applyPropChanges;
31
+ private subscribeResourceProvider;
32
+ private unsubscribeResourceProvider;
33
+ /**
34
+ * Called after the 'visible' state is changed to decide whether the onOpen or onClose
35
+ * handlers should be called.
36
+ *
37
+ * It should be noted that the visible state of the component is not considered in
38
+ * this function. Instead the old state and new state should be passed as parameters.
39
+ */
40
+ private onFilterVisibilityChange;
41
+ private filterChange;
42
+ private filterError;
43
+ private filterInfo;
44
+ private handleMentionListRef;
45
+ render(): React.JSX.Element;
46
+ }
@@ -4,6 +4,7 @@ import { type WithAnalyticsEventsProps } from '@atlaskit/analytics-next/withAnal
4
4
  import { type MentionProvider } from '../../api/MentionResource';
5
5
  import { type PresenceProvider } from '../../api/PresenceResource';
6
6
  import { type OnMentionEvent } from '../../types';
7
+ import { MentionPicker } from './MentionPicker';
7
8
  export interface OnOpen {
8
9
  (): void;
9
10
  }
@@ -28,50 +29,12 @@ export interface State {
28
29
  info?: string;
29
30
  visible: boolean;
30
31
  }
31
- /**
32
- * @class MentionPicker
33
- */
34
- export declare class MentionPicker extends React.PureComponent<Props & WithAnalyticsEventsProps & {
35
- intl: IntlShape;
36
- }, State> {
37
- private subscriberKey;
38
- private mentionListRef?;
39
- static defaultProps: {
40
- onSelection: () => void;
41
- onOpen: () => void;
42
- onClose: () => void;
43
- };
44
- constructor(props: Props & WithAnalyticsEventsProps & {
45
- intl: IntlShape;
46
- });
47
- componentDidMount(): void;
48
- UNSAFE_componentWillReceiveProps(nextProps: Props & WithAnalyticsEventsProps): void;
49
- componentWillUnmount(): void;
50
- selectNext: () => void;
51
- selectPrevious: () => void;
52
- selectIndex: (index: number, callback?: () => any) => void;
53
- selectId: (id: string, callback?: () => any) => void;
54
- chooseCurrentSelection: () => void;
55
- mentionsCount: () => number;
56
- private applyPropChanges;
57
- private subscribeResourceProvider;
58
- private unsubscribeResourceProvider;
59
- /**
60
- * Called after the 'visible' state is changed to decide whether the onOpen or onClose
61
- * handlers should be called.
62
- *
63
- * It should be noted that the visible state of the component is not considered in
64
- * this function. Instead the old state and new state should be passed as parameters.
65
- */
66
- private onFilterVisibilityChange;
67
- private filterChange;
68
- private filterError;
69
- private filterInfo;
70
- private handleMentionListRef;
71
- render(): React.JSX.Element;
72
- }
73
32
  export declare const MentionPickerWithAnalytics: React.ForwardRefExoticComponent<Omit<Omit<WithIntlProps<React.PropsWithChildren<Props & WithAnalyticsEventsProps & {
74
33
  intl: IntlShape;
75
34
  }>>, 'ref'> & React.RefAttributes<any>, keyof WithAnalyticsEventsProps> & React.RefAttributes<any>>;
76
35
  export type MentionPickerWithAnalytics = MentionPicker;
77
36
  export default MentionPickerWithAnalytics;
37
+ /**
38
+ * @deprecated Use `import { MentionPicker } from '@atlaskit/mention/mention-picker'` instead.
39
+ */
40
+ export { MentionPicker } from './MentionPicker';
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { type WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
3
+ import type { Props, State } from './index';
4
+ export declare class ResourcedMentionListWithoutAnalytics extends React.PureComponent<Props & WithAnalyticsEventsProps, State> {
5
+ private subscriberKey;
6
+ private mentionListRef?;
7
+ constructor(props: Props & WithAnalyticsEventsProps);
8
+ componentDidMount(): void;
9
+ UNSAFE_componentWillReceiveProps(nextProps: Props): void;
10
+ componentWillUnmount(): void;
11
+ selectNext: () => void;
12
+ selectPrevious: () => void;
13
+ selectIndex: (index: number, callback?: () => any) => void;
14
+ selectId: (id: string, callback?: () => any) => void;
15
+ chooseCurrentSelection: () => void;
16
+ mentionsCount: () => number;
17
+ private subscribeMentionProvider;
18
+ private subscribePresenceProvider;
19
+ private unsubscribeMentionProvider;
20
+ private unsubscribePresenceProvider;
21
+ private applyPropChanges;
22
+ private refreshPresences;
23
+ private filterChange;
24
+ private sendAnalytics;
25
+ private filterError;
26
+ private presenceUpdate;
27
+ private notifySelection;
28
+ private handleMentionListRef;
29
+ render(): React.JSX.Element;
30
+ }
@@ -3,6 +3,7 @@ import { type WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
3
3
  import { type MentionProvider } from '../../api/MentionResource';
4
4
  import { type PresenceProvider } from '../../api/PresenceResource';
5
5
  import { type MentionDescription, type OnMentionEvent } from '../../types';
6
+ import { ResourcedMentionListWithoutAnalytics } from './ResourcedMentionListWithoutAnalytics';
6
7
  export interface Props {
7
8
  onSelection?: OnMentionEvent;
8
9
  presenceProvider?: PresenceProvider;
@@ -14,33 +15,10 @@ export interface State {
14
15
  mentions: MentionDescription[];
15
16
  resourceError?: Error;
16
17
  }
17
- export declare class ResourcedMentionListWithoutAnalytics extends React.PureComponent<Props & WithAnalyticsEventsProps, State> {
18
- private subscriberKey;
19
- private mentionListRef?;
20
- constructor(props: Props & WithAnalyticsEventsProps);
21
- componentDidMount(): void;
22
- UNSAFE_componentWillReceiveProps(nextProps: Props): void;
23
- componentWillUnmount(): void;
24
- selectNext: () => void;
25
- selectPrevious: () => void;
26
- selectIndex: (index: number, callback?: () => any) => void;
27
- selectId: (id: string, callback?: () => any) => void;
28
- chooseCurrentSelection: () => void;
29
- mentionsCount: () => number;
30
- private subscribeMentionProvider;
31
- private subscribePresenceProvider;
32
- private unsubscribeMentionProvider;
33
- private unsubscribePresenceProvider;
34
- private applyPropChanges;
35
- private refreshPresences;
36
- private filterChange;
37
- private sendAnalytics;
38
- private filterError;
39
- private presenceUpdate;
40
- private notifySelection;
41
- private handleMentionListRef;
42
- render(): React.JSX.Element;
43
- }
44
18
  declare const ResourcedMentionList: React.ForwardRefExoticComponent<Omit<Props, keyof WithAnalyticsEventsProps> & React.RefAttributes<any>>;
45
19
  type ResourcedMentionList = ResourcedMentionListWithoutAnalytics;
46
20
  export default ResourcedMentionList;
21
+ /**
22
+ * @deprecated Use `import { ResourcedMentionListWithoutAnalytics } from '@atlaskit/mention/resourced-mention-list'` instead.
23
+ */
24
+ export { ResourcedMentionListWithoutAnalytics } from './ResourcedMentionListWithoutAnalytics';
@@ -1,3 +1,6 @@
1
1
  import Mention from './components/Mention';
2
2
  import ResourcedMention from './components/Mention/ResourcedMention';
3
+ /**
4
+ * @deprecated Use `import Mention from '@atlaskit/mention/mention'` instead.
5
+ */
3
6
  export { Mention, ResourcedMention, };
@@ -1,17 +1,22 @@
1
- import MentionResource, { AbstractMentionResource, type MentionContextIdentifier, type MentionProvider, type ResolvingMentionProvider, type MentionStats, type MentionResourceConfig, type TeamMentionResourceConfig, isResolvingMentionProvider } from './api/MentionResource';
2
- import TeamMentionResource from './api/TeamMentionResource';
3
- import PresenceResource, { type PresenceProvider, AbstractPresenceResource } from './api/PresenceResource';
4
- import { DefaultMentionNameResolver, type MentionNameResolver } from './api/MentionNameResolver';
1
+ import { ELEMENTS_CHANNEL } from './_constants';
2
+ import { AbstractMentionResource } from './api/AbstractMentionResource';
3
+ import { AbstractPresenceResource } from './api/AbstractPresenceResource';
4
+ import ContextMentionResource from './api/ContextMentionResource';
5
+ import { DefaultMentionNameResolver } from './api/DefaultMentionNameResolver';
5
6
  import { type MentionNameClient } from './api/MentionNameClient';
7
+ import type { MentionNameResolver } from './api/MentionNameResolver';
8
+ import MentionResource, { type MentionContextIdentifier, type MentionProvider, type ResolvingMentionProvider, type MentionStats, type MentionResourceConfig, type TeamMentionResourceConfig } from './api/MentionResource';
9
+ import { isResolvingMentionProvider } from './api/isResolvingMentionProvider';
10
+ import PresenceResource, { type PresenceProvider } from './api/PresenceResource';
11
+ import TeamMentionResource from './api/TeamMentionResource';
12
+ import Mention from './components/Mention';
13
+ import ResourcedMention from './components/Mention/ResourcedMention';
6
14
  import MentionItem from './components/MentionItem';
7
15
  import MentionList from './components/MentionList';
8
- import ResourcedMentionList from './components/ResourcedMentionList';
9
16
  import { MentionPickerWithAnalytics as MentionPicker } from './components/MentionPicker';
10
- import Mention from './components/Mention';
11
- import ResourcedMention from './components/Mention/ResourcedMention';
12
- import { type MentionDescription, type MentionsResult, MentionNameStatus, type MentionNameDetails, type InviteFlow, isSpecialMention, type TeamMember, UserAccessLevel, type UserRole, UserType, ComponentNames, Actions, SliNames } from './types';
13
- import { ELEMENTS_CHANNEL } from './_constants';
14
- import ContextMentionResource from './api/ContextMentionResource';
17
+ import ResourcedMentionList from './components/ResourcedMentionList';
18
+ import { isSpecialMention } from './is-special-mention';
19
+ import { type MentionDescription, type MentionsResult, MentionNameStatus, type MentionNameDetails, type InviteFlow, type TeamMember, UserAccessLevel, type UserRole, UserType, ComponentNames, Actions, SliNames } from './types';
15
20
  export { ContextMentionResource, MentionResource, TeamMentionResource, PresenceResource, DefaultMentionNameResolver, AbstractMentionResource, AbstractPresenceResource, MentionNameStatus, MentionItem, MentionList, ResourcedMentionList, MentionPicker, Mention, ResourcedMention, UserAccessLevel, UserType, ComponentNames, SliNames, Actions, isSpecialMention, isResolvingMentionProvider, ELEMENTS_CHANNEL, };
16
21
  export type { ResolvingMentionProvider, MentionProvider, PresenceProvider, MentionDescription, MentionsResult, MentionNameResolver, MentionNameClient, MentionNameDetails, MentionContextIdentifier, MentionStats, TeamMember, MentionResourceConfig, TeamMentionResourceConfig, InviteFlow, UserRole, };
17
22
  export default MentionPicker;
@@ -0,0 +1,2 @@
1
+ import type { MentionDescription } from './types';
2
+ export declare function isAgentMention(mention: MentionDescription): boolean;
@@ -0,0 +1,2 @@
1
+ import type { MentionDescription } from './types';
2
+ export declare function isAppMention(mention: MentionDescription): boolean | '' | undefined;
@@ -0,0 +1 @@
1
+ export declare const isPromise: <T>(p: any) => p is Promise<T>;
@@ -0,0 +1 @@
1
+ export declare function isRestricted(accessLevel?: string): boolean;
@@ -0,0 +1 @@
1
+ export declare function isSpecialMentionText(mentionText: string): boolean | '';
@@ -0,0 +1,2 @@
1
+ import type { MentionDescription } from './types';
2
+ export declare function isSpecialMention(mention: MentionDescription): boolean;
@@ -0,0 +1,2 @@
1
+ import type { MentionDescription } from './types';
2
+ export declare function isTeamMention(mention: MentionDescription): boolean | '' | undefined;
@@ -1,2 +1,5 @@
1
1
  import MentionItem, { MENTION_ITEM_HEIGHT, MENTION_ITEM_HEIGHT_REFRESHED } from './components/MentionItem';
2
+ /**
3
+ * @deprecated Use `import MentionItem, { MENTION_ITEM_HEIGHT, MENTION_ITEM_HEIGHT_REFRESHED } from '@atlaskit/mention/mention-item'` instead.
4
+ */
2
5
  export { MentionItem, MENTION_ITEM_HEIGHT, MENTION_ITEM_HEIGHT_REFRESHED, };
@@ -1,10 +1,19 @@
1
- import MentionResource, { AbstractMentionResource, type ResolvingMentionProvider, type MentionContextIdentifier, type MentionProvider, type MentionStats, type MentionResourceConfig, isResolvingMentionProvider } from './api/MentionResource';
2
- import PresenceResource, { type PresenceProvider, AbstractPresenceResource } from './api/PresenceResource';
3
- import { DefaultMentionNameResolver, type MentionNameResolver } from './api/MentionNameResolver';
4
- import { type MentionNameClient } from './api/MentionNameClient';
5
- import { type MentionDescription, type MentionsResult, isSpecialMention, MentionNameStatus, type MentionNameDetails } from './types';
6
1
  import { ELEMENTS_CHANNEL } from './_constants';
2
+ import { AbstractMentionResource } from './api/AbstractMentionResource';
3
+ import { AbstractPresenceResource } from './api/AbstractPresenceResource';
7
4
  import ContextMentionResource from './api/ContextMentionResource';
8
- import { SLI_EVENT_TYPE, SMART_EVENT_TYPE, buildSliPayload } from './util/analytics';
5
+ import { DefaultMentionNameResolver } from './api/DefaultMentionNameResolver';
6
+ import { type MentionNameClient } from './api/MentionNameClient';
7
+ import type { MentionNameResolver } from './api/MentionNameResolver';
8
+ import MentionResource, { type ResolvingMentionProvider, type MentionContextIdentifier, type MentionProvider, type MentionStats, type MentionResourceConfig } from './api/MentionResource';
9
+ import { isResolvingMentionProvider } from './api/isResolvingMentionProvider';
10
+ import PresenceResource, { type PresenceProvider } from './api/PresenceResource';
11
+ import { isSpecialMention } from './is-special-mention';
12
+ import { type MentionDescription, type MentionsResult, MentionNameStatus, type MentionNameDetails } from './types';
13
+ import { SLI_EVENT_TYPE, SMART_EVENT_TYPE } from './util/analytics';
14
+ import { buildSliPayload } from './util/build-sli-payload';
15
+ /**
16
+ * @deprecated Use `import ContextMentionResource, { MentionResource, PresenceResource, DefaultMentionNameResolver, MentionNameStatus, isSpecialMention, isResolvingMentionProvider, ELEMENTS_CHANNEL, SLI_EVENT_TYPE, SMART_EVENT_TYPE, buildSliPayload } from '@atlaskit/mention/context-mention-resource'` instead.
17
+ */
9
18
  export { ContextMentionResource, MentionResource, PresenceResource, AbstractMentionResource, AbstractPresenceResource, DefaultMentionNameResolver, MentionNameStatus, isSpecialMention, isResolvingMentionProvider, ELEMENTS_CHANNEL, SLI_EVENT_TYPE, SMART_EVENT_TYPE, buildSliPayload, };
10
19
  export type { ResolvingMentionProvider, MentionProvider, PresenceProvider, MentionDescription, MentionsResult, MentionNameClient, MentionNameResolver, MentionContextIdentifier, MentionStats, MentionResourceConfig, MentionNameDetails, };