@atlaskit/editor-plugin-mentions 2.6.4 → 2.6.6

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.
@@ -1,183 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.Mention = void 0;
9
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
- var _react = _interopRequireWildcard(require("react"));
14
- var _browser = require("@atlaskit/editor-common/browser");
15
- var _mention = require("@atlaskit/editor-common/mention");
16
- var _element = require("@atlaskit/mention/element");
17
- var _resource = require("@atlaskit/mention/resource");
18
- var _types = require("@atlaskit/mention/types");
19
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
- // Workaround for a firefox issue where dom selection is off sync
22
- // https://product-fabric.atlassian.net/browse/ED-12442
23
- var refreshBrowserSelection = function refreshBrowserSelection() {
24
- var domSelection = window.getSelection();
25
- if (domSelection) {
26
- var domRange = domSelection && domSelection.rangeCount === 1 && domSelection.getRangeAt(0).cloneRange();
27
- if (domRange) {
28
- domSelection.removeAllRanges();
29
- domSelection.addRange(domRange);
30
- }
31
- }
32
- };
33
- /**
34
- * This is the new preferred way to render mentions in the editor.
35
- * Introduced behind the `platform.editor.mentions-in-editor-popup-on-click` feature flag.
36
- */
37
- var Mention = exports.Mention = function Mention(props) {
38
- var accessLevel = props.accessLevel,
39
- eventHandlers = props.eventHandlers,
40
- id = props.id,
41
- text = props.text,
42
- localId = props.localId,
43
- mentionProvider = props.mentionProvider,
44
- profilecardProviderPromise = props.profilecardProvider;
45
- var _useState = (0, _react.useState)(undefined),
46
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
47
- profilecardProvider = _useState2[0],
48
- setProfilecardProvider = _useState2[1];
49
- var resolvedName = useResolvedName(id, text, mentionProvider);
50
-
51
- // Resolve the profilecard provider
52
- (0, _react.useEffect)(function () {
53
- var isCancelled = false;
54
- var resolveProfilecardProvider = /*#__PURE__*/function () {
55
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
56
- var _profilecardProvider;
57
- return _regenerator.default.wrap(function _callee$(_context) {
58
- while (1) switch (_context.prev = _context.next) {
59
- case 0:
60
- _context.prev = 0;
61
- _context.next = 3;
62
- return profilecardProviderPromise;
63
- case 3:
64
- _profilecardProvider = _context.sent;
65
- if (!isCancelled) {
66
- setProfilecardProvider(_profilecardProvider);
67
- }
68
- _context.next = 10;
69
- break;
70
- case 7:
71
- _context.prev = 7;
72
- _context.t0 = _context["catch"](0);
73
- if (!isCancelled) {
74
- setProfilecardProvider(undefined);
75
- }
76
- case 10:
77
- case "end":
78
- return _context.stop();
79
- }
80
- }, _callee, null, [[0, 7]]);
81
- }));
82
- return function resolveProfilecardProvider() {
83
- return _ref.apply(this, arguments);
84
- };
85
- }();
86
- if (profilecardProviderPromise) {
87
- resolveProfilecardProvider();
88
- }
89
- return function () {
90
- isCancelled = true;
91
- };
92
- }, [profilecardProviderPromise]);
93
- (0, _react.useEffect)(function () {
94
- // Workaround an issue where the selection is not updated immediately after adding
95
- // a mention when "sanitizePrivateContent" is enabled in the editor on safari.
96
- // This affects both insertion and paste behaviour it is applied to the component.
97
- // https://product-fabric.atlassian.net/browse/ED-14859
98
- if (_browser.browser.safari) {
99
- setTimeout(refreshBrowserSelection, 0);
100
- }
101
- }, []);
102
- var actionHandlers = {};
103
- ['onClick', 'onMouseEnter', 'onMouseLeave'].forEach(function (handler) {
104
- actionHandlers[handler] = eventHandlers && eventHandlers[handler] || function () {};
105
- });
106
- if (profilecardProvider) {
107
- return /*#__PURE__*/_react.default.createElement(_mention.MentionWithProfileCard, (0, _extends2.default)({
108
- autoFocus: false,
109
- id: id,
110
- text: resolvedName,
111
- accessLevel: accessLevel,
112
- mentionProvider: mentionProvider,
113
- profilecardProvider: profilecardProvider,
114
- localId: localId
115
- }, actionHandlers));
116
- } else {
117
- return /*#__PURE__*/_react.default.createElement(_element.ResourcedMention, (0, _extends2.default)({
118
- id: id,
119
- text: resolvedName,
120
- accessLevel: accessLevel,
121
- mentionProvider: mentionProvider,
122
- localId: localId
123
- }, actionHandlers));
124
- }
125
- };
126
- var useResolvedName = function useResolvedName(id, text, mentionProvider) {
127
- var _useState3 = (0, _react.useState)(text),
128
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
129
- resolvedName = _useState4[0],
130
- setResolvedName = _useState4[1];
131
- var processName = function processName(name) {
132
- if (name.status === _resource.MentionNameStatus.OK) {
133
- return "@".concat(name.name || '');
134
- } else {
135
- return "@_|unknown|_";
136
- }
137
- };
138
- (0, _react.useEffect)(function () {
139
- if (mentionProvider) {
140
- mentionProvider.then( /*#__PURE__*/function () {
141
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(provider) {
142
- var nameDetail;
143
- return _regenerator.default.wrap(function _callee2$(_context2) {
144
- while (1) switch (_context2.prev = _context2.next) {
145
- case 0:
146
- if (!(!text && (0, _resource.isResolvingMentionProvider)(provider))) {
147
- _context2.next = 13;
148
- break;
149
- }
150
- nameDetail = provider.resolveMentionName(id);
151
- if (!(0, _types.isPromise)(nameDetail)) {
152
- _context2.next = 10;
153
- break;
154
- }
155
- _context2.t0 = processName;
156
- _context2.next = 6;
157
- return nameDetail;
158
- case 6:
159
- _context2.t1 = _context2.sent;
160
- return _context2.abrupt("return", (0, _context2.t0)(_context2.t1));
161
- case 10:
162
- return _context2.abrupt("return", processName(nameDetail));
163
- case 11:
164
- _context2.next = 14;
165
- break;
166
- case 13:
167
- return _context2.abrupt("return", text);
168
- case 14:
169
- case "end":
170
- return _context2.stop();
171
- }
172
- }, _callee2);
173
- }));
174
- return function (_x) {
175
- return _ref2.apply(this, arguments);
176
- };
177
- }()).then(function (resolvedName) {
178
- setResolvedName(resolvedName);
179
- });
180
- }
181
- }, [id, text, mentionProvider]);
182
- return resolvedName;
183
- };
@@ -1,121 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import React, { useEffect, useState } from 'react';
3
- import { browser } from '@atlaskit/editor-common/browser';
4
- import { MentionWithProfileCard } from '@atlaskit/editor-common/mention';
5
- import { ResourcedMention } from '@atlaskit/mention/element';
6
- import { isResolvingMentionProvider, MentionNameStatus } from '@atlaskit/mention/resource';
7
- import { isPromise } from '@atlaskit/mention/types';
8
-
9
- // Workaround for a firefox issue where dom selection is off sync
10
- // https://product-fabric.atlassian.net/browse/ED-12442
11
- const refreshBrowserSelection = () => {
12
- const domSelection = window.getSelection();
13
- if (domSelection) {
14
- const domRange = domSelection && domSelection.rangeCount === 1 && domSelection.getRangeAt(0).cloneRange();
15
- if (domRange) {
16
- domSelection.removeAllRanges();
17
- domSelection.addRange(domRange);
18
- }
19
- }
20
- };
21
- /**
22
- * This is the new preferred way to render mentions in the editor.
23
- * Introduced behind the `platform.editor.mentions-in-editor-popup-on-click` feature flag.
24
- */
25
- export const Mention = props => {
26
- const {
27
- accessLevel,
28
- eventHandlers,
29
- id,
30
- text,
31
- localId,
32
- mentionProvider,
33
- profilecardProvider: profilecardProviderPromise
34
- } = props;
35
- const [profilecardProvider, setProfilecardProvider] = useState(undefined);
36
- const resolvedName = useResolvedName(id, text, mentionProvider);
37
-
38
- // Resolve the profilecard provider
39
- useEffect(() => {
40
- let isCancelled = false;
41
- const resolveProfilecardProvider = async () => {
42
- try {
43
- const profilecardProvider = await profilecardProviderPromise;
44
- if (!isCancelled) {
45
- setProfilecardProvider(profilecardProvider);
46
- }
47
- } catch (error) {
48
- if (!isCancelled) {
49
- setProfilecardProvider(undefined);
50
- }
51
- }
52
- };
53
- if (profilecardProviderPromise) {
54
- resolveProfilecardProvider();
55
- }
56
- return () => {
57
- isCancelled = true;
58
- };
59
- }, [profilecardProviderPromise]);
60
- useEffect(() => {
61
- // Workaround an issue where the selection is not updated immediately after adding
62
- // a mention when "sanitizePrivateContent" is enabled in the editor on safari.
63
- // This affects both insertion and paste behaviour it is applied to the component.
64
- // https://product-fabric.atlassian.net/browse/ED-14859
65
- if (browser.safari) {
66
- setTimeout(refreshBrowserSelection, 0);
67
- }
68
- }, []);
69
- const actionHandlers = {};
70
- ['onClick', 'onMouseEnter', 'onMouseLeave'].forEach(handler => {
71
- actionHandlers[handler] = eventHandlers && eventHandlers[handler] || (() => {});
72
- });
73
- if (profilecardProvider) {
74
- return /*#__PURE__*/React.createElement(MentionWithProfileCard, _extends({
75
- autoFocus: false,
76
- id: id,
77
- text: resolvedName,
78
- accessLevel: accessLevel,
79
- mentionProvider: mentionProvider,
80
- profilecardProvider: profilecardProvider,
81
- localId: localId
82
- }, actionHandlers));
83
- } else {
84
- return /*#__PURE__*/React.createElement(ResourcedMention, _extends({
85
- id: id,
86
- text: resolvedName,
87
- accessLevel: accessLevel,
88
- mentionProvider: mentionProvider,
89
- localId: localId
90
- }, actionHandlers));
91
- }
92
- };
93
- const useResolvedName = (id, text, mentionProvider) => {
94
- const [resolvedName, setResolvedName] = useState(text);
95
- const processName = name => {
96
- if (name.status === MentionNameStatus.OK) {
97
- return `@${name.name || ''}`;
98
- } else {
99
- return `@_|unknown|_`;
100
- }
101
- };
102
- useEffect(() => {
103
- if (mentionProvider) {
104
- mentionProvider.then(async provider => {
105
- if (!text && isResolvingMentionProvider(provider)) {
106
- const nameDetail = provider.resolveMentionName(id);
107
- if (isPromise(nameDetail)) {
108
- return processName(await nameDetail);
109
- } else {
110
- return processName(nameDetail);
111
- }
112
- } else {
113
- return text;
114
- }
115
- }).then(resolvedName => {
116
- setResolvedName(resolvedName);
117
- });
118
- }
119
- }, [id, text, mentionProvider]);
120
- return resolvedName;
121
- };
@@ -1,174 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
- import _regeneratorRuntime from "@babel/runtime/regenerator";
5
- import React, { useEffect, useState } from 'react';
6
- import { browser } from '@atlaskit/editor-common/browser';
7
- import { MentionWithProfileCard } from '@atlaskit/editor-common/mention';
8
- import { ResourcedMention } from '@atlaskit/mention/element';
9
- import { isResolvingMentionProvider, MentionNameStatus } from '@atlaskit/mention/resource';
10
- import { isPromise } from '@atlaskit/mention/types';
11
-
12
- // Workaround for a firefox issue where dom selection is off sync
13
- // https://product-fabric.atlassian.net/browse/ED-12442
14
- var refreshBrowserSelection = function refreshBrowserSelection() {
15
- var domSelection = window.getSelection();
16
- if (domSelection) {
17
- var domRange = domSelection && domSelection.rangeCount === 1 && domSelection.getRangeAt(0).cloneRange();
18
- if (domRange) {
19
- domSelection.removeAllRanges();
20
- domSelection.addRange(domRange);
21
- }
22
- }
23
- };
24
- /**
25
- * This is the new preferred way to render mentions in the editor.
26
- * Introduced behind the `platform.editor.mentions-in-editor-popup-on-click` feature flag.
27
- */
28
- export var Mention = function Mention(props) {
29
- var accessLevel = props.accessLevel,
30
- eventHandlers = props.eventHandlers,
31
- id = props.id,
32
- text = props.text,
33
- localId = props.localId,
34
- mentionProvider = props.mentionProvider,
35
- profilecardProviderPromise = props.profilecardProvider;
36
- var _useState = useState(undefined),
37
- _useState2 = _slicedToArray(_useState, 2),
38
- profilecardProvider = _useState2[0],
39
- setProfilecardProvider = _useState2[1];
40
- var resolvedName = useResolvedName(id, text, mentionProvider);
41
-
42
- // Resolve the profilecard provider
43
- useEffect(function () {
44
- var isCancelled = false;
45
- var resolveProfilecardProvider = /*#__PURE__*/function () {
46
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
47
- var _profilecardProvider;
48
- return _regeneratorRuntime.wrap(function _callee$(_context) {
49
- while (1) switch (_context.prev = _context.next) {
50
- case 0:
51
- _context.prev = 0;
52
- _context.next = 3;
53
- return profilecardProviderPromise;
54
- case 3:
55
- _profilecardProvider = _context.sent;
56
- if (!isCancelled) {
57
- setProfilecardProvider(_profilecardProvider);
58
- }
59
- _context.next = 10;
60
- break;
61
- case 7:
62
- _context.prev = 7;
63
- _context.t0 = _context["catch"](0);
64
- if (!isCancelled) {
65
- setProfilecardProvider(undefined);
66
- }
67
- case 10:
68
- case "end":
69
- return _context.stop();
70
- }
71
- }, _callee, null, [[0, 7]]);
72
- }));
73
- return function resolveProfilecardProvider() {
74
- return _ref.apply(this, arguments);
75
- };
76
- }();
77
- if (profilecardProviderPromise) {
78
- resolveProfilecardProvider();
79
- }
80
- return function () {
81
- isCancelled = true;
82
- };
83
- }, [profilecardProviderPromise]);
84
- useEffect(function () {
85
- // Workaround an issue where the selection is not updated immediately after adding
86
- // a mention when "sanitizePrivateContent" is enabled in the editor on safari.
87
- // This affects both insertion and paste behaviour it is applied to the component.
88
- // https://product-fabric.atlassian.net/browse/ED-14859
89
- if (browser.safari) {
90
- setTimeout(refreshBrowserSelection, 0);
91
- }
92
- }, []);
93
- var actionHandlers = {};
94
- ['onClick', 'onMouseEnter', 'onMouseLeave'].forEach(function (handler) {
95
- actionHandlers[handler] = eventHandlers && eventHandlers[handler] || function () {};
96
- });
97
- if (profilecardProvider) {
98
- return /*#__PURE__*/React.createElement(MentionWithProfileCard, _extends({
99
- autoFocus: false,
100
- id: id,
101
- text: resolvedName,
102
- accessLevel: accessLevel,
103
- mentionProvider: mentionProvider,
104
- profilecardProvider: profilecardProvider,
105
- localId: localId
106
- }, actionHandlers));
107
- } else {
108
- return /*#__PURE__*/React.createElement(ResourcedMention, _extends({
109
- id: id,
110
- text: resolvedName,
111
- accessLevel: accessLevel,
112
- mentionProvider: mentionProvider,
113
- localId: localId
114
- }, actionHandlers));
115
- }
116
- };
117
- var useResolvedName = function useResolvedName(id, text, mentionProvider) {
118
- var _useState3 = useState(text),
119
- _useState4 = _slicedToArray(_useState3, 2),
120
- resolvedName = _useState4[0],
121
- setResolvedName = _useState4[1];
122
- var processName = function processName(name) {
123
- if (name.status === MentionNameStatus.OK) {
124
- return "@".concat(name.name || '');
125
- } else {
126
- return "@_|unknown|_";
127
- }
128
- };
129
- useEffect(function () {
130
- if (mentionProvider) {
131
- mentionProvider.then( /*#__PURE__*/function () {
132
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(provider) {
133
- var nameDetail;
134
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
135
- while (1) switch (_context2.prev = _context2.next) {
136
- case 0:
137
- if (!(!text && isResolvingMentionProvider(provider))) {
138
- _context2.next = 13;
139
- break;
140
- }
141
- nameDetail = provider.resolveMentionName(id);
142
- if (!isPromise(nameDetail)) {
143
- _context2.next = 10;
144
- break;
145
- }
146
- _context2.t0 = processName;
147
- _context2.next = 6;
148
- return nameDetail;
149
- case 6:
150
- _context2.t1 = _context2.sent;
151
- return _context2.abrupt("return", (0, _context2.t0)(_context2.t1));
152
- case 10:
153
- return _context2.abrupt("return", processName(nameDetail));
154
- case 11:
155
- _context2.next = 14;
156
- break;
157
- case 13:
158
- return _context2.abrupt("return", text);
159
- case 14:
160
- case "end":
161
- return _context2.stop();
162
- }
163
- }, _callee2);
164
- }));
165
- return function (_x) {
166
- return _ref2.apply(this, arguments);
167
- };
168
- }()).then(function (resolvedName) {
169
- setResolvedName(resolvedName);
170
- });
171
- }
172
- }, [id, text, mentionProvider]);
173
- return resolvedName;
174
- };
@@ -1,18 +0,0 @@
1
- /// <reference types="react" />
2
- import { type ProfilecardProvider } from '@atlaskit/editor-common/src/provider-factory/profile-card-provider';
3
- import type { MentionEventHandlers } from '@atlaskit/editor-common/ui';
4
- import { type MentionProvider } from '@atlaskit/mention/resource';
5
- export interface MentionProps {
6
- id: string;
7
- eventHandlers?: MentionEventHandlers;
8
- text: string;
9
- accessLevel?: string;
10
- localId?: string;
11
- mentionProvider?: Promise<MentionProvider>;
12
- profilecardProvider?: Promise<ProfilecardProvider>;
13
- }
14
- /**
15
- * This is the new preferred way to render mentions in the editor.
16
- * Introduced behind the `platform.editor.mentions-in-editor-popup-on-click` feature flag.
17
- */
18
- export declare const Mention: (props: MentionProps) => JSX.Element;
@@ -1,18 +0,0 @@
1
- /// <reference types="react" />
2
- import { type ProfilecardProvider } from '@atlaskit/editor-common/src/provider-factory/profile-card-provider';
3
- import type { MentionEventHandlers } from '@atlaskit/editor-common/ui';
4
- import { type MentionProvider } from '@atlaskit/mention/resource';
5
- export interface MentionProps {
6
- id: string;
7
- eventHandlers?: MentionEventHandlers;
8
- text: string;
9
- accessLevel?: string;
10
- localId?: string;
11
- mentionProvider?: Promise<MentionProvider>;
12
- profilecardProvider?: Promise<ProfilecardProvider>;
13
- }
14
- /**
15
- * This is the new preferred way to render mentions in the editor.
16
- * Introduced behind the `platform.editor.mentions-in-editor-popup-on-click` feature flag.
17
- */
18
- export declare const Mention: (props: MentionProps) => JSX.Element;