@atlaskit/editor-common 76.30.0 → 76.32.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 +17 -0
- package/dist/cjs/lists/node.js +13 -1
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/quick-insert/utils.js +17 -2
- package/dist/cjs/types/feedback-dialog.js +5 -0
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/utils/index.js +12 -0
- package/dist/cjs/utils/list.js +12 -1
- package/dist/es2019/lists/node.js +14 -2
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/quick-insert/utils.js +13 -2
- package/dist/es2019/types/feedback-dialog.js +1 -0
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/utils/index.js +1 -1
- package/dist/es2019/utils/list.js +10 -1
- package/dist/esm/lists/node.js +14 -2
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/quick-insert/utils.js +17 -2
- package/dist/esm/types/feedback-dialog.js +1 -0
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/utils/list.js +10 -1
- package/dist/types/lists/node.d.ts +2 -2
- package/dist/types/quick-insert/utils.d.ts +1 -3
- package/dist/types/types/feature-flags.d.ts +8 -0
- package/dist/types/types/feedback-dialog.d.ts +10 -0
- package/dist/types/types/index.d.ts +2 -1
- package/dist/types/types/quick-insert.d.ts +4 -1
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/list.d.ts +3 -1
- package/dist/types-ts4.5/lists/node.d.ts +2 -2
- package/dist/types-ts4.5/quick-insert/utils.d.ts +1 -3
- package/dist/types-ts4.5/types/feature-flags.d.ts +8 -0
- package/dist/types-ts4.5/types/feedback-dialog.d.ts +10 -0
- package/dist/types-ts4.5/types/index.d.ts +2 -1
- package/dist/types-ts4.5/types/quick-insert.d.ts +4 -1
- package/dist/types-ts4.5/utils/index.d.ts +1 -1
- package/dist/types-ts4.5/utils/list.d.ts +3 -1
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 76.32.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#63540](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/63540) [`f90baf9336e6`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/f90baf9336e6) - [ux] EDF-52: Hide quickInsert AI items based on AI config item isVisible handler (such as when documents are empty). This change is behind the platform flag platform.editor.ai-dynamic-show-hide-quick-insert-items_4ie8s (since it depends on adoption of a corresponding editor-common version to be enabled).
|
|
8
|
+
|
|
9
|
+
## 76.31.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [#63849](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/63849) [`75e0c3b954b3`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/75e0c3b954b3) - Extract feedback dialog plugin from editor-core as @atlaskit/editor-plugin-feedback-dialog
|
|
14
|
+
- [#63553](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/63553) [`e022e5359b7a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/e022e5359b7a) - [ux] ED-21352: Support more edge cases for ordered list auto-join improvements. These improvements are guarded behind platform.editor.ordered-list-auto-join-improvements_mrlv5.
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- [#64179](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/64179) [`3754cce9321d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/3754cce9321d) - setup table resizing performance experiment
|
|
19
|
+
|
|
3
20
|
## 76.30.0
|
|
4
21
|
|
|
5
22
|
### Minor Changes
|
package/dist/cjs/lists/node.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.JoinDirection = void 0;
|
|
|
7
7
|
exports.isListNodeValidContent = isListNodeValidContent;
|
|
8
8
|
exports.joinSiblingLists = void 0;
|
|
9
9
|
var _model = require("@atlaskit/editor-prosemirror/model");
|
|
10
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
10
11
|
var _utils = require("../utils");
|
|
11
12
|
function isListNodeValidContent(node) {
|
|
12
13
|
var bulletList = node.type.schema.nodes.bulletList;
|
|
@@ -49,6 +50,9 @@ var joinSiblingLists = exports.joinSiblingLists = function joinSiblingLists(_ref
|
|
|
49
50
|
if (!nodeBefore || !nodeAfter || !(0, _utils.isListNode)(nodeBefore) || !(0, _utils.isListNode)(nodeAfter)) {
|
|
50
51
|
return;
|
|
51
52
|
}
|
|
53
|
+
if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.ordered-list-auto-join-improvements_mrlv5') && (0, _utils.isOrderedList)(nodeBefore) && (0, _utils.isOrderedList)(nodeAfter) && !(0, _utils.isOrderedListContinuous)(nodeBefore, nodeAfter)) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
52
56
|
var isNestedList = (0, _utils.isListItemNode)(parent);
|
|
53
57
|
if (!isNestedList && nodeBefore.type !== nodeAfter.type && !forceListType) {
|
|
54
58
|
return;
|
|
@@ -79,7 +83,15 @@ var joinSiblingLists = exports.joinSiblingLists = function joinSiblingLists(_ref
|
|
|
79
83
|
var nodeBefore = resolvedPos.nodeBefore,
|
|
80
84
|
nodeAfter = resolvedPos.nodeAfter;
|
|
81
85
|
if (nodeBefore && nodeAfter && (0, _utils.isListNode)(nodeBefore) && (0, _utils.isListNode)(nodeAfter) && nodeAfter.type === nodeBefore.type) {
|
|
82
|
-
|
|
86
|
+
if (!(0, _platformFeatureFlags.getBooleanFF)('platform.editor.ordered-list-auto-join-improvements_mrlv5') ||
|
|
87
|
+
/**
|
|
88
|
+
* Both lists have the same type so one check is sufficient.
|
|
89
|
+
* If the lists are ordered, only join if continuous.
|
|
90
|
+
* Otherwise, if unordered, always join.
|
|
91
|
+
*/
|
|
92
|
+
!(0, _utils.isOrderedList)(nodeBefore) || (0, _utils.isOrderedListContinuous)(nodeBefore, nodeAfter)) {
|
|
93
|
+
joins.push(resolvedPos.pos);
|
|
94
|
+
}
|
|
83
95
|
}
|
|
84
96
|
}
|
|
85
97
|
for (var i = joins.length - 1; i >= 0; i--) {
|
|
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
16
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
17
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
18
18
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
19
|
-
var packageVersion = "76.
|
|
19
|
+
var packageVersion = "76.32.0";
|
|
20
20
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
21
21
|
// Remove URL as it has UGC
|
|
22
22
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -10,14 +10,29 @@ var _fuse = _interopRequireDefault(require("fuse.js"));
|
|
|
10
10
|
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
11
11
|
var processQuickInsertItems = function processQuickInsertItems(items, intl) {
|
|
12
12
|
return items.reduce(function (acc, item) {
|
|
13
|
-
if (typeof item === 'function'
|
|
13
|
+
if (typeof item === 'function' &&
|
|
14
|
+
// we preserve handler items with disableMemo so that we
|
|
15
|
+
// can process them in a later step outside of memoizations
|
|
16
|
+
!item.disableMemo) {
|
|
14
17
|
var quickInsertItems = item(intl);
|
|
15
18
|
return acc.concat(quickInsertItems);
|
|
16
19
|
}
|
|
17
20
|
return acc.concat(item);
|
|
18
21
|
}, []);
|
|
19
22
|
};
|
|
20
|
-
var
|
|
23
|
+
var memoizedProcessQuickInsertItems = (0, _memoizeOne.default)(processQuickInsertItems);
|
|
24
|
+
var memoProcessQuickInsertItems = exports.memoProcessQuickInsertItems = function memoProcessQuickInsertItems(items, intl) {
|
|
25
|
+
var memoizedResults = memoizedProcessQuickInsertItems(items, intl);
|
|
26
|
+
var hasDisabledMemos = items.some(function (item) {
|
|
27
|
+
return typeof item === 'function' && item.disableMemo;
|
|
28
|
+
});
|
|
29
|
+
if (!hasDisabledMemos) {
|
|
30
|
+
return memoizedResults;
|
|
31
|
+
}
|
|
32
|
+
return memoizedResults.flatMap(function (item) {
|
|
33
|
+
return typeof item === 'function' && item.disableMemo ? item(intl) : item;
|
|
34
|
+
});
|
|
35
|
+
};
|
|
21
36
|
var options = {
|
|
22
37
|
threshold: 0.3,
|
|
23
38
|
keys: [{
|
|
@@ -22,7 +22,7 @@ var _templateObject, _templateObject2, _templateObject3;
|
|
|
22
22
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
23
23
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** @jsx jsx */
|
|
24
24
|
var packageName = "@atlaskit/editor-common";
|
|
25
|
-
var packageVersion = "76.
|
|
25
|
+
var packageVersion = "76.32.0";
|
|
26
26
|
var halfFocusRing = 1;
|
|
27
27
|
var dropOffset = '0, 8';
|
|
28
28
|
var DropList = /*#__PURE__*/function (_Component) {
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -683,6 +683,18 @@ Object.defineProperty(exports, "isNodeSelectedOrInRange", {
|
|
|
683
683
|
return _nodes.isNodeSelectedOrInRange;
|
|
684
684
|
}
|
|
685
685
|
});
|
|
686
|
+
Object.defineProperty(exports, "isOrderedList", {
|
|
687
|
+
enumerable: true,
|
|
688
|
+
get: function get() {
|
|
689
|
+
return _list.isOrderedList;
|
|
690
|
+
}
|
|
691
|
+
});
|
|
692
|
+
Object.defineProperty(exports, "isOrderedListContinuous", {
|
|
693
|
+
enumerable: true,
|
|
694
|
+
get: function get() {
|
|
695
|
+
return _list.isOrderedListContinuous;
|
|
696
|
+
}
|
|
697
|
+
});
|
|
686
698
|
Object.defineProperty(exports, "isOutdatedBrowser", {
|
|
687
699
|
enumerable: true,
|
|
688
700
|
get: function get() {
|
package/dist/cjs/utils/list.js
CHANGED
|
@@ -7,6 +7,8 @@ exports.getOrderFromOrderedListNode = exports.getItemCounterDigitsSize = exports
|
|
|
7
7
|
exports.isBulletList = isBulletList;
|
|
8
8
|
exports.isListItemNode = isListItemNode;
|
|
9
9
|
exports.isListNode = isListNode;
|
|
10
|
+
exports.isOrderedList = isOrderedList;
|
|
11
|
+
exports.isOrderedListContinuous = void 0;
|
|
10
12
|
exports.isParagraphNode = isParagraphNode;
|
|
11
13
|
exports.resolveOrder = void 0;
|
|
12
14
|
// File has been copied to packages/editor/editor-plugin-ai/src/provider/prosemirror-transformer/utils/list.ts
|
|
@@ -50,4 +52,13 @@ function isListItemNode(node) {
|
|
|
50
52
|
}
|
|
51
53
|
function isBulletList(node) {
|
|
52
54
|
return Boolean(node && node.type && 'bulletList' === node.type.name);
|
|
53
|
-
}
|
|
55
|
+
}
|
|
56
|
+
function isOrderedList(node) {
|
|
57
|
+
return Boolean(node && node.type && 'orderedList' === node.type.name);
|
|
58
|
+
}
|
|
59
|
+
var isOrderedListContinuous = exports.isOrderedListContinuous = function isOrderedListContinuous(firstOrderedList, secondOrderedList) {
|
|
60
|
+
if (!(isOrderedList(firstOrderedList) && isOrderedList(secondOrderedList))) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
return getOrderFromOrderedListNode(firstOrderedList) + firstOrderedList.childCount === getOrderFromOrderedListNode(secondOrderedList);
|
|
64
|
+
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Fragment } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
-
import {
|
|
2
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
3
|
+
import { isListItemNode, isListNode, isOrderedList, isOrderedListContinuous } from '../utils';
|
|
3
4
|
export function isListNodeValidContent(node) {
|
|
4
5
|
const {
|
|
5
6
|
bulletList
|
|
@@ -49,6 +50,9 @@ export const joinSiblingLists = ({
|
|
|
49
50
|
if (!nodeBefore || !nodeAfter || !isListNode(nodeBefore) || !isListNode(nodeAfter)) {
|
|
50
51
|
return;
|
|
51
52
|
}
|
|
53
|
+
if (getBooleanFF('platform.editor.ordered-list-auto-join-improvements_mrlv5') && isOrderedList(nodeBefore) && isOrderedList(nodeAfter) && !isOrderedListContinuous(nodeBefore, nodeAfter)) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
52
56
|
const isNestedList = isListItemNode(parent);
|
|
53
57
|
if (!isNestedList && nodeBefore.type !== nodeAfter.type && !forceListType) {
|
|
54
58
|
return;
|
|
@@ -81,7 +85,15 @@ export const joinSiblingLists = ({
|
|
|
81
85
|
nodeAfter
|
|
82
86
|
} = resolvedPos;
|
|
83
87
|
if (nodeBefore && nodeAfter && isListNode(nodeBefore) && isListNode(nodeAfter) && nodeAfter.type === nodeBefore.type) {
|
|
84
|
-
|
|
88
|
+
if (!getBooleanFF('platform.editor.ordered-list-auto-join-improvements_mrlv5') ||
|
|
89
|
+
/**
|
|
90
|
+
* Both lists have the same type so one check is sufficient.
|
|
91
|
+
* If the lists are ordered, only join if continuous.
|
|
92
|
+
* Otherwise, if unordered, always join.
|
|
93
|
+
*/
|
|
94
|
+
!isOrderedList(nodeBefore) || isOrderedListContinuous(nodeBefore, nodeAfter)) {
|
|
95
|
+
joins.push(resolvedPos.pos);
|
|
96
|
+
}
|
|
85
97
|
}
|
|
86
98
|
}
|
|
87
99
|
for (let i = joins.length - 1; i >= 0; i--) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
2
2
|
const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
3
|
-
const packageVersion = "76.
|
|
3
|
+
const packageVersion = "76.32.0";
|
|
4
4
|
const sanitiseSentryEvents = (data, _hint) => {
|
|
5
5
|
// Remove URL as it has UGC
|
|
6
6
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -2,14 +2,25 @@ import Fuse from 'fuse.js';
|
|
|
2
2
|
import memoizeOne from 'memoize-one';
|
|
3
3
|
const processQuickInsertItems = (items, intl) => {
|
|
4
4
|
return items.reduce((acc, item) => {
|
|
5
|
-
if (typeof item === 'function'
|
|
5
|
+
if (typeof item === 'function' &&
|
|
6
|
+
// we preserve handler items with disableMemo so that we
|
|
7
|
+
// can process them in a later step outside of memoizations
|
|
8
|
+
!item.disableMemo) {
|
|
6
9
|
const quickInsertItems = item(intl);
|
|
7
10
|
return acc.concat(quickInsertItems);
|
|
8
11
|
}
|
|
9
12
|
return acc.concat(item);
|
|
10
13
|
}, []);
|
|
11
14
|
};
|
|
12
|
-
|
|
15
|
+
const memoizedProcessQuickInsertItems = memoizeOne(processQuickInsertItems);
|
|
16
|
+
export const memoProcessQuickInsertItems = (items, intl) => {
|
|
17
|
+
const memoizedResults = memoizedProcessQuickInsertItems(items, intl);
|
|
18
|
+
const hasDisabledMemos = items.some(item => typeof item === 'function' && item.disableMemo);
|
|
19
|
+
if (!hasDisabledMemos) {
|
|
20
|
+
return memoizedResults;
|
|
21
|
+
}
|
|
22
|
+
return memoizedResults.flatMap(item => typeof item === 'function' && item.disableMemo ? item(intl) : item);
|
|
23
|
+
};
|
|
13
24
|
const options = {
|
|
14
25
|
threshold: 0.3,
|
|
15
26
|
keys: [{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -7,7 +7,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
|
|
|
7
7
|
import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
|
|
8
8
|
import Layer from '../Layer';
|
|
9
9
|
const packageName = "@atlaskit/editor-common";
|
|
10
|
-
const packageVersion = "76.
|
|
10
|
+
const packageVersion = "76.32.0";
|
|
11
11
|
const halfFocusRing = 1;
|
|
12
12
|
const dropOffset = '0, 8';
|
|
13
13
|
class DropList extends Component {
|
|
@@ -38,7 +38,7 @@ export { useComponentRenderTracking } from './performance/hooks/use-component-re
|
|
|
38
38
|
export { isOutdatedBrowser } from './outdated-browsers';
|
|
39
39
|
export { autoJoinTr } from './prosemirror/autojoin';
|
|
40
40
|
export { isReferencedSource, removeConnectedNodes, getChildrenInfo, getNodeName } from './referentiality';
|
|
41
|
-
export { getItemCounterDigitsSize, getOrderFromOrderedListNode, resolveOrder, isListNode, isParagraphNode, isListItemNode, isBulletList } from './list';
|
|
41
|
+
export { getItemCounterDigitsSize, getOrderFromOrderedListNode, resolveOrder, isListNode, isParagraphNode, isListItemNode, isBulletList, isOrderedList, isOrderedListContinuous } from './list';
|
|
42
42
|
export { isFromCurrentDomain, LinkMatcher, normalizeUrl, linkifyContent, getLinkDomain, findFilepaths, isLinkInMatches, FILEPATH_REGEXP, DONTLINKIFY_REGEXP, getLinkCreationAnalyticsEvent, canLinkBeCreatedInRange } from './hyperlink';
|
|
43
43
|
|
|
44
44
|
// prosemirror-history does not export its plugin key
|
|
@@ -39,4 +39,13 @@ export function isListItemNode(node) {
|
|
|
39
39
|
}
|
|
40
40
|
export function isBulletList(node) {
|
|
41
41
|
return Boolean(node && node.type && 'bulletList' === node.type.name);
|
|
42
|
-
}
|
|
42
|
+
}
|
|
43
|
+
export function isOrderedList(node) {
|
|
44
|
+
return Boolean(node && node.type && 'orderedList' === node.type.name);
|
|
45
|
+
}
|
|
46
|
+
export const isOrderedListContinuous = (firstOrderedList, secondOrderedList) => {
|
|
47
|
+
if (!(isOrderedList(firstOrderedList) && isOrderedList(secondOrderedList))) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
return getOrderFromOrderedListNode(firstOrderedList) + firstOrderedList.childCount === getOrderFromOrderedListNode(secondOrderedList);
|
|
51
|
+
};
|
package/dist/esm/lists/node.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Fragment } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
-
import {
|
|
2
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
3
|
+
import { isListItemNode, isListNode, isOrderedList, isOrderedListContinuous } from '../utils';
|
|
3
4
|
export function isListNodeValidContent(node) {
|
|
4
5
|
var bulletList = node.type.schema.nodes.bulletList;
|
|
5
6
|
if (!bulletList) {
|
|
@@ -41,6 +42,9 @@ export var joinSiblingLists = function joinSiblingLists(_ref) {
|
|
|
41
42
|
if (!nodeBefore || !nodeAfter || !isListNode(nodeBefore) || !isListNode(nodeAfter)) {
|
|
42
43
|
return;
|
|
43
44
|
}
|
|
45
|
+
if (getBooleanFF('platform.editor.ordered-list-auto-join-improvements_mrlv5') && isOrderedList(nodeBefore) && isOrderedList(nodeAfter) && !isOrderedListContinuous(nodeBefore, nodeAfter)) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
44
48
|
var isNestedList = isListItemNode(parent);
|
|
45
49
|
if (!isNestedList && nodeBefore.type !== nodeAfter.type && !forceListType) {
|
|
46
50
|
return;
|
|
@@ -71,7 +75,15 @@ export var joinSiblingLists = function joinSiblingLists(_ref) {
|
|
|
71
75
|
var nodeBefore = resolvedPos.nodeBefore,
|
|
72
76
|
nodeAfter = resolvedPos.nodeAfter;
|
|
73
77
|
if (nodeBefore && nodeAfter && isListNode(nodeBefore) && isListNode(nodeAfter) && nodeAfter.type === nodeBefore.type) {
|
|
74
|
-
|
|
78
|
+
if (!getBooleanFF('platform.editor.ordered-list-auto-join-improvements_mrlv5') ||
|
|
79
|
+
/**
|
|
80
|
+
* Both lists have the same type so one check is sufficient.
|
|
81
|
+
* If the lists are ordered, only join if continuous.
|
|
82
|
+
* Otherwise, if unordered, always join.
|
|
83
|
+
*/
|
|
84
|
+
!isOrderedList(nodeBefore) || isOrderedListContinuous(nodeBefore, nodeAfter)) {
|
|
85
|
+
joins.push(resolvedPos.pos);
|
|
86
|
+
}
|
|
75
87
|
}
|
|
76
88
|
}
|
|
77
89
|
for (var i = joins.length - 1; i >= 0; i--) {
|
|
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
6
6
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
7
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
8
8
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
9
|
-
var packageVersion = "76.
|
|
9
|
+
var packageVersion = "76.32.0";
|
|
10
10
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
11
11
|
// Remove URL as it has UGC
|
|
12
12
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -2,14 +2,29 @@ import Fuse from 'fuse.js';
|
|
|
2
2
|
import memoizeOne from 'memoize-one';
|
|
3
3
|
var processQuickInsertItems = function processQuickInsertItems(items, intl) {
|
|
4
4
|
return items.reduce(function (acc, item) {
|
|
5
|
-
if (typeof item === 'function'
|
|
5
|
+
if (typeof item === 'function' &&
|
|
6
|
+
// we preserve handler items with disableMemo so that we
|
|
7
|
+
// can process them in a later step outside of memoizations
|
|
8
|
+
!item.disableMemo) {
|
|
6
9
|
var quickInsertItems = item(intl);
|
|
7
10
|
return acc.concat(quickInsertItems);
|
|
8
11
|
}
|
|
9
12
|
return acc.concat(item);
|
|
10
13
|
}, []);
|
|
11
14
|
};
|
|
12
|
-
|
|
15
|
+
var memoizedProcessQuickInsertItems = memoizeOne(processQuickInsertItems);
|
|
16
|
+
export var memoProcessQuickInsertItems = function memoProcessQuickInsertItems(items, intl) {
|
|
17
|
+
var memoizedResults = memoizedProcessQuickInsertItems(items, intl);
|
|
18
|
+
var hasDisabledMemos = items.some(function (item) {
|
|
19
|
+
return typeof item === 'function' && item.disableMemo;
|
|
20
|
+
});
|
|
21
|
+
if (!hasDisabledMemos) {
|
|
22
|
+
return memoizedResults;
|
|
23
|
+
}
|
|
24
|
+
return memoizedResults.flatMap(function (item) {
|
|
25
|
+
return typeof item === 'function' && item.disableMemo ? item(intl) : item;
|
|
26
|
+
});
|
|
27
|
+
};
|
|
13
28
|
var options = {
|
|
14
29
|
threshold: 0.3,
|
|
15
30
|
keys: [{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -17,7 +17,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
|
|
|
17
17
|
import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
|
|
18
18
|
import Layer from '../Layer';
|
|
19
19
|
var packageName = "@atlaskit/editor-common";
|
|
20
|
-
var packageVersion = "76.
|
|
20
|
+
var packageVersion = "76.32.0";
|
|
21
21
|
var halfFocusRing = 1;
|
|
22
22
|
var dropOffset = '0, 8';
|
|
23
23
|
var DropList = /*#__PURE__*/function (_Component) {
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -38,7 +38,7 @@ export { useComponentRenderTracking } from './performance/hooks/use-component-re
|
|
|
38
38
|
export { isOutdatedBrowser } from './outdated-browsers';
|
|
39
39
|
export { autoJoinTr } from './prosemirror/autojoin';
|
|
40
40
|
export { isReferencedSource, removeConnectedNodes, getChildrenInfo, getNodeName } from './referentiality';
|
|
41
|
-
export { getItemCounterDigitsSize, getOrderFromOrderedListNode, resolveOrder, isListNode, isParagraphNode, isListItemNode, isBulletList } from './list';
|
|
41
|
+
export { getItemCounterDigitsSize, getOrderFromOrderedListNode, resolveOrder, isListNode, isParagraphNode, isListItemNode, isBulletList, isOrderedList, isOrderedListContinuous } from './list';
|
|
42
42
|
export { isFromCurrentDomain, LinkMatcher, normalizeUrl, linkifyContent, getLinkDomain, findFilepaths, isLinkInMatches, FILEPATH_REGEXP, DONTLINKIFY_REGEXP, getLinkCreationAnalyticsEvent, canLinkBeCreatedInRange } from './hyperlink';
|
|
43
43
|
|
|
44
44
|
// prosemirror-history does not export its plugin key
|
package/dist/esm/utils/list.js
CHANGED
|
@@ -39,4 +39,13 @@ export function isListItemNode(node) {
|
|
|
39
39
|
}
|
|
40
40
|
export function isBulletList(node) {
|
|
41
41
|
return Boolean(node && node.type && 'bulletList' === node.type.name);
|
|
42
|
-
}
|
|
42
|
+
}
|
|
43
|
+
export function isOrderedList(node) {
|
|
44
|
+
return Boolean(node && node.type && 'orderedList' === node.type.name);
|
|
45
|
+
}
|
|
46
|
+
export var isOrderedListContinuous = function isOrderedListContinuous(firstOrderedList, secondOrderedList) {
|
|
47
|
+
if (!(isOrderedList(firstOrderedList) && isOrderedList(secondOrderedList))) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
return getOrderFromOrderedListNode(firstOrderedList) + firstOrderedList.childCount === getOrderFromOrderedListNode(secondOrderedList);
|
|
51
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { NodeType, Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
-
import { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
1
|
+
import type { NodeType, Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
3
|
export declare function isListNodeValidContent(node: PMNode): boolean;
|
|
4
4
|
export declare enum JoinDirection {
|
|
5
5
|
LEFT = 1,
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { IntlShape } from 'react-intl-next';
|
|
2
2
|
import type { QuickInsertItem } from '../provider-factory';
|
|
3
3
|
import type { QuickInsertHandler } from '../types';
|
|
4
|
-
declare const
|
|
5
|
-
export declare const memoProcessQuickInsertItems: typeof processQuickInsertItems;
|
|
4
|
+
export declare const memoProcessQuickInsertItems: (items: Array<QuickInsertHandler>, intl: IntlShape) => QuickInsertItem[];
|
|
6
5
|
/**
|
|
7
6
|
* This function is used to find and sort QuickInsertItems based on a given query string.
|
|
8
7
|
*
|
|
@@ -12,4 +11,3 @@ export declare const memoProcessQuickInsertItems: typeof processQuickInsertItems
|
|
|
12
11
|
* @returns {QuickInsertItem[]} - Returns a sorted array of QuickInsertItems based on the priority. If the query string is empty, it will return the array sorted by priority. If a query string is provided, it will return an array of QuickInsertItems that match the query string, sorted by relevance to the query.
|
|
13
12
|
*/
|
|
14
13
|
export declare function find(query: string, items: QuickInsertItem[]): QuickInsertItem[];
|
|
15
|
-
export {};
|
|
@@ -236,6 +236,14 @@ export type FeatureFlags = {
|
|
|
236
236
|
* @default false
|
|
237
237
|
*/
|
|
238
238
|
stickyScrollbar?: boolean | undefined;
|
|
239
|
+
/**
|
|
240
|
+
* @description
|
|
241
|
+
* Enables the resizing performance optimisation for tables
|
|
242
|
+
*
|
|
243
|
+
* @see https://product-fabric.atlassian.net/browse/ED-21725
|
|
244
|
+
* @default false
|
|
245
|
+
*/
|
|
246
|
+
tableResizePerformance?: boolean | undefined;
|
|
239
247
|
};
|
|
240
248
|
export type FeatureFlagKey = keyof FeatureFlags;
|
|
241
249
|
export type GetEditorFeatureFlags = () => FeatureFlags;
|
|
@@ -48,6 +48,7 @@ export type { TOOLBAR_MENU_TYPE } from './insert-block';
|
|
|
48
48
|
export type { TextFormattingOptions, TextFormattingState, InputMethodToolbar, InputMethodBasic, } from './text-formatting';
|
|
49
49
|
export type { LayoutPluginOptions } from './layout';
|
|
50
50
|
export type { LongPressSelectionPluginOptions } from './selection';
|
|
51
|
-
export type { QuickInsertPluginState, QuickInsertPluginStateKeys, QuickInsertOptions, QuickInsertPluginOptions, QuickInsertSearchOptions, QuickInsertSharedState, QuickInsertHandler, } from './quick-insert';
|
|
51
|
+
export type { QuickInsertPluginState, QuickInsertPluginStateKeys, QuickInsertOptions, QuickInsertPluginOptions, QuickInsertSearchOptions, QuickInsertSharedState, QuickInsertHandler, QuickInsertHandlerFn, } from './quick-insert';
|
|
52
52
|
export type { Refs, RefsNode, DocBuilder } from './doc-builder';
|
|
53
53
|
export type { SelectionToolbarGroup, SelectionToolbarHandler, } from './selection-toolbar';
|
|
54
|
+
export type { FeedbackInfo } from './feedback-dialog';
|
|
@@ -4,7 +4,10 @@ import type { EmptyStateHandler } from './empty-state-handler';
|
|
|
4
4
|
export type QuickInsertOptions = boolean | {
|
|
5
5
|
provider: Promise<QuickInsertProvider>;
|
|
6
6
|
};
|
|
7
|
-
export type
|
|
7
|
+
export type QuickInsertHandlerFn = ((intl: IntlShape) => Array<QuickInsertItem>) & {
|
|
8
|
+
disableMemo?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type QuickInsertHandler = Array<QuickInsertItem> | QuickInsertHandlerFn;
|
|
8
11
|
export type IconProps = {
|
|
9
12
|
label?: string;
|
|
10
13
|
};
|
|
@@ -50,7 +50,7 @@ export type { UseComponentRenderTrackingArgs } from './performance/hooks/use-com
|
|
|
50
50
|
export { isOutdatedBrowser } from './outdated-browsers';
|
|
51
51
|
export { autoJoinTr } from './prosemirror/autojoin';
|
|
52
52
|
export { isReferencedSource, removeConnectedNodes, getChildrenInfo, getNodeName, } from './referentiality';
|
|
53
|
-
export { getItemCounterDigitsSize, getOrderFromOrderedListNode, resolveOrder, isListNode, isParagraphNode, isListItemNode, isBulletList, } from './list';
|
|
53
|
+
export { getItemCounterDigitsSize, getOrderFromOrderedListNode, resolveOrder, isListNode, isParagraphNode, isListItemNode, isBulletList, isOrderedList, isOrderedListContinuous, } from './list';
|
|
54
54
|
export { isFromCurrentDomain, LinkMatcher, normalizeUrl, linkifyContent, getLinkDomain, findFilepaths, isLinkInMatches, FILEPATH_REGEXP, DONTLINKIFY_REGEXP, getLinkCreationAnalyticsEvent, canLinkBeCreatedInRange, } from './hyperlink';
|
|
55
55
|
export declare const pmHistoryPluginKey = "history$";
|
|
56
56
|
export { gridTypeForLayout } from './grid';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Node } from '@atlaskit/editor-prosemirror/model';
|
|
1
|
+
import type { Node } from '@atlaskit/editor-prosemirror/model';
|
|
2
2
|
export declare const DEFAULT_ORDER = 1;
|
|
3
3
|
export declare const resolveOrder: (order: number | undefined | string) => number | undefined;
|
|
4
4
|
export declare const getOrderFromOrderedListNode: (orderedListNode: Node) => number;
|
|
@@ -11,4 +11,6 @@ export declare function isListNode(node: Node | null | undefined): boolean;
|
|
|
11
11
|
export declare function isParagraphNode(node: Node | null | undefined): boolean;
|
|
12
12
|
export declare function isListItemNode(node: Node | null | undefined): boolean;
|
|
13
13
|
export declare function isBulletList(node: Node | null | undefined): boolean;
|
|
14
|
+
export declare function isOrderedList(node: Node | null | undefined): boolean;
|
|
15
|
+
export declare const isOrderedListContinuous: (firstOrderedList: Node, secondOrderedList: Node) => boolean;
|
|
14
16
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { NodeType, Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
-
import { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
1
|
+
import type { NodeType, Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
3
|
export declare function isListNodeValidContent(node: PMNode): boolean;
|
|
4
4
|
export declare enum JoinDirection {
|
|
5
5
|
LEFT = 1,
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { IntlShape } from 'react-intl-next';
|
|
2
2
|
import type { QuickInsertItem } from '../provider-factory';
|
|
3
3
|
import type { QuickInsertHandler } from '../types';
|
|
4
|
-
declare const
|
|
5
|
-
export declare const memoProcessQuickInsertItems: typeof processQuickInsertItems;
|
|
4
|
+
export declare const memoProcessQuickInsertItems: (items: Array<QuickInsertHandler>, intl: IntlShape) => QuickInsertItem[];
|
|
6
5
|
/**
|
|
7
6
|
* This function is used to find and sort QuickInsertItems based on a given query string.
|
|
8
7
|
*
|
|
@@ -12,4 +11,3 @@ export declare const memoProcessQuickInsertItems: typeof processQuickInsertItems
|
|
|
12
11
|
* @returns {QuickInsertItem[]} - Returns a sorted array of QuickInsertItems based on the priority. If the query string is empty, it will return the array sorted by priority. If a query string is provided, it will return an array of QuickInsertItems that match the query string, sorted by relevance to the query.
|
|
13
12
|
*/
|
|
14
13
|
export declare function find(query: string, items: QuickInsertItem[]): QuickInsertItem[];
|
|
15
|
-
export {};
|
|
@@ -236,6 +236,14 @@ export type FeatureFlags = {
|
|
|
236
236
|
* @default false
|
|
237
237
|
*/
|
|
238
238
|
stickyScrollbar?: boolean | undefined;
|
|
239
|
+
/**
|
|
240
|
+
* @description
|
|
241
|
+
* Enables the resizing performance optimisation for tables
|
|
242
|
+
*
|
|
243
|
+
* @see https://product-fabric.atlassian.net/browse/ED-21725
|
|
244
|
+
* @default false
|
|
245
|
+
*/
|
|
246
|
+
tableResizePerformance?: boolean | undefined;
|
|
239
247
|
};
|
|
240
248
|
export type FeatureFlagKey = keyof FeatureFlags;
|
|
241
249
|
export type GetEditorFeatureFlags = () => FeatureFlags;
|
|
@@ -48,6 +48,7 @@ export type { TOOLBAR_MENU_TYPE } from './insert-block';
|
|
|
48
48
|
export type { TextFormattingOptions, TextFormattingState, InputMethodToolbar, InputMethodBasic, } from './text-formatting';
|
|
49
49
|
export type { LayoutPluginOptions } from './layout';
|
|
50
50
|
export type { LongPressSelectionPluginOptions } from './selection';
|
|
51
|
-
export type { QuickInsertPluginState, QuickInsertPluginStateKeys, QuickInsertOptions, QuickInsertPluginOptions, QuickInsertSearchOptions, QuickInsertSharedState, QuickInsertHandler, } from './quick-insert';
|
|
51
|
+
export type { QuickInsertPluginState, QuickInsertPluginStateKeys, QuickInsertOptions, QuickInsertPluginOptions, QuickInsertSearchOptions, QuickInsertSharedState, QuickInsertHandler, QuickInsertHandlerFn, } from './quick-insert';
|
|
52
52
|
export type { Refs, RefsNode, DocBuilder } from './doc-builder';
|
|
53
53
|
export type { SelectionToolbarGroup, SelectionToolbarHandler, } from './selection-toolbar';
|
|
54
|
+
export type { FeedbackInfo } from './feedback-dialog';
|
|
@@ -4,7 +4,10 @@ import type { EmptyStateHandler } from './empty-state-handler';
|
|
|
4
4
|
export type QuickInsertOptions = boolean | {
|
|
5
5
|
provider: Promise<QuickInsertProvider>;
|
|
6
6
|
};
|
|
7
|
-
export type
|
|
7
|
+
export type QuickInsertHandlerFn = ((intl: IntlShape) => Array<QuickInsertItem>) & {
|
|
8
|
+
disableMemo?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type QuickInsertHandler = Array<QuickInsertItem> | QuickInsertHandlerFn;
|
|
8
11
|
export type IconProps = {
|
|
9
12
|
label?: string;
|
|
10
13
|
};
|
|
@@ -50,7 +50,7 @@ export type { UseComponentRenderTrackingArgs } from './performance/hooks/use-com
|
|
|
50
50
|
export { isOutdatedBrowser } from './outdated-browsers';
|
|
51
51
|
export { autoJoinTr } from './prosemirror/autojoin';
|
|
52
52
|
export { isReferencedSource, removeConnectedNodes, getChildrenInfo, getNodeName, } from './referentiality';
|
|
53
|
-
export { getItemCounterDigitsSize, getOrderFromOrderedListNode, resolveOrder, isListNode, isParagraphNode, isListItemNode, isBulletList, } from './list';
|
|
53
|
+
export { getItemCounterDigitsSize, getOrderFromOrderedListNode, resolveOrder, isListNode, isParagraphNode, isListItemNode, isBulletList, isOrderedList, isOrderedListContinuous, } from './list';
|
|
54
54
|
export { isFromCurrentDomain, LinkMatcher, normalizeUrl, linkifyContent, getLinkDomain, findFilepaths, isLinkInMatches, FILEPATH_REGEXP, DONTLINKIFY_REGEXP, getLinkCreationAnalyticsEvent, canLinkBeCreatedInRange, } from './hyperlink';
|
|
55
55
|
export declare const pmHistoryPluginKey = "history$";
|
|
56
56
|
export { gridTypeForLayout } from './grid';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Node } from '@atlaskit/editor-prosemirror/model';
|
|
1
|
+
import type { Node } from '@atlaskit/editor-prosemirror/model';
|
|
2
2
|
export declare const DEFAULT_ORDER = 1;
|
|
3
3
|
export declare const resolveOrder: (order: number | undefined | string) => number | undefined;
|
|
4
4
|
export declare const getOrderFromOrderedListNode: (orderedListNode: Node) => number;
|
|
@@ -11,4 +11,6 @@ export declare function isListNode(node: Node | null | undefined): boolean;
|
|
|
11
11
|
export declare function isParagraphNode(node: Node | null | undefined): boolean;
|
|
12
12
|
export declare function isListItemNode(node: Node | null | undefined): boolean;
|
|
13
13
|
export declare function isBulletList(node: Node | null | undefined): boolean;
|
|
14
|
+
export declare function isOrderedList(node: Node | null | undefined): boolean;
|
|
15
|
+
export declare const isOrderedListContinuous: (firstOrderedList: Node, secondOrderedList: Node) => boolean;
|
|
14
16
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-common",
|
|
3
|
-
"version": "76.
|
|
3
|
+
"version": "76.32.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/"
|
|
@@ -221,6 +221,9 @@
|
|
|
221
221
|
},
|
|
222
222
|
"platform.editor.find-changed-nodes-from-transaction-optimisation": {
|
|
223
223
|
"type": "boolean"
|
|
224
|
+
},
|
|
225
|
+
"platform.editor.ordered-list-auto-join-improvements_mrlv5": {
|
|
226
|
+
"type": "boolean"
|
|
224
227
|
}
|
|
225
228
|
}
|
|
226
229
|
}
|