@atlaskit/editor-common 105.9.1 → 105.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +63 -0
- package/dist/cjs/extensibility/Extension/Lozenge/ExtensionLabel.js +0 -12
- package/dist/cjs/extensions/combine-extension-providers.js +5 -13
- package/dist/cjs/extensions/extension-handlers.js +2 -2
- package/dist/cjs/keymaps/index.js +4 -3
- package/dist/cjs/messages/breakout.js +5 -0
- package/dist/cjs/messages/toolbar.js +5 -0
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/node-visibility/node-visibility-manager.js +81 -0
- package/dist/cjs/resizer/Resizer.js +6 -1
- package/dist/cjs/styles/shared/table.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +30 -4
- package/dist/es2019/extensibility/Extension/Lozenge/ExtensionLabel.js +0 -12
- package/dist/es2019/extensions/combine-extension-providers.js +5 -13
- package/dist/es2019/extensions/extension-handlers.js +2 -2
- package/dist/es2019/keymaps/index.js +1 -0
- package/dist/es2019/messages/breakout.js +5 -0
- package/dist/es2019/messages/toolbar.js +5 -0
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/node-visibility/node-visibility-manager.js +72 -0
- package/dist/es2019/resizer/Resizer.js +7 -1
- package/dist/es2019/styles/shared/table.js +5 -0
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +29 -5
- package/dist/esm/extensibility/Extension/Lozenge/ExtensionLabel.js +0 -12
- package/dist/esm/extensions/combine-extension-providers.js +5 -13
- package/dist/esm/extensions/extension-handlers.js +2 -2
- package/dist/esm/keymaps/index.js +1 -0
- package/dist/esm/messages/breakout.js +5 -0
- package/dist/esm/messages/toolbar.js +5 -0
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/node-visibility/node-visibility-manager.js +75 -0
- package/dist/esm/resizer/Resizer.js +6 -1
- package/dist/esm/styles/shared/table.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +31 -5
- package/dist/types/analytics/types/offline-editing-event.d.ts +1 -0
- package/dist/types/keymaps/index.d.ts +1 -0
- package/dist/types/messages/breakout.d.ts +5 -0
- package/dist/types/messages/toolbar.d.ts +5 -0
- package/dist/types/node-visibility/node-visibility-manager.d.ts +29 -0
- package/dist/types-ts4.5/analytics/types/offline-editing-event.d.ts +1 -0
- package/dist/types-ts4.5/keymaps/index.d.ts +1 -0
- package/dist/types-ts4.5/messages/breakout.d.ts +5 -0
- package/dist/types-ts4.5/messages/toolbar.d.ts +5 -0
- package/dist/types-ts4.5/node-visibility/node-visibility-manager.d.ts +29 -0
- package/node-visibility/package.json +17 -0
- package/package.json +10 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,68 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 105.11.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#160500](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/160500)
|
|
8
|
+
[`c359a92c058b0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c359a92c058b0) -
|
|
9
|
+
[ux] EDITOR-713 Add borders to panel when they are nested in table
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#160017](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/160017)
|
|
14
|
+
[`c0ea9c5a5156b`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c0ea9c5a5156b) -
|
|
15
|
+
ED-27999 - Offline Editing, update type for analytics payload.
|
|
16
|
+
- [#159336](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/159336)
|
|
17
|
+
[`0f0a3a5e7e218`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0f0a3a5e7e218) -
|
|
18
|
+
[EDITOR-793] Added changes to reflect experiment quickstart command
|
|
19
|
+
- [#161016](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/161016)
|
|
20
|
+
[`5edd5fccf1a76`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/5edd5fccf1a76) -
|
|
21
|
+
ENGHEALTH-28085: Added aria label for resize handle
|
|
22
|
+
- Updated dependencies
|
|
23
|
+
|
|
24
|
+
## 105.10.1
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- [#159090](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/159090)
|
|
29
|
+
[`9cbae97c20f84`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9cbae97c20f84) -
|
|
30
|
+
Reduces rerenders of text formatting options and the toolbar when it is docked to top.
|
|
31
|
+
- Updated dependencies
|
|
32
|
+
|
|
33
|
+
## 105.10.0
|
|
34
|
+
|
|
35
|
+
### Minor Changes
|
|
36
|
+
|
|
37
|
+
- [#156919](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/156919)
|
|
38
|
+
[`379f5c27f4939`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/379f5c27f4939) -
|
|
39
|
+
delay table sticky headers until table is in viewport
|
|
40
|
+
|
|
41
|
+
### Patch Changes
|
|
42
|
+
|
|
43
|
+
- [#160973](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/160973)
|
|
44
|
+
[`9f2837a46dd98`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9f2837a46dd98) -
|
|
45
|
+
Ignore error thrown from getPreloadedExtension fallback to sync method
|
|
46
|
+
- [#159655](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/159655)
|
|
47
|
+
[`24f8c627d50f2`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/24f8c627d50f2) - ##
|
|
48
|
+
WHAT? Remove experimental graceful edit mode from view mode plugin and associated props.
|
|
49
|
+
|
|
50
|
+
## WHY?
|
|
51
|
+
|
|
52
|
+
This experiment is being cleaned up and we are no longer proceeding in this direction.
|
|
53
|
+
|
|
54
|
+
## HOW to adjust?
|
|
55
|
+
|
|
56
|
+
This experiment was only enabled for Confluence and should not have been enabled in other places.
|
|
57
|
+
If for some reason any of the following props/state/methdos were used please remove them:
|
|
58
|
+
|
|
59
|
+
- isConsumption
|
|
60
|
+
- contentMode
|
|
61
|
+
- initialContentMode
|
|
62
|
+
- updateContentMode
|
|
63
|
+
|
|
64
|
+
- Updated dependencies
|
|
65
|
+
|
|
3
66
|
## 105.9.1
|
|
4
67
|
|
|
5
68
|
### Patch Changes
|
|
@@ -11,7 +11,6 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
11
11
|
var _reactIntlNext = require("react-intl-next");
|
|
12
12
|
var _customize = _interopRequireDefault(require("@atlaskit/icon/core/customize"));
|
|
13
13
|
var _primitives = require("@atlaskit/primitives");
|
|
14
|
-
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
15
14
|
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
16
15
|
/**
|
|
17
16
|
* @jsxRuntime classic
|
|
@@ -168,17 +167,6 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
|
|
|
168
167
|
onMouseLeave: function onMouseLeave() {
|
|
169
168
|
setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(false);
|
|
170
169
|
},
|
|
171
|
-
onClick: function onClick() {
|
|
172
|
-
if ((0, _experiments.editorExperiment)('live_pages_graceful_edit', 'text-click-delayed') || (0, _experiments.editorExperiment)('live_pages_graceful_edit', 'text-click-no-delay')) {
|
|
173
|
-
var _pluginInjectionApi$c, _pluginInjectionApi$e;
|
|
174
|
-
pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c = pluginInjectionApi.core) === null || _pluginInjectionApi$c === void 0 || (_pluginInjectionApi$c = _pluginInjectionApi$c.actions) === null || _pluginInjectionApi$c === void 0 || _pluginInjectionApi$c.execute( // Extensions are not yet using the new plugin architecture, and the use of the pluginInjectionApi
|
|
175
|
-
// is not type safe in editor-common.
|
|
176
|
-
// @ts-ignore
|
|
177
|
-
pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$e = pluginInjectionApi.editorViewMode) === null || _pluginInjectionApi$e === void 0 ? void 0 : _pluginInjectionApi$e.commands.updateContentMode({
|
|
178
|
-
type: 'intent-to-edit'
|
|
179
|
-
}));
|
|
180
|
-
}
|
|
181
|
-
},
|
|
182
170
|
"data-testid": "new-lozenge-container",
|
|
183
171
|
contentEditable: false
|
|
184
172
|
}, (0, _react.jsx)(_tooltip.default, {
|
|
@@ -57,37 +57,29 @@ var _default = exports.default = function _default(extensionProviders) {
|
|
|
57
57
|
// preload() has not been called yet
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
|
-
var error;
|
|
61
60
|
var _iterator = _createForOfIteratorHelper(providersCache),
|
|
62
61
|
_step;
|
|
63
62
|
try {
|
|
64
63
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
65
64
|
var provider = _step.value;
|
|
66
|
-
// Similar to invokeSingle. We are returning the first result that not throwing an error.
|
|
67
|
-
// It's OK to get exception here because we have a lot of providers.
|
|
68
|
-
// The current provider may not have the extension type we are looking for.
|
|
69
65
|
try {
|
|
70
66
|
var _provider$getPreloade;
|
|
71
67
|
var result = provider === null || provider === void 0 || (_provider$getPreloade = provider.getPreloadedExtension) === null || _provider$getPreloade === void 0 ? void 0 : _provider$getPreloade.call(provider, type, key);
|
|
72
68
|
if (result) {
|
|
73
69
|
return result;
|
|
74
70
|
}
|
|
75
|
-
} catch (
|
|
76
|
-
|
|
71
|
+
} catch (_unused) {
|
|
72
|
+
// Not every provider will implement this method.
|
|
73
|
+
// In that case we would get error from other providers in the loop
|
|
74
|
+
// and undefined from that particular provider.
|
|
75
|
+
// We can safely ignore it and fallback to the async getExtension when nothing was found.
|
|
77
76
|
}
|
|
78
77
|
}
|
|
79
|
-
|
|
80
|
-
// If we exhausted all providers and none of them returned a result, we throw the last error.
|
|
81
|
-
// However as a extra precaution, we only throw in the dev environment.
|
|
82
|
-
// In production we will return undefined and getExtensionModuleNodeMaybePreloaded will fallback to regular getExtension call.
|
|
83
78
|
} catch (err) {
|
|
84
79
|
_iterator.e(err);
|
|
85
80
|
} finally {
|
|
86
81
|
_iterator.f();
|
|
87
82
|
}
|
|
88
|
-
if (error && process.env.NODE_ENV !== 'production') {
|
|
89
|
-
throw error;
|
|
90
|
-
}
|
|
91
83
|
},
|
|
92
84
|
getExtension: function getExtension(type, key) {
|
|
93
85
|
return invokeSingle('getExtension', [type, key]);
|
|
@@ -126,9 +126,9 @@ function getNodeRenderer(extensionProvider, extensionType, extensionKey) {
|
|
|
126
126
|
var preloaded = maybePromise === null || maybePromise === void 0 || (_renderSync = (_ref = maybePromise).renderSync) === null || _renderSync === void 0 ? void 0 : _renderSync.call(_ref);
|
|
127
127
|
// Only product implemented preloading will return sync result
|
|
128
128
|
// However the out-of-box won't handle this. Confluence uses a custom implementation
|
|
129
|
-
return preloaded
|
|
129
|
+
return preloaded ?
|
|
130
130
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
131
|
-
|
|
131
|
+
(0, _manifestHelpers.resolveImportSync)(preloaded) : (0, _manifestHelpers.resolveImport)(maybePromise.render());
|
|
132
132
|
}
|
|
133
133
|
} else {
|
|
134
134
|
return getExtensionModuleNode(extensionProvider, extensionType, extensionKey).then(function (node) {
|
|
@@ -78,7 +78,7 @@ Object.defineProperty(exports, "UP", {
|
|
|
78
78
|
return _consts.UP;
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
|
-
exports.backspace = exports.applyYellowHighlight = exports.altPaste = exports.alignRight = exports.alignLeft = exports.alignCenter = exports.addRowBeforeVO = exports.addRowBefore = exports.addRowAfterVO = exports.addRowAfter = exports.addLink = exports.addInlineComment = exports.addColumnBeforeVO = exports.addColumnBefore = exports.addColumnAfterVO = exports.addColumnAfter = exports.addAltText = exports.activateVideoControls = void 0;
|
|
81
|
+
exports.backspace = exports.askAIQuickInsert = exports.applyYellowHighlight = exports.altPaste = exports.alignRight = exports.alignLeft = exports.alignCenter = exports.addRowBeforeVO = exports.addRowBefore = exports.addRowAfterVO = exports.addRowAfter = exports.addLink = exports.addInlineComment = exports.addColumnBeforeVO = exports.addColumnBefore = exports.addColumnAfterVO = exports.addColumnAfter = exports.addAltText = exports.activateVideoControls = void 0;
|
|
82
82
|
exports.bindKeymapArrayWithCommand = bindKeymapArrayWithCommand;
|
|
83
83
|
exports.bindKeymapWithCommand = bindKeymapWithCommand;
|
|
84
84
|
exports.bindKeymapWithEditorCommand = bindKeymapWithEditorCommand;
|
|
@@ -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 = exports.startColumnResizing = exports.splitListItem = void 0;
|
|
105
|
+
exports.space = exports.showElementDragHandle = exports.shiftTab = exports.shiftEnter = exports.shiftBackspace = exports.shiftArrowUp = exports.setNormalText = exports.selectTable = exports.selectRow = exports.selectColumn = exports.redoAlt = 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 = exports.splitListItem = exports.splitCodeBlock = void 0;
|
|
107
107
|
exports.tooltip = tooltip;
|
|
108
108
|
exports.undo = void 0;
|
|
109
109
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
@@ -126,6 +126,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
126
126
|
var addAltText = exports.addAltText = makeKeyMapWithCommon('Add Alt Text', 'Mod-Alt-y');
|
|
127
127
|
var navToEditorToolbar = exports.navToEditorToolbar = makeKeyMapWithCommon('Navigate to editor toolbar', 'Alt-F9');
|
|
128
128
|
var navToFloatingToolbar = exports.navToFloatingToolbar = makeKeyMapWithCommon('Navigate to floating toolbar', 'Alt-F10');
|
|
129
|
+
var askAIQuickInsert = exports.askAIQuickInsert = makeKeyMapWithCommon('Ask AI', "Mod-'");
|
|
129
130
|
var toggleBold = exports.toggleBold = makeKeyMapWithCommon('Bold', 'Mod-b');
|
|
130
131
|
var toggleItalic = exports.toggleItalic = makeKeyMapWithCommon('Italic', 'Mod-i');
|
|
131
132
|
var toggleUnderline = exports.toggleUnderline = makeKeyMapWithCommon('Underline', 'Mod-u');
|
|
@@ -15,5 +15,10 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
|
|
|
15
15
|
id: 'fabric.editor.breakoutWideWidthLabel',
|
|
16
16
|
defaultMessage: 'Wide',
|
|
17
17
|
description: 'Resize current element to wide mode'
|
|
18
|
+
},
|
|
19
|
+
resizeHandle: {
|
|
20
|
+
id: 'fabric.editor.resizeHandle',
|
|
21
|
+
defaultMessage: 'Resize handle',
|
|
22
|
+
description: 'Resize handle'
|
|
18
23
|
}
|
|
19
24
|
});
|
|
@@ -110,5 +110,10 @@ var toolbarMessages = exports.toolbarMessages = (0, _reactIntlNext.defineMessage
|
|
|
110
110
|
id: 'fabric.editor.navigate.toolbar.floating',
|
|
111
111
|
defaultMessage: 'Navigate to floating toolbar',
|
|
112
112
|
description: 'Navigate to a floating toolbar for relevant nodes (e.g. tables or panels).'
|
|
113
|
+
},
|
|
114
|
+
askAI: {
|
|
115
|
+
id: 'fabric.editor.navigate.toolbar.askAI',
|
|
116
|
+
defaultMessage: 'Ask AI',
|
|
117
|
+
description: 'Open the AI panel to ask a question or generate content.'
|
|
113
118
|
}
|
|
114
119
|
});
|
|
@@ -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 = "105.
|
|
20
|
+
var packageVersion = "105.11.0";
|
|
21
21
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
22
22
|
// Remove URL as it has UGC
|
|
23
23
|
// Ignored via go/ees007
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.nodeVisibilityManager = void 0;
|
|
7
|
+
// Use this selector to set the intersection observer boundary for editor's inline node views
|
|
8
|
+
// If this does not exist, it will use the IntersectionObserver's default root
|
|
9
|
+
var INTERSECTION_OBSERVER_ROOT_SELECTOR = '[data-editor-scroll-container="true"]';
|
|
10
|
+
var editorObservers = new WeakMap();
|
|
11
|
+
var callbackMap = new WeakMap();
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Creates a node visibility manager
|
|
15
|
+
* @param editorElement
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
var nodeVisibilityManager = exports.nodeVisibilityManager = function nodeVisibilityManager(editorElement) {
|
|
19
|
+
// Warning! do not reference editorElement outside of internal functions.
|
|
20
|
+
// editorElement is passed to allow support for multiple editors,
|
|
21
|
+
|
|
22
|
+
var unObserveInternal = function unObserveInternal(nodeElement) {
|
|
23
|
+
var _editorObservers$get;
|
|
24
|
+
(_editorObservers$get = editorObservers.get(editorElement)) === null || _editorObservers$get === void 0 || _editorObservers$get.unobserve(nodeElement);
|
|
25
|
+
callbackMap.delete(nodeElement);
|
|
26
|
+
};
|
|
27
|
+
var observe = function observe(observerConfig) {
|
|
28
|
+
var _editorObservers$get2;
|
|
29
|
+
callbackMap.set(observerConfig.element, observerConfig);
|
|
30
|
+
(_editorObservers$get2 = editorObservers.get(editorElement)) === null || _editorObservers$get2 === void 0 || _editorObservers$get2.observe(observerConfig.element);
|
|
31
|
+
|
|
32
|
+
// return clean up
|
|
33
|
+
return function () {
|
|
34
|
+
// consumer needs to unobserve on destroy if their element
|
|
35
|
+
// was observed but never scrolled into view
|
|
36
|
+
unObserveInternal(observerConfig.element);
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
var initialiseNodeObserver = function initialiseNodeObserver() {
|
|
40
|
+
if (editorObservers.has(editorElement)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
var intersectionObserverOptions = {
|
|
44
|
+
root: editorElement.closest(INTERSECTION_OBSERVER_ROOT_SELECTOR),
|
|
45
|
+
rootMargin: '0px 0px 100px 0px',
|
|
46
|
+
threshold: 0
|
|
47
|
+
};
|
|
48
|
+
var editorObserver = new IntersectionObserver(function (entries) {
|
|
49
|
+
return entries.map(function (entry) {
|
|
50
|
+
return {
|
|
51
|
+
entry: entry,
|
|
52
|
+
callback: callbackMap.get(entry.target)
|
|
53
|
+
};
|
|
54
|
+
})
|
|
55
|
+
// Invoke callbacks together to group browser rendering
|
|
56
|
+
// Avoiding requestAnimationFrame to reduce visual flickering
|
|
57
|
+
.forEach(function (_ref) {
|
|
58
|
+
var entry = _ref.entry,
|
|
59
|
+
callback = _ref.callback;
|
|
60
|
+
if (entry.isIntersecting) {
|
|
61
|
+
callback === null || callback === void 0 || callback.onFirstVisible();
|
|
62
|
+
if (entry.target instanceof HTMLElement) {
|
|
63
|
+
// immediately unobserve the element after it is visible
|
|
64
|
+
unObserveInternal(entry.target);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}, intersectionObserverOptions);
|
|
69
|
+
editorObservers.set(editorElement, editorObserver);
|
|
70
|
+
};
|
|
71
|
+
var disconnect = function disconnect() {
|
|
72
|
+
var _editorObservers$get3;
|
|
73
|
+
(_editorObservers$get3 = editorObservers.get(editorElement)) === null || _editorObservers$get3 === void 0 || _editorObservers$get3.disconnect();
|
|
74
|
+
editorObservers.delete(editorElement);
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
initialiseNodeObserver: initialiseNodeObserver,
|
|
78
|
+
observe: observe,
|
|
79
|
+
disconnect: disconnect
|
|
80
|
+
};
|
|
81
|
+
};
|
|
@@ -13,9 +13,11 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
13
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
14
14
|
var _classnames3 = _interopRequireDefault(require("classnames"));
|
|
15
15
|
var _reResizable = require("re-resizable");
|
|
16
|
+
var _reactIntlNext = require("react-intl-next");
|
|
16
17
|
var _primitives = require("@atlaskit/primitives");
|
|
17
18
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
18
19
|
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
20
|
+
var _breakout = require("../messages/breakout");
|
|
19
21
|
var _resizer = require("../styles/shared/resizer");
|
|
20
22
|
var _excluded = ["width", "children", "handleClassName", "className", "handleResize", "handleResizeStart", "handleResizeStop", "handleSize", "handleAlignmentMethod", "handlePositioning", "appearance", "handleStyles", "resizeRatio", "snap", "snapGap", "isHandleVisible", "handleHighlight", "handleTooltipContent", "needExtendedResizeZone", "childrenDOMRef", "labelComponent"];
|
|
21
23
|
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); }
|
|
@@ -141,12 +143,15 @@ var ResizerNext = function ResizerNext(props, ref) {
|
|
|
141
143
|
'display-handle': isHandleVisible
|
|
142
144
|
}, _resizer.resizerDangerClassName, appearance === 'danger'));
|
|
143
145
|
var resizerZoneClassName = (0, _classnames3.default)(_resizer.resizerHoverZoneClassName, (0, _defineProperty2.default)({}, _resizer.resizerExtendedZone, needExtendedResizeZone));
|
|
146
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
147
|
+
formatMessage = _useIntl.formatMessage;
|
|
144
148
|
var handleComponent = (0, _react.useMemo)(function () {
|
|
145
149
|
return SUPPORTED_HANDLES.reduce(function (result, position) {
|
|
146
150
|
var thumb = /*#__PURE__*/_react.default.createElement("button", {
|
|
147
151
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
148
152
|
className: _resizer.resizerHandleThumbClassName,
|
|
149
153
|
"data-testid": "resizer-handle-".concat(position, "-thumb"),
|
|
154
|
+
"aria-label": formatMessage(_breakout.messages.resizeHandle),
|
|
150
155
|
contentEditable: false,
|
|
151
156
|
ref: resizeHandleThumbRef,
|
|
152
157
|
type: "button",
|
|
@@ -186,7 +191,7 @@ var ResizerNext = function ResizerNext(props, ref) {
|
|
|
186
191
|
style: inheritedCSS
|
|
187
192
|
}, thumbWithTrack)));
|
|
188
193
|
}, {});
|
|
189
|
-
}, [handleHighlight, handleTooltipContent]);
|
|
194
|
+
}, [handleHighlight, handleTooltipContent, formatMessage]);
|
|
190
195
|
|
|
191
196
|
// snapGap is usually a constant, if snap.x?.length is 0 and snapGap has a value resizer cannot be resized
|
|
192
197
|
var snapGapActual = (0, _react.useMemo)(function () {
|
|
@@ -59,7 +59,7 @@ var firstNodeWithNotMarginTop = function firstNodeWithNotMarginTop() {
|
|
|
59
59
|
|
|
60
60
|
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Appears safe to auto-fix, but leaving it up to the team to remediate as the readability only gets worse with autofixing
|
|
61
61
|
var tableSharedStyle = exports.tableSharedStyle = function tableSharedStyle() {
|
|
62
|
-
return (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n\t", "\n\t.", " {\n\t\tposition: relative;\n\t\tmargin: 0 auto ", ";\n\t\tbox-sizing: border-box;\n\n\t\t/**\n * Fix block top alignment inside table cells.\n */\n\t\t.decisionItemView-content-wrap:first-of-type > div {\n\t\t\tmargin-top: 0;\n\t\t}\n\t}\n\t.", "[data-number-column='true'] {\n\t\tpadding-left: ", "px;\n\t\tclear: both;\n\t}\n\n\t.", " {\n\t\twill-change: width, margin-left;\n\t}\n\n\t.", " table {\n\t\twill-change: width;\n\t}\n\n\t.", " > table {\n\t\tmargin: ", " 0 0 0;\n\t}\n\n\t.", " > table,\n\t.", " > table {\n\t\tmargin: ", " ", " 0 0;\n\t}\n\n\t/* avoid applying styles to nested tables (possible via extensions) */\n\t.", " > table,\n\t.", " > table,\n\t.", " > table {\n\t\tborder-collapse: collapse;\n\t\tborder: ", "px solid\n\t\t\t", ";\n\t\ttable-layout: fixed;\n\t\tfont-size: 1em;\n\t\twidth: 100%;\n\n\t\t&[data-autosize='true'] {\n\t\t\ttable-layout: auto;\n\t\t}\n\n\t\t& {\n\t\t\t* {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\t\t\thr {\n\t\t\t\tbox-sizing: content-box;\n\t\t\t}\n\n\t\t\ttbody {\n\t\t\t\tborder-bottom: none;\n\t\t\t}\n\t\t\tth td {\n\t\t\t\tbackground-color: ", ";\n\t\t\t}\n\n\t\t\t", " {\n\t\t\t\tmin-width: ", "px;\n\t\t\t\tfont-weight: ", ";\n\t\t\t\tvertical-align: top;\n\t\t\t\tborder: 1px solid ", ";\n\t\t\t\tborder-right-width: 0;\n\t\t\t\tborder-bottom-width: 0;\n\n\t\t\t\tpadding: ", ";\n\t\t\t\t/* https://stackoverflow.com/questions/7517127/borders-not-shown-in-firefox-with-border-collapse-on-table-position-relative-o */\n\t\t\t\t", "\n\n\t\t\t\t", "\n\n\t\t\t\tth p:not(:first-of-type),\n\t\t\t\ttd p:not(:first-of-type) {\n\t\t\t\t\tmargin-top: ", ";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* Ensures nested tables are compatible with parent table background color - uses specificity to ensure tables nested by extensions are not affected */\n\t\t\t> tbody > tr > td {\n\t\t\t\tbackground-color: ", ";\n\t\t\t}\n\n\t\t\tth {\n\t\t\t\tbackground-color: ", ";\n\t\t\t\ttext-align: left;\n\n\t\t\t\t/* only apply this styling to codeblocks in default background headercells */\n\t\t\t\t/* TODO this needs to be overhauled as it relies on unsafe selectors */\n\t\t\t\t&:not([style]):not(.danger) {\n\t\t\t\t\t.", ":not(.danger) {\n\t\t\t\t\t\tbackground-color: ", ";\n\n\t\t\t\t\t\t:not(.", ") {\n\t\t\t\t\t\t\tbox-shadow: 0px 0px 0px 1px ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\tbackground-image: ", ";\n\n\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* this is only relevant to the element taken care of by renderer */\n\t\t\t\t\t\t> [data-ds--code--code-block] {\n\t\t\t\t\t\t\tbackground-image: ", "!important;\n\n\t\t\t\t\t\t\tbackground-color: ", "!important;\n\n\t\t\t\t\t\t\t/* selector lives inside @atlaskit/code */\n\t\t\t\t\t\t\t--ds--code--line-number-bg-color: ", ";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n"])), (0, _tableCell.tableCellBackgroundStyleOverride)(), TableSharedCssClassName.TABLE_CONTAINER, "var(--ds-space-200, 16px)", TableSharedCssClassName.TABLE_CONTAINER, _editorSharedStyles.akEditorTableNumberColumnWidth - 1, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, "var(--ds-space-300, 24px)", TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, "var(--ds-space-300, 24px)", "var(--ds-space-100, 8px)", TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, tableCellBorderWidth, "var(--ds-background-accent-gray-subtler, ".concat(_editorSharedStyles.akEditorTableBorder, ")"), "var(--ds-background-neutral-subtle, white)", (0, _platformFeatureFlags.fg)('platform_editor_renderer_table_header_styles') ? "> tbody > tr > th, > tbody > tr > td" : 'th, td', tableCellMinWidth, "var(--ds-font-weight-regular, 400)", "var(--ds-background-accent-gray-subtler, ".concat(_editorSharedStyles.akEditorTableBorder, ")"), "var(--ds-space-100, 8px)", _browser.browser.gecko || _browser.browser.ie || _browser.browser.mac && _browser.browser.chrome ? 'background-clip: padding-box;' : '', firstNodeWithNotMarginTop(), "var(--ds-space-150, 12px)", "var(--ds-surface, #FFFFFF)", "var(--ds-background-accent-gray-subtlest, ".concat(_editorSharedStyles.akEditorTableToolbar, ")"), _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, "var(--ds-surface-raised, rgb(235, 237, 240))", _editorSharedStyles.akEditorSelectedNodeClassName, "var(--ds-border, transparent)", _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTENT_WRAPPER, (0, _editorSharedStyles.overflowShadow)({
|
|
62
|
+
return (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n\t", "\n\t.", " {\n\t\tposition: relative;\n\t\tmargin: 0 auto ", ";\n\t\tbox-sizing: border-box;\n\n\t\t/**\n * Fix block top alignment inside table cells.\n */\n\t\t.decisionItemView-content-wrap:first-of-type > div {\n\t\t\tmargin-top: 0;\n\t\t}\n\t}\n\t.", "[data-number-column='true'] {\n\t\tpadding-left: ", "px;\n\t\tclear: both;\n\t}\n\n\t.", " {\n\t\twill-change: width, margin-left;\n\t}\n\n\t.", " table {\n\t\twill-change: width;\n\t}\n\n\t.", " > table {\n\t\tmargin: ", " 0 0 0;\n\t}\n\n\t.", " > table,\n\t.", " > table {\n\t\tmargin: ", " ", " 0 0;\n\t}\n\n\t/* support panel nested in table */\n\t", "\n\n\t/* avoid applying styles to nested tables (possible via extensions) */\n\t.", " > table,\n\t.", " > table,\n\t.", " > table {\n\t\tborder-collapse: collapse;\n\t\tborder: ", "px solid\n\t\t\t", ";\n\t\ttable-layout: fixed;\n\t\tfont-size: 1em;\n\t\twidth: 100%;\n\n\t\t&[data-autosize='true'] {\n\t\t\ttable-layout: auto;\n\t\t}\n\n\t\t& {\n\t\t\t* {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\t\t\thr {\n\t\t\t\tbox-sizing: content-box;\n\t\t\t}\n\n\t\t\ttbody {\n\t\t\t\tborder-bottom: none;\n\t\t\t}\n\t\t\tth td {\n\t\t\t\tbackground-color: ", ";\n\t\t\t}\n\n\t\t\t", " {\n\t\t\t\tmin-width: ", "px;\n\t\t\t\tfont-weight: ", ";\n\t\t\t\tvertical-align: top;\n\t\t\t\tborder: 1px solid ", ";\n\t\t\t\tborder-right-width: 0;\n\t\t\t\tborder-bottom-width: 0;\n\n\t\t\t\tpadding: ", ";\n\t\t\t\t/* https://stackoverflow.com/questions/7517127/borders-not-shown-in-firefox-with-border-collapse-on-table-position-relative-o */\n\t\t\t\t", "\n\n\t\t\t\t", "\n\n\t\t\t\tth p:not(:first-of-type),\n\t\t\t\ttd p:not(:first-of-type) {\n\t\t\t\t\tmargin-top: ", ";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* Ensures nested tables are compatible with parent table background color - uses specificity to ensure tables nested by extensions are not affected */\n\t\t\t> tbody > tr > td {\n\t\t\t\tbackground-color: ", ";\n\t\t\t}\n\n\t\t\tth {\n\t\t\t\tbackground-color: ", ";\n\t\t\t\ttext-align: left;\n\n\t\t\t\t/* only apply this styling to codeblocks in default background headercells */\n\t\t\t\t/* TODO this needs to be overhauled as it relies on unsafe selectors */\n\t\t\t\t&:not([style]):not(.danger) {\n\t\t\t\t\t.", ":not(.danger) {\n\t\t\t\t\t\tbackground-color: ", ";\n\n\t\t\t\t\t\t:not(.", ") {\n\t\t\t\t\t\t\tbox-shadow: 0px 0px 0px 1px ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\tbackground-image: ", ";\n\n\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* this is only relevant to the element taken care of by renderer */\n\t\t\t\t\t\t> [data-ds--code--code-block] {\n\t\t\t\t\t\t\tbackground-image: ", "!important;\n\n\t\t\t\t\t\t\tbackground-color: ", "!important;\n\n\t\t\t\t\t\t\t/* selector lives inside @atlaskit/code */\n\t\t\t\t\t\t\t--ds--code--line-number-bg-color: ", ";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n"])), (0, _tableCell.tableCellBackgroundStyleOverride)(), TableSharedCssClassName.TABLE_CONTAINER, "var(--ds-space-200, 16px)", TableSharedCssClassName.TABLE_CONTAINER, _editorSharedStyles.akEditorTableNumberColumnWidth - 1, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, "var(--ds-space-300, 24px)", TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, "var(--ds-space-300, 24px)", "var(--ds-space-100, 8px)", (0, _platformFeatureFlags.fg)('platform_editor_bordered_panel_nested_in_table') ? ".".concat(TableSharedCssClassName.TABLE_NODE_WRAPPER, " .ak-editor-panel {\n\t\t\tborder: ", "var(--ds-border-width, 1px)", " solid ", "var(--ds-border, #d9dbea)", ";\n\t\t}") : '', TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, tableCellBorderWidth, "var(--ds-background-accent-gray-subtler, ".concat(_editorSharedStyles.akEditorTableBorder, ")"), "var(--ds-background-neutral-subtle, white)", (0, _platformFeatureFlags.fg)('platform_editor_renderer_table_header_styles') ? "> tbody > tr > th, > tbody > tr > td" : 'th, td', tableCellMinWidth, "var(--ds-font-weight-regular, 400)", "var(--ds-background-accent-gray-subtler, ".concat(_editorSharedStyles.akEditorTableBorder, ")"), "var(--ds-space-100, 8px)", _browser.browser.gecko || _browser.browser.ie || _browser.browser.mac && _browser.browser.chrome ? 'background-clip: padding-box;' : '', firstNodeWithNotMarginTop(), "var(--ds-space-150, 12px)", "var(--ds-surface, #FFFFFF)", "var(--ds-background-accent-gray-subtlest, ".concat(_editorSharedStyles.akEditorTableToolbar, ")"), _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, "var(--ds-surface-raised, rgb(235, 237, 240))", _editorSharedStyles.akEditorSelectedNodeClassName, "var(--ds-border, transparent)", _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTENT_WRAPPER, (0, _editorSharedStyles.overflowShadow)({
|
|
63
63
|
leftCoverWidth: "var(--ds-space-300, 24px)"
|
|
64
64
|
}), "var(--ds-background-neutral, rgb(235, 237, 240))", _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_LINE_NUMBER_GUTTER, "var(--ds-background-neutral, rgb(226, 229, 233))", (0, _editorSharedStyles.overflowShadow)({
|
|
65
65
|
leftCoverWidth: "var(--ds-space-300, 24px)"
|
|
@@ -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 = "105.
|
|
26
|
+
var packageVersion = "105.11.0";
|
|
27
27
|
var halfFocusRing = 1;
|
|
28
28
|
var dropOffset = '0, 8';
|
|
29
29
|
// Ignored via go/ees005
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.ToolbarArrowKeyNavigationProvider = exports.KeyDownHandlerContext = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _react2 = require("@emotion/react");
|
|
10
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
10
11
|
var _elementBrowser = require("../../element-browser");
|
|
11
12
|
var _messages = require("../../messages");
|
|
12
13
|
var _mediaInsert = require("../../messages/media-insert");
|
|
@@ -91,6 +92,23 @@ var ToolbarArrowKeyNavigationProvider = exports.ToolbarArrowKeyNavigationProvide
|
|
|
91
92
|
var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
|
|
92
93
|
(_filteredFocusableEle3 = filteredFocusableElements[selectedItemIndex.current]) === null || _filteredFocusableEle3 === void 0 || _filteredFocusableEle3.focus();
|
|
93
94
|
};
|
|
95
|
+
var handleArrowRightMemoized = (0, _react.useCallback)(function () {
|
|
96
|
+
var _filteredFocusableEle4;
|
|
97
|
+
var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
|
|
98
|
+
incrementIndex(filteredFocusableElements);
|
|
99
|
+
(_filteredFocusableEle4 = filteredFocusableElements[selectedItemIndex.current]) === null || _filteredFocusableEle4 === void 0 || _filteredFocusableEle4.focus();
|
|
100
|
+
}, [incrementIndex]);
|
|
101
|
+
var handleArrowLeftMemoized = (0, _react.useCallback)(function () {
|
|
102
|
+
var _filteredFocusableEle5;
|
|
103
|
+
var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
|
|
104
|
+
decrementIndex(filteredFocusableElements);
|
|
105
|
+
(_filteredFocusableEle5 = filteredFocusableElements[selectedItemIndex.current]) === null || _filteredFocusableEle5 === void 0 || _filteredFocusableEle5.focus();
|
|
106
|
+
}, [decrementIndex]);
|
|
107
|
+
var handleTabMemoized = (0, _react.useCallback)(function () {
|
|
108
|
+
var _filteredFocusableEle6;
|
|
109
|
+
var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
|
|
110
|
+
(_filteredFocusableEle6 = filteredFocusableElements[selectedItemIndex.current]) === null || _filteredFocusableEle6 === void 0 || _filteredFocusableEle6.focus();
|
|
111
|
+
}, []);
|
|
94
112
|
var handleTabLocal = function handleTabLocal() {
|
|
95
113
|
var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
|
|
96
114
|
filteredFocusableElements.forEach(function (element) {
|
|
@@ -109,11 +127,19 @@ var ToolbarArrowKeyNavigationProvider = exports.ToolbarArrowKeyNavigationProvide
|
|
|
109
127
|
}
|
|
110
128
|
element.focus();
|
|
111
129
|
};
|
|
112
|
-
var
|
|
130
|
+
var submenuKeydownHandleContextRaw = {
|
|
113
131
|
handleArrowLeft: handleArrowLeft,
|
|
114
132
|
handleArrowRight: handleArrowRight,
|
|
115
133
|
handleTab: handleTab
|
|
116
134
|
};
|
|
135
|
+
var submenuKeydownHandleContextMemoized = (0, _react.useMemo)(function () {
|
|
136
|
+
return {
|
|
137
|
+
handleArrowLeft: handleArrowLeftMemoized,
|
|
138
|
+
handleArrowRight: handleArrowRightMemoized,
|
|
139
|
+
handleTab: handleTabMemoized
|
|
140
|
+
};
|
|
141
|
+
}, [handleArrowLeftMemoized, handleArrowRightMemoized, handleTabMemoized]);
|
|
142
|
+
var submenuKeydownHandleContext = (0, _platformFeatureFlags.fg)('platform_editor_toolbar_rerender_optimization') ? submenuKeydownHandleContextMemoized : submenuKeydownHandleContextRaw;
|
|
117
143
|
(0, _react.useLayoutEffect)(function () {
|
|
118
144
|
if (!wrapperRef.current || disableArrowKeyNavigation) {
|
|
119
145
|
return;
|
|
@@ -188,10 +214,10 @@ var ToolbarArrowKeyNavigationProvider = exports.ToolbarArrowKeyNavigationProvide
|
|
|
188
214
|
// Ignored via go/ees005
|
|
189
215
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
190
216
|
if (isShortcutToFocusToolbar(event)) {
|
|
191
|
-
var
|
|
217
|
+
var _filteredFocusableEle7, _filteredFocusableEle8;
|
|
192
218
|
var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
|
|
193
|
-
(
|
|
194
|
-
(
|
|
219
|
+
(_filteredFocusableEle7 = filteredFocusableElements[0]) === null || _filteredFocusableEle7 === void 0 || _filteredFocusableEle7.focus();
|
|
220
|
+
(_filteredFocusableEle8 = filteredFocusableElements[0]) === null || _filteredFocusableEle8 === void 0 || _filteredFocusableEle8.scrollIntoView({
|
|
195
221
|
behavior: 'smooth',
|
|
196
222
|
block: 'center',
|
|
197
223
|
inline: 'nearest'
|
|
@@ -10,7 +10,6 @@ import classnames from 'classnames';
|
|
|
10
10
|
import { FormattedMessage, defineMessages } from 'react-intl-next';
|
|
11
11
|
import CustomizeIcon from '@atlaskit/icon/core/customize';
|
|
12
12
|
import { Box, xcss } from '@atlaskit/primitives';
|
|
13
|
-
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
14
13
|
import Tooltip from '@atlaskit/tooltip';
|
|
15
14
|
const containerStyles = css({
|
|
16
15
|
textAlign: 'left',
|
|
@@ -161,17 +160,6 @@ export const ExtensionLabel = ({
|
|
|
161
160
|
onMouseLeave: () => {
|
|
162
161
|
setIsNodeHovered === null || setIsNodeHovered === void 0 ? void 0 : setIsNodeHovered(false);
|
|
163
162
|
},
|
|
164
|
-
onClick: () => {
|
|
165
|
-
if (editorExperiment('live_pages_graceful_edit', 'text-click-delayed') || editorExperiment('live_pages_graceful_edit', 'text-click-no-delay')) {
|
|
166
|
-
var _pluginInjectionApi$c, _pluginInjectionApi$c2, _pluginInjectionApi$e;
|
|
167
|
-
pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$c = pluginInjectionApi.core) === null || _pluginInjectionApi$c === void 0 ? void 0 : (_pluginInjectionApi$c2 = _pluginInjectionApi$c.actions) === null || _pluginInjectionApi$c2 === void 0 ? void 0 : _pluginInjectionApi$c2.execute( // Extensions are not yet using the new plugin architecture, and the use of the pluginInjectionApi
|
|
168
|
-
// is not type safe in editor-common.
|
|
169
|
-
// @ts-ignore
|
|
170
|
-
pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$e = pluginInjectionApi.editorViewMode) === null || _pluginInjectionApi$e === void 0 ? void 0 : _pluginInjectionApi$e.commands.updateContentMode({
|
|
171
|
-
type: 'intent-to-edit'
|
|
172
|
-
}));
|
|
173
|
-
}
|
|
174
|
-
},
|
|
175
163
|
"data-testid": "new-lozenge-container",
|
|
176
164
|
contentEditable: false
|
|
177
165
|
}, jsx(Tooltip, {
|
|
@@ -27,28 +27,20 @@ export default (extensionProviders => {
|
|
|
27
27
|
// preload() has not been called yet
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
|
-
let error;
|
|
31
30
|
for (const provider of providersCache) {
|
|
32
|
-
// Similar to invokeSingle. We are returning the first result that not throwing an error.
|
|
33
|
-
// It's OK to get exception here because we have a lot of providers.
|
|
34
|
-
// The current provider may not have the extension type we are looking for.
|
|
35
31
|
try {
|
|
36
32
|
var _provider$getPreloade;
|
|
37
33
|
const result = provider === null || provider === void 0 ? void 0 : (_provider$getPreloade = provider.getPreloadedExtension) === null || _provider$getPreloade === void 0 ? void 0 : _provider$getPreloade.call(provider, type, key);
|
|
38
34
|
if (result) {
|
|
39
35
|
return result;
|
|
40
36
|
}
|
|
41
|
-
} catch
|
|
42
|
-
|
|
37
|
+
} catch {
|
|
38
|
+
// Not every provider will implement this method.
|
|
39
|
+
// In that case we would get error from other providers in the loop
|
|
40
|
+
// and undefined from that particular provider.
|
|
41
|
+
// We can safely ignore it and fallback to the async getExtension when nothing was found.
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
|
-
|
|
46
|
-
// If we exhausted all providers and none of them returned a result, we throw the last error.
|
|
47
|
-
// However as a extra precaution, we only throw in the dev environment.
|
|
48
|
-
// In production we will return undefined and getExtensionModuleNodeMaybePreloaded will fallback to regular getExtension call.
|
|
49
|
-
if (error && process.env.NODE_ENV !== 'production') {
|
|
50
|
-
throw error;
|
|
51
|
-
}
|
|
52
44
|
},
|
|
53
45
|
getExtension(type, key) {
|
|
54
46
|
return invokeSingle('getExtension', [type, key]);
|
|
@@ -68,9 +68,9 @@ export function getNodeRenderer(extensionProvider, extensionType, extensionKey)
|
|
|
68
68
|
const preloaded = maybePromise === null || maybePromise === void 0 ? void 0 : (_renderSync = (_ref = maybePromise).renderSync) === null || _renderSync === void 0 ? void 0 : _renderSync.call(_ref);
|
|
69
69
|
// Only product implemented preloading will return sync result
|
|
70
70
|
// However the out-of-box won't handle this. Confluence uses a custom implementation
|
|
71
|
-
return preloaded
|
|
71
|
+
return preloaded ?
|
|
72
72
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
73
|
-
|
|
73
|
+
resolveImportSync(preloaded) : resolveImport(maybePromise.render());
|
|
74
74
|
}
|
|
75
75
|
} else {
|
|
76
76
|
return getExtensionModuleNode(extensionProvider, extensionType, extensionKey).then(node => resolveImport(node.render()));
|
|
@@ -12,6 +12,7 @@ import { browser } from '../utils';
|
|
|
12
12
|
export const addAltText = makeKeyMapWithCommon('Add Alt Text', 'Mod-Alt-y');
|
|
13
13
|
export const navToEditorToolbar = makeKeyMapWithCommon('Navigate to editor toolbar', 'Alt-F9');
|
|
14
14
|
export const navToFloatingToolbar = makeKeyMapWithCommon('Navigate to floating toolbar', 'Alt-F10');
|
|
15
|
+
export const askAIQuickInsert = makeKeyMapWithCommon('Ask AI', "Mod-'");
|
|
15
16
|
export const toggleBold = makeKeyMapWithCommon('Bold', 'Mod-b');
|
|
16
17
|
export const toggleItalic = makeKeyMapWithCommon('Italic', 'Mod-i');
|
|
17
18
|
export const toggleUnderline = makeKeyMapWithCommon('Underline', 'Mod-u');
|
|
@@ -9,5 +9,10 @@ export const messages = defineMessages({
|
|
|
9
9
|
id: 'fabric.editor.breakoutWideWidthLabel',
|
|
10
10
|
defaultMessage: 'Wide',
|
|
11
11
|
description: 'Resize current element to wide mode'
|
|
12
|
+
},
|
|
13
|
+
resizeHandle: {
|
|
14
|
+
id: 'fabric.editor.resizeHandle',
|
|
15
|
+
defaultMessage: 'Resize handle',
|
|
16
|
+
description: 'Resize handle'
|
|
12
17
|
}
|
|
13
18
|
});
|
|
@@ -104,5 +104,10 @@ export const toolbarMessages = defineMessages({
|
|
|
104
104
|
id: 'fabric.editor.navigate.toolbar.floating',
|
|
105
105
|
defaultMessage: 'Navigate to floating toolbar',
|
|
106
106
|
description: 'Navigate to a floating toolbar for relevant nodes (e.g. tables or panels).'
|
|
107
|
+
},
|
|
108
|
+
askAI: {
|
|
109
|
+
id: 'fabric.editor.navigate.toolbar.askAI',
|
|
110
|
+
defaultMessage: 'Ask AI',
|
|
111
|
+
description: 'Open the AI panel to ask a question or generate content.'
|
|
107
112
|
}
|
|
108
113
|
});
|
|
@@ -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 = "105.
|
|
4
|
+
const packageVersion = "105.11.0";
|
|
5
5
|
const sanitiseSentryEvents = (data, _hint) => {
|
|
6
6
|
// Remove URL as it has UGC
|
|
7
7
|
// Ignored via go/ees007
|