@atlaskit/editor-plugin-mentions 4.7.8 → 4.7.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/cjs/pm-plugins/main.js +3 -16
- package/dist/cjs/ui/PopperWrapper.js +2 -2
- package/dist/es2019/pm-plugins/main.js +4 -17
- package/dist/es2019/ui/PopperWrapper.js +3 -3
- package/dist/esm/pm-plugins/main.js +4 -17
- package/dist/esm/ui/PopperWrapper.js +3 -3
- package/package.json +7 -7
- package/dist/cjs/nodeviews/mention.js +0 -53
- package/dist/cjs/ui/Mention/index.js +0 -184
- package/dist/es2019/nodeviews/mention.js +0 -51
- package/dist/es2019/ui/Mention/index.js +0 -123
- package/dist/esm/nodeviews/mention.js +0 -46
- package/dist/esm/ui/Mention/index.js +0 -176
- package/dist/types/nodeviews/mention.d.ts +0 -12
- package/dist/types/ui/Mention/index.d.ts +0 -14
- package/dist/types-ts4.5/nodeviews/mention.d.ts +0 -12
- package/dist/types-ts4.5/ui/Mention/index.d.ts +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-mentions
|
|
2
2
|
|
|
3
|
+
## 4.7.10
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#175895](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/175895)
|
|
8
|
+
[`6165a5dc5b6b1`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/6165a5dc5b6b1) -
|
|
9
|
+
Remove deprecated path for react version of mentions
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
12
|
+
## 4.7.9
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
|
|
3
18
|
## 4.7.8
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -8,14 +8,11 @@ exports.ACTIONS = void 0;
|
|
|
8
8
|
exports.createMentionPlugin = createMentionPlugin;
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
11
|
-
var _reactNodeView = require("@atlaskit/editor-common/react-node-view");
|
|
12
11
|
var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
13
12
|
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
14
13
|
var _resource = require("@atlaskit/mention/resource");
|
|
15
14
|
var _types = require("@atlaskit/mention/types");
|
|
16
15
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
17
|
-
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
18
|
-
var _mention = require("../nodeviews/mention");
|
|
19
16
|
var _mentionNodeView = require("../nodeviews/mentionNodeView");
|
|
20
17
|
var _types2 = require("../types");
|
|
21
18
|
var _key = require("./key");
|
|
@@ -26,7 +23,7 @@ var ACTIONS = exports.ACTIONS = {
|
|
|
26
23
|
SET_PROVIDER: 'SET_PROVIDER'
|
|
27
24
|
};
|
|
28
25
|
var PACKAGE_NAME = "@atlaskit/editor-plugin-mentions";
|
|
29
|
-
var PACKAGE_VERSION = "4.7.
|
|
26
|
+
var PACKAGE_VERSION = "4.7.9";
|
|
30
27
|
var setProvider = function setProvider(provider) {
|
|
31
28
|
return function (state, dispatch) {
|
|
32
29
|
if (dispatch) {
|
|
@@ -102,21 +99,11 @@ function createMentionPlugin(_ref) {
|
|
|
102
99
|
props: {
|
|
103
100
|
nodeViews: {
|
|
104
101
|
mention: function mention(node, view, getPos, decorations, innerDecorations) {
|
|
105
|
-
return
|
|
106
|
-
exposure: true
|
|
107
|
-
}) ? new _mentionNodeView.MentionNodeView(node, {
|
|
102
|
+
return new _mentionNodeView.MentionNodeView(node, {
|
|
108
103
|
options: options,
|
|
109
104
|
api: api,
|
|
110
105
|
portalProviderAPI: pmPluginFactoryParams.portalProviderAPI
|
|
111
|
-
})
|
|
112
|
-
pmPluginFactoryParams: pmPluginFactoryParams,
|
|
113
|
-
Component: _mention.MentionNodeView,
|
|
114
|
-
extraComponentProps: {
|
|
115
|
-
providerFactory: pmPluginFactoryParams.providerFactory,
|
|
116
|
-
pluginInjectionApi: api,
|
|
117
|
-
options: options
|
|
118
|
-
}
|
|
119
|
-
})(node, view, getPos, decorations);
|
|
106
|
+
});
|
|
120
107
|
}
|
|
121
108
|
}
|
|
122
109
|
},
|
|
@@ -52,7 +52,7 @@ function Popup(_ref2) {
|
|
|
52
52
|
(0, _useFocusTrap.useFocusTrap)({
|
|
53
53
|
targetRef: targetRef
|
|
54
54
|
});
|
|
55
|
-
return /*#__PURE__*/_react.default.createElement(_portal.default, {
|
|
55
|
+
return /*#__PURE__*/_react.default.createElement(_react.Suspense, null, /*#__PURE__*/_react.default.createElement(_portal.default, {
|
|
56
56
|
zIndex: _constants.layers.modal()
|
|
57
57
|
}, /*#__PURE__*/_react.default.createElement(_popper.Popper, {
|
|
58
58
|
referenceElement: referenceElement,
|
|
@@ -80,5 +80,5 @@ function Popup(_ref2) {
|
|
|
80
80
|
}, /*#__PURE__*/_react.default.createElement(RepositionOnUpdate, {
|
|
81
81
|
update: update
|
|
82
82
|
}, children));
|
|
83
|
-
}));
|
|
83
|
+
})));
|
|
84
84
|
}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
2
|
-
import { getInlineNodeViewProducer } from '@atlaskit/editor-common/react-node-view';
|
|
3
2
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
4
3
|
import { findChildrenByType } from '@atlaskit/editor-prosemirror/utils';
|
|
5
4
|
import { SLI_EVENT_TYPE, SMART_EVENT_TYPE } from '@atlaskit/mention/resource';
|
|
6
5
|
import { ComponentNames } from '@atlaskit/mention/types';
|
|
7
6
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
8
|
-
import {
|
|
9
|
-
import { MentionNodeView } from '../nodeviews/mention';
|
|
10
|
-
import { MentionNodeView as VanillaMentionNodeView } from '../nodeviews/mentionNodeView';
|
|
7
|
+
import { MentionNodeView } from '../nodeviews/mentionNodeView';
|
|
11
8
|
import { MENTION_PROVIDER_REJECTED, MENTION_PROVIDER_UNDEFINED } from '../types';
|
|
12
9
|
import { mentionPluginKey } from './key';
|
|
13
10
|
import { canMentionBeCreatedInRange } from './utils';
|
|
@@ -15,7 +12,7 @@ export const ACTIONS = {
|
|
|
15
12
|
SET_PROVIDER: 'SET_PROVIDER'
|
|
16
13
|
};
|
|
17
14
|
const PACKAGE_NAME = "@atlaskit/editor-plugin-mentions";
|
|
18
|
-
const PACKAGE_VERSION = "4.7.
|
|
15
|
+
const PACKAGE_VERSION = "4.7.9";
|
|
19
16
|
const setProvider = provider => (state, dispatch) => {
|
|
20
17
|
if (dispatch) {
|
|
21
18
|
dispatch(state.tr.setMeta(mentionPluginKey, {
|
|
@@ -94,21 +91,11 @@ export function createMentionPlugin({
|
|
|
94
91
|
props: {
|
|
95
92
|
nodeViews: {
|
|
96
93
|
mention: (node, view, getPos, decorations, innerDecorations) => {
|
|
97
|
-
return
|
|
98
|
-
exposure: true
|
|
99
|
-
}) ? new VanillaMentionNodeView(node, {
|
|
94
|
+
return new MentionNodeView(node, {
|
|
100
95
|
options,
|
|
101
96
|
api,
|
|
102
97
|
portalProviderAPI: pmPluginFactoryParams.portalProviderAPI
|
|
103
|
-
})
|
|
104
|
-
pmPluginFactoryParams,
|
|
105
|
-
Component: MentionNodeView,
|
|
106
|
-
extraComponentProps: {
|
|
107
|
-
providerFactory: pmPluginFactoryParams.providerFactory,
|
|
108
|
-
pluginInjectionApi: api,
|
|
109
|
-
options
|
|
110
|
-
}
|
|
111
|
-
})(node, view, getPos, decorations);
|
|
98
|
+
});
|
|
112
99
|
}
|
|
113
100
|
}
|
|
114
101
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useRef, useEffect } from 'react';
|
|
1
|
+
import React, { useRef, useEffect, Suspense } from 'react';
|
|
2
2
|
import { Popper as ReactPopper } from '@atlaskit/popper';
|
|
3
3
|
import Portal from '@atlaskit/portal';
|
|
4
4
|
import { layers } from '@atlaskit/theme/constants';
|
|
@@ -40,7 +40,7 @@ export function Popup({
|
|
|
40
40
|
useFocusTrap({
|
|
41
41
|
targetRef: targetRef
|
|
42
42
|
});
|
|
43
|
-
return /*#__PURE__*/React.createElement(Portal, {
|
|
43
|
+
return /*#__PURE__*/React.createElement(Suspense, null, /*#__PURE__*/React.createElement(Portal, {
|
|
44
44
|
zIndex: layers.modal()
|
|
45
45
|
}, /*#__PURE__*/React.createElement(ReactPopper, {
|
|
46
46
|
referenceElement: referenceElement,
|
|
@@ -67,5 +67,5 @@ export function Popup({
|
|
|
67
67
|
style: style
|
|
68
68
|
}, /*#__PURE__*/React.createElement(RepositionOnUpdate, {
|
|
69
69
|
update: update
|
|
70
|
-
}, children))));
|
|
70
|
+
}, children)))));
|
|
71
71
|
}
|
|
@@ -2,15 +2,12 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
2
2
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
4
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
5
|
-
import { getInlineNodeViewProducer } from '@atlaskit/editor-common/react-node-view';
|
|
6
5
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
7
6
|
import { findChildrenByType } from '@atlaskit/editor-prosemirror/utils';
|
|
8
7
|
import { SLI_EVENT_TYPE, SMART_EVENT_TYPE } from '@atlaskit/mention/resource';
|
|
9
8
|
import { ComponentNames } from '@atlaskit/mention/types';
|
|
10
9
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
11
|
-
import {
|
|
12
|
-
import { MentionNodeView } from '../nodeviews/mention';
|
|
13
|
-
import { MentionNodeView as VanillaMentionNodeView } from '../nodeviews/mentionNodeView';
|
|
10
|
+
import { MentionNodeView } from '../nodeviews/mentionNodeView';
|
|
14
11
|
import { MENTION_PROVIDER_REJECTED, MENTION_PROVIDER_UNDEFINED } from '../types';
|
|
15
12
|
import { mentionPluginKey } from './key';
|
|
16
13
|
import { canMentionBeCreatedInRange } from './utils';
|
|
@@ -18,7 +15,7 @@ export var ACTIONS = {
|
|
|
18
15
|
SET_PROVIDER: 'SET_PROVIDER'
|
|
19
16
|
};
|
|
20
17
|
var PACKAGE_NAME = "@atlaskit/editor-plugin-mentions";
|
|
21
|
-
var PACKAGE_VERSION = "4.7.
|
|
18
|
+
var PACKAGE_VERSION = "4.7.9";
|
|
22
19
|
var setProvider = function setProvider(provider) {
|
|
23
20
|
return function (state, dispatch) {
|
|
24
21
|
if (dispatch) {
|
|
@@ -94,21 +91,11 @@ export function createMentionPlugin(_ref) {
|
|
|
94
91
|
props: {
|
|
95
92
|
nodeViews: {
|
|
96
93
|
mention: function mention(node, view, getPos, decorations, innerDecorations) {
|
|
97
|
-
return
|
|
98
|
-
exposure: true
|
|
99
|
-
}) ? new VanillaMentionNodeView(node, {
|
|
94
|
+
return new MentionNodeView(node, {
|
|
100
95
|
options: options,
|
|
101
96
|
api: api,
|
|
102
97
|
portalProviderAPI: pmPluginFactoryParams.portalProviderAPI
|
|
103
|
-
})
|
|
104
|
-
pmPluginFactoryParams: pmPluginFactoryParams,
|
|
105
|
-
Component: MentionNodeView,
|
|
106
|
-
extraComponentProps: {
|
|
107
|
-
providerFactory: pmPluginFactoryParams.providerFactory,
|
|
108
|
-
pluginInjectionApi: api,
|
|
109
|
-
options: options
|
|
110
|
-
}
|
|
111
|
-
})(node, view, getPos, decorations);
|
|
98
|
+
});
|
|
112
99
|
}
|
|
113
100
|
}
|
|
114
101
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import React, { useRef, useEffect } from 'react';
|
|
2
|
+
import React, { useRef, useEffect, Suspense } from 'react';
|
|
3
3
|
import { Popper as ReactPopper } from '@atlaskit/popper';
|
|
4
4
|
import Portal from '@atlaskit/portal';
|
|
5
5
|
import { layers } from '@atlaskit/theme/constants';
|
|
@@ -42,7 +42,7 @@ export function Popup(_ref2) {
|
|
|
42
42
|
useFocusTrap({
|
|
43
43
|
targetRef: targetRef
|
|
44
44
|
});
|
|
45
|
-
return /*#__PURE__*/React.createElement(Portal, {
|
|
45
|
+
return /*#__PURE__*/React.createElement(Suspense, null, /*#__PURE__*/React.createElement(Portal, {
|
|
46
46
|
zIndex: layers.modal()
|
|
47
47
|
}, /*#__PURE__*/React.createElement(ReactPopper, {
|
|
48
48
|
referenceElement: referenceElement,
|
|
@@ -70,5 +70,5 @@ export function Popup(_ref2) {
|
|
|
70
70
|
}, /*#__PURE__*/React.createElement(RepositionOnUpdate, {
|
|
71
71
|
update: update
|
|
72
72
|
}, children));
|
|
73
|
-
}));
|
|
73
|
+
})));
|
|
74
74
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-mentions",
|
|
3
|
-
"version": "4.7.
|
|
3
|
+
"version": "4.7.10",
|
|
4
4
|
"description": "Mentions plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -35,23 +35,23 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@atlaskit/adf-schema": "^47.6.0",
|
|
37
37
|
"@atlaskit/css": "^0.11.0",
|
|
38
|
-
"@atlaskit/editor-common": "^107.
|
|
38
|
+
"@atlaskit/editor-common": "^107.2.0",
|
|
39
39
|
"@atlaskit/editor-plugin-analytics": "^2.3.0",
|
|
40
40
|
"@atlaskit/editor-plugin-base": "^3.0.0",
|
|
41
41
|
"@atlaskit/editor-plugin-context-identifier": "^2.1.0",
|
|
42
42
|
"@atlaskit/editor-plugin-selection": "^2.2.0",
|
|
43
43
|
"@atlaskit/editor-plugin-type-ahead": "^2.7.0",
|
|
44
44
|
"@atlaskit/editor-prosemirror": "7.0.0",
|
|
45
|
-
"@atlaskit/icon": "^27.
|
|
45
|
+
"@atlaskit/icon": "^27.2.0",
|
|
46
46
|
"@atlaskit/link": "^3.2.0",
|
|
47
47
|
"@atlaskit/mention": "^24.2.0",
|
|
48
48
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
49
|
-
"@atlaskit/popper": "^7.
|
|
49
|
+
"@atlaskit/popper": "^7.1.0",
|
|
50
50
|
"@atlaskit/portal": "^5.1.0",
|
|
51
|
-
"@atlaskit/profilecard": "^23.
|
|
51
|
+
"@atlaskit/profilecard": "^23.21.0",
|
|
52
52
|
"@atlaskit/theme": "^18.0.0",
|
|
53
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
54
|
-
"@atlaskit/tokens": "^5.
|
|
53
|
+
"@atlaskit/tmp-editor-statsig": "^8.2.0",
|
|
54
|
+
"@atlaskit/tokens": "^5.4.0",
|
|
55
55
|
"@babel/runtime": "^7.0.0",
|
|
56
56
|
"@compiled/react": "^0.18.3",
|
|
57
57
|
"bind-event-listener": "^3.0.0",
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.MentionNodeView = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
10
|
-
var _providerFactory = require("@atlaskit/editor-common/provider-factory");
|
|
11
|
-
var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
|
|
12
|
-
var _Mention = require("../ui/Mention");
|
|
13
|
-
var useSharedMentionState = (0, _hooks.sharedPluginStateHookMigratorFactory)(function (api) {
|
|
14
|
-
var mentionProvider = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'mention.mentionProvider');
|
|
15
|
-
return {
|
|
16
|
-
mentionProvider: mentionProvider
|
|
17
|
-
};
|
|
18
|
-
}, function (api) {
|
|
19
|
-
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['mention']),
|
|
20
|
-
mentionState = _useSharedPluginState.mentionState;
|
|
21
|
-
return {
|
|
22
|
-
mentionProvider: mentionState === null || mentionState === void 0 ? void 0 : mentionState.mentionProvider
|
|
23
|
-
};
|
|
24
|
-
});
|
|
25
|
-
var MentionNodeView = exports.MentionNodeView = function MentionNodeView(props) {
|
|
26
|
-
var providerFactory = props.providerFactory,
|
|
27
|
-
pluginInjectionApi = props.pluginInjectionApi;
|
|
28
|
-
var _props$node$attrs = props.node.attrs,
|
|
29
|
-
id = _props$node$attrs.id,
|
|
30
|
-
text = _props$node$attrs.text,
|
|
31
|
-
accessLevel = _props$node$attrs.accessLevel,
|
|
32
|
-
localId = _props$node$attrs.localId;
|
|
33
|
-
var _useSharedMentionStat = useSharedMentionState(pluginInjectionApi),
|
|
34
|
-
mentionProvider = _useSharedMentionStat.mentionProvider;
|
|
35
|
-
var renderAssistiveTextWithProviders = function renderAssistiveTextWithProviders(providers) {
|
|
36
|
-
var _props$options;
|
|
37
|
-
var mentionProviderPromise = mentionProvider ? Promise.resolve(mentionProvider) : providers.mentionProvider;
|
|
38
|
-
var profilecardProvider = (_props$options = props.options) === null || _props$options === void 0 ? void 0 : _props$options.profilecardProvider;
|
|
39
|
-
return /*#__PURE__*/_react.default.createElement(_Mention.Mention, {
|
|
40
|
-
id: id,
|
|
41
|
-
text: text,
|
|
42
|
-
accessLevel: accessLevel,
|
|
43
|
-
mentionProvider: mentionProviderPromise,
|
|
44
|
-
profilecardProvider: profilecardProvider,
|
|
45
|
-
localId: localId
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
return /*#__PURE__*/_react.default.createElement(_providerFactory.WithProviders, {
|
|
49
|
-
providers: ['mentionProvider', 'profilecardProvider'],
|
|
50
|
-
providerFactory: providerFactory,
|
|
51
|
-
renderNode: renderAssistiveTextWithProviders
|
|
52
|
-
});
|
|
53
|
-
};
|
|
@@ -1,184 +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 _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
20
|
-
// Workaround for a firefox issue where dom selection is off sync
|
|
21
|
-
// https://product-fabric.atlassian.net/browse/ED-12442
|
|
22
|
-
var refreshBrowserSelection = function refreshBrowserSelection() {
|
|
23
|
-
var domSelection = window.getSelection();
|
|
24
|
-
if (domSelection) {
|
|
25
|
-
var domRange = domSelection && domSelection.rangeCount === 1 && domSelection.getRangeAt(0).cloneRange();
|
|
26
|
-
if (domRange) {
|
|
27
|
-
domSelection.removeAllRanges();
|
|
28
|
-
domSelection.addRange(domRange);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
var Mention = exports.Mention = function Mention(props) {
|
|
33
|
-
var accessLevel = props.accessLevel,
|
|
34
|
-
eventHandlers = props.eventHandlers,
|
|
35
|
-
id = props.id,
|
|
36
|
-
text = props.text,
|
|
37
|
-
localId = props.localId,
|
|
38
|
-
mentionProvider = props.mentionProvider,
|
|
39
|
-
profilecardProviderPromise = props.profilecardProvider;
|
|
40
|
-
var _useState = (0, _react.useState)(undefined),
|
|
41
|
-
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
42
|
-
profilecardProvider = _useState2[0],
|
|
43
|
-
setProfilecardProvider = _useState2[1];
|
|
44
|
-
var resolvedName = useResolvedName(id, text, mentionProvider);
|
|
45
|
-
|
|
46
|
-
// Resolve the profilecard provider
|
|
47
|
-
(0, _react.useEffect)(function () {
|
|
48
|
-
var isCancelled = false;
|
|
49
|
-
var resolveProfilecardProvider = /*#__PURE__*/function () {
|
|
50
|
-
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
51
|
-
var _profilecardProvider;
|
|
52
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
53
|
-
while (1) switch (_context.prev = _context.next) {
|
|
54
|
-
case 0:
|
|
55
|
-
_context.prev = 0;
|
|
56
|
-
_context.next = 3;
|
|
57
|
-
return profilecardProviderPromise;
|
|
58
|
-
case 3:
|
|
59
|
-
_profilecardProvider = _context.sent;
|
|
60
|
-
if (!isCancelled) {
|
|
61
|
-
setProfilecardProvider(_profilecardProvider);
|
|
62
|
-
}
|
|
63
|
-
_context.next = 10;
|
|
64
|
-
break;
|
|
65
|
-
case 7:
|
|
66
|
-
_context.prev = 7;
|
|
67
|
-
_context.t0 = _context["catch"](0);
|
|
68
|
-
if (!isCancelled) {
|
|
69
|
-
setProfilecardProvider(undefined);
|
|
70
|
-
}
|
|
71
|
-
case 10:
|
|
72
|
-
case "end":
|
|
73
|
-
return _context.stop();
|
|
74
|
-
}
|
|
75
|
-
}, _callee, null, [[0, 7]]);
|
|
76
|
-
}));
|
|
77
|
-
return function resolveProfilecardProvider() {
|
|
78
|
-
return _ref.apply(this, arguments);
|
|
79
|
-
};
|
|
80
|
-
}();
|
|
81
|
-
if (profilecardProviderPromise) {
|
|
82
|
-
resolveProfilecardProvider();
|
|
83
|
-
}
|
|
84
|
-
return function () {
|
|
85
|
-
isCancelled = true;
|
|
86
|
-
};
|
|
87
|
-
}, [profilecardProviderPromise]);
|
|
88
|
-
(0, _react.useEffect)(function () {
|
|
89
|
-
// Workaround an issue where the selection is not updated immediately after adding
|
|
90
|
-
// a mention when "sanitizePrivateContent" is enabled in the editor on safari.
|
|
91
|
-
// This affects both insertion and paste behaviour it is applied to the component.
|
|
92
|
-
// https://product-fabric.atlassian.net/browse/ED-14859
|
|
93
|
-
if (_browser.browser.safari) {
|
|
94
|
-
setTimeout(refreshBrowserSelection, 0);
|
|
95
|
-
}
|
|
96
|
-
}, []);
|
|
97
|
-
var actionHandlers = {};
|
|
98
|
-
['onClick', 'onMouseEnter', 'onMouseLeave'].forEach(function (handler) {
|
|
99
|
-
// Ignored via go/ees005
|
|
100
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
101
|
-
actionHandlers[handler] = eventHandlers && eventHandlers[handler] || function () {};
|
|
102
|
-
});
|
|
103
|
-
if (profilecardProvider) {
|
|
104
|
-
return /*#__PURE__*/_react.default.createElement(_mention.MentionWithProfileCard, (0, _extends2.default)({
|
|
105
|
-
autoFocus: false,
|
|
106
|
-
id: id,
|
|
107
|
-
text: resolvedName,
|
|
108
|
-
accessLevel: accessLevel,
|
|
109
|
-
mentionProvider: mentionProvider,
|
|
110
|
-
profilecardProvider: profilecardProvider,
|
|
111
|
-
localId: localId
|
|
112
|
-
// Ignored via go/ees005
|
|
113
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
114
|
-
}, actionHandlers));
|
|
115
|
-
} else {
|
|
116
|
-
return /*#__PURE__*/_react.default.createElement(_element.ResourcedMention, (0, _extends2.default)({
|
|
117
|
-
id: id,
|
|
118
|
-
text: resolvedName,
|
|
119
|
-
accessLevel: accessLevel,
|
|
120
|
-
mentionProvider: mentionProvider,
|
|
121
|
-
localId: localId
|
|
122
|
-
// Ignored via go/ees005
|
|
123
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
124
|
-
}, actionHandlers));
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
var useResolvedName = function useResolvedName(id, text, mentionProvider) {
|
|
128
|
-
var _useState3 = (0, _react.useState)(text),
|
|
129
|
-
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
130
|
-
resolvedName = _useState4[0],
|
|
131
|
-
setResolvedName = _useState4[1];
|
|
132
|
-
var processName = function processName(name) {
|
|
133
|
-
if (name.status === _resource.MentionNameStatus.OK) {
|
|
134
|
-
return "@".concat(name.name || '');
|
|
135
|
-
} else {
|
|
136
|
-
return "@_|unknown|_";
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
(0, _react.useEffect)(function () {
|
|
140
|
-
if (mentionProvider) {
|
|
141
|
-
mentionProvider.then( /*#__PURE__*/function () {
|
|
142
|
-
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(provider) {
|
|
143
|
-
var nameDetail;
|
|
144
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
145
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
146
|
-
case 0:
|
|
147
|
-
if (!(!text && (0, _resource.isResolvingMentionProvider)(provider))) {
|
|
148
|
-
_context2.next = 13;
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
nameDetail = provider.resolveMentionName(id);
|
|
152
|
-
if (!(0, _types.isPromise)(nameDetail)) {
|
|
153
|
-
_context2.next = 10;
|
|
154
|
-
break;
|
|
155
|
-
}
|
|
156
|
-
_context2.t0 = processName;
|
|
157
|
-
_context2.next = 6;
|
|
158
|
-
return nameDetail;
|
|
159
|
-
case 6:
|
|
160
|
-
_context2.t1 = _context2.sent;
|
|
161
|
-
return _context2.abrupt("return", (0, _context2.t0)(_context2.t1));
|
|
162
|
-
case 10:
|
|
163
|
-
return _context2.abrupt("return", processName(nameDetail));
|
|
164
|
-
case 11:
|
|
165
|
-
_context2.next = 14;
|
|
166
|
-
break;
|
|
167
|
-
case 13:
|
|
168
|
-
return _context2.abrupt("return", text);
|
|
169
|
-
case 14:
|
|
170
|
-
case "end":
|
|
171
|
-
return _context2.stop();
|
|
172
|
-
}
|
|
173
|
-
}, _callee2);
|
|
174
|
-
}));
|
|
175
|
-
return function (_x) {
|
|
176
|
-
return _ref2.apply(this, arguments);
|
|
177
|
-
};
|
|
178
|
-
}()).then(function (resolvedName) {
|
|
179
|
-
setResolvedName(resolvedName);
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
}, [id, text, mentionProvider]);
|
|
183
|
-
return resolvedName;
|
|
184
|
-
};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { useSharedPluginState, sharedPluginStateHookMigratorFactory } from '@atlaskit/editor-common/hooks';
|
|
3
|
-
import { WithProviders } from '@atlaskit/editor-common/provider-factory';
|
|
4
|
-
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
5
|
-
import { Mention } from '../ui/Mention';
|
|
6
|
-
const useSharedMentionState = sharedPluginStateHookMigratorFactory(api => {
|
|
7
|
-
const mentionProvider = useSharedPluginStateSelector(api, 'mention.mentionProvider');
|
|
8
|
-
return {
|
|
9
|
-
mentionProvider
|
|
10
|
-
};
|
|
11
|
-
}, api => {
|
|
12
|
-
const {
|
|
13
|
-
mentionState
|
|
14
|
-
} = useSharedPluginState(api, ['mention']);
|
|
15
|
-
return {
|
|
16
|
-
mentionProvider: mentionState === null || mentionState === void 0 ? void 0 : mentionState.mentionProvider
|
|
17
|
-
};
|
|
18
|
-
});
|
|
19
|
-
export const MentionNodeView = props => {
|
|
20
|
-
const {
|
|
21
|
-
providerFactory,
|
|
22
|
-
pluginInjectionApi
|
|
23
|
-
} = props;
|
|
24
|
-
const {
|
|
25
|
-
id,
|
|
26
|
-
text,
|
|
27
|
-
accessLevel,
|
|
28
|
-
localId
|
|
29
|
-
} = props.node.attrs;
|
|
30
|
-
const {
|
|
31
|
-
mentionProvider
|
|
32
|
-
} = useSharedMentionState(pluginInjectionApi);
|
|
33
|
-
const renderAssistiveTextWithProviders = providers => {
|
|
34
|
-
var _props$options;
|
|
35
|
-
const mentionProviderPromise = mentionProvider ? Promise.resolve(mentionProvider) : providers.mentionProvider;
|
|
36
|
-
const profilecardProvider = (_props$options = props.options) === null || _props$options === void 0 ? void 0 : _props$options.profilecardProvider;
|
|
37
|
-
return /*#__PURE__*/React.createElement(Mention, {
|
|
38
|
-
id: id,
|
|
39
|
-
text: text,
|
|
40
|
-
accessLevel: accessLevel,
|
|
41
|
-
mentionProvider: mentionProviderPromise,
|
|
42
|
-
profilecardProvider: profilecardProvider,
|
|
43
|
-
localId: localId
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
return /*#__PURE__*/React.createElement(WithProviders, {
|
|
47
|
-
providers: ['mentionProvider', 'profilecardProvider'],
|
|
48
|
-
providerFactory: providerFactory,
|
|
49
|
-
renderNode: renderAssistiveTextWithProviders
|
|
50
|
-
});
|
|
51
|
-
};
|
|
@@ -1,123 +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
|
-
export const Mention = props => {
|
|
22
|
-
const {
|
|
23
|
-
accessLevel,
|
|
24
|
-
eventHandlers,
|
|
25
|
-
id,
|
|
26
|
-
text,
|
|
27
|
-
localId,
|
|
28
|
-
mentionProvider,
|
|
29
|
-
profilecardProvider: profilecardProviderPromise
|
|
30
|
-
} = props;
|
|
31
|
-
const [profilecardProvider, setProfilecardProvider] = useState(undefined);
|
|
32
|
-
const resolvedName = useResolvedName(id, text, mentionProvider);
|
|
33
|
-
|
|
34
|
-
// Resolve the profilecard provider
|
|
35
|
-
useEffect(() => {
|
|
36
|
-
let isCancelled = false;
|
|
37
|
-
const resolveProfilecardProvider = async () => {
|
|
38
|
-
try {
|
|
39
|
-
const profilecardProvider = await profilecardProviderPromise;
|
|
40
|
-
if (!isCancelled) {
|
|
41
|
-
setProfilecardProvider(profilecardProvider);
|
|
42
|
-
}
|
|
43
|
-
} catch (error) {
|
|
44
|
-
if (!isCancelled) {
|
|
45
|
-
setProfilecardProvider(undefined);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
if (profilecardProviderPromise) {
|
|
50
|
-
resolveProfilecardProvider();
|
|
51
|
-
}
|
|
52
|
-
return () => {
|
|
53
|
-
isCancelled = true;
|
|
54
|
-
};
|
|
55
|
-
}, [profilecardProviderPromise]);
|
|
56
|
-
useEffect(() => {
|
|
57
|
-
// Workaround an issue where the selection is not updated immediately after adding
|
|
58
|
-
// a mention when "sanitizePrivateContent" is enabled in the editor on safari.
|
|
59
|
-
// This affects both insertion and paste behaviour it is applied to the component.
|
|
60
|
-
// https://product-fabric.atlassian.net/browse/ED-14859
|
|
61
|
-
if (browser.safari) {
|
|
62
|
-
setTimeout(refreshBrowserSelection, 0);
|
|
63
|
-
}
|
|
64
|
-
}, []);
|
|
65
|
-
const actionHandlers = {};
|
|
66
|
-
['onClick', 'onMouseEnter', 'onMouseLeave'].forEach(handler => {
|
|
67
|
-
// Ignored via go/ees005
|
|
68
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
69
|
-
actionHandlers[handler] = eventHandlers && eventHandlers[handler] || (() => {});
|
|
70
|
-
});
|
|
71
|
-
if (profilecardProvider) {
|
|
72
|
-
return /*#__PURE__*/React.createElement(MentionWithProfileCard, _extends({
|
|
73
|
-
autoFocus: false,
|
|
74
|
-
id: id,
|
|
75
|
-
text: resolvedName,
|
|
76
|
-
accessLevel: accessLevel,
|
|
77
|
-
mentionProvider: mentionProvider,
|
|
78
|
-
profilecardProvider: profilecardProvider,
|
|
79
|
-
localId: localId
|
|
80
|
-
// Ignored via go/ees005
|
|
81
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
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
|
-
// Ignored via go/ees005
|
|
91
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
92
|
-
}, actionHandlers));
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
const useResolvedName = (id, text, mentionProvider) => {
|
|
96
|
-
const [resolvedName, setResolvedName] = useState(text);
|
|
97
|
-
const processName = name => {
|
|
98
|
-
if (name.status === MentionNameStatus.OK) {
|
|
99
|
-
return `@${name.name || ''}`;
|
|
100
|
-
} else {
|
|
101
|
-
return `@_|unknown|_`;
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
useEffect(() => {
|
|
105
|
-
if (mentionProvider) {
|
|
106
|
-
mentionProvider.then(async provider => {
|
|
107
|
-
if (!text && isResolvingMentionProvider(provider)) {
|
|
108
|
-
const nameDetail = provider.resolveMentionName(id);
|
|
109
|
-
if (isPromise(nameDetail)) {
|
|
110
|
-
return processName(await nameDetail);
|
|
111
|
-
} else {
|
|
112
|
-
return processName(nameDetail);
|
|
113
|
-
}
|
|
114
|
-
} else {
|
|
115
|
-
return text;
|
|
116
|
-
}
|
|
117
|
-
}).then(resolvedName => {
|
|
118
|
-
setResolvedName(resolvedName);
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}, [id, text, mentionProvider]);
|
|
122
|
-
return resolvedName;
|
|
123
|
-
};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { useSharedPluginState, sharedPluginStateHookMigratorFactory } from '@atlaskit/editor-common/hooks';
|
|
3
|
-
import { WithProviders } from '@atlaskit/editor-common/provider-factory';
|
|
4
|
-
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
5
|
-
import { Mention } from '../ui/Mention';
|
|
6
|
-
var useSharedMentionState = sharedPluginStateHookMigratorFactory(function (api) {
|
|
7
|
-
var mentionProvider = useSharedPluginStateSelector(api, 'mention.mentionProvider');
|
|
8
|
-
return {
|
|
9
|
-
mentionProvider: mentionProvider
|
|
10
|
-
};
|
|
11
|
-
}, function (api) {
|
|
12
|
-
var _useSharedPluginState = useSharedPluginState(api, ['mention']),
|
|
13
|
-
mentionState = _useSharedPluginState.mentionState;
|
|
14
|
-
return {
|
|
15
|
-
mentionProvider: mentionState === null || mentionState === void 0 ? void 0 : mentionState.mentionProvider
|
|
16
|
-
};
|
|
17
|
-
});
|
|
18
|
-
export var MentionNodeView = function MentionNodeView(props) {
|
|
19
|
-
var providerFactory = props.providerFactory,
|
|
20
|
-
pluginInjectionApi = props.pluginInjectionApi;
|
|
21
|
-
var _props$node$attrs = props.node.attrs,
|
|
22
|
-
id = _props$node$attrs.id,
|
|
23
|
-
text = _props$node$attrs.text,
|
|
24
|
-
accessLevel = _props$node$attrs.accessLevel,
|
|
25
|
-
localId = _props$node$attrs.localId;
|
|
26
|
-
var _useSharedMentionStat = useSharedMentionState(pluginInjectionApi),
|
|
27
|
-
mentionProvider = _useSharedMentionStat.mentionProvider;
|
|
28
|
-
var renderAssistiveTextWithProviders = function renderAssistiveTextWithProviders(providers) {
|
|
29
|
-
var _props$options;
|
|
30
|
-
var mentionProviderPromise = mentionProvider ? Promise.resolve(mentionProvider) : providers.mentionProvider;
|
|
31
|
-
var profilecardProvider = (_props$options = props.options) === null || _props$options === void 0 ? void 0 : _props$options.profilecardProvider;
|
|
32
|
-
return /*#__PURE__*/React.createElement(Mention, {
|
|
33
|
-
id: id,
|
|
34
|
-
text: text,
|
|
35
|
-
accessLevel: accessLevel,
|
|
36
|
-
mentionProvider: mentionProviderPromise,
|
|
37
|
-
profilecardProvider: profilecardProvider,
|
|
38
|
-
localId: localId
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
return /*#__PURE__*/React.createElement(WithProviders, {
|
|
42
|
-
providers: ['mentionProvider', 'profilecardProvider'],
|
|
43
|
-
providerFactory: providerFactory,
|
|
44
|
-
renderNode: renderAssistiveTextWithProviders
|
|
45
|
-
});
|
|
46
|
-
};
|
|
@@ -1,176 +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
|
-
export var Mention = function Mention(props) {
|
|
25
|
-
var accessLevel = props.accessLevel,
|
|
26
|
-
eventHandlers = props.eventHandlers,
|
|
27
|
-
id = props.id,
|
|
28
|
-
text = props.text,
|
|
29
|
-
localId = props.localId,
|
|
30
|
-
mentionProvider = props.mentionProvider,
|
|
31
|
-
profilecardProviderPromise = props.profilecardProvider;
|
|
32
|
-
var _useState = useState(undefined),
|
|
33
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
34
|
-
profilecardProvider = _useState2[0],
|
|
35
|
-
setProfilecardProvider = _useState2[1];
|
|
36
|
-
var resolvedName = useResolvedName(id, text, mentionProvider);
|
|
37
|
-
|
|
38
|
-
// Resolve the profilecard provider
|
|
39
|
-
useEffect(function () {
|
|
40
|
-
var isCancelled = false;
|
|
41
|
-
var resolveProfilecardProvider = /*#__PURE__*/function () {
|
|
42
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
43
|
-
var _profilecardProvider;
|
|
44
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
45
|
-
while (1) switch (_context.prev = _context.next) {
|
|
46
|
-
case 0:
|
|
47
|
-
_context.prev = 0;
|
|
48
|
-
_context.next = 3;
|
|
49
|
-
return profilecardProviderPromise;
|
|
50
|
-
case 3:
|
|
51
|
-
_profilecardProvider = _context.sent;
|
|
52
|
-
if (!isCancelled) {
|
|
53
|
-
setProfilecardProvider(_profilecardProvider);
|
|
54
|
-
}
|
|
55
|
-
_context.next = 10;
|
|
56
|
-
break;
|
|
57
|
-
case 7:
|
|
58
|
-
_context.prev = 7;
|
|
59
|
-
_context.t0 = _context["catch"](0);
|
|
60
|
-
if (!isCancelled) {
|
|
61
|
-
setProfilecardProvider(undefined);
|
|
62
|
-
}
|
|
63
|
-
case 10:
|
|
64
|
-
case "end":
|
|
65
|
-
return _context.stop();
|
|
66
|
-
}
|
|
67
|
-
}, _callee, null, [[0, 7]]);
|
|
68
|
-
}));
|
|
69
|
-
return function resolveProfilecardProvider() {
|
|
70
|
-
return _ref.apply(this, arguments);
|
|
71
|
-
};
|
|
72
|
-
}();
|
|
73
|
-
if (profilecardProviderPromise) {
|
|
74
|
-
resolveProfilecardProvider();
|
|
75
|
-
}
|
|
76
|
-
return function () {
|
|
77
|
-
isCancelled = true;
|
|
78
|
-
};
|
|
79
|
-
}, [profilecardProviderPromise]);
|
|
80
|
-
useEffect(function () {
|
|
81
|
-
// Workaround an issue where the selection is not updated immediately after adding
|
|
82
|
-
// a mention when "sanitizePrivateContent" is enabled in the editor on safari.
|
|
83
|
-
// This affects both insertion and paste behaviour it is applied to the component.
|
|
84
|
-
// https://product-fabric.atlassian.net/browse/ED-14859
|
|
85
|
-
if (browser.safari) {
|
|
86
|
-
setTimeout(refreshBrowserSelection, 0);
|
|
87
|
-
}
|
|
88
|
-
}, []);
|
|
89
|
-
var actionHandlers = {};
|
|
90
|
-
['onClick', 'onMouseEnter', 'onMouseLeave'].forEach(function (handler) {
|
|
91
|
-
// Ignored via go/ees005
|
|
92
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
93
|
-
actionHandlers[handler] = eventHandlers && eventHandlers[handler] || function () {};
|
|
94
|
-
});
|
|
95
|
-
if (profilecardProvider) {
|
|
96
|
-
return /*#__PURE__*/React.createElement(MentionWithProfileCard, _extends({
|
|
97
|
-
autoFocus: false,
|
|
98
|
-
id: id,
|
|
99
|
-
text: resolvedName,
|
|
100
|
-
accessLevel: accessLevel,
|
|
101
|
-
mentionProvider: mentionProvider,
|
|
102
|
-
profilecardProvider: profilecardProvider,
|
|
103
|
-
localId: localId
|
|
104
|
-
// Ignored via go/ees005
|
|
105
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
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
|
-
// Ignored via go/ees005
|
|
115
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
116
|
-
}, actionHandlers));
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
var useResolvedName = function useResolvedName(id, text, mentionProvider) {
|
|
120
|
-
var _useState3 = useState(text),
|
|
121
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
122
|
-
resolvedName = _useState4[0],
|
|
123
|
-
setResolvedName = _useState4[1];
|
|
124
|
-
var processName = function processName(name) {
|
|
125
|
-
if (name.status === MentionNameStatus.OK) {
|
|
126
|
-
return "@".concat(name.name || '');
|
|
127
|
-
} else {
|
|
128
|
-
return "@_|unknown|_";
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
useEffect(function () {
|
|
132
|
-
if (mentionProvider) {
|
|
133
|
-
mentionProvider.then( /*#__PURE__*/function () {
|
|
134
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(provider) {
|
|
135
|
-
var nameDetail;
|
|
136
|
-
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
137
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
138
|
-
case 0:
|
|
139
|
-
if (!(!text && isResolvingMentionProvider(provider))) {
|
|
140
|
-
_context2.next = 13;
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
nameDetail = provider.resolveMentionName(id);
|
|
144
|
-
if (!isPromise(nameDetail)) {
|
|
145
|
-
_context2.next = 10;
|
|
146
|
-
break;
|
|
147
|
-
}
|
|
148
|
-
_context2.t0 = processName;
|
|
149
|
-
_context2.next = 6;
|
|
150
|
-
return nameDetail;
|
|
151
|
-
case 6:
|
|
152
|
-
_context2.t1 = _context2.sent;
|
|
153
|
-
return _context2.abrupt("return", (0, _context2.t0)(_context2.t1));
|
|
154
|
-
case 10:
|
|
155
|
-
return _context2.abrupt("return", processName(nameDetail));
|
|
156
|
-
case 11:
|
|
157
|
-
_context2.next = 14;
|
|
158
|
-
break;
|
|
159
|
-
case 13:
|
|
160
|
-
return _context2.abrupt("return", text);
|
|
161
|
-
case 14:
|
|
162
|
-
case "end":
|
|
163
|
-
return _context2.stop();
|
|
164
|
-
}
|
|
165
|
-
}, _callee2);
|
|
166
|
-
}));
|
|
167
|
-
return function (_x) {
|
|
168
|
-
return _ref2.apply(this, arguments);
|
|
169
|
-
};
|
|
170
|
-
}()).then(function (resolvedName) {
|
|
171
|
-
setResolvedName(resolvedName);
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
}, [id, text, mentionProvider]);
|
|
175
|
-
return resolvedName;
|
|
176
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
3
|
-
import type { InlineNodeViewComponentProps } from '@atlaskit/editor-common/react-node-view';
|
|
4
|
-
import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
|
|
5
|
-
import type { MentionsPlugin } from '../mentionsPluginType';
|
|
6
|
-
import type { MentionPluginOptions } from '../types';
|
|
7
|
-
export type Props = InlineNodeViewComponentProps & {
|
|
8
|
-
options: MentionPluginOptions | undefined;
|
|
9
|
-
providerFactory: ProviderFactory;
|
|
10
|
-
pluginInjectionApi?: ExtractInjectionAPI<MentionsPlugin>;
|
|
11
|
-
};
|
|
12
|
-
export declare const MentionNodeView: (props: Props) => React.JSX.Element;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type ProfilecardProvider } from '@atlaskit/editor-common/provider-factory';
|
|
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
|
-
export declare const Mention: (props: MentionProps) => React.JSX.Element;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
3
|
-
import type { InlineNodeViewComponentProps } from '@atlaskit/editor-common/react-node-view';
|
|
4
|
-
import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
|
|
5
|
-
import type { MentionsPlugin } from '../mentionsPluginType';
|
|
6
|
-
import type { MentionPluginOptions } from '../types';
|
|
7
|
-
export type Props = InlineNodeViewComponentProps & {
|
|
8
|
-
options: MentionPluginOptions | undefined;
|
|
9
|
-
providerFactory: ProviderFactory;
|
|
10
|
-
pluginInjectionApi?: ExtractInjectionAPI<MentionsPlugin>;
|
|
11
|
-
};
|
|
12
|
-
export declare const MentionNodeView: (props: Props) => React.JSX.Element;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type ProfilecardProvider } from '@atlaskit/editor-common/provider-factory';
|
|
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
|
-
export declare const Mention: (props: MentionProps) => React.JSX.Element;
|