@atlaskit/editor-common 102.2.1 → 102.3.1
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 +25 -0
- package/dist/cjs/analytics/types/enums.js +1 -0
- package/dist/cjs/extensibility/Extension/Extension/index.js +26 -0
- package/dist/cjs/extensions/module-helpers.js +31 -14
- package/dist/cjs/keymaps/index.js +3 -2
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui/Mention/index.js +13 -1
- package/dist/cjs/ui/Mention/mention-with-providers.js +105 -2
- package/dist/es2019/analytics/types/enums.js +1 -0
- package/dist/es2019/extensibility/Extension/Extension/index.js +27 -1
- package/dist/es2019/extensions/module-helpers.js +24 -5
- package/dist/es2019/keymaps/index.js +1 -0
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui/Mention/index.js +14 -2
- package/dist/es2019/ui/Mention/mention-with-providers.js +83 -2
- package/dist/esm/analytics/types/enums.js +1 -0
- package/dist/esm/extensibility/Extension/Extension/index.js +27 -1
- package/dist/esm/extensions/module-helpers.js +31 -14
- package/dist/esm/keymaps/index.js +1 -0
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui/Mention/index.js +14 -2
- package/dist/esm/ui/Mention/mention-with-providers.js +105 -2
- package/dist/types/analytics/types/enums.d.ts +1 -0
- package/dist/types/analytics/types/selection-events.d.ts +5 -1
- package/dist/types/extensions/module-helpers.d.ts +2 -2
- package/dist/types/extensions/types/extension-manifest-toolbar-item.d.ts +3 -1
- package/dist/types/extensions/types/extension-manifest.d.ts +1 -1
- package/dist/types/keymaps/index.d.ts +1 -0
- package/dist/types/types/floating-toolbar.d.ts +2 -1
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/ui/Mention/mention-with-providers.d.ts +8 -1
- package/dist/types/ui-menu/ColorPickerButton/index.d.ts +1 -1
- package/dist/types-ts4.5/analytics/types/enums.d.ts +1 -0
- package/dist/types-ts4.5/analytics/types/selection-events.d.ts +5 -1
- package/dist/types-ts4.5/extensions/module-helpers.d.ts +2 -2
- package/dist/types-ts4.5/extensions/types/extension-manifest-toolbar-item.d.ts +3 -1
- package/dist/types-ts4.5/extensions/types/extension-manifest.d.ts +1 -1
- package/dist/types-ts4.5/keymaps/index.d.ts +1 -0
- package/dist/types-ts4.5/types/floating-toolbar.d.ts +2 -1
- package/dist/types-ts4.5/types/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/Mention/mention-with-providers.d.ts +8 -1
- package/dist/types-ts4.5/ui-menu/ColorPickerButton/index.d.ts +1 -1
- package/package.json +9 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 102.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#125193](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/125193)
|
|
8
|
+
[`246f1e93ab0d1`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/246f1e93ab0d1) -
|
|
9
|
+
ED-26834 Fire exposure for experiment `platform_editor_nested_non_bodied_macros` when rendering a
|
|
10
|
+
non bodied macro rendered in a nested expand, blockquote, panel or listItem in editor
|
|
11
|
+
|
|
12
|
+
## 102.3.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- [#122181](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/122181)
|
|
17
|
+
[`cf759849b38dc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/cf759849b38dc) -
|
|
18
|
+
[ux] Added dropdown menu in floating toolbar for autoconverted extensions
|
|
19
|
+
- [#124688](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/124688)
|
|
20
|
+
[`9b1137bda6f87`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9b1137bda6f87) -
|
|
21
|
+
[ux] ED-25486 Updates cmd+a behaviour to progressively select nodes behind
|
|
22
|
+
platform_editor_cmd_a_progressively_select_nodes experiment.
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- Updated dependencies
|
|
27
|
+
|
|
3
28
|
## 102.2.1
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
|
@@ -100,6 +100,7 @@ var ACTION = exports.ACTION = /*#__PURE__*/function (ACTION) {
|
|
|
100
100
|
ACTION["RESOLVED"] = "resolved";
|
|
101
101
|
ACTION["REQUEST_TO_EDIT"] = "requestToEdit";
|
|
102
102
|
ACTION["SELECTED"] = "selected";
|
|
103
|
+
ACTION["SELECT_ALL"] = "selectAll";
|
|
103
104
|
ACTION["SHOWN"] = "shown";
|
|
104
105
|
ACTION["SLOW_INPUT"] = "slowInput";
|
|
105
106
|
ACTION["STARTED"] = "started";
|
|
@@ -13,6 +13,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
var _react2 = require("@emotion/react");
|
|
14
14
|
var _classnames2 = _interopRequireDefault(require("classnames"));
|
|
15
15
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
|
+
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
16
17
|
var _hooks = require("../../../hooks");
|
|
17
18
|
var _ui = require("../../../ui");
|
|
18
19
|
var _utils = require("../../../utils");
|
|
@@ -125,6 +126,30 @@ function ExtensionWithPluginState(props) {
|
|
|
125
126
|
setIsNodeHovered(didHover);
|
|
126
127
|
}
|
|
127
128
|
};
|
|
129
|
+
var shouldFireNbmExperimentExposure = _react.default.useMemo(function () {
|
|
130
|
+
if (node.type.name === 'extension' && typeof getPos === 'function') {
|
|
131
|
+
var pos = getPos();
|
|
132
|
+
if (!isNaN(pos)) {
|
|
133
|
+
var _view$state$doc$resol;
|
|
134
|
+
var parentNameType = (_view$state$doc$resol = view.state.doc.resolve(pos).parent) === null || _view$state$doc$resol === void 0 || (_view$state$doc$resol = _view$state$doc$resol.type) === null || _view$state$doc$resol === void 0 ? void 0 : _view$state$doc$resol.name;
|
|
135
|
+
if (['listItem', 'nestedExpand', 'blockquote', 'panel'].includes(parentNameType)) {
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return false;
|
|
141
|
+
}, [node, getPos, view]);
|
|
142
|
+
(0, _react.useEffect)(function () {
|
|
143
|
+
if (shouldFireNbmExperimentExposure) {
|
|
144
|
+
// No-op editorExperiment evaluation to track usage of nested non-bodied macros
|
|
145
|
+
// these can't be tracked at the point of diversion of the experience because that is a toggle of the
|
|
146
|
+
// ProseMirror schema nodes for listItems, nestedExpand, blockquote, and panel. At that point the customer
|
|
147
|
+
// has not yet been exposed
|
|
148
|
+
(0, _experiments.editorExperiment)('platform_editor_nested_non_bodied_macros', 'test', {
|
|
149
|
+
exposure: true
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}, [shouldFireNbmExperimentExposure]);
|
|
128
153
|
return (0, _react2.jsx)(_react.Fragment, null, showMacroInteractionDesignUpdates && !isLivePageViewMode && (0, _react2.jsx)(_Lozenge.default, {
|
|
129
154
|
isNodeSelected: isNodeSelected,
|
|
130
155
|
isNodeHovered: isNodeHovered,
|
|
@@ -207,6 +232,7 @@ var Extension = function Extension(props) {
|
|
|
207
232
|
var pluginInjectionApi = props.pluginInjectionApi;
|
|
208
233
|
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['width']),
|
|
209
234
|
widthState = _useSharedPluginState.widthState;
|
|
235
|
+
|
|
210
236
|
// Ignored via go/ees005
|
|
211
237
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
212
238
|
return (0, _react2.jsx)(ExtensionWithPluginState, (0, _extends2.default)({
|
|
@@ -14,6 +14,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
15
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
16
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
17
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
17
18
|
var _manifestHelpers = require("./manifest-helpers");
|
|
18
19
|
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; }
|
|
19
20
|
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; }
|
|
@@ -164,21 +165,21 @@ var logError = function logError(msg) {
|
|
|
164
165
|
// eslint-disable-next-line no-console
|
|
165
166
|
(_console = console).error.apply(_console, [msg].concat(args));
|
|
166
167
|
};
|
|
167
|
-
var toolbarItemToButtonConfig = function toolbarItemToButtonConfig(
|
|
168
|
-
var tooltip =
|
|
169
|
-
tooltipStyle =
|
|
170
|
-
key =
|
|
171
|
-
label =
|
|
172
|
-
ariaLabel =
|
|
173
|
-
icon =
|
|
174
|
-
action =
|
|
175
|
-
disabled =
|
|
168
|
+
var toolbarItemToButtonConfig = function toolbarItemToButtonConfig(toolbarButton, parentKey) {
|
|
169
|
+
var tooltip = toolbarButton.tooltip,
|
|
170
|
+
tooltipStyle = toolbarButton.tooltipStyle,
|
|
171
|
+
key = toolbarButton.key,
|
|
172
|
+
label = toolbarButton.label,
|
|
173
|
+
ariaLabel = toolbarButton.ariaLabel,
|
|
174
|
+
icon = toolbarButton.icon,
|
|
175
|
+
action = toolbarButton.action,
|
|
176
|
+
disabled = toolbarButton.disabled;
|
|
176
177
|
var itemKey = [parentKey, key].join(':');
|
|
177
178
|
if (typeof action !== 'function') {
|
|
178
179
|
logError("Provided action is not a function for extension toolbar button: ".concat(label, " (").concat(itemKey, ")"));
|
|
179
180
|
}
|
|
180
181
|
var labelAndIcon = {};
|
|
181
|
-
switch (
|
|
182
|
+
switch (toolbarButton.display) {
|
|
182
183
|
case 'icon':
|
|
183
184
|
if (!icon) {
|
|
184
185
|
logError("icon should be provided for extension toolbar button (".concat(itemKey, "), when display is set to 'icon'"));
|
|
@@ -254,9 +255,16 @@ var getContextualToolbarItemsFromModule = exports.getContextualToolbarItemsFromM
|
|
|
254
255
|
return toolbarItems;
|
|
255
256
|
}
|
|
256
257
|
return [];
|
|
257
|
-
}).flatMap(function (
|
|
258
|
-
return
|
|
259
|
-
|
|
258
|
+
}).flatMap(function (toolbarItems) {
|
|
259
|
+
return toolbarItems.map(function (toolbarItem) {
|
|
260
|
+
if ((0, _platformFeatureFlags.fg)('forge_macro_autoconvert')) {
|
|
261
|
+
if (isToolbarButton(toolbarItem)) {
|
|
262
|
+
return toolbarItemToButtonConfig(toolbarItem, extension.key);
|
|
263
|
+
}
|
|
264
|
+
return toolbarItem;
|
|
265
|
+
} else {
|
|
266
|
+
return toolbarItemToButtonConfig(toolbarItem, extension.key);
|
|
267
|
+
}
|
|
260
268
|
});
|
|
261
269
|
});
|
|
262
270
|
}
|
|
@@ -265,6 +273,12 @@ var getContextualToolbarItemsFromModule = exports.getContextualToolbarItemsFromM
|
|
|
265
273
|
return extensionToolbarButtons;
|
|
266
274
|
});
|
|
267
275
|
};
|
|
276
|
+
var isToolbarButton = function isToolbarButton(toolbarItem) {
|
|
277
|
+
if ('type' in toolbarItem) {
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
return true;
|
|
281
|
+
};
|
|
268
282
|
|
|
269
283
|
// defines whether to add toolbar item for the given node
|
|
270
284
|
function shouldAddExtensionItemForNode(item, node) {
|
|
@@ -280,11 +294,14 @@ function shouldAddExtensionItemForNode(item, node) {
|
|
|
280
294
|
|
|
281
295
|
// in cases where we need custom exclusion depending on the node
|
|
282
296
|
if (item.context.shouldExclude) {
|
|
283
|
-
|
|
297
|
+
if (item.context.shouldExclude(node)) {
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
284
300
|
}
|
|
285
301
|
var _item$context = item.context,
|
|
286
302
|
extensionType = _item$context.extensionType,
|
|
287
303
|
extensionKey = _item$context.extensionKey;
|
|
304
|
+
|
|
288
305
|
// if extension type is given - should match extension type
|
|
289
306
|
if (extensionType && extensionType !== ((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.extensionType)) {
|
|
290
307
|
return false;
|
|
@@ -102,8 +102,8 @@ Object.defineProperty(exports, "keymap", {
|
|
|
102
102
|
exports.makeKeyMapArrayWithCommon = makeKeyMapArrayWithCommon;
|
|
103
103
|
exports.makeKeyMapWithCommon = makeKeyMapWithCommon;
|
|
104
104
|
exports.makeKeymap = makeKeymap;
|
|
105
|
-
exports.
|
|
106
|
-
exports.toggleUnderline = exports.toggleTaskItemCheckbox = exports.toggleTable = exports.toggleSuperscript = exports.toggleSubscript = exports.toggleStrikethrough = exports.toggleOrderedList = exports.toggleItalic = exports.toggleHighlightPalette = exports.toggleHeading6 = exports.toggleHeading5 = exports.toggleHeading4 = exports.toggleHeading3 = exports.toggleHeading2 = exports.toggleHeading1 = exports.toggleCode = exports.toggleBulletList = exports.toggleBold = exports.toggleBlockQuote = exports.tab = exports.submit = void 0;
|
|
105
|
+
exports.splitListItem = exports.splitCodeBlock = exports.space = exports.showElementDragHandle = exports.shiftTab = exports.shiftEnter = exports.shiftBackspace = exports.shiftArrowUp = exports.setNormalText = exports.selectTable = exports.selectRow = exports.selectNode = exports.selectColumn = exports.redo = exports.previousCell = exports.pastePlainText = exports.paste = exports.outdentList = exports.outdent = exports.openHelp = exports.nextCell = exports.navToFloatingToolbar = exports.navToEditorToolbar = exports.moveUp = exports.moveRowUp = exports.moveRowDown = exports.moveRight = exports.moveLeft = exports.moveDown = exports.moveColumnRight = exports.moveColumnLeft = void 0;
|
|
106
|
+
exports.toggleUnderline = exports.toggleTaskItemCheckbox = exports.toggleTable = exports.toggleSuperscript = exports.toggleSubscript = exports.toggleStrikethrough = exports.toggleOrderedList = exports.toggleItalic = exports.toggleHighlightPalette = exports.toggleHeading6 = exports.toggleHeading5 = exports.toggleHeading4 = exports.toggleHeading3 = exports.toggleHeading2 = exports.toggleHeading1 = exports.toggleCode = exports.toggleBulletList = exports.toggleBold = exports.toggleBlockQuote = exports.tab = exports.submit = exports.startColumnResizing = void 0;
|
|
107
107
|
exports.tooltip = tooltip;
|
|
108
108
|
exports.undo = void 0;
|
|
109
109
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
@@ -207,6 +207,7 @@ var toggleTaskItemCheckbox = exports.toggleTaskItemCheckbox = makeKeyMapWithComm
|
|
|
207
207
|
var selectRow = exports.selectRow = makeKeyMapArrayWithCommon('Select row', ['Mod-Alt-Shift-ArrowLeft', 'Mod-Alt-Shift-ArrowRight']);
|
|
208
208
|
var selectColumn = exports.selectColumn = makeKeyMapArrayWithCommon('Select column', ['Mod-Alt-Shift-ArrowDown', 'Mod-Alt-Shift-ArrowUp']);
|
|
209
209
|
var selectTable = exports.selectTable = makeKeyMapWithCommon('Select table', 'Mod-a');
|
|
210
|
+
var selectNode = exports.selectNode = makeKeyMapWithCommon('Select node', 'Mod-a');
|
|
210
211
|
var increaseMediaSize = exports.increaseMediaSize = makeKeyMapWithCommon('increase image size', 'Mod-Alt-]');
|
|
211
212
|
var decreaseMediaSize = exports.decreaseMediaSize = makeKeyMapWithCommon('increase image size', 'Mod-Alt-[');
|
|
212
213
|
var activateVideoControls = exports.activateVideoControls = makeKeyMapWithCommon('Activate controls panel on video', 'Shift-F10');
|
|
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
|
|
|
17
17
|
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; }
|
|
18
18
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
19
19
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
20
|
-
var packageVersion = "102.
|
|
20
|
+
var packageVersion = "102.3.1";
|
|
21
21
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
22
22
|
// Remove URL as it has UGC
|
|
23
23
|
// Ignored via go/ees007
|
|
@@ -23,7 +23,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
23
23
|
* @jsx jsx
|
|
24
24
|
*/ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
25
25
|
var packageName = "@atlaskit/editor-common";
|
|
26
|
-
var packageVersion = "102.
|
|
26
|
+
var packageVersion = "102.3.1";
|
|
27
27
|
var halfFocusRing = 1;
|
|
28
28
|
var dropOffset = '0, 8';
|
|
29
29
|
// Ignored via go/ees005
|
|
@@ -13,6 +13,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
13
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
15
|
var _react = _interopRequireWildcard(require("react"));
|
|
16
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
17
|
var _providerFactory = require("../../provider-factory");
|
|
17
18
|
var _mentionWithProviders = require("./mention-with-providers");
|
|
18
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); }
|
|
@@ -33,7 +34,18 @@ var Mention = exports.default = /*#__PURE__*/function (_PureComponent) {
|
|
|
33
34
|
localId = _this$props.localId;
|
|
34
35
|
var mentionProvider = providers.mentionProvider,
|
|
35
36
|
profilecardProvider = providers.profilecardProvider;
|
|
36
|
-
|
|
37
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_react18_mention_with_provider_fix')) {
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement(_mentionWithProviders.MentionWithProviders, {
|
|
39
|
+
id: id,
|
|
40
|
+
text: text,
|
|
41
|
+
accessLevel: accessLevel,
|
|
42
|
+
localId: localId,
|
|
43
|
+
eventHandlers: eventHandlers,
|
|
44
|
+
mentionProvider: mentionProvider,
|
|
45
|
+
profilecardProvider: profilecardProvider
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement(_mentionWithProviders.MentionWithProvidersOld, {
|
|
37
49
|
id: id,
|
|
38
50
|
text: text,
|
|
39
51
|
accessLevel: accessLevel,
|
|
@@ -5,14 +5,24 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.MentionWithProviders = void 0;
|
|
8
|
+
exports.MentionWithProvidersOld = exports.MentionWithProviders = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
17
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
18
|
var _element = require("@atlaskit/mention/element");
|
|
12
19
|
var _mentionWithProfilecard = _interopRequireDefault(require("./mention-with-profilecard"));
|
|
13
20
|
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); }
|
|
14
21
|
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; }
|
|
22
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
23
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
15
24
|
var GENERIC_USER_IDS = ['HipChat', 'all', 'here'];
|
|
25
|
+
var noop = function noop() {};
|
|
16
26
|
var MentionWithProviders = exports.MentionWithProviders = function MentionWithProviders(_ref) {
|
|
17
27
|
var accessLevel = _ref.accessLevel,
|
|
18
28
|
eventHandlers = _ref.eventHandlers,
|
|
@@ -62,4 +72,97 @@ var MentionWithProviders = exports.MentionWithProviders = function MentionWithPr
|
|
|
62
72
|
onMouseEnter: eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.onMouseEnter,
|
|
63
73
|
onMouseLeave: eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.onMouseLeave
|
|
64
74
|
});
|
|
65
|
-
};
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// eslint-disable-next-line @repo/internal/react/no-class-components
|
|
78
|
+
var MentionWithProvidersOld = exports.MentionWithProvidersOld = /*#__PURE__*/function (_PureComponent) {
|
|
79
|
+
function MentionWithProvidersOld() {
|
|
80
|
+
var _this;
|
|
81
|
+
(0, _classCallCheck2.default)(this, MentionWithProvidersOld);
|
|
82
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
83
|
+
args[_key] = arguments[_key];
|
|
84
|
+
}
|
|
85
|
+
_this = _callSuper(this, MentionWithProvidersOld, [].concat(args));
|
|
86
|
+
(0, _defineProperty2.default)(_this, "state", {
|
|
87
|
+
profilecardProvider: null
|
|
88
|
+
});
|
|
89
|
+
return _this;
|
|
90
|
+
}
|
|
91
|
+
(0, _inherits2.default)(MentionWithProvidersOld, _PureComponent);
|
|
92
|
+
return (0, _createClass2.default)(MentionWithProvidersOld, [{
|
|
93
|
+
key: "UNSAFE_componentWillMount",
|
|
94
|
+
value:
|
|
95
|
+
// Ignored via go/ees005
|
|
96
|
+
// eslint-disable-next-line react/no-unsafe
|
|
97
|
+
function UNSAFE_componentWillMount() {
|
|
98
|
+
this.updateProfilecardProvider(this.props);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Ignored via go/ees005
|
|
102
|
+
// eslint-disable-next-line react/no-unsafe
|
|
103
|
+
}, {
|
|
104
|
+
key: "UNSAFE_componentWillReceiveProps",
|
|
105
|
+
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
106
|
+
if (nextProps.profilecardProvider !== this.props.profilecardProvider) {
|
|
107
|
+
this.updateProfilecardProvider(nextProps);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}, {
|
|
111
|
+
key: "updateProfilecardProvider",
|
|
112
|
+
value: function updateProfilecardProvider(props) {
|
|
113
|
+
var _this2 = this;
|
|
114
|
+
// We are not using async/await here to avoid having an intermediate Promise
|
|
115
|
+
// introduced by the transpiler.
|
|
116
|
+
// This will allow consumer to use a SynchronousPromise.resolve and avoid useless
|
|
117
|
+
// rerendering
|
|
118
|
+
if (props.profilecardProvider) {
|
|
119
|
+
props.profilecardProvider.then(function (profilecardProvider) {
|
|
120
|
+
_this2.setState({
|
|
121
|
+
profilecardProvider: profilecardProvider
|
|
122
|
+
});
|
|
123
|
+
}).catch(function () {
|
|
124
|
+
_this2.setState({
|
|
125
|
+
profilecardProvider: null
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
} else {
|
|
129
|
+
this.setState({
|
|
130
|
+
profilecardProvider: null
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}, {
|
|
135
|
+
key: "render",
|
|
136
|
+
value: function render() {
|
|
137
|
+
var _this$props = this.props,
|
|
138
|
+
accessLevel = _this$props.accessLevel,
|
|
139
|
+
eventHandlers = _this$props.eventHandlers,
|
|
140
|
+
id = _this$props.id,
|
|
141
|
+
mentionProvider = _this$props.mentionProvider,
|
|
142
|
+
text = _this$props.text,
|
|
143
|
+
localId = _this$props.localId;
|
|
144
|
+
var profilecardProvider = this.state.profilecardProvider;
|
|
145
|
+
|
|
146
|
+
// Ignored via go/ees005
|
|
147
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
148
|
+
var actionHandlers = {};
|
|
149
|
+
['onClick', 'onMouseEnter', 'onMouseLeave'].forEach(function (handler) {
|
|
150
|
+
actionHandlers[handler] = eventHandlers && eventHandlers[handler] || noop;
|
|
151
|
+
});
|
|
152
|
+
var MentionComponent = profilecardProvider && GENERIC_USER_IDS.indexOf(id) === -1 ? _mentionWithProfilecard.default : _element.ResourcedMention;
|
|
153
|
+
return /*#__PURE__*/_react.default.createElement(MentionComponent, (0, _extends2.default)({
|
|
154
|
+
id: id,
|
|
155
|
+
text: text,
|
|
156
|
+
accessLevel: accessLevel,
|
|
157
|
+
localId: localId,
|
|
158
|
+
mentionProvider: mentionProvider
|
|
159
|
+
// Ignored via go/ees005
|
|
160
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
161
|
+
,
|
|
162
|
+
profilecardProvider: profilecardProvider
|
|
163
|
+
// Ignored via go/ees005
|
|
164
|
+
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
165
|
+
}, actionHandlers));
|
|
166
|
+
}
|
|
167
|
+
}]);
|
|
168
|
+
}(_react.PureComponent);
|
|
@@ -94,6 +94,7 @@ export let ACTION = /*#__PURE__*/function (ACTION) {
|
|
|
94
94
|
ACTION["RESOLVED"] = "resolved";
|
|
95
95
|
ACTION["REQUEST_TO_EDIT"] = "requestToEdit";
|
|
96
96
|
ACTION["SELECTED"] = "selected";
|
|
97
|
+
ACTION["SELECT_ALL"] = "selectAll";
|
|
97
98
|
ACTION["SHOWN"] = "shown";
|
|
98
99
|
ACTION["SLOW_INPUT"] = "slowInput";
|
|
99
100
|
ACTION["STARTED"] = "started";
|
|
@@ -4,12 +4,13 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
4
4
|
* @jsx jsx
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import React, { Fragment } from 'react';
|
|
7
|
+
import React, { Fragment, useEffect } from 'react';
|
|
8
8
|
|
|
9
9
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
10
10
|
import { jsx } from '@emotion/react';
|
|
11
11
|
import classnames from 'classnames';
|
|
12
12
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
13
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
13
14
|
import { useSharedPluginState } from '../../../hooks';
|
|
14
15
|
import { overflowShadow } from '../../../ui';
|
|
15
16
|
import { calculateBreakoutStyles } from '../../../utils';
|
|
@@ -123,6 +124,30 @@ function ExtensionWithPluginState(props) {
|
|
|
123
124
|
setIsNodeHovered(didHover);
|
|
124
125
|
}
|
|
125
126
|
};
|
|
127
|
+
const shouldFireNbmExperimentExposure = React.useMemo(() => {
|
|
128
|
+
if (node.type.name === 'extension' && typeof getPos === 'function') {
|
|
129
|
+
const pos = getPos();
|
|
130
|
+
if (!isNaN(pos)) {
|
|
131
|
+
var _view$state$doc$resol, _view$state$doc$resol2;
|
|
132
|
+
const parentNameType = (_view$state$doc$resol = view.state.doc.resolve(pos).parent) === null || _view$state$doc$resol === void 0 ? void 0 : (_view$state$doc$resol2 = _view$state$doc$resol.type) === null || _view$state$doc$resol2 === void 0 ? void 0 : _view$state$doc$resol2.name;
|
|
133
|
+
if (['listItem', 'nestedExpand', 'blockquote', 'panel'].includes(parentNameType)) {
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return false;
|
|
139
|
+
}, [node, getPos, view]);
|
|
140
|
+
useEffect(() => {
|
|
141
|
+
if (shouldFireNbmExperimentExposure) {
|
|
142
|
+
// No-op editorExperiment evaluation to track usage of nested non-bodied macros
|
|
143
|
+
// these can't be tracked at the point of diversion of the experience because that is a toggle of the
|
|
144
|
+
// ProseMirror schema nodes for listItems, nestedExpand, blockquote, and panel. At that point the customer
|
|
145
|
+
// has not yet been exposed
|
|
146
|
+
editorExperiment('platform_editor_nested_non_bodied_macros', 'test', {
|
|
147
|
+
exposure: true
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}, [shouldFireNbmExperimentExposure]);
|
|
126
151
|
return jsx(Fragment, null, showMacroInteractionDesignUpdates && !isLivePageViewMode && jsx(ExtensionLozenge, {
|
|
127
152
|
isNodeSelected: isNodeSelected,
|
|
128
153
|
isNodeHovered: isNodeHovered,
|
|
@@ -204,6 +229,7 @@ const Extension = props => {
|
|
|
204
229
|
const {
|
|
205
230
|
widthState
|
|
206
231
|
} = useSharedPluginState(pluginInjectionApi, ['width']);
|
|
232
|
+
|
|
207
233
|
// Ignored via go/ees005
|
|
208
234
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
209
235
|
return jsx(ExtensionWithPluginState, _extends({
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
2
|
import { buildAction } from './manifest-helpers';
|
|
2
3
|
export const groupBy = (arr, attr, keyRenamer) =>
|
|
3
4
|
// Ignored via go/ees005
|
|
@@ -68,7 +69,7 @@ const logError = (msg, ...args) => {
|
|
|
68
69
|
// eslint-disable-next-line no-console
|
|
69
70
|
console.error(msg, ...args);
|
|
70
71
|
};
|
|
71
|
-
const toolbarItemToButtonConfig = (
|
|
72
|
+
const toolbarItemToButtonConfig = (toolbarButton, parentKey) => {
|
|
72
73
|
const {
|
|
73
74
|
tooltip,
|
|
74
75
|
tooltipStyle,
|
|
@@ -78,13 +79,13 @@ const toolbarItemToButtonConfig = (toolbarItem, parentKey) => {
|
|
|
78
79
|
icon,
|
|
79
80
|
action,
|
|
80
81
|
disabled
|
|
81
|
-
} =
|
|
82
|
+
} = toolbarButton;
|
|
82
83
|
const itemKey = [parentKey, key].join(':');
|
|
83
84
|
if (typeof action !== 'function') {
|
|
84
85
|
logError(`Provided action is not a function for extension toolbar button: ${label} (${itemKey})`);
|
|
85
86
|
}
|
|
86
87
|
let labelAndIcon = {};
|
|
87
|
-
switch (
|
|
88
|
+
switch (toolbarButton.display) {
|
|
88
89
|
case 'icon':
|
|
89
90
|
if (!icon) {
|
|
90
91
|
logError(`icon should be provided for extension toolbar button (${itemKey}), when display is set to 'icon'`);
|
|
@@ -157,11 +158,26 @@ export const getContextualToolbarItemsFromModule = (extensions, node, api) => {
|
|
|
157
158
|
return toolbarItems;
|
|
158
159
|
}
|
|
159
160
|
return [];
|
|
160
|
-
}).flatMap(
|
|
161
|
+
}).flatMap(toolbarItems => toolbarItems.map(toolbarItem => {
|
|
162
|
+
if (fg('forge_macro_autoconvert')) {
|
|
163
|
+
if (isToolbarButton(toolbarItem)) {
|
|
164
|
+
return toolbarItemToButtonConfig(toolbarItem, extension.key);
|
|
165
|
+
}
|
|
166
|
+
return toolbarItem;
|
|
167
|
+
} else {
|
|
168
|
+
return toolbarItemToButtonConfig(toolbarItem, extension.key);
|
|
169
|
+
}
|
|
170
|
+
}));
|
|
161
171
|
}
|
|
162
172
|
return [];
|
|
163
173
|
}).flatMap(extensionToolbarButtons => extensionToolbarButtons);
|
|
164
174
|
};
|
|
175
|
+
const isToolbarButton = toolbarItem => {
|
|
176
|
+
if ('type' in toolbarItem) {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
return true;
|
|
180
|
+
};
|
|
165
181
|
|
|
166
182
|
// defines whether to add toolbar item for the given node
|
|
167
183
|
function shouldAddExtensionItemForNode(item, node) {
|
|
@@ -177,12 +193,15 @@ function shouldAddExtensionItemForNode(item, node) {
|
|
|
177
193
|
|
|
178
194
|
// in cases where we need custom exclusion depending on the node
|
|
179
195
|
if (item.context.shouldExclude) {
|
|
180
|
-
|
|
196
|
+
if (item.context.shouldExclude(node)) {
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
181
199
|
}
|
|
182
200
|
const {
|
|
183
201
|
extensionType,
|
|
184
202
|
extensionKey
|
|
185
203
|
} = item.context;
|
|
204
|
+
|
|
186
205
|
// if extension type is given - should match extension type
|
|
187
206
|
if (extensionType && extensionType !== ((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.extensionType)) {
|
|
188
207
|
return false;
|
|
@@ -93,6 +93,7 @@ export const toggleTaskItemCheckbox = makeKeyMapWithCommon('Toggles task item',
|
|
|
93
93
|
export const selectRow = makeKeyMapArrayWithCommon('Select row', ['Mod-Alt-Shift-ArrowLeft', 'Mod-Alt-Shift-ArrowRight']);
|
|
94
94
|
export const selectColumn = makeKeyMapArrayWithCommon('Select column', ['Mod-Alt-Shift-ArrowDown', 'Mod-Alt-Shift-ArrowUp']);
|
|
95
95
|
export const selectTable = makeKeyMapWithCommon('Select table', 'Mod-a');
|
|
96
|
+
export const selectNode = makeKeyMapWithCommon('Select node', 'Mod-a');
|
|
96
97
|
export const increaseMediaSize = makeKeyMapWithCommon('increase image size', 'Mod-Alt-]');
|
|
97
98
|
export const decreaseMediaSize = makeKeyMapWithCommon('increase image size', 'Mod-Alt-[');
|
|
98
99
|
export const activateVideoControls = makeKeyMapWithCommon('Activate controls panel on video', 'Shift-F10');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isFedRamp } from './environment';
|
|
2
2
|
const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
3
3
|
const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
4
|
-
const packageVersion = "102.
|
|
4
|
+
const packageVersion = "102.3.1";
|
|
5
5
|
const sanitiseSentryEvents = (data, _hint) => {
|
|
6
6
|
// Remove URL as it has UGC
|
|
7
7
|
// Ignored via go/ees007
|
|
@@ -13,7 +13,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
|
|
|
13
13
|
import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
14
14
|
import Layer from '../Layer';
|
|
15
15
|
const packageName = "@atlaskit/editor-common";
|
|
16
|
-
const packageVersion = "102.
|
|
16
|
+
const packageVersion = "102.3.1";
|
|
17
17
|
const halfFocusRing = 1;
|
|
18
18
|
const dropOffset = '0, 8';
|
|
19
19
|
// Ignored via go/ees005
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
/* eslint-disable @repo/internal/react/no-class-components */
|
|
3
3
|
import React, { PureComponent } from 'react';
|
|
4
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
5
|
import { ProviderFactory, WithProviders } from '../../provider-factory';
|
|
5
|
-
import { MentionWithProviders } from './mention-with-providers';
|
|
6
|
+
import { MentionWithProviders, MentionWithProvidersOld } from './mention-with-providers';
|
|
6
7
|
export default class Mention extends PureComponent {
|
|
7
8
|
constructor(props) {
|
|
8
9
|
super(props);
|
|
@@ -18,7 +19,18 @@ export default class Mention extends PureComponent {
|
|
|
18
19
|
mentionProvider,
|
|
19
20
|
profilecardProvider
|
|
20
21
|
} = providers;
|
|
21
|
-
|
|
22
|
+
if (fg('platform_editor_react18_mention_with_provider_fix')) {
|
|
23
|
+
return /*#__PURE__*/React.createElement(MentionWithProviders, {
|
|
24
|
+
id: id,
|
|
25
|
+
text: text,
|
|
26
|
+
accessLevel: accessLevel,
|
|
27
|
+
localId: localId,
|
|
28
|
+
eventHandlers: eventHandlers,
|
|
29
|
+
mentionProvider: mentionProvider,
|
|
30
|
+
profilecardProvider: profilecardProvider
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return /*#__PURE__*/React.createElement(MentionWithProvidersOld, {
|
|
22
34
|
id: id,
|
|
23
35
|
text: text,
|
|
24
36
|
accessLevel: accessLevel,
|