@atlaskit/editor-common 96.1.0 → 96.2.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 +26 -0
- package/dist/cjs/element-browser/components/ElementList/ElementList.js +31 -8
- package/dist/cjs/element-browser/components/StatelessElementBrowser.js +7 -2
- package/dist/cjs/element-browser/hooks/use-select-and-focus-on-arrow-navigation.js +102 -19
- package/dist/cjs/extensibility/ExtensionComponent.js +29 -18
- package/dist/cjs/insert/index.js +19 -0
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/preset/core-plugin/index.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/es2019/element-browser/components/ElementList/ElementList.js +31 -8
- package/dist/es2019/element-browser/components/StatelessElementBrowser.js +7 -2
- package/dist/es2019/element-browser/hooks/use-select-and-focus-on-arrow-navigation.js +97 -14
- package/dist/es2019/extensibility/ExtensionComponent.js +30 -19
- package/dist/es2019/insert/index.js +18 -0
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/preset/core-plugin/index.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/esm/element-browser/components/ElementList/ElementList.js +31 -8
- package/dist/esm/element-browser/components/StatelessElementBrowser.js +7 -2
- package/dist/esm/element-browser/hooks/use-select-and-focus-on-arrow-navigation.js +102 -20
- package/dist/esm/extensibility/ExtensionComponent.js +30 -19
- package/dist/esm/insert/index.js +18 -0
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/preset/core-plugin/index.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/types/element-browser/hooks/use-select-and-focus-on-arrow-navigation.d.ts +1 -1
- package/dist/types/insert/index.d.ts +6 -0
- package/dist/types-ts4.5/element-browser/hooks/use-select-and-focus-on-arrow-navigation.d.ts +1 -1
- package/dist/types-ts4.5/insert/index.d.ts +6 -0
- package/package.json +6 -3
|
@@ -19,7 +19,7 @@ import memoizeOne from 'memoize-one';
|
|
|
19
19
|
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
20
20
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
21
21
|
import { getExtensionModuleNodePrivateProps, getNodeRenderer } from '../extensions';
|
|
22
|
-
import { getExtensionRenderer, nodeToJSON } from '../utils';
|
|
22
|
+
import { getExtensionRenderer, nodeToJSON, toJSON } from '../utils';
|
|
23
23
|
import Extension from './Extension/Extension';
|
|
24
24
|
import InlineExtension from './Extension/InlineExtension';
|
|
25
25
|
import MultiBodiedExtension from './MultiBodiedExtension';
|
|
@@ -41,6 +41,13 @@ var isEmptyBodiedMacro = function isEmptyBodiedMacro(node) {
|
|
|
41
41
|
var isEmptyWithNoContent = !firstGrandChildNode && node.childCount === 1;
|
|
42
42
|
return isEmptyWithPlacholder || isEmptyWithNoContent;
|
|
43
43
|
};
|
|
44
|
+
var getBodiedExtensionContent = function getBodiedExtensionContent(node) {
|
|
45
|
+
var bodiedExtensionContent = [];
|
|
46
|
+
node.content.forEach(function (childNode) {
|
|
47
|
+
bodiedExtensionContent.push(nodeToJSON(childNode));
|
|
48
|
+
});
|
|
49
|
+
return !!bodiedExtensionContent.length ? bodiedExtensionContent : node.attrs.text;
|
|
50
|
+
};
|
|
44
51
|
export var ExtensionComponentOld = /*#__PURE__*/function (_Component) {
|
|
45
52
|
_inherits(ExtensionComponentOld, _Component);
|
|
46
53
|
var _super = _createSuper(ExtensionComponentOld);
|
|
@@ -126,7 +133,8 @@ export var ExtensionComponentOld = /*#__PURE__*/function (_Component) {
|
|
|
126
133
|
var _pmNode$marks;
|
|
127
134
|
var _this$props = _this.props,
|
|
128
135
|
extensionHandlers = _this$props.extensionHandlers,
|
|
129
|
-
editorView = _this$props.editorView
|
|
136
|
+
editorView = _this$props.editorView,
|
|
137
|
+
rendererExtensionHandlers = _this$props.rendererExtensionHandlers;
|
|
130
138
|
var showBodiedExtensionRendererView = _this.state.showBodiedExtensionRendererView; // State will only be true if the gate is on and meets requirements
|
|
131
139
|
var _pmNode$attrs = pmNode.attrs,
|
|
132
140
|
extensionType = _pmNode$attrs.extensionType,
|
|
@@ -140,22 +148,23 @@ export var ExtensionComponentOld = /*#__PURE__*/function (_Component) {
|
|
|
140
148
|
var fragmentLocalId = pmNode === null || pmNode === void 0 || (_pmNode$marks = pmNode.marks) === null || _pmNode$marks === void 0 || (_pmNode$marks = _pmNode$marks.find(function (m) {
|
|
141
149
|
return m.type.name === 'fragment';
|
|
142
150
|
})) === null || _pmNode$marks === void 0 || (_pmNode$marks = _pmNode$marks.attrs) === null || _pmNode$marks === void 0 ? void 0 : _pmNode$marks.localId;
|
|
143
|
-
var
|
|
144
|
-
if (isBodiedExtension) {
|
|
145
|
-
var _pmNode$content;
|
|
146
|
-
pmNode === null || pmNode === void 0 || (_pmNode$content = pmNode.content) === null || _pmNode$content === void 0 || _pmNode$content.forEach(function (childNode) {
|
|
147
|
-
nodeContent.push(childNode);
|
|
148
|
-
});
|
|
149
|
-
}
|
|
151
|
+
var content = isBodiedExtension ? getBodiedExtensionContent(pmNode) : text;
|
|
150
152
|
var node = {
|
|
151
153
|
type: pmNode.type.name,
|
|
152
154
|
extensionType: extensionType,
|
|
153
155
|
extensionKey: extensionKey,
|
|
154
156
|
parameters: parameters,
|
|
155
|
-
content:
|
|
157
|
+
content: content,
|
|
156
158
|
localId: pmNode.attrs.localId,
|
|
157
159
|
fragmentLocalId: fragmentLocalId
|
|
158
160
|
};
|
|
161
|
+
if (isBodiedExtension) {
|
|
162
|
+
var rendererExtensionHandler = rendererExtensionHandlers === null || rendererExtensionHandlers === void 0 ? void 0 : rendererExtensionHandlers[extensionType];
|
|
163
|
+
if (!rendererExtensionHandler) {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
return getExtensionRenderer(rendererExtensionHandler)(node, toJSON(editorView.state.doc));
|
|
167
|
+
}
|
|
159
168
|
var result;
|
|
160
169
|
if (extensionHandlers && extensionHandlers[extensionType]) {
|
|
161
170
|
var render = getExtensionRenderer(extensionHandlers[extensionType]);
|
|
@@ -423,7 +432,8 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component2) {
|
|
|
423
432
|
var _this2$props = _this2.props,
|
|
424
433
|
extensionHandlers = _this2$props.extensionHandlers,
|
|
425
434
|
editorView = _this2$props.editorView,
|
|
426
|
-
showBodiedExtensionRendererView = _this2$props.showBodiedExtensionRendererView
|
|
435
|
+
showBodiedExtensionRendererView = _this2$props.showBodiedExtensionRendererView,
|
|
436
|
+
rendererExtensionHandlers = _this2$props.rendererExtensionHandlers;
|
|
427
437
|
var _pmNode$attrs2 = pmNode.attrs,
|
|
428
438
|
extensionType = _pmNode$attrs2.extensionType,
|
|
429
439
|
extensionKey = _pmNode$attrs2.extensionKey,
|
|
@@ -436,22 +446,23 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component2) {
|
|
|
436
446
|
var fragmentLocalId = pmNode === null || pmNode === void 0 || (_pmNode$marks2 = pmNode.marks) === null || _pmNode$marks2 === void 0 || (_pmNode$marks2 = _pmNode$marks2.find(function (m) {
|
|
437
447
|
return m.type.name === 'fragment';
|
|
438
448
|
})) === null || _pmNode$marks2 === void 0 || (_pmNode$marks2 = _pmNode$marks2.attrs) === null || _pmNode$marks2 === void 0 ? void 0 : _pmNode$marks2.localId;
|
|
439
|
-
var
|
|
440
|
-
if (isBodiedExtension) {
|
|
441
|
-
var _pmNode$content2;
|
|
442
|
-
pmNode === null || pmNode === void 0 || (_pmNode$content2 = pmNode.content) === null || _pmNode$content2 === void 0 || _pmNode$content2.forEach(function (childNode) {
|
|
443
|
-
nodeContent.push(childNode);
|
|
444
|
-
});
|
|
445
|
-
}
|
|
449
|
+
var content = isBodiedExtension ? getBodiedExtensionContent(pmNode) : text;
|
|
446
450
|
var node = {
|
|
447
451
|
type: pmNode.type.name,
|
|
448
452
|
extensionType: extensionType,
|
|
449
453
|
extensionKey: extensionKey,
|
|
450
454
|
parameters: parameters,
|
|
451
|
-
content:
|
|
455
|
+
content: content,
|
|
452
456
|
localId: pmNode.attrs.localId,
|
|
453
457
|
fragmentLocalId: fragmentLocalId
|
|
454
458
|
};
|
|
459
|
+
if (isBodiedExtension) {
|
|
460
|
+
var rendererExtensionHandler = rendererExtensionHandlers === null || rendererExtensionHandlers === void 0 ? void 0 : rendererExtensionHandlers[extensionType];
|
|
461
|
+
if (!rendererExtensionHandler) {
|
|
462
|
+
return null;
|
|
463
|
+
}
|
|
464
|
+
return getExtensionRenderer(rendererExtensionHandler)(node, toJSON(editorView.state.doc));
|
|
465
|
+
}
|
|
455
466
|
var result;
|
|
456
467
|
if (extensionHandlers && extensionHandlers[extensionType]) {
|
|
457
468
|
var render = getExtensionRenderer(extensionHandlers[extensionType]);
|
package/dist/esm/insert/index.js
CHANGED
|
@@ -302,6 +302,24 @@ export function contentAllowedInCodeBlock(state) {
|
|
|
302
302
|
return isAllowedChild;
|
|
303
303
|
}
|
|
304
304
|
|
|
305
|
+
/**
|
|
306
|
+
* Check if a fragment contains a particular node by iterating through all the nodes in the fragment.
|
|
307
|
+
* If the node type is found will stop looking and return true.
|
|
308
|
+
* If the node type is not found, it will return false.
|
|
309
|
+
*/
|
|
310
|
+
export function fragmentContainsNodeType(fragment, nodeType) {
|
|
311
|
+
var doesContainNodeType = false;
|
|
312
|
+
fragment.descendants(function (node) {
|
|
313
|
+
if (node.type === nodeType) {
|
|
314
|
+
doesContainNodeType = true;
|
|
315
|
+
// Stop looking
|
|
316
|
+
return false;
|
|
317
|
+
}
|
|
318
|
+
return true;
|
|
319
|
+
});
|
|
320
|
+
return doesContainNodeType;
|
|
321
|
+
}
|
|
322
|
+
|
|
305
323
|
// For platform_editor_element_level_templates experiment only
|
|
306
324
|
// clean up ticket ED-24873
|
|
307
325
|
var insertTemplateFragment = function insertTemplateFragment(_ref3) {
|
|
@@ -7,7 +7,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
7
7
|
import { isFedRamp } from './environment';
|
|
8
8
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
9
9
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
10
|
-
var packageVersion = "96.
|
|
10
|
+
var packageVersion = "96.2.0";
|
|
11
11
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
12
12
|
// Remove URL as it has UGC
|
|
13
13
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { processRawFragmentValue, processRawValue } from '
|
|
1
|
+
import { processRawFragmentValue, processRawValue } from '../../utils/processRawValue';
|
|
2
2
|
import { editorCommandToPMCommand } from '../editor-commands';
|
|
3
3
|
import { scheduleDocumentRequest } from './requestDocument';
|
|
4
4
|
|
|
@@ -21,7 +21,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
|
|
|
21
21
|
import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
22
22
|
import Layer from '../Layer';
|
|
23
23
|
var packageName = "@atlaskit/editor-common";
|
|
24
|
-
var packageVersion = "96.
|
|
24
|
+
var packageVersion = "96.2.0";
|
|
25
25
|
var halfFocusRing = 1;
|
|
26
26
|
var dropOffset = '0, 8';
|
|
27
27
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -70,6 +70,6 @@ export type useSelectAndFocusReturnType = {
|
|
|
70
70
|
setFocusedCategoryIndex: (index?: number) => void;
|
|
71
71
|
setFocusOnSearch: () => void;
|
|
72
72
|
};
|
|
73
|
-
declare function useSelectAndFocusOnArrowNavigation(listSize: number, step: number, canFocusViewMore: boolean, isFocusSearch?: boolean): useSelectAndFocusReturnType;
|
|
73
|
+
declare function useSelectAndFocusOnArrowNavigation(listSize: number, step: number, canFocusViewMore: boolean, itemIsDisabled: (index: number) => boolean, isFocusSearch?: boolean): useSelectAndFocusReturnType;
|
|
74
74
|
export declare const ensureSafeIndex: (index: number, listSize: number) => number;
|
|
75
75
|
export default useSelectAndFocusOnArrowNavigation;
|
|
@@ -30,3 +30,9 @@ export declare const shouldSplitSelectedNodeOnNodeInsertion: ({ parentNodeType,
|
|
|
30
30
|
* as we extract their text content.
|
|
31
31
|
*/
|
|
32
32
|
export declare function contentAllowedInCodeBlock(state: EditorState): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Check if a fragment contains a particular node by iterating through all the nodes in the fragment.
|
|
35
|
+
* If the node type is found will stop looking and return true.
|
|
36
|
+
* If the node type is not found, it will return false.
|
|
37
|
+
*/
|
|
38
|
+
export declare function fragmentContainsNodeType(fragment: Fragment, nodeType: NodeType): boolean;
|
package/dist/types-ts4.5/element-browser/hooks/use-select-and-focus-on-arrow-navigation.d.ts
CHANGED
|
@@ -70,6 +70,6 @@ export type useSelectAndFocusReturnType = {
|
|
|
70
70
|
setFocusedCategoryIndex: (index?: number) => void;
|
|
71
71
|
setFocusOnSearch: () => void;
|
|
72
72
|
};
|
|
73
|
-
declare function useSelectAndFocusOnArrowNavigation(listSize: number, step: number, canFocusViewMore: boolean, isFocusSearch?: boolean): useSelectAndFocusReturnType;
|
|
73
|
+
declare function useSelectAndFocusOnArrowNavigation(listSize: number, step: number, canFocusViewMore: boolean, itemIsDisabled: (index: number) => boolean, isFocusSearch?: boolean): useSelectAndFocusReturnType;
|
|
74
74
|
export declare const ensureSafeIndex: (index: number, listSize: number) => number;
|
|
75
75
|
export default useSelectAndFocusOnArrowNavigation;
|
|
@@ -30,3 +30,9 @@ export declare const shouldSplitSelectedNodeOnNodeInsertion: ({ parentNodeType,
|
|
|
30
30
|
* as we extract their text content.
|
|
31
31
|
*/
|
|
32
32
|
export declare function contentAllowedInCodeBlock(state: EditorState): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Check if a fragment contains a particular node by iterating through all the nodes in the fragment.
|
|
35
|
+
* If the node type is found will stop looking and return true.
|
|
36
|
+
* If the node type is not found, it will return false.
|
|
37
|
+
*/
|
|
38
|
+
export declare function fragmentContainsNodeType(fragment: Fragment, nodeType: NodeType): boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-common",
|
|
3
|
-
"version": "96.
|
|
3
|
+
"version": "96.2.0",
|
|
4
4
|
"description": "A package that contains common classes and components for editor and renderer",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"@atlaskit/smart-user-picker": "^6.11.0",
|
|
153
153
|
"@atlaskit/spinner": "^16.3.0",
|
|
154
154
|
"@atlaskit/task-decision": "^17.11.0",
|
|
155
|
-
"@atlaskit/textfield": "^6.
|
|
156
|
-
"@atlaskit/tmp-editor-statsig": "^2.
|
|
155
|
+
"@atlaskit/textfield": "^6.7.0",
|
|
156
|
+
"@atlaskit/tmp-editor-statsig": "^2.23.0",
|
|
157
157
|
"@atlaskit/tokens": "^2.4.0",
|
|
158
158
|
"@atlaskit/tooltip": "^18.9.0",
|
|
159
159
|
"@atlaskit/width-detector": "^4.3.0",
|
|
@@ -261,6 +261,9 @@
|
|
|
261
261
|
"platform_editor_react18_extension_component_v2": {
|
|
262
262
|
"type": "boolean"
|
|
263
263
|
},
|
|
264
|
+
"platform_editor_is_disabled_state_element_browser": {
|
|
265
|
+
"type": "boolean"
|
|
266
|
+
},
|
|
264
267
|
"platform-datasources-enable-two-way-sync": {
|
|
265
268
|
"type": "boolean"
|
|
266
269
|
},
|