@atlaskit/editor-core 232.0.10 → 232.0.11

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 CHANGED
@@ -1,5 +1,13 @@
1
1
  # @atlaskit/editor-core
2
2
 
3
+ ## 232.0.11
4
+
5
+ ### Patch Changes
6
+
7
+ - [`9d953d03b62a1`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9d953d03b62a1) -
8
+ Order non-template slash-command items under platform_editor_slash_command
9
+ - Updated dependencies
10
+
3
11
  ## 232.0.10
4
12
 
5
13
  ### Patch Changes
@@ -5,38 +5,46 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.getExtensionQuickInsertComponents = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
8
11
  var _react = _interopRequireDefault(require("react"));
9
12
  var _createQuickInsertMatcher = require("@atlaskit/editor-common/quick-insert/create-quick-insert-matcher");
10
13
  var _getMenuItemParents = require("@atlaskit/editor-common/quick-insert/get-menu-item-parents");
11
14
  var _keys = require("@atlaskit/editor-common/quick-insert/keys");
12
15
  var _rank = require("@atlaskit/editor-common/quick-insert/rank");
13
- var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
14
16
  var _ExtensionQuickInsertMenuItem = require("./ExtensionQuickInsertMenuItem");
17
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
19
  var structureExtensionItemKeyRanks = {
16
20
  'toc:toc': 600,
17
21
  'native-tabs:native-tabs': 1900,
18
22
  'cards:quick-insert': 2000,
19
23
  'carousel:quick-insert': 2100,
20
24
  'spotlight:quick-insert': 2200,
21
- 'com.atlassian.linking-platform.create:linking-platform-create-jira-issue': 2500,
22
- 'com.atlassian.linking-platform.create:linking-platform-create-confluence-page': 2600,
23
25
  'create-from-template:create-from-template': 2700,
24
26
  'anchor:anchor': 2900,
25
27
  'smart-button:quick-insert': 3000
26
28
  };
29
+ var createExtensionItemKeyRanks = {
30
+ 'com.atlassian.linking-platform.create:linking-platform-create-jira-issue': 100,
31
+ 'com.atlassian.linking-platform.create:linking-platform-create-confluence-page': 200
32
+ };
27
33
  var UNRECOGNIZED_STRUCTURE_EXTENSION_ITEM_RANK = 3100;
28
34
  var APP_DATA_AND_CHARTS_ITEM_RANK = 2700;
29
35
  var APP_EMBED_ITEM_RANK = _rank.EXTENSION_ITEM_RANK;
36
+ var APP_MEDIA_ITEM_RANK = Math.max.apply(Math, (0, _toConsumableArray2.default)(Object.values(_rank.MEDIA_SECTION_RANK))) + 100;
37
+ var APP_OTHER_ITEM_RANK = _rank.EXTENSION_ITEM_RANK;
30
38
  var getStructureExtensionItemRank = function getStructureExtensionItemRank(item) {
31
39
  return structureExtensionItemKeyRanks[item.key];
32
40
  };
33
- var isStructureExtensionItem = function isStructureExtensionItem(item) {
41
+ var isExtensionItemInSection = function isExtensionItemInSection(item, sectionKey) {
34
42
  return (0, _getMenuItemParents.getQuickInsertMenuItemParents)({
35
43
  category: item.category,
36
44
  legacyCategories: item.categories,
37
45
  rank: 0
38
46
  }).some(function (parent) {
39
- return parent.key === _keys.STRUCTURE_SECTION.key;
47
+ return parent.key === sectionKey;
40
48
  });
41
49
  };
42
50
  var compareMenuItemsByTitleAndKey = function compareMenuItemsByTitleAndKey(firstItem, secondItem) {
@@ -47,56 +55,71 @@ var getAlphabeticalItemRanks = function getAlphabeticalItemRanks(items, isRanked
47
55
  return [item, firstRank + index];
48
56
  }));
49
57
  };
50
- var getUnrecognizedStructureItemRanks = function getUnrecognizedStructureItemRanks(items) {
51
- return (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_slash_command') ? getAlphabeticalItemRanks(items, function (item) {
52
- return isStructureExtensionItem(item) && getStructureExtensionItemRank(item) === undefined;
53
- }, UNRECOGNIZED_STRUCTURE_EXTENSION_ITEM_RANK) : new Map();
54
- };
55
- var getUnrecognizedDataAndChartsItemRanks = function getUnrecognizedDataAndChartsItemRanks(items) {
56
- return (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_slash_command') ? getAlphabeticalItemRanks(items, function (item) {
57
- return item.category === 'data-and-charts' && item.priority === undefined;
58
- }, APP_DATA_AND_CHARTS_ITEM_RANK) : new Map();
58
+ var hasNoNegativePriority = function hasNoNegativePriority(item) {
59
+ return item.priority === undefined || item.priority >= 0;
59
60
  };
60
- var getEmbedAppItemRanks = function getEmbedAppItemRanks(items) {
61
- return (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_slash_command') ? getAlphabeticalItemRanks(items, function (item) {
62
- return item.category === 'embed' && (item.priority === undefined || item.priority >= 0);
63
- }, APP_EMBED_ITEM_RANK) : new Map();
61
+ var getSectionAlphabeticalItemRanks = function getSectionAlphabeticalItemRanks(items, sectionKey, firstRank) {
62
+ var isRankedItem = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : hasNoNegativePriority;
63
+ return getAlphabeticalItemRanks(items, function (item) {
64
+ return isExtensionItemInSection(item, sectionKey) && isRankedItem(item);
65
+ }, firstRank);
64
66
  };
65
- var getFallbackRank = function getFallbackRank(_ref) {
66
- var _ref2, _ref3, _embedAppItemRanks$ge, _item$priority;
67
- var index = _ref.index,
68
- embedAppItemRanks = _ref.embedAppItemRanks,
69
- item = _ref.item,
70
- unrecognizedDataAndChartsItemRanks = _ref.unrecognizedDataAndChartsItemRanks,
71
- unrecognizedStructureItemRanks = _ref.unrecognizedStructureItemRanks;
72
- return (_ref2 = (_ref3 = (_embedAppItemRanks$ge = embedAppItemRanks.get(item)) !== null && _embedAppItemRanks$ge !== void 0 ? _embedAppItemRanks$ge : unrecognizedStructureItemRanks.get(item)) !== null && _ref3 !== void 0 ? _ref3 : unrecognizedDataAndChartsItemRanks.get(item)) !== null && _ref2 !== void 0 ? _ref2 : _rank.EXTENSION_ITEM_RANK + ((_item$priority = item.priority) !== null && _item$priority !== void 0 ? _item$priority : index);
67
+
68
+ // Rank each parent section separately so a macro in multiple categories gets the right order in each.
69
+ var createExtensionItemRanker = function createExtensionItemRanker(items) {
70
+ var sections = [[_keys.EMBED_SECTION.key, APP_EMBED_ITEM_RANK], [_keys.MEDIA_SECTION.key, APP_MEDIA_ITEM_RANK], [_keys.OTHER_SECTION.key, APP_OTHER_ITEM_RANK], [_keys.STRUCTURE_SECTION.key, UNRECOGNIZED_STRUCTURE_EXTENSION_ITEM_RANK, function (item) {
71
+ return getStructureExtensionItemRank(item) === undefined;
72
+ }], [_keys.DATA_AND_CHARTS_SECTION.key, APP_DATA_AND_CHARTS_ITEM_RANK, function (item) {
73
+ return item.priority === undefined;
74
+ }]];
75
+ var ranksBySection = new Map(sections.map(function (_ref) {
76
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 3),
77
+ sectionKey = _ref2[0],
78
+ firstRank = _ref2[1],
79
+ isRankedItem = _ref2[2];
80
+ return [sectionKey, getSectionAlphabeticalItemRanks(items, sectionKey, firstRank, isRankedItem)];
81
+ }));
82
+ return function (_ref3) {
83
+ var _ranksBySection$get, _item$priority;
84
+ var index = _ref3.index,
85
+ knownRank = _ref3.knownRank,
86
+ item = _ref3.item,
87
+ sectionKey = _ref3.sectionKey;
88
+ if (knownRank !== undefined) {
89
+ return knownRank;
90
+ }
91
+ var sectionRank = (_ranksBySection$get = ranksBySection.get(sectionKey)) === null || _ranksBySection$get === void 0 ? void 0 : _ranksBySection$get.get(item);
92
+ return sectionRank !== null && sectionRank !== void 0 ? sectionRank : _rank.EXTENSION_ITEM_RANK + ((_item$priority = item.priority) !== null && _item$priority !== void 0 ? _item$priority : index);
93
+ };
73
94
  };
74
95
  var getExtensionQuickInsertComponents = exports.getExtensionQuickInsertComponents = function getExtensionQuickInsertComponents(_ref4) {
75
96
  var apiRef = _ref4.apiRef,
76
97
  createAnalyticsEvent = _ref4.createAnalyticsEvent,
77
98
  editorActions = _ref4.editorActions,
78
99
  items = _ref4.items;
79
- var embedAppItemRanks = getEmbedAppItemRanks(items);
80
- var unrecognizedStructureItemRanks = getUnrecognizedStructureItemRanks(items);
81
- var unrecognizedDataAndChartsItemRanks = getUnrecognizedDataAndChartsItemRanks(items);
100
+ var getExtensionItemRank = createExtensionItemRanker(items);
82
101
  return items.map(function (item, index) {
83
102
  var structureRank = getStructureExtensionItemRank(item);
84
103
  var isStructureItem = structureRank !== undefined;
85
104
  var categories = isStructureItem ? ['structure'] : item.categories;
86
- var fallbackRank = getFallbackRank({
87
- index: index,
88
- embedAppItemRanks: embedAppItemRanks,
89
- item: item,
90
- unrecognizedDataAndChartsItemRanks: unrecognizedDataAndChartsItemRanks,
91
- unrecognizedStructureItemRanks: unrecognizedStructureItemRanks
105
+ var parents = (0, _getMenuItemParents.getQuickInsertMenuItemParents)({
106
+ category: item.category,
107
+ legacyCategories: categories,
108
+ rank: 0
92
109
  });
93
110
  return {
94
111
  type: 'menu-item',
95
112
  key: item.key,
96
- parents: (0, _getMenuItemParents.getQuickInsertMenuItemParents)({
97
- category: item.category,
98
- legacyCategories: categories,
99
- rank: structureRank !== null && structureRank !== void 0 ? structureRank : fallbackRank
113
+ parents: parents.map(function (parent) {
114
+ var _createExtensionItemK;
115
+ return _objectSpread(_objectSpread({}, parent), {}, {
116
+ rank: getExtensionItemRank({
117
+ index: index,
118
+ knownRank: (_createExtensionItemK = createExtensionItemKeyRanks[item.key]) !== null && _createExtensionItemK !== void 0 ? _createExtensionItemK : structureRank,
119
+ item: item,
120
+ sectionKey: parent.key
121
+ })
122
+ });
100
123
  }),
101
124
  match: (0, _createQuickInsertMatcher.createQuickInsertMatcher)(function () {
102
125
  return {
@@ -6,4 +6,4 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.version = exports.name = void 0;
7
7
  var name = exports.name = "@atlaskit/editor-core";
8
8
  // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
9
- var version = exports.version = "232.0.9";
9
+ var version = exports.version = "232.0.10";
@@ -1,9 +1,8 @@
1
1
  import React from 'react';
2
2
  import { createQuickInsertMatcher } from '@atlaskit/editor-common/quick-insert/create-quick-insert-matcher';
3
3
  import { getQuickInsertMenuItemParents } from '@atlaskit/editor-common/quick-insert/get-menu-item-parents';
4
- import { STRUCTURE_SECTION } from '@atlaskit/editor-common/quick-insert/keys';
5
- import { EXTENSION_ITEM_RANK } from '@atlaskit/editor-common/quick-insert/rank';
6
- import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
4
+ import { DATA_AND_CHARTS_SECTION, EMBED_SECTION, MEDIA_SECTION, OTHER_SECTION, STRUCTURE_SECTION } from '@atlaskit/editor-common/quick-insert/keys';
5
+ import { EXTENSION_ITEM_RANK, MEDIA_SECTION_RANK } from '@atlaskit/editor-common/quick-insert/rank';
7
6
  import { ExtensionQuickInsertMenuItem } from './ExtensionQuickInsertMenuItem';
8
7
  const structureExtensionItemKeyRanks = {
9
8
  'toc:toc': 600,
@@ -11,35 +10,47 @@ const structureExtensionItemKeyRanks = {
11
10
  'cards:quick-insert': 2000,
12
11
  'carousel:quick-insert': 2100,
13
12
  'spotlight:quick-insert': 2200,
14
- 'com.atlassian.linking-platform.create:linking-platform-create-jira-issue': 2500,
15
- 'com.atlassian.linking-platform.create:linking-platform-create-confluence-page': 2600,
16
13
  'create-from-template:create-from-template': 2700,
17
14
  'anchor:anchor': 2900,
18
15
  'smart-button:quick-insert': 3000
19
16
  };
17
+ const createExtensionItemKeyRanks = {
18
+ 'com.atlassian.linking-platform.create:linking-platform-create-jira-issue': 100,
19
+ 'com.atlassian.linking-platform.create:linking-platform-create-confluence-page': 200
20
+ };
20
21
  const UNRECOGNIZED_STRUCTURE_EXTENSION_ITEM_RANK = 3100;
21
22
  const APP_DATA_AND_CHARTS_ITEM_RANK = 2700;
22
23
  const APP_EMBED_ITEM_RANK = EXTENSION_ITEM_RANK;
24
+ const APP_MEDIA_ITEM_RANK = Math.max(...Object.values(MEDIA_SECTION_RANK)) + 100;
25
+ const APP_OTHER_ITEM_RANK = EXTENSION_ITEM_RANK;
23
26
  const getStructureExtensionItemRank = item => structureExtensionItemKeyRanks[item.key];
24
- const isStructureExtensionItem = item => getQuickInsertMenuItemParents({
27
+ const isExtensionItemInSection = (item, sectionKey) => getQuickInsertMenuItemParents({
25
28
  category: item.category,
26
29
  legacyCategories: item.categories,
27
30
  rank: 0
28
- }).some(parent => parent.key === STRUCTURE_SECTION.key);
31
+ }).some(parent => parent.key === sectionKey);
29
32
  const compareMenuItemsByTitleAndKey = (firstItem, secondItem) => firstItem.title.localeCompare(secondItem.title) || firstItem.key.localeCompare(secondItem.key);
30
33
  const getAlphabeticalItemRanks = (items, isRankedItem, firstRank) => new Map(items.filter(isRankedItem).sort(compareMenuItemsByTitleAndKey).map((item, index) => [item, firstRank + index]));
31
- const getUnrecognizedStructureItemRanks = items => isExperimentEnabled('platform_editor_slash_command') ? getAlphabeticalItemRanks(items, item => isStructureExtensionItem(item) && getStructureExtensionItemRank(item) === undefined, UNRECOGNIZED_STRUCTURE_EXTENSION_ITEM_RANK) : new Map();
32
- const getUnrecognizedDataAndChartsItemRanks = items => isExperimentEnabled('platform_editor_slash_command') ? getAlphabeticalItemRanks(items, item => item.category === 'data-and-charts' && item.priority === undefined, APP_DATA_AND_CHARTS_ITEM_RANK) : new Map();
33
- const getEmbedAppItemRanks = items => isExperimentEnabled('platform_editor_slash_command') ? getAlphabeticalItemRanks(items, item => item.category === 'embed' && (item.priority === undefined || item.priority >= 0), APP_EMBED_ITEM_RANK) : new Map();
34
- const getFallbackRank = ({
35
- index,
36
- embedAppItemRanks,
37
- item,
38
- unrecognizedDataAndChartsItemRanks,
39
- unrecognizedStructureItemRanks
40
- }) => {
41
- var _ref, _ref2, _embedAppItemRanks$ge, _item$priority;
42
- return (_ref = (_ref2 = (_embedAppItemRanks$ge = embedAppItemRanks.get(item)) !== null && _embedAppItemRanks$ge !== void 0 ? _embedAppItemRanks$ge : unrecognizedStructureItemRanks.get(item)) !== null && _ref2 !== void 0 ? _ref2 : unrecognizedDataAndChartsItemRanks.get(item)) !== null && _ref !== void 0 ? _ref : EXTENSION_ITEM_RANK + ((_item$priority = item.priority) !== null && _item$priority !== void 0 ? _item$priority : index);
34
+ const hasNoNegativePriority = item => item.priority === undefined || item.priority >= 0;
35
+ const getSectionAlphabeticalItemRanks = (items, sectionKey, firstRank, isRankedItem = hasNoNegativePriority) => getAlphabeticalItemRanks(items, item => isExtensionItemInSection(item, sectionKey) && isRankedItem(item), firstRank);
36
+
37
+ // Rank each parent section separately so a macro in multiple categories gets the right order in each.
38
+ const createExtensionItemRanker = items => {
39
+ const sections = [[EMBED_SECTION.key, APP_EMBED_ITEM_RANK], [MEDIA_SECTION.key, APP_MEDIA_ITEM_RANK], [OTHER_SECTION.key, APP_OTHER_ITEM_RANK], [STRUCTURE_SECTION.key, UNRECOGNIZED_STRUCTURE_EXTENSION_ITEM_RANK, item => getStructureExtensionItemRank(item) === undefined], [DATA_AND_CHARTS_SECTION.key, APP_DATA_AND_CHARTS_ITEM_RANK, item => item.priority === undefined]];
40
+ const ranksBySection = new Map(sections.map(([sectionKey, firstRank, isRankedItem]) => [sectionKey, getSectionAlphabeticalItemRanks(items, sectionKey, firstRank, isRankedItem)]));
41
+ return ({
42
+ index,
43
+ knownRank,
44
+ item,
45
+ sectionKey
46
+ }) => {
47
+ var _ranksBySection$get, _item$priority;
48
+ if (knownRank !== undefined) {
49
+ return knownRank;
50
+ }
51
+ const sectionRank = (_ranksBySection$get = ranksBySection.get(sectionKey)) === null || _ranksBySection$get === void 0 ? void 0 : _ranksBySection$get.get(item);
52
+ return sectionRank !== null && sectionRank !== void 0 ? sectionRank : EXTENSION_ITEM_RANK + ((_item$priority = item.priority) !== null && _item$priority !== void 0 ? _item$priority : index);
53
+ };
43
54
  };
44
55
  export const getExtensionQuickInsertComponents = ({
45
56
  apiRef,
@@ -47,27 +58,30 @@ export const getExtensionQuickInsertComponents = ({
47
58
  editorActions,
48
59
  items
49
60
  }) => {
50
- const embedAppItemRanks = getEmbedAppItemRanks(items);
51
- const unrecognizedStructureItemRanks = getUnrecognizedStructureItemRanks(items);
52
- const unrecognizedDataAndChartsItemRanks = getUnrecognizedDataAndChartsItemRanks(items);
61
+ const getExtensionItemRank = createExtensionItemRanker(items);
53
62
  return items.map((item, index) => {
54
63
  const structureRank = getStructureExtensionItemRank(item);
55
64
  const isStructureItem = structureRank !== undefined;
56
65
  const categories = isStructureItem ? ['structure'] : item.categories;
57
- const fallbackRank = getFallbackRank({
58
- index,
59
- embedAppItemRanks,
60
- item,
61
- unrecognizedDataAndChartsItemRanks,
62
- unrecognizedStructureItemRanks
66
+ const parents = getQuickInsertMenuItemParents({
67
+ category: item.category,
68
+ legacyCategories: categories,
69
+ rank: 0
63
70
  });
64
71
  return {
65
72
  type: 'menu-item',
66
73
  key: item.key,
67
- parents: getQuickInsertMenuItemParents({
68
- category: item.category,
69
- legacyCategories: categories,
70
- rank: structureRank !== null && structureRank !== void 0 ? structureRank : fallbackRank
74
+ parents: parents.map(parent => {
75
+ var _createExtensionItemK;
76
+ return {
77
+ ...parent,
78
+ rank: getExtensionItemRank({
79
+ index,
80
+ knownRank: (_createExtensionItemK = createExtensionItemKeyRanks[item.key]) !== null && _createExtensionItemK !== void 0 ? _createExtensionItemK : structureRank,
81
+ item,
82
+ sectionKey: parent.key
83
+ })
84
+ };
71
85
  }),
72
86
  match: createQuickInsertMatcher(() => ({
73
87
  description: item.description,
@@ -1,3 +1,3 @@
1
1
  export const name = "@atlaskit/editor-core";
2
2
  // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
3
- export const version = "232.0.9";
3
+ export const version = "232.0.10";
@@ -1,9 +1,13 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ 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; }
1
6
  import React from 'react';
2
7
  import { createQuickInsertMatcher } from '@atlaskit/editor-common/quick-insert/create-quick-insert-matcher';
3
8
  import { getQuickInsertMenuItemParents } from '@atlaskit/editor-common/quick-insert/get-menu-item-parents';
4
- import { STRUCTURE_SECTION } from '@atlaskit/editor-common/quick-insert/keys';
5
- import { EXTENSION_ITEM_RANK } from '@atlaskit/editor-common/quick-insert/rank';
6
- import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
9
+ import { DATA_AND_CHARTS_SECTION, EMBED_SECTION, MEDIA_SECTION, OTHER_SECTION, STRUCTURE_SECTION } from '@atlaskit/editor-common/quick-insert/keys';
10
+ import { EXTENSION_ITEM_RANK, MEDIA_SECTION_RANK } from '@atlaskit/editor-common/quick-insert/rank';
7
11
  import { ExtensionQuickInsertMenuItem } from './ExtensionQuickInsertMenuItem';
8
12
  var structureExtensionItemKeyRanks = {
9
13
  'toc:toc': 600,
@@ -11,25 +15,29 @@ var structureExtensionItemKeyRanks = {
11
15
  'cards:quick-insert': 2000,
12
16
  'carousel:quick-insert': 2100,
13
17
  'spotlight:quick-insert': 2200,
14
- 'com.atlassian.linking-platform.create:linking-platform-create-jira-issue': 2500,
15
- 'com.atlassian.linking-platform.create:linking-platform-create-confluence-page': 2600,
16
18
  'create-from-template:create-from-template': 2700,
17
19
  'anchor:anchor': 2900,
18
20
  'smart-button:quick-insert': 3000
19
21
  };
22
+ var createExtensionItemKeyRanks = {
23
+ 'com.atlassian.linking-platform.create:linking-platform-create-jira-issue': 100,
24
+ 'com.atlassian.linking-platform.create:linking-platform-create-confluence-page': 200
25
+ };
20
26
  var UNRECOGNIZED_STRUCTURE_EXTENSION_ITEM_RANK = 3100;
21
27
  var APP_DATA_AND_CHARTS_ITEM_RANK = 2700;
22
28
  var APP_EMBED_ITEM_RANK = EXTENSION_ITEM_RANK;
29
+ var APP_MEDIA_ITEM_RANK = Math.max.apply(Math, _toConsumableArray(Object.values(MEDIA_SECTION_RANK))) + 100;
30
+ var APP_OTHER_ITEM_RANK = EXTENSION_ITEM_RANK;
23
31
  var getStructureExtensionItemRank = function getStructureExtensionItemRank(item) {
24
32
  return structureExtensionItemKeyRanks[item.key];
25
33
  };
26
- var isStructureExtensionItem = function isStructureExtensionItem(item) {
34
+ var isExtensionItemInSection = function isExtensionItemInSection(item, sectionKey) {
27
35
  return getQuickInsertMenuItemParents({
28
36
  category: item.category,
29
37
  legacyCategories: item.categories,
30
38
  rank: 0
31
39
  }).some(function (parent) {
32
- return parent.key === STRUCTURE_SECTION.key;
40
+ return parent.key === sectionKey;
33
41
  });
34
42
  };
35
43
  var compareMenuItemsByTitleAndKey = function compareMenuItemsByTitleAndKey(firstItem, secondItem) {
@@ -40,56 +48,71 @@ var getAlphabeticalItemRanks = function getAlphabeticalItemRanks(items, isRanked
40
48
  return [item, firstRank + index];
41
49
  }));
42
50
  };
43
- var getUnrecognizedStructureItemRanks = function getUnrecognizedStructureItemRanks(items) {
44
- return isExperimentEnabled('platform_editor_slash_command') ? getAlphabeticalItemRanks(items, function (item) {
45
- return isStructureExtensionItem(item) && getStructureExtensionItemRank(item) === undefined;
46
- }, UNRECOGNIZED_STRUCTURE_EXTENSION_ITEM_RANK) : new Map();
47
- };
48
- var getUnrecognizedDataAndChartsItemRanks = function getUnrecognizedDataAndChartsItemRanks(items) {
49
- return isExperimentEnabled('platform_editor_slash_command') ? getAlphabeticalItemRanks(items, function (item) {
50
- return item.category === 'data-and-charts' && item.priority === undefined;
51
- }, APP_DATA_AND_CHARTS_ITEM_RANK) : new Map();
51
+ var hasNoNegativePriority = function hasNoNegativePriority(item) {
52
+ return item.priority === undefined || item.priority >= 0;
52
53
  };
53
- var getEmbedAppItemRanks = function getEmbedAppItemRanks(items) {
54
- return isExperimentEnabled('platform_editor_slash_command') ? getAlphabeticalItemRanks(items, function (item) {
55
- return item.category === 'embed' && (item.priority === undefined || item.priority >= 0);
56
- }, APP_EMBED_ITEM_RANK) : new Map();
54
+ var getSectionAlphabeticalItemRanks = function getSectionAlphabeticalItemRanks(items, sectionKey, firstRank) {
55
+ var isRankedItem = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : hasNoNegativePriority;
56
+ return getAlphabeticalItemRanks(items, function (item) {
57
+ return isExtensionItemInSection(item, sectionKey) && isRankedItem(item);
58
+ }, firstRank);
57
59
  };
58
- var getFallbackRank = function getFallbackRank(_ref) {
59
- var _ref2, _ref3, _embedAppItemRanks$ge, _item$priority;
60
- var index = _ref.index,
61
- embedAppItemRanks = _ref.embedAppItemRanks,
62
- item = _ref.item,
63
- unrecognizedDataAndChartsItemRanks = _ref.unrecognizedDataAndChartsItemRanks,
64
- unrecognizedStructureItemRanks = _ref.unrecognizedStructureItemRanks;
65
- return (_ref2 = (_ref3 = (_embedAppItemRanks$ge = embedAppItemRanks.get(item)) !== null && _embedAppItemRanks$ge !== void 0 ? _embedAppItemRanks$ge : unrecognizedStructureItemRanks.get(item)) !== null && _ref3 !== void 0 ? _ref3 : unrecognizedDataAndChartsItemRanks.get(item)) !== null && _ref2 !== void 0 ? _ref2 : EXTENSION_ITEM_RANK + ((_item$priority = item.priority) !== null && _item$priority !== void 0 ? _item$priority : index);
60
+
61
+ // Rank each parent section separately so a macro in multiple categories gets the right order in each.
62
+ var createExtensionItemRanker = function createExtensionItemRanker(items) {
63
+ var sections = [[EMBED_SECTION.key, APP_EMBED_ITEM_RANK], [MEDIA_SECTION.key, APP_MEDIA_ITEM_RANK], [OTHER_SECTION.key, APP_OTHER_ITEM_RANK], [STRUCTURE_SECTION.key, UNRECOGNIZED_STRUCTURE_EXTENSION_ITEM_RANK, function (item) {
64
+ return getStructureExtensionItemRank(item) === undefined;
65
+ }], [DATA_AND_CHARTS_SECTION.key, APP_DATA_AND_CHARTS_ITEM_RANK, function (item) {
66
+ return item.priority === undefined;
67
+ }]];
68
+ var ranksBySection = new Map(sections.map(function (_ref) {
69
+ var _ref2 = _slicedToArray(_ref, 3),
70
+ sectionKey = _ref2[0],
71
+ firstRank = _ref2[1],
72
+ isRankedItem = _ref2[2];
73
+ return [sectionKey, getSectionAlphabeticalItemRanks(items, sectionKey, firstRank, isRankedItem)];
74
+ }));
75
+ return function (_ref3) {
76
+ var _ranksBySection$get, _item$priority;
77
+ var index = _ref3.index,
78
+ knownRank = _ref3.knownRank,
79
+ item = _ref3.item,
80
+ sectionKey = _ref3.sectionKey;
81
+ if (knownRank !== undefined) {
82
+ return knownRank;
83
+ }
84
+ var sectionRank = (_ranksBySection$get = ranksBySection.get(sectionKey)) === null || _ranksBySection$get === void 0 ? void 0 : _ranksBySection$get.get(item);
85
+ return sectionRank !== null && sectionRank !== void 0 ? sectionRank : EXTENSION_ITEM_RANK + ((_item$priority = item.priority) !== null && _item$priority !== void 0 ? _item$priority : index);
86
+ };
66
87
  };
67
88
  export var getExtensionQuickInsertComponents = function getExtensionQuickInsertComponents(_ref4) {
68
89
  var apiRef = _ref4.apiRef,
69
90
  createAnalyticsEvent = _ref4.createAnalyticsEvent,
70
91
  editorActions = _ref4.editorActions,
71
92
  items = _ref4.items;
72
- var embedAppItemRanks = getEmbedAppItemRanks(items);
73
- var unrecognizedStructureItemRanks = getUnrecognizedStructureItemRanks(items);
74
- var unrecognizedDataAndChartsItemRanks = getUnrecognizedDataAndChartsItemRanks(items);
93
+ var getExtensionItemRank = createExtensionItemRanker(items);
75
94
  return items.map(function (item, index) {
76
95
  var structureRank = getStructureExtensionItemRank(item);
77
96
  var isStructureItem = structureRank !== undefined;
78
97
  var categories = isStructureItem ? ['structure'] : item.categories;
79
- var fallbackRank = getFallbackRank({
80
- index: index,
81
- embedAppItemRanks: embedAppItemRanks,
82
- item: item,
83
- unrecognizedDataAndChartsItemRanks: unrecognizedDataAndChartsItemRanks,
84
- unrecognizedStructureItemRanks: unrecognizedStructureItemRanks
98
+ var parents = getQuickInsertMenuItemParents({
99
+ category: item.category,
100
+ legacyCategories: categories,
101
+ rank: 0
85
102
  });
86
103
  return {
87
104
  type: 'menu-item',
88
105
  key: item.key,
89
- parents: getQuickInsertMenuItemParents({
90
- category: item.category,
91
- legacyCategories: categories,
92
- rank: structureRank !== null && structureRank !== void 0 ? structureRank : fallbackRank
106
+ parents: parents.map(function (parent) {
107
+ var _createExtensionItemK;
108
+ return _objectSpread(_objectSpread({}, parent), {}, {
109
+ rank: getExtensionItemRank({
110
+ index: index,
111
+ knownRank: (_createExtensionItemK = createExtensionItemKeyRanks[item.key]) !== null && _createExtensionItemK !== void 0 ? _createExtensionItemK : structureRank,
112
+ item: item,
113
+ sectionKey: parent.key
114
+ })
115
+ });
93
116
  }),
94
117
  match: createQuickInsertMatcher(function () {
95
118
  return {
@@ -1,3 +1,3 @@
1
1
  export var name = "@atlaskit/editor-core";
2
2
  // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
3
- export var version = "232.0.9";
3
+ export var version = "232.0.10";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "232.0.10",
3
+ "version": "232.0.11",
4
4
  "description": "A package contains Atlassian editor core functionality",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -72,7 +72,7 @@
72
72
  "@atlaskit/platform-feature-experiments": "^0.3.0",
73
73
  "@atlaskit/platform-feature-flags": "^2.2.0",
74
74
  "@atlaskit/platform-feature-flags-react": "^1.2.0",
75
- "@atlaskit/popup": "^8.0.0",
75
+ "@atlaskit/popup": "^8.1.0",
76
76
  "@atlaskit/primitives": "^22.5.0",
77
77
  "@atlaskit/react-compiler-gating": "^0.2.0",
78
78
  "@atlaskit/react-ufo": "^8.0.0",
@@ -131,7 +131,7 @@
131
131
  "@atlaskit/editor-plugin-layout": "^23.0.0",
132
132
  "@atlaskit/editor-plugin-limited-mode": "^19.0.0",
133
133
  "@atlaskit/editor-plugin-list": "^24.0.0",
134
- "@atlaskit/editor-plugin-media": "^24.0.0",
134
+ "@atlaskit/editor-plugin-media": "^24.1.0",
135
135
  "@atlaskit/editor-plugin-paste": "^23.0.0",
136
136
  "@atlaskit/editor-plugin-selection-marker": "^22.0.0",
137
137
  "@atlaskit/editor-plugin-show-diff": "^20.0.0",
@@ -154,7 +154,7 @@
154
154
  "@atlaskit/media-test-helpers": "^43.0.0",
155
155
  "@atlaskit/media-ui": "^31.0.0",
156
156
  "@atlaskit/modal-dialog": "^17.0.0",
157
- "@atlaskit/navigation-system": "^11.0.0",
157
+ "@atlaskit/navigation-system": "^11.1.0",
158
158
  "@atlaskit/popper": "^9.4.0",
159
159
  "@atlaskit/portal": "^7.0.0",
160
160
  "@atlaskit/profilecard": "^27.1.0",