@atlaskit/editor-core 188.10.4 → 188.10.7

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 (108) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/create-editor/ReactEditorView.js +3 -4
  3. package/dist/cjs/create-editor/create-editor.js +3 -6
  4. package/dist/cjs/create-editor/feature-flags-from-props.js +7 -9
  5. package/dist/cjs/labs/next/presets/universal.js +2 -1
  6. package/dist/cjs/plugins/index.js +0 -7
  7. package/dist/cjs/utils/performance/instrumented-plugin.js +4 -10
  8. package/dist/cjs/utils/performance/safer-transactions.js +2 -5
  9. package/dist/cjs/version-wrapper.js +1 -1
  10. package/dist/es2019/create-editor/ReactEditorView.js +3 -4
  11. package/dist/es2019/create-editor/create-editor.js +3 -6
  12. package/dist/es2019/create-editor/feature-flags-from-props.js +7 -9
  13. package/dist/es2019/labs/next/presets/universal.js +2 -1
  14. package/dist/es2019/plugins/index.js +0 -1
  15. package/dist/es2019/utils/performance/instrumented-plugin.js +4 -8
  16. package/dist/es2019/utils/performance/safer-transactions.js +2 -5
  17. package/dist/es2019/version-wrapper.js +1 -1
  18. package/dist/esm/create-editor/ReactEditorView.js +3 -4
  19. package/dist/esm/create-editor/create-editor.js +3 -6
  20. package/dist/esm/create-editor/feature-flags-from-props.js +7 -9
  21. package/dist/esm/labs/next/presets/universal.js +2 -1
  22. package/dist/esm/plugins/index.js +0 -1
  23. package/dist/esm/utils/performance/instrumented-plugin.js +4 -10
  24. package/dist/esm/utils/performance/safer-transactions.js +2 -5
  25. package/dist/esm/version-wrapper.js +1 -1
  26. package/dist/types/plugins/index.d.ts +0 -1
  27. package/dist/types/plugins/insert-block/types.d.ts +2 -4
  28. package/dist/types/types/editor-props.d.ts +1 -1
  29. package/dist/types/utils/performance/instrumented-plugin.d.ts +0 -3
  30. package/dist/types/utils/performance/safer-transactions.d.ts +1 -2
  31. package/dist/types-ts4.5/plugins/index.d.ts +0 -1
  32. package/dist/types-ts4.5/plugins/insert-block/types.d.ts +2 -4
  33. package/dist/types-ts4.5/types/editor-props.d.ts +1 -1
  34. package/dist/types-ts4.5/utils/performance/instrumented-plugin.d.ts +0 -3
  35. package/dist/types-ts4.5/utils/performance/safer-transactions.d.ts +1 -2
  36. package/package.json +2 -2
  37. package/report.api.md +1 -9
  38. package/tmp/api-report-tmp.d.ts +1 -9
  39. package/dist/cjs/plugins/mentions/analytics.js +0 -157
  40. package/dist/cjs/plugins/mentions/index.js +0 -142
  41. package/dist/cjs/plugins/mentions/messages.js +0 -29
  42. package/dist/cjs/plugins/mentions/nodeviews/mention.js +0 -117
  43. package/dist/cjs/plugins/mentions/pm-plugins/key.js +0 -8
  44. package/dist/cjs/plugins/mentions/pm-plugins/main.js +0 -156
  45. package/dist/cjs/plugins/mentions/pm-plugins/utils.js +0 -23
  46. package/dist/cjs/plugins/mentions/type-ahead/index.js +0 -362
  47. package/dist/cjs/plugins/mentions/types.js +0 -5
  48. package/dist/cjs/plugins/mentions/ui/InviteItem/index.js +0 -76
  49. package/dist/cjs/plugins/mentions/ui/InviteItem/styles.js +0 -19
  50. package/dist/cjs/plugins/mentions/ui/Mention/index.js +0 -98
  51. package/dist/cjs/plugins/mentions/ui/ToolbarMention/index.js +0 -63
  52. package/dist/cjs/plugins/mentions/utils.js +0 -32
  53. package/dist/es2019/plugins/mentions/analytics.js +0 -147
  54. package/dist/es2019/plugins/mentions/index.js +0 -124
  55. package/dist/es2019/plugins/mentions/messages.js +0 -23
  56. package/dist/es2019/plugins/mentions/nodeviews/mention.js +0 -80
  57. package/dist/es2019/plugins/mentions/pm-plugins/key.js +0 -2
  58. package/dist/es2019/plugins/mentions/pm-plugins/main.js +0 -143
  59. package/dist/es2019/plugins/mentions/pm-plugins/utils.js +0 -14
  60. package/dist/es2019/plugins/mentions/type-ahead/index.js +0 -338
  61. package/dist/es2019/plugins/mentions/types.js +0 -1
  62. package/dist/es2019/plugins/mentions/ui/InviteItem/index.js +0 -66
  63. package/dist/es2019/plugins/mentions/ui/InviteItem/styles.js +0 -47
  64. package/dist/es2019/plugins/mentions/ui/Mention/index.js +0 -71
  65. package/dist/es2019/plugins/mentions/ui/ToolbarMention/index.js +0 -33
  66. package/dist/es2019/plugins/mentions/utils.js +0 -20
  67. package/dist/esm/plugins/mentions/analytics.js +0 -150
  68. package/dist/esm/plugins/mentions/index.js +0 -130
  69. package/dist/esm/plugins/mentions/messages.js +0 -23
  70. package/dist/esm/plugins/mentions/nodeviews/mention.js +0 -107
  71. package/dist/esm/plugins/mentions/pm-plugins/key.js +0 -2
  72. package/dist/esm/plugins/mentions/pm-plugins/main.js +0 -148
  73. package/dist/esm/plugins/mentions/pm-plugins/utils.js +0 -16
  74. package/dist/esm/plugins/mentions/type-ahead/index.js +0 -350
  75. package/dist/esm/plugins/mentions/types.js +0 -1
  76. package/dist/esm/plugins/mentions/ui/InviteItem/index.js +0 -65
  77. package/dist/esm/plugins/mentions/ui/InviteItem/styles.js +0 -12
  78. package/dist/esm/plugins/mentions/ui/Mention/index.js +0 -91
  79. package/dist/esm/plugins/mentions/ui/ToolbarMention/index.js +0 -53
  80. package/dist/esm/plugins/mentions/utils.js +0 -26
  81. package/dist/types/plugins/mentions/analytics.d.ts +0 -13
  82. package/dist/types/plugins/mentions/index.d.ts +0 -19
  83. package/dist/types/plugins/mentions/messages.d.ts +0 -22
  84. package/dist/types/plugins/mentions/nodeviews/mention.d.ts +0 -9
  85. package/dist/types/plugins/mentions/pm-plugins/key.d.ts +0 -3
  86. package/dist/types/plugins/mentions/pm-plugins/main.d.ts +0 -6
  87. package/dist/types/plugins/mentions/pm-plugins/utils.d.ts +0 -4
  88. package/dist/types/plugins/mentions/type-ahead/index.d.ts +0 -17
  89. package/dist/types/plugins/mentions/types.d.ts +0 -24
  90. package/dist/types/plugins/mentions/ui/InviteItem/index.d.ts +0 -22
  91. package/dist/types/plugins/mentions/ui/InviteItem/styles.d.ts +0 -8
  92. package/dist/types/plugins/mentions/ui/Mention/index.d.ts +0 -19
  93. package/dist/types/plugins/mentions/ui/ToolbarMention/index.d.ts +0 -13
  94. package/dist/types/plugins/mentions/utils.d.ts +0 -8
  95. package/dist/types-ts4.5/plugins/mentions/analytics.d.ts +0 -13
  96. package/dist/types-ts4.5/plugins/mentions/index.d.ts +0 -22
  97. package/dist/types-ts4.5/plugins/mentions/messages.d.ts +0 -22
  98. package/dist/types-ts4.5/plugins/mentions/nodeviews/mention.d.ts +0 -9
  99. package/dist/types-ts4.5/plugins/mentions/pm-plugins/key.d.ts +0 -3
  100. package/dist/types-ts4.5/plugins/mentions/pm-plugins/main.d.ts +0 -6
  101. package/dist/types-ts4.5/plugins/mentions/pm-plugins/utils.d.ts +0 -4
  102. package/dist/types-ts4.5/plugins/mentions/type-ahead/index.d.ts +0 -17
  103. package/dist/types-ts4.5/plugins/mentions/types.d.ts +0 -24
  104. package/dist/types-ts4.5/plugins/mentions/ui/InviteItem/index.d.ts +0 -22
  105. package/dist/types-ts4.5/plugins/mentions/ui/InviteItem/styles.d.ts +0 -8
  106. package/dist/types-ts4.5/plugins/mentions/ui/Mention/index.d.ts +0 -19
  107. package/dist/types-ts4.5/plugins/mentions/ui/ToolbarMention/index.d.ts +0 -13
  108. package/dist/types-ts4.5/plugins/mentions/utils.d.ts +0 -8
@@ -1,156 +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.createMentionPlugin = createMentionPlugin;
8
- exports.setContext = void 0;
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
11
- var _resource = require("@atlaskit/mention/resource");
12
- var _reactNodeView = require("@atlaskit/editor-common/react-node-view");
13
- var _mention = require("../nodeviews/mention");
14
- var _key = require("./key");
15
- var _utils = require("./utils");
16
- 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; }
17
- 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) { (0, _defineProperty2.default)(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; }
18
- var ACTIONS = {
19
- SET_PROVIDER: 'SET_PROVIDER',
20
- SET_CONTEXT: 'SET_CONTEXT'
21
- };
22
- var setProvider = function setProvider(provider) {
23
- return function (state, dispatch) {
24
- if (dispatch) {
25
- dispatch(state.tr.setMeta(_key.mentionPluginKey, {
26
- action: ACTIONS.SET_PROVIDER,
27
- params: {
28
- provider: provider
29
- }
30
- }));
31
- }
32
- return true;
33
- };
34
- };
35
- var setContext = exports.setContext = function setContext(context) {
36
- return function (state, dispatch) {
37
- if (dispatch) {
38
- dispatch(state.tr.setMeta(_key.mentionPluginKey, {
39
- action: ACTIONS.SET_CONTEXT,
40
- params: {
41
- context: context
42
- }
43
- }));
44
- }
45
- return true;
46
- };
47
- };
48
- function createMentionPlugin(pmPluginFactoryParams, fireEvent, options) {
49
- var mentionProvider;
50
- var sendAnalytics = function sendAnalytics(event, actionSubject, action, attributes) {
51
- if (event === _resource.SLI_EVENT_TYPE || event === _resource.SMART_EVENT_TYPE) {
52
- fireEvent((0, _resource.buildSliPayload)(actionSubject, action, attributes));
53
- }
54
- };
55
- return new _safePlugin.SafePlugin({
56
- key: _key.mentionPluginKey,
57
- state: {
58
- init: function init(_, state) {
59
- var canInsertMention = (0, _utils.canMentionBeCreatedInRange)(state.selection.from, state.selection.to)(state);
60
- return {
61
- canInsertMention: canInsertMention
62
- };
63
- },
64
- apply: function apply(tr, pluginState, oldState, newState) {
65
- var _ref = tr.getMeta(_key.mentionPluginKey) || {
66
- action: null,
67
- params: null
68
- },
69
- action = _ref.action,
70
- params = _ref.params;
71
- var hasNewPluginState = false;
72
- var newPluginState = pluginState;
73
- var hasPositionChanged = oldState.selection.from !== newState.selection.from || oldState.selection.to !== newState.selection.to;
74
- if (tr.docChanged || tr.selectionSet && hasPositionChanged) {
75
- newPluginState = _objectSpread(_objectSpread({}, pluginState), {}, {
76
- canInsertMention: (0, _utils.canMentionBeCreatedInRange)(newState.selection.from, newState.selection.to)(newState)
77
- });
78
- hasNewPluginState = true;
79
- }
80
- switch (action) {
81
- case ACTIONS.SET_PROVIDER:
82
- newPluginState = _objectSpread(_objectSpread({}, newPluginState), {}, {
83
- mentionProvider: params.provider
84
- });
85
- hasNewPluginState = true;
86
- break;
87
- case ACTIONS.SET_CONTEXT:
88
- newPluginState = _objectSpread(_objectSpread({}, newPluginState), {}, {
89
- contextIdentifierProvider: params.context
90
- });
91
- hasNewPluginState = true;
92
- break;
93
- }
94
- if (hasNewPluginState) {
95
- pmPluginFactoryParams.dispatch(_key.mentionPluginKey, newPluginState);
96
- }
97
- return newPluginState;
98
- }
99
- },
100
- props: {
101
- nodeViews: {
102
- mention: (0, _reactNodeView.getInlineNodeViewProducer)({
103
- pmPluginFactoryParams: pmPluginFactoryParams,
104
- Component: _mention.MentionNodeView,
105
- extraComponentProps: {
106
- providerFactory: pmPluginFactoryParams.providerFactory,
107
- options: options
108
- }
109
- })
110
- }
111
- },
112
- view: function view(editorView) {
113
- var providerHandler = function providerHandler(name, providerPromise) {
114
- switch (name) {
115
- case 'mentionProvider':
116
- if (!providerPromise) {
117
- return setProvider(undefined)(editorView.state, editorView.dispatch);
118
- }
119
- providerPromise.then(function (provider) {
120
- if (mentionProvider) {
121
- mentionProvider.unsubscribe('mentionPlugin');
122
- }
123
- mentionProvider = provider;
124
- setProvider(provider)(editorView.state, editorView.dispatch);
125
- provider.subscribe('mentionPlugin', undefined, undefined, undefined, undefined, sendAnalytics);
126
- }).catch(function () {
127
- return setProvider(undefined)(editorView.state, editorView.dispatch);
128
- });
129
- break;
130
- case 'contextIdentifierProvider':
131
- if (!providerPromise) {
132
- return setContext(undefined)(editorView.state, editorView.dispatch);
133
- }
134
- providerPromise.then(function (provider) {
135
- setContext(provider)(editorView.state, editorView.dispatch);
136
- });
137
- break;
138
- }
139
- return;
140
- };
141
- pmPluginFactoryParams.providerFactory.subscribe('mentionProvider', providerHandler);
142
- pmPluginFactoryParams.providerFactory.subscribe('contextIdentifierProvider', providerHandler);
143
- return {
144
- destroy: function destroy() {
145
- if (pmPluginFactoryParams.providerFactory) {
146
- pmPluginFactoryParams.providerFactory.unsubscribe('mentionProvider', providerHandler);
147
- pmPluginFactoryParams.providerFactory.unsubscribe('contextIdentifierProvider', providerHandler);
148
- }
149
- if (mentionProvider) {
150
- mentionProvider.unsubscribe('mentionPlugin');
151
- }
152
- }
153
- };
154
- }
155
- });
156
- }
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.canMentionBeCreatedInRange = void 0;
7
- exports.getMentionPluginState = getMentionPluginState;
8
- var _key = require("./key");
9
- var _utils = require("@atlaskit/editor-prosemirror/utils");
10
- function getMentionPluginState(state) {
11
- return _key.mentionPluginKey.getState(state);
12
- }
13
- var canMentionBeCreatedInRange = exports.canMentionBeCreatedInRange = function canMentionBeCreatedInRange(from, to) {
14
- return function (state) {
15
- var $from = state.doc.resolve(from);
16
- var $to = state.doc.resolve(to);
17
- var mention = state.schema.nodes.mention.createChecked();
18
- if ($from.parent === $to.parent && (0, _utils.canInsert)($from, mention)) {
19
- return true;
20
- }
21
- return false;
22
- };
23
- };
@@ -1,362 +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.createTypeAheadConfig = void 0;
9
- exports.memoize = memoize;
10
- exports.mentionToTypeaheadItem = void 0;
11
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
- var _react = _interopRequireDefault(require("react"));
14
- var _uuid = _interopRequireDefault(require("uuid"));
15
- var _model = require("@atlaskit/editor-prosemirror/model");
16
- var _resource = require("@atlaskit/mention/resource");
17
- var _item = require("@atlaskit/mention/item");
18
- var _typeAhead = require("@atlaskit/editor-common/type-ahead");
19
- var _analytics = require("../analytics");
20
- var _InviteItem = _interopRequireWildcard(require("../ui/InviteItem"));
21
- var _utils = require("../utils");
22
- var _utils2 = require("../pm-plugins/utils");
23
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
26
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
27
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
28
- 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; }
29
- 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) { (0, _defineProperty2.default)(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; }
30
- var createInviteItem = function createInviteItem(_ref) {
31
- var mentionProvider = _ref.mentionProvider,
32
- onInviteItemMount = _ref.onInviteItemMount;
33
- return {
34
- title: _InviteItem.INVITE_ITEM_DESCRIPTION.id,
35
- render: function render(_ref2) {
36
- var isSelected = _ref2.isSelected,
37
- onClick = _ref2.onClick,
38
- onHover = _ref2.onHover;
39
- return /*#__PURE__*/_react.default.createElement(_InviteItem.default, {
40
- productName: mentionProvider ? mentionProvider.productName : undefined,
41
- selected: isSelected,
42
- onMount: onInviteItemMount,
43
- onMouseEnter: onHover,
44
- onSelection: onClick,
45
- userRole: mentionProvider.userRole
46
- });
47
- },
48
- mention: _InviteItem.INVITE_ITEM_DESCRIPTION
49
- };
50
- };
51
- var withInviteItem = function withInviteItem(_ref3) {
52
- var mentionProvider = _ref3.mentionProvider,
53
- firstQueryWithoutResults = _ref3.firstQueryWithoutResults,
54
- currentQuery = _ref3.currentQuery,
55
- onInviteItemMount = _ref3.onInviteItemMount;
56
- return function (mentionItems) {
57
- var inviteItem = createInviteItem({
58
- mentionProvider: mentionProvider,
59
- onInviteItemMount: onInviteItemMount
60
- });
61
- var keepInviteItem = (0, _utils.shouldKeepInviteItem)(currentQuery, firstQueryWithoutResults);
62
- if (mentionItems.length === 0) {
63
- return keepInviteItem ? [inviteItem] : [];
64
- }
65
- return [].concat((0, _toConsumableArray2.default)(mentionItems), [
66
- // invite item should be shown at the bottom
67
- inviteItem]);
68
- };
69
- };
70
- var mentionToTypeaheadItem = exports.mentionToTypeaheadItem = function mentionToTypeaheadItem(mention) {
71
- return {
72
- title: mention.id,
73
- render: function render(_ref4) {
74
- var isSelected = _ref4.isSelected,
75
- onClick = _ref4.onClick,
76
- onHover = _ref4.onHover;
77
- return /*#__PURE__*/_react.default.createElement(_item.MentionItem, {
78
- mention: mention,
79
- selected: isSelected,
80
- onMouseEnter: onHover,
81
- onSelection: onClick
82
- });
83
- },
84
- getCustomComponentHeight: function getCustomComponentHeight() {
85
- return _item.MENTION_ITEM_HEIGHT;
86
- },
87
- mention: mention
88
- };
89
- };
90
- function memoize(fn) {
91
- // Cache results here
92
- var seen = new Map();
93
- function memoized(mention) {
94
- // Check cache for hits
95
- var hit = seen.get(mention.id);
96
- if (hit) {
97
- return hit;
98
- }
99
-
100
- // Generate new result and cache it
101
- var result = fn(mention);
102
- seen.set(mention.id, result);
103
- return result;
104
- }
105
- return {
106
- call: memoized,
107
- clear: seen.clear.bind(seen)
108
- };
109
- }
110
- var memoizedToItem = memoize(mentionToTypeaheadItem);
111
- var buildAndSendElementsTypeAheadAnalytics = function buildAndSendElementsTypeAheadAnalytics(fireEvent) {
112
- return function (_ref5) {
113
- var query = _ref5.query,
114
- mentions = _ref5.mentions,
115
- stats = _ref5.stats;
116
- var duration = 0;
117
- var userOrTeamIds = null;
118
- var teams = null;
119
- if (!(0, _utils.isTeamStats)(stats)) {
120
- // is from primary mention endpoint which could be just user mentions or user/team mentions
121
- duration = stats && stats.duration;
122
- teams = null;
123
- userOrTeamIds = mentions.map(function (mention) {
124
- return mention.id;
125
- });
126
- } else {
127
- // is from dedicated team-only mention endpoint
128
- duration = stats && stats.teamMentionDuration;
129
- userOrTeamIds = null;
130
- teams = mentions.map(function (mention) {
131
- return (0, _utils.isTeamType)(mention.userType) ? {
132
- teamId: mention.id,
133
- includesYou: mention.context.includesYou,
134
- memberCount: mention.context.memberCount
135
- } : null;
136
- }).filter(function (m) {
137
- return !!m;
138
- });
139
- }
140
- var payload = (0, _analytics.buildTypeAheadRenderedPayload)(duration, userOrTeamIds, query, teams);
141
- fireEvent(payload);
142
- };
143
- };
144
-
145
- /**
146
- * When a team mention is selected, we render a team link and list of member/user mentions
147
- * in editor content
148
- */
149
- var buildNodesForTeamMention = function buildNodesForTeamMention(schema, selectedMention, mentionProvider, sanitizePrivateContent) {
150
- var nodes = schema.nodes,
151
- marks = schema.marks;
152
- var name = selectedMention.name,
153
- teamId = selectedMention.id,
154
- accessLevel = selectedMention.accessLevel,
155
- context = selectedMention.context;
156
-
157
- // build team link
158
- var defaultTeamLink = "".concat(window.location.origin, "/people/team/").concat(teamId);
159
- var teamLink = context && context.teamLink ? context.teamLink : defaultTeamLink;
160
- var teamLinkNode = schema.text(name, [marks.link.create({
161
- href: teamLink
162
- })]);
163
- var openBracketText = schema.text('(');
164
- var closeBracketText = schema.text(')');
165
- var emptySpaceText = schema.text(' ');
166
- var inlineNodes = [teamLinkNode, emptySpaceText, openBracketText];
167
- var members = context && context.members ? context.members : [];
168
- members.forEach(function (member, index) {
169
- var name = member.name,
170
- id = member.id;
171
- var mentionName = "@".concat(name);
172
- var text = sanitizePrivateContent ? '' : mentionName;
173
- if (sanitizePrivateContent && (0, _resource.isResolvingMentionProvider)(mentionProvider)) {
174
- mentionProvider.cacheMentionName(id, name);
175
- }
176
- var userMentionNode = nodes.mention.createChecked({
177
- text: text,
178
- id: member.id,
179
- accessLevel: accessLevel,
180
- userType: 'DEFAULT'
181
- });
182
- inlineNodes.push(userMentionNode);
183
- // should not add empty space after the last user mention.
184
- if (index !== members.length - 1) {
185
- inlineNodes.push(emptySpaceText);
186
- }
187
- });
188
- inlineNodes.push(closeBracketText);
189
- return _model.Fragment.fromArray(inlineNodes);
190
- };
191
- var createTypeAheadConfig = exports.createTypeAheadConfig = function createTypeAheadConfig(_ref6) {
192
- var sanitizePrivateContent = _ref6.sanitizePrivateContent,
193
- mentionInsertDisplayName = _ref6.mentionInsertDisplayName,
194
- fireEvent = _ref6.fireEvent,
195
- HighlightComponent = _ref6.HighlightComponent;
196
- var sessionId = (0, _uuid.default)();
197
- var firstQueryWithoutResults = null;
198
- var subscriptionKeys = new Set();
199
- var typeAhead = {
200
- id: _typeAhead.TypeAheadAvailableNodes.MENTION,
201
- trigger: '@',
202
- // Custom regex must have a capture group around trigger
203
- // so it's possible to use it without needing to scan through all triggers again
204
- customRegex: '\\(?(@)',
205
- getHighlight: function getHighlight(state) {
206
- var CustomHighlightComponent = HighlightComponent;
207
- if (CustomHighlightComponent) {
208
- return /*#__PURE__*/_react.default.createElement(CustomHighlightComponent, null);
209
- }
210
- return null;
211
- },
212
- getItems: function getItems(_ref7) {
213
- var query = _ref7.query,
214
- editorState = _ref7.editorState;
215
- var pluginState = (0, _utils2.getMentionPluginState)(editorState);
216
- if (!(pluginState !== null && pluginState !== void 0 && pluginState.mentionProvider)) {
217
- return Promise.resolve([]);
218
- }
219
- var mentionProvider = pluginState.mentionProvider,
220
- contextIdentifierProvider = pluginState.contextIdentifierProvider;
221
- return new Promise(function (resolve) {
222
- var key = "loadingMentionsForTypeAhead_".concat((0, _uuid.default)());
223
- var mentionsSubscribeCallback = function mentionsSubscribeCallback(mentions) {
224
- var resultQuery = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
225
- var stats = arguments.length > 2 ? arguments[2] : undefined;
226
- if (query !== resultQuery) {
227
- return;
228
- }
229
- mentionProvider.unsubscribe(key);
230
- subscriptionKeys.delete(key);
231
- var mentionItems = mentions.map(function (mention) {
232
- return memoizedToItem.call(mention);
233
- });
234
- buildAndSendElementsTypeAheadAnalytics(fireEvent)({
235
- query: query,
236
- mentions: mentions,
237
- stats: stats
238
- });
239
- if (mentions.length === 0 && firstQueryWithoutResults === null) {
240
- firstQueryWithoutResults = query;
241
- }
242
-
243
- // Growth (El-dorado) experiment design hard requirement
244
- if (mentionItems.length <= 2) {
245
- var inviteExperimentCohort = mentionProvider.inviteExperimentCohort,
246
- userRole = mentionProvider.userRole;
247
- fireEvent((0, _analytics.buildTypeAheadInviteExposurePayload)(sessionId, contextIdentifierProvider, inviteExperimentCohort, userRole));
248
- }
249
- if (!mentionProvider.shouldEnableInvite || mentionItems.length > 2) {
250
- resolve(mentionItems);
251
- } else {
252
- var items = withInviteItem({
253
- mentionProvider: mentionProvider,
254
- firstQueryWithoutResults: firstQueryWithoutResults || '',
255
- currentQuery: query,
256
- onInviteItemMount: function onInviteItemMount() {
257
- fireEvent((0, _analytics.buildTypeAheadInviteItemViewedPayload)(sessionId, contextIdentifierProvider, mentionProvider.userRole));
258
- }
259
- })(mentionItems);
260
- resolve(items);
261
- }
262
- };
263
- subscriptionKeys.add(key);
264
- mentionProvider.subscribe(key, mentionsSubscribeCallback);
265
- mentionProvider.filter(query || '', _objectSpread(_objectSpread({}, contextIdentifierProvider), {}, {
266
- sessionId: sessionId
267
- }));
268
- });
269
- },
270
- onOpen: function onOpen() {
271
- firstQueryWithoutResults = null;
272
- },
273
- selectItem: function selectItem(state, item, insert, _ref8) {
274
- var mode = _ref8.mode,
275
- stats = _ref8.stats,
276
- query = _ref8.query,
277
- sourceListItem = _ref8.sourceListItem;
278
- var schema = state.schema;
279
- var pluginState = (0, _utils2.getMentionPluginState)(state);
280
- var mentionProvider = pluginState.mentionProvider;
281
- var _item$mention = item.mention,
282
- id = _item$mention.id,
283
- name = _item$mention.name,
284
- nickname = _item$mention.nickname,
285
- accessLevel = _item$mention.accessLevel,
286
- userType = _item$mention.userType;
287
- var trimmedNickname = nickname && nickname.startsWith('@') ? nickname.slice(1) : nickname;
288
- var renderName = mentionInsertDisplayName || !trimmedNickname ? name : trimmedNickname;
289
- var mentionContext = _objectSpread(_objectSpread({}, pluginState.contextIdentifierProvider), {}, {
290
- sessionId: sessionId
291
- });
292
- if (mentionProvider && !(0, _utils.isInviteItem)(item.mention)) {
293
- mentionProvider.recordMentionSelection(item.mention, mentionContext);
294
- }
295
-
296
- // use same timer as StatsModifier
297
- var pickerElapsedTime = stats.startedAt ? performance.now() - stats.startedAt : 0;
298
- if (mentionProvider && mentionProvider.shouldEnableInvite && (0, _utils.isInviteItem)(item.mention)) {
299
- // Don't fire event and the callback with selection by space press
300
- if (mode !== 'space') {
301
- fireEvent((0, _analytics.buildTypeAheadInviteItemClickedPayload)(pickerElapsedTime, stats.keyCount.arrowUp, stats.keyCount.arrowDown, sessionId, mode, query, pluginState.contextIdentifierProvider, mentionProvider.userRole));
302
- if (mentionProvider.onInviteItemClick) {
303
- mentionProvider.onInviteItemClick('mention');
304
- }
305
- }
306
- return state.tr;
307
- }
308
- fireEvent((0, _analytics.buildTypeAheadInsertedPayload)(pickerElapsedTime, stats.keyCount.arrowUp, stats.keyCount.arrowDown, sessionId, mode, item.mention, sourceListItem.map(function (x) {
309
- return x.mention;
310
- }), query, pluginState.contextIdentifierProvider));
311
- sessionId = (0, _uuid.default)();
312
- if (mentionProvider && (0, _utils.isTeamType)(userType)) {
313
- return insert(buildNodesForTeamMention(schema, item.mention, mentionProvider, sanitizePrivateContent));
314
- }
315
-
316
- // Don't insert into document if document data is sanitized.
317
- var text = sanitizePrivateContent ? '' : "@".concat(renderName);
318
- if (sanitizePrivateContent && (0, _resource.isResolvingMentionProvider)(mentionProvider)) {
319
- // Cache (locally) for later rendering
320
- mentionProvider.cacheMentionName(id, renderName);
321
- }
322
- var mentionNode = schema.nodes.mention.createChecked({
323
- text: text,
324
- id: id,
325
- accessLevel: accessLevel,
326
- userType: userType === 'DEFAULT' ? null : userType
327
- });
328
- var space = schema.text(' ');
329
- return insert(_model.Fragment.from([mentionNode, space]));
330
- },
331
- dismiss: function dismiss(_ref9) {
332
- var editorState = _ref9.editorState,
333
- query = _ref9.query,
334
- stats = _ref9.stats,
335
- wasItemInserted = _ref9.wasItemInserted;
336
- firstQueryWithoutResults = null;
337
- var pickerElapsedTime = stats.startedAt ? performance.now() - stats.startedAt : 0;
338
- if (!wasItemInserted) {
339
- fireEvent((0, _analytics.buildTypeAheadCancelPayload)(pickerElapsedTime, stats.keyCount.arrowUp, stats.keyCount.arrowDown, sessionId, query || ''));
340
- }
341
- var pluginState = (0, _utils2.getMentionPluginState)(editorState);
342
- if (pluginState !== null && pluginState !== void 0 && pluginState.mentionProvider) {
343
- var mentionProvider = pluginState.mentionProvider;
344
- var _iterator = _createForOfIteratorHelper(subscriptionKeys),
345
- _step;
346
- try {
347
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
348
- var key = _step.value;
349
- mentionProvider.unsubscribe(key);
350
- }
351
- } catch (err) {
352
- _iterator.e(err);
353
- } finally {
354
- _iterator.f();
355
- }
356
- }
357
- subscriptionKeys.clear();
358
- sessionId = (0, _uuid.default)();
359
- }
360
- };
361
- return typeAhead;
362
- };
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,76 +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.default = exports.INVITE_ITEM_DESCRIPTION = void 0;
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
- var _react = require("@emotion/react");
11
- var _add = _interopRequireDefault(require("@atlaskit/icon/glyph/add"));
12
- var _colors = require("@atlaskit/theme/colors");
13
- var _react2 = _interopRequireWildcard(require("react"));
14
- var _reactIntlNext = require("react-intl-next");
15
- var _styles = require("./styles");
16
- var _messages = require("../../messages");
17
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
- /** @jsx jsx */
20
-
21
- var INVITE_ITEM_DESCRIPTION = exports.INVITE_ITEM_DESCRIPTION = {
22
- id: 'invite-teammate'
23
- };
24
- var leftClick = function leftClick(event) {
25
- return event.button === 0 && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
26
- };
27
- var InviteItem = function InviteItem(_ref) {
28
- var productName = _ref.productName,
29
- onMount = _ref.onMount,
30
- onMouseEnter = _ref.onMouseEnter,
31
- onSelection = _ref.onSelection,
32
- selected = _ref.selected,
33
- userRole = _ref.userRole,
34
- intl = _ref.intl;
35
- var onSelected = (0, _react2.useCallback)(function (event) {
36
- if (leftClick(event) && onSelection) {
37
- event.preventDefault();
38
- onSelection(INVITE_ITEM_DESCRIPTION, event);
39
- }
40
- }, [onSelection]);
41
- var onItemMouseEnter = (0, _react2.useCallback)(function (event) {
42
- if (onMouseEnter) {
43
- onMouseEnter(INVITE_ITEM_DESCRIPTION, event);
44
- }
45
- }, [onMouseEnter]);
46
- (0, _react2.useEffect)(function () {
47
- if (onMount) {
48
- onMount();
49
- }
50
- }, [onMount]);
51
- return (0, _react.jsx)("div", {
52
- css: [_styles.mentionItemStyle, selected && _styles.mentionItemSelectedStyle],
53
- onMouseDown: onSelected,
54
- onMouseEnter: onItemMouseEnter,
55
- "data-id": INVITE_ITEM_DESCRIPTION.id
56
- }, (0, _react.jsx)("div", {
57
- css: _styles.rowStyle
58
- }, (0, _react.jsx)("span", {
59
- css: _styles.avatarStyle
60
- }, (0, _react.jsx)(_add.default, {
61
- label: intl.formatMessage(_messages.messages.mentionsAddLabel),
62
- primaryColor: "var(--ds-icon-subtle, ".concat(_colors.N300, ")")
63
- })), (0, _react.jsx)("div", {
64
- css: _styles.nameSectionStyle,
65
- "data-testid": "name-section"
66
- }, (0, _react.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.inviteItemTitle, {
67
- values: {
68
- userRole: userRole || 'basic',
69
- productName: (0, _react.jsx)("span", {
70
- css: _styles.capitalizedStyle,
71
- "data-testid": "capitalized-message"
72
- }, productName)
73
- }
74
- })))));
75
- };
76
- var _default = exports.default = (0, _reactIntlNext.injectIntl)(InviteItem);
@@ -1,19 +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.rowStyle = exports.nameSectionStyle = exports.mentionItemStyle = exports.mentionItemSelectedStyle = exports.capitalizedStyle = exports.avatarStyle = exports.ROW_SIDE_PADDING = exports.AVATAR_HEIGHT = void 0;
8
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
- var _react = require("@emotion/react");
10
- var _colors = require("@atlaskit/theme/colors");
11
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
12
- var ROW_SIDE_PADDING = exports.ROW_SIDE_PADDING = 14;
13
- var rowStyle = exports.rowStyle = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n overflow: hidden;\n padding: 6px ", "px;\n text-overflow: ellipsis;\n vertical-align: middle;\n"])), ROW_SIDE_PADDING);
14
- var AVATAR_HEIGHT = exports.AVATAR_HEIGHT = 36;
15
- var avatarStyle = exports.avatarStyle = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n flex: initial;\n opacity: inherit;\n width: 36px;\n height: ", "px;\n\n > span {\n width: 24px;\n height: 24px;\n padding: 6px;\n }\n"])), AVATAR_HEIGHT);
16
- var nameSectionStyle = exports.nameSectionStyle = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1;\n min-width: 0;\n margin-left: 14px;\n color: ", ";\n opacity: inherit;\n"])), "var(--ds-text-subtle, ".concat(_colors.N300, ")"));
17
- var mentionItemStyle = exports.mentionItemStyle = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n background-color: transparent;\n display: block;\n overflow: hidden;\n list-style-type: none;\n cursor: pointer;\n"])));
18
- var mentionItemSelectedStyle = exports.mentionItemSelectedStyle = (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n"])), "var(--ds-background-neutral-subtle-hovered, ".concat(_colors.N30, ")"));
19
- var capitalizedStyle = exports.capitalizedStyle = (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n text-transform: capitalize;\n"])));