@atlaskit/editor-plugin-highlight 1.4.1 → 1.5.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 +25 -0
- package/dist/cjs/plugin.js +25 -18
- package/dist/cjs/pm-plugin.js +13 -6
- package/dist/cjs/ui/ToolbarHighlightColor.js +1 -3
- package/dist/cjs/utils/disabled.js +29 -0
- package/dist/es2019/plugin.js +24 -17
- package/dist/es2019/pm-plugin.js +14 -6
- package/dist/es2019/ui/ToolbarHighlightColor.js +2 -4
- package/dist/es2019/utils/disabled.js +26 -0
- package/dist/esm/plugin.js +25 -18
- package/dist/esm/pm-plugin.js +13 -6
- package/dist/esm/ui/ToolbarHighlightColor.js +2 -4
- package/dist/esm/utils/disabled.js +23 -0
- package/dist/types/plugin.d.ts +3 -1
- package/dist/types/utils/disabled.d.ts +2 -0
- package/dist/types-ts4.5/plugin.d.ts +3 -1
- package/dist/types-ts4.5/utils/disabled.d.ts +2 -0
- package/package.json +8 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-highlight
|
|
2
2
|
|
|
3
|
+
## 1.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#101406](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/101406)
|
|
8
|
+
[`6daffd65aec4`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/6daffd65aec4) -
|
|
9
|
+
[ED-23298] Extract primary toolbar components to editor plugin to allow for custom ordering
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#102478](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/102478)
|
|
14
|
+
[`3378951608b0`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/3378951608b0) -
|
|
15
|
+
[ED-23332] Update adf-schema package to 36.10.1
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
|
|
18
|
+
## 1.4.2
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- [#101513](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/101513)
|
|
23
|
+
[`98b5dfc33bed`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/98b5dfc33bed) -
|
|
24
|
+
[ux] [ED-23156] The highlight primary toolbar button is disabled when trying to apply it on
|
|
25
|
+
nodes that don't enable the mark and when in a gap cursor. The text color primary toolbar button
|
|
26
|
+
is disabled when selecting text with a highlight.
|
|
27
|
+
|
|
3
28
|
## 1.4.1
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -14,6 +14,23 @@ var highlightPlugin = exports.highlightPlugin = function highlightPlugin(_ref) {
|
|
|
14
14
|
var _api$analytics;
|
|
15
15
|
var api = _ref.api;
|
|
16
16
|
var editorAnalyticsAPI = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
|
|
17
|
+
var primaryToolbarComponent = function primaryToolbarComponent(_ref2) {
|
|
18
|
+
var popupsMountPoint = _ref2.popupsMountPoint,
|
|
19
|
+
popupsBoundariesElement = _ref2.popupsBoundariesElement,
|
|
20
|
+
popupsScrollableElement = _ref2.popupsScrollableElement,
|
|
21
|
+
disabled = _ref2.disabled,
|
|
22
|
+
isToolbarReducedSpacing = _ref2.isToolbarReducedSpacing,
|
|
23
|
+
dispatchAnalyticsEvent = _ref2.dispatchAnalyticsEvent;
|
|
24
|
+
return /*#__PURE__*/_react.default.createElement(_ToolbarHighlightColor.ToolbarHighlightColorWithIntl, {
|
|
25
|
+
popupsMountPoint: popupsMountPoint,
|
|
26
|
+
popupsBoundariesElement: popupsBoundariesElement,
|
|
27
|
+
popupsScrollableElement: popupsScrollableElement,
|
|
28
|
+
disabled: disabled,
|
|
29
|
+
isToolbarReducedSpacing: isToolbarReducedSpacing,
|
|
30
|
+
dispatchAnalyticsEvent: dispatchAnalyticsEvent,
|
|
31
|
+
pluginInjectionApi: api
|
|
32
|
+
});
|
|
33
|
+
};
|
|
17
34
|
return {
|
|
18
35
|
name: 'highlight',
|
|
19
36
|
commands: {
|
|
@@ -41,23 +58,13 @@ var highlightPlugin = exports.highlightPlugin = function highlightPlugin(_ref) {
|
|
|
41
58
|
}
|
|
42
59
|
return _pmPlugin.highlightPluginKey.getState(editorState);
|
|
43
60
|
},
|
|
44
|
-
|
|
45
|
-
var
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return /*#__PURE__*/_react.default.createElement(_ToolbarHighlightColor.ToolbarHighlightColorWithIntl, {
|
|
53
|
-
popupsMountPoint: popupsMountPoint,
|
|
54
|
-
popupsBoundariesElement: popupsBoundariesElement,
|
|
55
|
-
popupsScrollableElement: popupsScrollableElement,
|
|
56
|
-
disabled: disabled,
|
|
57
|
-
isToolbarReducedSpacing: isToolbarReducedSpacing,
|
|
58
|
-
dispatchAnalyticsEvent: dispatchAnalyticsEvent,
|
|
59
|
-
pluginInjectionApi: api
|
|
60
|
-
});
|
|
61
|
-
}
|
|
61
|
+
usePluginHook: function usePluginHook() {
|
|
62
|
+
var _api$core, _api$primaryToolbar;
|
|
63
|
+
api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 || _api$core.actions.execute(api === null || api === void 0 || (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 ? void 0 : _api$primaryToolbar.commands.registerComponent({
|
|
64
|
+
name: 'highlight',
|
|
65
|
+
component: primaryToolbarComponent
|
|
66
|
+
}));
|
|
67
|
+
},
|
|
68
|
+
primaryToolbarComponent: !(api !== null && api !== void 0 && api.primaryToolbar) ? primaryToolbarComponent : undefined
|
|
62
69
|
};
|
|
63
70
|
};
|
package/dist/cjs/pm-plugin.js
CHANGED
|
@@ -9,13 +9,10 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
9
9
|
var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
10
10
|
var _uiColor = require("@atlaskit/editor-common/ui-color");
|
|
11
11
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
12
|
+
var _disabled = require("./utils/disabled");
|
|
12
13
|
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; }
|
|
13
14
|
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; }
|
|
14
15
|
var highlightPluginKey = exports.highlightPluginKey = new _state.PluginKey('highlight');
|
|
15
|
-
var initialState = {
|
|
16
|
-
activeColor: _uiColor.REMOVE_HIGHLIGHT_COLOR,
|
|
17
|
-
disabled: false // TODO: Should probably be true, but we can tackle it once we tackle disabled state
|
|
18
|
-
};
|
|
19
16
|
var HighlightPluginAction = exports.HighlightPluginAction = /*#__PURE__*/function (HighlightPluginAction) {
|
|
20
17
|
HighlightPluginAction[HighlightPluginAction["CHANGE_COLOR"] = 0] = "CHANGE_COLOR";
|
|
21
18
|
return HighlightPluginAction;
|
|
@@ -26,11 +23,15 @@ var createPlugin = exports.createPlugin = function createPlugin(_ref) {
|
|
|
26
23
|
key: highlightPluginKey,
|
|
27
24
|
state: {
|
|
28
25
|
init: function init() {
|
|
29
|
-
return
|
|
26
|
+
return {
|
|
27
|
+
activeColor: _uiColor.REMOVE_HIGHLIGHT_COLOR,
|
|
28
|
+
disabled: true
|
|
29
|
+
};
|
|
30
30
|
},
|
|
31
|
-
apply: function apply(tr, pluginState) {
|
|
31
|
+
apply: function apply(tr, pluginState, _oldState, newState) {
|
|
32
32
|
var _tr$getMeta;
|
|
33
33
|
var action = (_tr$getMeta = tr.getMeta(highlightPluginKey)) === null || _tr$getMeta === void 0 ? void 0 : _tr$getMeta.type;
|
|
34
|
+
var nextState;
|
|
34
35
|
switch (action) {
|
|
35
36
|
case HighlightPluginAction.CHANGE_COLOR:
|
|
36
37
|
var _tr$getMeta2 = tr.getMeta(highlightPluginKey),
|
|
@@ -39,6 +40,12 @@ var createPlugin = exports.createPlugin = function createPlugin(_ref) {
|
|
|
39
40
|
activeColor: color
|
|
40
41
|
});
|
|
41
42
|
default:
|
|
43
|
+
nextState = _objectSpread(_objectSpread({}, pluginState), {}, {
|
|
44
|
+
disabled: (0, _disabled.getDisabledState)(newState)
|
|
45
|
+
});
|
|
46
|
+
if (pluginState && pluginState.disabled !== nextState.disabled) {
|
|
47
|
+
return nextState;
|
|
48
|
+
}
|
|
42
49
|
return pluginState;
|
|
43
50
|
}
|
|
44
51
|
}
|
|
@@ -158,8 +158,6 @@ var ToolbarHighlightColor = function ToolbarHighlightColor(_ref) {
|
|
|
158
158
|
palette: _uiColor.highlightColorPalette,
|
|
159
159
|
hexToPaletteColor: _editorPalette.hexToEditorTextBackgroundPaletteColor
|
|
160
160
|
}
|
|
161
|
-
})))
|
|
162
|
-
css: _styles.separatorStyles
|
|
163
|
-
}));
|
|
161
|
+
}))));
|
|
164
162
|
};
|
|
165
163
|
var ToolbarHighlightColorWithIntl = exports.ToolbarHighlightColorWithIntl = (0, _reactIntlNext.injectIntl)(ToolbarHighlightColor);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getDisabledState = void 0;
|
|
7
|
+
var _mark = require("@atlaskit/editor-common/mark");
|
|
8
|
+
var _selection = require("@atlaskit/editor-common/selection");
|
|
9
|
+
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
10
|
+
var getDisabledState = exports.getDisabledState = function getDisabledState(state) {
|
|
11
|
+
var backgroundColor = state.schema.marks.backgroundColor;
|
|
12
|
+
var _ref = state.selection,
|
|
13
|
+
empty = _ref.empty,
|
|
14
|
+
ranges = _ref.ranges,
|
|
15
|
+
$cursor = _ref.$cursor;
|
|
16
|
+
if (!backgroundColor) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
if (state.selection instanceof _state.NodeSelection || state.selection instanceof _selection.GapCursorSelection) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
if (empty && !$cursor || (0, _mark.isMarkAllowedInRange)(state.doc, ranges, backgroundColor) === false) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
if ((0, _mark.isMarkExcluded)(backgroundColor, state.storedMarks || $cursor && $cursor.marks())) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
};
|
package/dist/es2019/plugin.js
CHANGED
|
@@ -8,6 +8,22 @@ export const highlightPlugin = ({
|
|
|
8
8
|
}) => {
|
|
9
9
|
var _api$analytics;
|
|
10
10
|
const editorAnalyticsAPI = api === null || api === void 0 ? void 0 : (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
|
|
11
|
+
const primaryToolbarComponent = ({
|
|
12
|
+
popupsMountPoint,
|
|
13
|
+
popupsBoundariesElement,
|
|
14
|
+
popupsScrollableElement,
|
|
15
|
+
disabled,
|
|
16
|
+
isToolbarReducedSpacing,
|
|
17
|
+
dispatchAnalyticsEvent
|
|
18
|
+
}) => /*#__PURE__*/React.createElement(ToolbarHighlightColor, {
|
|
19
|
+
popupsMountPoint: popupsMountPoint,
|
|
20
|
+
popupsBoundariesElement: popupsBoundariesElement,
|
|
21
|
+
popupsScrollableElement: popupsScrollableElement,
|
|
22
|
+
disabled: disabled,
|
|
23
|
+
isToolbarReducedSpacing: isToolbarReducedSpacing,
|
|
24
|
+
dispatchAnalyticsEvent: dispatchAnalyticsEvent,
|
|
25
|
+
pluginInjectionApi: api
|
|
26
|
+
});
|
|
11
27
|
return {
|
|
12
28
|
name: 'highlight',
|
|
13
29
|
commands: {
|
|
@@ -31,22 +47,13 @@ export const highlightPlugin = ({
|
|
|
31
47
|
}
|
|
32
48
|
return highlightPluginKey.getState(editorState);
|
|
33
49
|
},
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}) => /*#__PURE__*/React.createElement(ToolbarHighlightColor, {
|
|
43
|
-
popupsMountPoint: popupsMountPoint,
|
|
44
|
-
popupsBoundariesElement: popupsBoundariesElement,
|
|
45
|
-
popupsScrollableElement: popupsScrollableElement,
|
|
46
|
-
disabled: disabled,
|
|
47
|
-
isToolbarReducedSpacing: isToolbarReducedSpacing,
|
|
48
|
-
dispatchAnalyticsEvent: dispatchAnalyticsEvent,
|
|
49
|
-
pluginInjectionApi: api
|
|
50
|
-
})
|
|
50
|
+
usePluginHook: () => {
|
|
51
|
+
var _api$core, _api$primaryToolbar;
|
|
52
|
+
api === null || api === void 0 ? void 0 : (_api$core = api.core) === null || _api$core === void 0 ? void 0 : _api$core.actions.execute(api === null || api === void 0 ? void 0 : (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 ? void 0 : _api$primaryToolbar.commands.registerComponent({
|
|
53
|
+
name: 'highlight',
|
|
54
|
+
component: primaryToolbarComponent
|
|
55
|
+
}));
|
|
56
|
+
},
|
|
57
|
+
primaryToolbarComponent: !(api !== null && api !== void 0 && api.primaryToolbar) ? primaryToolbarComponent : undefined
|
|
51
58
|
};
|
|
52
59
|
};
|
package/dist/es2019/pm-plugin.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
2
2
|
import { REMOVE_HIGHLIGHT_COLOR } from '@atlaskit/editor-common/ui-color';
|
|
3
3
|
import { PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
4
|
+
import { getDisabledState } from './utils/disabled';
|
|
4
5
|
export const highlightPluginKey = new PluginKey('highlight');
|
|
5
|
-
const initialState = {
|
|
6
|
-
activeColor: REMOVE_HIGHLIGHT_COLOR,
|
|
7
|
-
disabled: false // TODO: Should probably be true, but we can tackle it once we tackle disabled state
|
|
8
|
-
};
|
|
9
6
|
export let HighlightPluginAction = /*#__PURE__*/function (HighlightPluginAction) {
|
|
10
7
|
HighlightPluginAction[HighlightPluginAction["CHANGE_COLOR"] = 0] = "CHANGE_COLOR";
|
|
11
8
|
return HighlightPluginAction;
|
|
@@ -16,10 +13,14 @@ export const createPlugin = ({
|
|
|
16
13
|
return new SafePlugin({
|
|
17
14
|
key: highlightPluginKey,
|
|
18
15
|
state: {
|
|
19
|
-
init: () =>
|
|
20
|
-
|
|
16
|
+
init: () => ({
|
|
17
|
+
activeColor: REMOVE_HIGHLIGHT_COLOR,
|
|
18
|
+
disabled: true
|
|
19
|
+
}),
|
|
20
|
+
apply: (tr, pluginState, _oldState, newState) => {
|
|
21
21
|
var _tr$getMeta;
|
|
22
22
|
const action = (_tr$getMeta = tr.getMeta(highlightPluginKey)) === null || _tr$getMeta === void 0 ? void 0 : _tr$getMeta.type;
|
|
23
|
+
let nextState;
|
|
23
24
|
switch (action) {
|
|
24
25
|
case HighlightPluginAction.CHANGE_COLOR:
|
|
25
26
|
const {
|
|
@@ -30,6 +31,13 @@ export const createPlugin = ({
|
|
|
30
31
|
activeColor: color
|
|
31
32
|
};
|
|
32
33
|
default:
|
|
34
|
+
nextState = {
|
|
35
|
+
...pluginState,
|
|
36
|
+
disabled: getDisabledState(newState)
|
|
37
|
+
};
|
|
38
|
+
if (pluginState && pluginState.disabled !== nextState.disabled) {
|
|
39
|
+
return nextState;
|
|
40
|
+
}
|
|
33
41
|
return pluginState;
|
|
34
42
|
}
|
|
35
43
|
}
|
|
@@ -5,7 +5,7 @@ import { injectIntl } from 'react-intl-next';
|
|
|
5
5
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
6
6
|
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
7
7
|
import { highlightMessages as messages } from '@atlaskit/editor-common/messages';
|
|
8
|
-
import { expandIconWrapperStyle
|
|
8
|
+
import { expandIconWrapperStyle } from '@atlaskit/editor-common/styles';
|
|
9
9
|
import { ColorPalette, getSelectedRowAndColumnFromPalette, highlightColorPalette, REMOVE_HIGHLIGHT_COLOR } from '@atlaskit/editor-common/ui-color';
|
|
10
10
|
import { ArrowKeyNavigationType, DropdownContainer as Dropdown, TOOLBAR_BUTTON, ToolbarButton } from '@atlaskit/editor-common/ui-menu';
|
|
11
11
|
import { hexToEditorTextBackgroundPaletteColor } from '@atlaskit/editor-palette';
|
|
@@ -141,8 +141,6 @@ const ToolbarHighlightColor = ({
|
|
|
141
141
|
palette: highlightColorPalette,
|
|
142
142
|
hexToPaletteColor: hexToEditorTextBackgroundPaletteColor
|
|
143
143
|
}
|
|
144
|
-
})))
|
|
145
|
-
css: separatorStyles
|
|
146
|
-
}));
|
|
144
|
+
}))));
|
|
147
145
|
};
|
|
148
146
|
export const ToolbarHighlightColorWithIntl = injectIntl(ToolbarHighlightColor);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { isMarkAllowedInRange, isMarkExcluded } from '@atlaskit/editor-common/mark';
|
|
2
|
+
import { GapCursorSelection } from '@atlaskit/editor-common/selection';
|
|
3
|
+
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
4
|
+
export const getDisabledState = state => {
|
|
5
|
+
const {
|
|
6
|
+
backgroundColor
|
|
7
|
+
} = state.schema.marks;
|
|
8
|
+
const {
|
|
9
|
+
empty,
|
|
10
|
+
ranges,
|
|
11
|
+
$cursor
|
|
12
|
+
} = state.selection;
|
|
13
|
+
if (!backgroundColor) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
if (state.selection instanceof NodeSelection || state.selection instanceof GapCursorSelection) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
if (empty && !$cursor || isMarkAllowedInRange(state.doc, ranges, backgroundColor) === false) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
if (isMarkExcluded(backgroundColor, state.storedMarks || $cursor && $cursor.marks())) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
return false;
|
|
26
|
+
};
|
package/dist/esm/plugin.js
CHANGED
|
@@ -7,6 +7,23 @@ export var highlightPlugin = function highlightPlugin(_ref) {
|
|
|
7
7
|
var _api$analytics;
|
|
8
8
|
var api = _ref.api;
|
|
9
9
|
var editorAnalyticsAPI = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
|
|
10
|
+
var primaryToolbarComponent = function primaryToolbarComponent(_ref2) {
|
|
11
|
+
var popupsMountPoint = _ref2.popupsMountPoint,
|
|
12
|
+
popupsBoundariesElement = _ref2.popupsBoundariesElement,
|
|
13
|
+
popupsScrollableElement = _ref2.popupsScrollableElement,
|
|
14
|
+
disabled = _ref2.disabled,
|
|
15
|
+
isToolbarReducedSpacing = _ref2.isToolbarReducedSpacing,
|
|
16
|
+
dispatchAnalyticsEvent = _ref2.dispatchAnalyticsEvent;
|
|
17
|
+
return /*#__PURE__*/React.createElement(ToolbarHighlightColor, {
|
|
18
|
+
popupsMountPoint: popupsMountPoint,
|
|
19
|
+
popupsBoundariesElement: popupsBoundariesElement,
|
|
20
|
+
popupsScrollableElement: popupsScrollableElement,
|
|
21
|
+
disabled: disabled,
|
|
22
|
+
isToolbarReducedSpacing: isToolbarReducedSpacing,
|
|
23
|
+
dispatchAnalyticsEvent: dispatchAnalyticsEvent,
|
|
24
|
+
pluginInjectionApi: api
|
|
25
|
+
});
|
|
26
|
+
};
|
|
10
27
|
return {
|
|
11
28
|
name: 'highlight',
|
|
12
29
|
commands: {
|
|
@@ -34,23 +51,13 @@ export var highlightPlugin = function highlightPlugin(_ref) {
|
|
|
34
51
|
}
|
|
35
52
|
return highlightPluginKey.getState(editorState);
|
|
36
53
|
},
|
|
37
|
-
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return /*#__PURE__*/React.createElement(ToolbarHighlightColor, {
|
|
46
|
-
popupsMountPoint: popupsMountPoint,
|
|
47
|
-
popupsBoundariesElement: popupsBoundariesElement,
|
|
48
|
-
popupsScrollableElement: popupsScrollableElement,
|
|
49
|
-
disabled: disabled,
|
|
50
|
-
isToolbarReducedSpacing: isToolbarReducedSpacing,
|
|
51
|
-
dispatchAnalyticsEvent: dispatchAnalyticsEvent,
|
|
52
|
-
pluginInjectionApi: api
|
|
53
|
-
});
|
|
54
|
-
}
|
|
54
|
+
usePluginHook: function usePluginHook() {
|
|
55
|
+
var _api$core, _api$primaryToolbar;
|
|
56
|
+
api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 || _api$core.actions.execute(api === null || api === void 0 || (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 ? void 0 : _api$primaryToolbar.commands.registerComponent({
|
|
57
|
+
name: 'highlight',
|
|
58
|
+
component: primaryToolbarComponent
|
|
59
|
+
}));
|
|
60
|
+
},
|
|
61
|
+
primaryToolbarComponent: !(api !== null && api !== void 0 && api.primaryToolbar) ? primaryToolbarComponent : undefined
|
|
55
62
|
};
|
|
56
63
|
};
|
package/dist/esm/pm-plugin.js
CHANGED
|
@@ -4,11 +4,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
4
4
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
5
5
|
import { REMOVE_HIGHLIGHT_COLOR } from '@atlaskit/editor-common/ui-color';
|
|
6
6
|
import { PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
7
|
+
import { getDisabledState } from './utils/disabled';
|
|
7
8
|
export var highlightPluginKey = new PluginKey('highlight');
|
|
8
|
-
var initialState = {
|
|
9
|
-
activeColor: REMOVE_HIGHLIGHT_COLOR,
|
|
10
|
-
disabled: false // TODO: Should probably be true, but we can tackle it once we tackle disabled state
|
|
11
|
-
};
|
|
12
9
|
export var HighlightPluginAction = /*#__PURE__*/function (HighlightPluginAction) {
|
|
13
10
|
HighlightPluginAction[HighlightPluginAction["CHANGE_COLOR"] = 0] = "CHANGE_COLOR";
|
|
14
11
|
return HighlightPluginAction;
|
|
@@ -19,11 +16,15 @@ export var createPlugin = function createPlugin(_ref) {
|
|
|
19
16
|
key: highlightPluginKey,
|
|
20
17
|
state: {
|
|
21
18
|
init: function init() {
|
|
22
|
-
return
|
|
19
|
+
return {
|
|
20
|
+
activeColor: REMOVE_HIGHLIGHT_COLOR,
|
|
21
|
+
disabled: true
|
|
22
|
+
};
|
|
23
23
|
},
|
|
24
|
-
apply: function apply(tr, pluginState) {
|
|
24
|
+
apply: function apply(tr, pluginState, _oldState, newState) {
|
|
25
25
|
var _tr$getMeta;
|
|
26
26
|
var action = (_tr$getMeta = tr.getMeta(highlightPluginKey)) === null || _tr$getMeta === void 0 ? void 0 : _tr$getMeta.type;
|
|
27
|
+
var nextState;
|
|
27
28
|
switch (action) {
|
|
28
29
|
case HighlightPluginAction.CHANGE_COLOR:
|
|
29
30
|
var _tr$getMeta2 = tr.getMeta(highlightPluginKey),
|
|
@@ -32,6 +33,12 @@ export var createPlugin = function createPlugin(_ref) {
|
|
|
32
33
|
activeColor: color
|
|
33
34
|
});
|
|
34
35
|
default:
|
|
36
|
+
nextState = _objectSpread(_objectSpread({}, pluginState), {}, {
|
|
37
|
+
disabled: getDisabledState(newState)
|
|
38
|
+
});
|
|
39
|
+
if (pluginState && pluginState.disabled !== nextState.disabled) {
|
|
40
|
+
return nextState;
|
|
41
|
+
}
|
|
35
42
|
return pluginState;
|
|
36
43
|
}
|
|
37
44
|
}
|
|
@@ -6,7 +6,7 @@ import { injectIntl } from 'react-intl-next';
|
|
|
6
6
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
7
7
|
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
8
8
|
import { highlightMessages as messages } from '@atlaskit/editor-common/messages';
|
|
9
|
-
import { expandIconWrapperStyle
|
|
9
|
+
import { expandIconWrapperStyle } from '@atlaskit/editor-common/styles';
|
|
10
10
|
import { ColorPalette, getSelectedRowAndColumnFromPalette, highlightColorPalette, REMOVE_HIGHLIGHT_COLOR } from '@atlaskit/editor-common/ui-color';
|
|
11
11
|
import { ArrowKeyNavigationType, DropdownContainer as Dropdown, TOOLBAR_BUTTON, ToolbarButton } from '@atlaskit/editor-common/ui-menu';
|
|
12
12
|
import { hexToEditorTextBackgroundPaletteColor } from '@atlaskit/editor-palette';
|
|
@@ -147,8 +147,6 @@ var ToolbarHighlightColor = function ToolbarHighlightColor(_ref) {
|
|
|
147
147
|
palette: highlightColorPalette,
|
|
148
148
|
hexToPaletteColor: hexToEditorTextBackgroundPaletteColor
|
|
149
149
|
}
|
|
150
|
-
})))
|
|
151
|
-
css: separatorStyles
|
|
152
|
-
}));
|
|
150
|
+
}))));
|
|
153
151
|
};
|
|
154
152
|
export var ToolbarHighlightColorWithIntl = injectIntl(ToolbarHighlightColor);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { isMarkAllowedInRange, isMarkExcluded } from '@atlaskit/editor-common/mark';
|
|
2
|
+
import { GapCursorSelection } from '@atlaskit/editor-common/selection';
|
|
3
|
+
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
4
|
+
export var getDisabledState = function getDisabledState(state) {
|
|
5
|
+
var backgroundColor = state.schema.marks.backgroundColor;
|
|
6
|
+
var _ref = state.selection,
|
|
7
|
+
empty = _ref.empty,
|
|
8
|
+
ranges = _ref.ranges,
|
|
9
|
+
$cursor = _ref.$cursor;
|
|
10
|
+
if (!backgroundColor) {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
if (state.selection instanceof NodeSelection || state.selection instanceof GapCursorSelection) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
if (empty && !$cursor || isMarkAllowedInRange(state.doc, ranges, backgroundColor) === false) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
if (isMarkExcluded(backgroundColor, state.storedMarks || $cursor && $cursor.marks())) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
};
|
package/dist/types/plugin.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
|
|
2
2
|
import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
|
|
3
|
+
import type { PrimaryToolbarPlugin } from '@atlaskit/editor-plugin-primary-toolbar';
|
|
3
4
|
import type { TextFormattingPlugin } from '@atlaskit/editor-plugin-text-formatting';
|
|
4
5
|
import type { HighlightPluginState } from './pm-plugin';
|
|
5
6
|
export type HighlightPlugin = NextEditorPlugin<'highlight', {
|
|
6
7
|
dependencies: [
|
|
7
8
|
OptionalPlugin<AnalyticsPlugin>,
|
|
8
|
-
OptionalPlugin<TextFormattingPlugin
|
|
9
|
+
OptionalPlugin<TextFormattingPlugin>,
|
|
10
|
+
OptionalPlugin<PrimaryToolbarPlugin>
|
|
9
11
|
];
|
|
10
12
|
sharedState: HighlightPluginState | undefined;
|
|
11
13
|
}>;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
|
|
2
2
|
import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
|
|
3
|
+
import type { PrimaryToolbarPlugin } from '@atlaskit/editor-plugin-primary-toolbar';
|
|
3
4
|
import type { TextFormattingPlugin } from '@atlaskit/editor-plugin-text-formatting';
|
|
4
5
|
import type { HighlightPluginState } from './pm-plugin';
|
|
5
6
|
export type HighlightPlugin = NextEditorPlugin<'highlight', {
|
|
6
7
|
dependencies: [
|
|
7
8
|
OptionalPlugin<AnalyticsPlugin>,
|
|
8
|
-
OptionalPlugin<TextFormattingPlugin
|
|
9
|
+
OptionalPlugin<TextFormattingPlugin>,
|
|
10
|
+
OptionalPlugin<PrimaryToolbarPlugin>
|
|
9
11
|
];
|
|
10
12
|
sharedState: HighlightPluginState | undefined;
|
|
11
13
|
}>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-highlight",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Highlight plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -38,15 +38,16 @@
|
|
|
38
38
|
".": "./src/index.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@atlaskit/adf-schema": "^36.
|
|
42
|
-
"@atlaskit/editor-common": "^
|
|
41
|
+
"@atlaskit/adf-schema": "^36.10.7",
|
|
42
|
+
"@atlaskit/editor-common": "^81.0.0",
|
|
43
43
|
"@atlaskit/editor-palette": "1.6.0",
|
|
44
44
|
"@atlaskit/editor-plugin-analytics": "^1.2.0",
|
|
45
|
-
"@atlaskit/editor-plugin-
|
|
45
|
+
"@atlaskit/editor-plugin-primary-toolbar": "^1.1.0",
|
|
46
|
+
"@atlaskit/editor-plugin-text-formatting": "^1.7.0",
|
|
46
47
|
"@atlaskit/editor-prosemirror": "4.0.1",
|
|
47
48
|
"@atlaskit/editor-shared-styles": "^2.11.0",
|
|
48
|
-
"@atlaskit/icon": "^22.
|
|
49
|
-
"@atlaskit/primitives": "^6.
|
|
49
|
+
"@atlaskit/icon": "^22.3.0",
|
|
50
|
+
"@atlaskit/primitives": "^6.3.0",
|
|
50
51
|
"@babel/runtime": "^7.0.0",
|
|
51
52
|
"@emotion/react": "^11.7.1"
|
|
52
53
|
},
|
|
@@ -55,7 +56,7 @@
|
|
|
55
56
|
"react-intl-next": "npm:react-intl@^5.18.1"
|
|
56
57
|
},
|
|
57
58
|
"devDependencies": {
|
|
58
|
-
"@atlaskit/tokens": "^1.
|
|
59
|
+
"@atlaskit/tokens": "^1.49.0",
|
|
59
60
|
"@atlassian/atlassian-frontend-prettier-config-1.0.0": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.0",
|
|
60
61
|
"typescript": "~5.4.2"
|
|
61
62
|
},
|