@atlaskit/editor-plugin-insert-block 4.1.7 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/cjs/insertBlockPlugin.js +15 -5
- package/dist/cjs/ui/toolbar-components/EmojiButton.js +132 -0
- package/dist/cjs/ui/toolbar-components/ImageButton.js +47 -0
- package/dist/cjs/ui/toolbar-components/LayoutButton.js +39 -0
- package/dist/cjs/ui/toolbar-components/MediaButton.js +71 -0
- package/dist/cjs/ui/toolbar-components/MentionButton.js +46 -0
- package/dist/cjs/ui/toolbar-components/TableButton.js +52 -0
- package/dist/cjs/ui/toolbar-components/TableSizePicker.js +83 -0
- package/dist/cjs/ui/toolbar-components/TaskListButton.js +40 -0
- package/dist/cjs/ui/toolbar-components/utils/utils.js +12 -0
- package/dist/cjs/ui/toolbar-components.js +172 -0
- package/dist/es2019/insertBlockPlugin.js +15 -5
- package/dist/es2019/ui/toolbar-components/EmojiButton.js +120 -0
- package/dist/es2019/ui/toolbar-components/ImageButton.js +46 -0
- package/dist/es2019/ui/toolbar-components/LayoutButton.js +37 -0
- package/dist/es2019/ui/toolbar-components/MediaButton.js +66 -0
- package/dist/es2019/ui/toolbar-components/MentionButton.js +42 -0
- package/dist/es2019/ui/toolbar-components/TableButton.js +50 -0
- package/dist/es2019/ui/toolbar-components/TableSizePicker.js +70 -0
- package/dist/es2019/ui/toolbar-components/TaskListButton.js +38 -0
- package/dist/es2019/ui/toolbar-components/utils/utils.js +4 -0
- package/dist/es2019/ui/toolbar-components.js +152 -0
- package/dist/esm/insertBlockPlugin.js +15 -5
- package/dist/esm/ui/toolbar-components/EmojiButton.js +123 -0
- package/dist/esm/ui/toolbar-components/ImageButton.js +40 -0
- package/dist/esm/ui/toolbar-components/LayoutButton.js +32 -0
- package/dist/esm/ui/toolbar-components/MediaButton.js +63 -0
- package/dist/esm/ui/toolbar-components/MentionButton.js +39 -0
- package/dist/esm/ui/toolbar-components/TableButton.js +45 -0
- package/dist/esm/ui/toolbar-components/TableSizePicker.js +74 -0
- package/dist/esm/ui/toolbar-components/TaskListButton.js +33 -0
- package/dist/esm/ui/toolbar-components/utils/utils.js +6 -0
- package/dist/esm/ui/toolbar-components.js +165 -0
- package/dist/types/types/index.d.ts +3 -1
- package/dist/types/ui/toolbar-components/EmojiButton.d.ts +8 -0
- package/dist/types/ui/toolbar-components/ImageButton.d.ts +8 -0
- package/dist/types/ui/toolbar-components/LayoutButton.d.ts +8 -0
- package/dist/types/ui/toolbar-components/MediaButton.d.ts +8 -0
- package/dist/types/ui/toolbar-components/MentionButton.d.ts +8 -0
- package/dist/types/ui/toolbar-components/TableButton.d.ts +8 -0
- package/dist/types/ui/toolbar-components/TableSizePicker.d.ts +9 -0
- package/dist/types/ui/toolbar-components/TaskListButton.d.ts +8 -0
- package/dist/types/ui/toolbar-components/utils/utils.d.ts +4 -0
- package/dist/types/ui/toolbar-components.d.ts +9 -0
- package/dist/types-ts4.5/types/index.d.ts +3 -1
- package/dist/types-ts4.5/ui/toolbar-components/EmojiButton.d.ts +8 -0
- package/dist/types-ts4.5/ui/toolbar-components/ImageButton.d.ts +8 -0
- package/dist/types-ts4.5/ui/toolbar-components/LayoutButton.d.ts +8 -0
- package/dist/types-ts4.5/ui/toolbar-components/MediaButton.d.ts +8 -0
- package/dist/types-ts4.5/ui/toolbar-components/MentionButton.d.ts +8 -0
- package/dist/types-ts4.5/ui/toolbar-components/TableButton.d.ts +8 -0
- package/dist/types-ts4.5/ui/toolbar-components/TableSizePicker.d.ts +9 -0
- package/dist/types-ts4.5/ui/toolbar-components/TaskListButton.d.ts +8 -0
- package/dist/types-ts4.5/ui/toolbar-components/utils/utils.d.ts +4 -0
- package/dist/types-ts4.5/ui/toolbar-components.d.ts +9 -0
- package/package.json +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-insert-block
|
|
2
2
|
|
|
3
|
+
## 4.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`c3b98666f3840`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c3b98666f3840) -
|
|
8
|
+
[ux] ED-28740 register insert block items to new toolbar behind platform_editor_toolbar_aifc
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
|
|
3
14
|
## 4.1.7
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
|
@@ -15,8 +15,10 @@ var _types = require("@atlaskit/editor-common/types");
|
|
|
15
15
|
var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
|
|
16
16
|
var _consts = require("@atlaskit/editor-plugin-block-type/consts");
|
|
17
17
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
18
|
+
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
18
19
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
19
20
|
var _toggleInsertBlock = require("./pm-plugins/toggleInsertBlock");
|
|
21
|
+
var _toolbarComponents = require("./ui/toolbar-components");
|
|
20
22
|
var _ToolbarInsertBlock = _interopRequireDefault(require("./ui/ToolbarInsertBlock"));
|
|
21
23
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
22
24
|
// Ignored via go/ees005
|
|
@@ -102,7 +104,6 @@ function delayUntilIdle(cb) {
|
|
|
102
104
|
});
|
|
103
105
|
}
|
|
104
106
|
var insertBlockPlugin = exports.insertBlockPlugin = function insertBlockPlugin(_ref) {
|
|
105
|
-
var _api$primaryToolbar;
|
|
106
107
|
var _ref$config = _ref.config,
|
|
107
108
|
options = _ref$config === void 0 ? {} : _ref$config,
|
|
108
109
|
api = _ref.api;
|
|
@@ -161,10 +162,19 @@ var insertBlockPlugin = exports.insertBlockPlugin = function insertBlockPlugin(_
|
|
|
161
162
|
renderNode: renderNode
|
|
162
163
|
});
|
|
163
164
|
};
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
165
|
+
if ((0, _expValEquals.expValEquals)('platform_editor_toolbar_aifc', 'isEnabled', true)) {
|
|
166
|
+
var _api$toolbar;
|
|
167
|
+
api === null || api === void 0 || (_api$toolbar = api.toolbar) === null || _api$toolbar === void 0 || _api$toolbar.actions.registerComponents((0, _toolbarComponents.getToolbarComponents)({
|
|
168
|
+
api: api,
|
|
169
|
+
tableSelectorSupported: options.tableSelectorSupported
|
|
170
|
+
}));
|
|
171
|
+
} else {
|
|
172
|
+
var _api$primaryToolbar;
|
|
173
|
+
api === null || api === void 0 || (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 || _api$primaryToolbar.actions.registerComponent({
|
|
174
|
+
name: 'insertBlock',
|
|
175
|
+
component: primaryToolbarComponent
|
|
176
|
+
});
|
|
177
|
+
}
|
|
168
178
|
var plugin = {
|
|
169
179
|
name: 'insertBlock',
|
|
170
180
|
actions: {
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.EmojiButton = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _reactIntlNext = require("react-intl-next");
|
|
12
|
+
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
13
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
14
|
+
var _messages = require("@atlaskit/editor-common/messages");
|
|
15
|
+
var _ui = require("@atlaskit/editor-common/ui");
|
|
16
|
+
var _uiReact = require("@atlaskit/editor-common/ui-react");
|
|
17
|
+
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
18
|
+
var _editorToolbar = require("@atlaskit/editor-toolbar");
|
|
19
|
+
var _picker = require("@atlaskit/emoji/picker");
|
|
20
|
+
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
21
|
+
var _utils = require("./utils/utils");
|
|
22
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
23
|
+
var EmojiPicker = function EmojiPicker(props) {
|
|
24
|
+
var setOutsideClickTargetRef = _react.default.useContext(_uiReact.OutsideClickTargetRefContext);
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement(_picker.EmojiPicker, {
|
|
26
|
+
onPickerRef: setOutsideClickTargetRef,
|
|
27
|
+
emojiProvider: props.emojiProvider,
|
|
28
|
+
onSelection: props.onSelection
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
var EmojiPickerWithListeners = (0, _uiReact.withReactEditorViewOuterListeners)(EmojiPicker);
|
|
32
|
+
var EmojiButton = exports.EmojiButton = function EmojiButton(_ref) {
|
|
33
|
+
var api = _ref.api;
|
|
34
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
35
|
+
formatMessage = _useIntl.formatMessage;
|
|
36
|
+
var _useState = (0, _react.useState)(false),
|
|
37
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
38
|
+
emojiPickerOpen = _useState2[0],
|
|
39
|
+
setEmojiPickerOpen = _useState2[1];
|
|
40
|
+
var emojiButtonRef = (0, _react.useRef)(null);
|
|
41
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api, ['emoji', 'typeAhead'], function (states) {
|
|
42
|
+
var _states$emojiState, _states$emojiState2, _states$typeAheadStat;
|
|
43
|
+
return {
|
|
44
|
+
emojiProviderSelector: (_states$emojiState = states.emojiState) === null || _states$emojiState === void 0 ? void 0 : _states$emojiState.emojiProvider,
|
|
45
|
+
emojiProviderPromise: (_states$emojiState2 = states.emojiState) === null || _states$emojiState2 === void 0 ? void 0 : _states$emojiState2.emojiProviderPromise,
|
|
46
|
+
isTypeAheadAllowed: (_states$typeAheadStat = states.typeAheadState) === null || _states$typeAheadStat === void 0 ? void 0 : _states$typeAheadStat.isAllowed
|
|
47
|
+
};
|
|
48
|
+
}),
|
|
49
|
+
emojiProviderSelector = _useSharedPluginState.emojiProviderSelector,
|
|
50
|
+
emojiProviderPromise = _useSharedPluginState.emojiProviderPromise,
|
|
51
|
+
isTypeAheadAllowed = _useSharedPluginState.isTypeAheadAllowed;
|
|
52
|
+
if (!(api !== null && api !== void 0 && api.emoji)) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
var toggleEmojiPickerOpen = function toggleEmojiPickerOpen(newState) {
|
|
56
|
+
var oldState = emojiPickerOpen;
|
|
57
|
+
if (newState === true && oldState === false) {
|
|
58
|
+
var _api$analytics;
|
|
59
|
+
api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || _api$analytics.actions.fireAnalyticsEvent({
|
|
60
|
+
action: _analytics.ACTION.OPENED,
|
|
61
|
+
actionSubject: _analytics.ACTION_SUBJECT.PICKER,
|
|
62
|
+
actionSubjectId: _analytics.ACTION_SUBJECT_ID.PICKER_EMOJI,
|
|
63
|
+
attributes: {
|
|
64
|
+
inputMethod: _analytics.INPUT_METHOD.TOOLBAR
|
|
65
|
+
},
|
|
66
|
+
eventType: _analytics.EVENT_TYPE.UI
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
setEmojiPickerOpen(newState);
|
|
70
|
+
};
|
|
71
|
+
var getEmojiProvider = function getEmojiProvider() {
|
|
72
|
+
if (emojiProviderSelector) {
|
|
73
|
+
return Promise.resolve(emojiProviderSelector);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
var emojiProvider = (0, _expValEquals.expValEquals)('platform_editor_prevent_toolbar_layout_shifts', 'isEnabled', true) ? emojiProviderPromise : getEmojiProvider();
|
|
77
|
+
var onPopupUnmount = function onPopupUnmount() {
|
|
78
|
+
requestAnimationFrame(function () {
|
|
79
|
+
return api === null || api === void 0 ? void 0 : api.core.actions.focus();
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
var handleSelectedEmoji = function handleSelectedEmoji(emojiId) {
|
|
83
|
+
var _api$emoji;
|
|
84
|
+
api === null || api === void 0 || api.core.actions.focus();
|
|
85
|
+
api === null || api === void 0 || api.core.actions.execute(api === null || api === void 0 || (_api$emoji = api.emoji) === null || _api$emoji === void 0 ? void 0 : _api$emoji.commands.insertEmoji(emojiId, _analytics.INPUT_METHOD.PICKER));
|
|
86
|
+
toggleEmojiPickerOpen(false);
|
|
87
|
+
return true;
|
|
88
|
+
};
|
|
89
|
+
var handleEmojiClickOutside = function handleEmojiClickOutside(e) {
|
|
90
|
+
// Ignore click events for detached elements.
|
|
91
|
+
// Workaround for FS-1322 - where two onClicks fire - one when the upload button is
|
|
92
|
+
// still in the document, and one once it's detached. Does not always occur, and
|
|
93
|
+
// may be a side effect of a react render optimisation
|
|
94
|
+
if (e.target instanceof HTMLElement && !(0, _utils.isDetachedElement)(e.target)) {
|
|
95
|
+
toggleEmojiPickerOpen(false);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
var handleEmojiPressEscape = function handleEmojiPressEscape() {
|
|
99
|
+
var _emojiButtonRef$curre;
|
|
100
|
+
toggleEmojiPickerOpen(false);
|
|
101
|
+
emojiButtonRef === null || emojiButtonRef === void 0 || (_emojiButtonRef$curre = emojiButtonRef.current) === null || _emojiButtonRef$curre === void 0 || _emojiButtonRef$curre.focus();
|
|
102
|
+
};
|
|
103
|
+
var onClick = function onClick() {
|
|
104
|
+
toggleEmojiPickerOpen(!emojiPickerOpen);
|
|
105
|
+
};
|
|
106
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, emojiPickerOpen && emojiButtonRef.current && emojiProvider && /*#__PURE__*/_react.default.createElement(_ui.Popup, {
|
|
107
|
+
target: emojiButtonRef.current,
|
|
108
|
+
fitHeight: 350,
|
|
109
|
+
fitWidth: 350,
|
|
110
|
+
offset: [0, 3],
|
|
111
|
+
mountTo: emojiButtonRef.current,
|
|
112
|
+
onUnmount: onPopupUnmount,
|
|
113
|
+
focusTrap: true,
|
|
114
|
+
zIndex: _editorSharedStyles.akEditorMenuZIndex
|
|
115
|
+
}, /*#__PURE__*/_react.default.createElement(EmojiPickerWithListeners, {
|
|
116
|
+
emojiProvider: emojiProvider,
|
|
117
|
+
onSelection: handleSelectedEmoji,
|
|
118
|
+
handleClickOutside: handleEmojiClickOutside,
|
|
119
|
+
handleEscapeKeydown: handleEmojiPressEscape
|
|
120
|
+
})), /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
|
|
121
|
+
content: formatMessage(_messages.toolbarInsertBlockMessages.emoji)
|
|
122
|
+
}, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButton, {
|
|
123
|
+
iconBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.EmojiIcon, {
|
|
124
|
+
label: formatMessage(_messages.toolbarInsertBlockMessages.emoji)
|
|
125
|
+
}),
|
|
126
|
+
ariaKeyshortcuts: "Shift+;",
|
|
127
|
+
ref: emojiButtonRef,
|
|
128
|
+
onClick: onClick,
|
|
129
|
+
isSelected: emojiPickerOpen,
|
|
130
|
+
isDisabled: !isTypeAheadAllowed || !emojiProvider
|
|
131
|
+
})));
|
|
132
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ImageButton = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactIntlNext = require("react-intl-next");
|
|
10
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
11
|
+
var _messages = require("@atlaskit/editor-common/messages");
|
|
12
|
+
var _toolbar = require("@atlaskit/editor-common/toolbar");
|
|
13
|
+
var _editorToolbar = require("@atlaskit/editor-toolbar");
|
|
14
|
+
var ImageButton = exports.ImageButton = function ImageButton(_ref) {
|
|
15
|
+
var api = _ref.api;
|
|
16
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
17
|
+
formatMessage = _useIntl.formatMessage;
|
|
18
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api, ['connectivity', 'imageUpload'], function (states) {
|
|
19
|
+
var _states$connectivityS, _states$imageUploadSt;
|
|
20
|
+
return {
|
|
21
|
+
connectivityMode: (_states$connectivityS = states.connectivityState) === null || _states$connectivityS === void 0 ? void 0 : _states$connectivityS.mode,
|
|
22
|
+
imageUploadEnabled: (_states$imageUploadSt = states.imageUploadState) === null || _states$imageUploadSt === void 0 ? void 0 : _states$imageUploadSt.enabled
|
|
23
|
+
};
|
|
24
|
+
}),
|
|
25
|
+
connectivityMode = _useSharedPluginState.connectivityMode,
|
|
26
|
+
imageUploadEnabled = _useSharedPluginState.imageUploadEnabled;
|
|
27
|
+
var _useEditorToolbar = (0, _toolbar.useEditorToolbar)(),
|
|
28
|
+
editorView = _useEditorToolbar.editorView;
|
|
29
|
+
var isOffline = connectivityMode === 'offline';
|
|
30
|
+
var onClick = function onClick() {
|
|
31
|
+
if (editorView) {
|
|
32
|
+
var _api$imageUpload;
|
|
33
|
+
var state = editorView.state,
|
|
34
|
+
dispatch = editorView.dispatch;
|
|
35
|
+
api === null || api === void 0 || (_api$imageUpload = api.imageUpload) === null || _api$imageUpload === void 0 || _api$imageUpload.actions.startUpload()(state, dispatch);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
|
|
39
|
+
content: formatMessage(_messages.toolbarInsertBlockMessages.image)
|
|
40
|
+
}, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButton, {
|
|
41
|
+
iconBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.ImageIcon, {
|
|
42
|
+
label: formatMessage(_messages.toolbarInsertBlockMessages.image)
|
|
43
|
+
}),
|
|
44
|
+
onClick: onClick,
|
|
45
|
+
isDisabled: !imageUploadEnabled || isOffline
|
|
46
|
+
}));
|
|
47
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.LayoutButton = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactIntlNext = require("react-intl-next");
|
|
10
|
+
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
11
|
+
var _messages = require("@atlaskit/editor-common/messages");
|
|
12
|
+
var _toolbar = require("@atlaskit/editor-common/toolbar");
|
|
13
|
+
var _editorToolbar = require("@atlaskit/editor-toolbar");
|
|
14
|
+
var LayoutButton = exports.LayoutButton = function LayoutButton(_ref) {
|
|
15
|
+
var api = _ref.api;
|
|
16
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
17
|
+
formatMessage = _useIntl.formatMessage;
|
|
18
|
+
var _useEditorToolbar = (0, _toolbar.useEditorToolbar)(),
|
|
19
|
+
editorView = _useEditorToolbar.editorView;
|
|
20
|
+
if (!(api !== null && api !== void 0 && api.layout)) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
var onClick = function onClick() {
|
|
24
|
+
if (editorView) {
|
|
25
|
+
var _api$layout;
|
|
26
|
+
var state = editorView.state,
|
|
27
|
+
dispatch = editorView.dispatch;
|
|
28
|
+
api === null || api === void 0 || (_api$layout = api.layout) === null || _api$layout === void 0 || _api$layout.actions.insertLayoutColumns(_analytics.INPUT_METHOD.TOOLBAR)(state, dispatch);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
|
|
32
|
+
content: formatMessage(_messages.toolbarInsertBlockMessages.columns)
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButton, {
|
|
34
|
+
iconBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.LayoutIcon, {
|
|
35
|
+
label: formatMessage(_messages.toolbarInsertBlockMessages.columns)
|
|
36
|
+
}),
|
|
37
|
+
onClick: onClick
|
|
38
|
+
}));
|
|
39
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.MediaButton = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactIntlNext = require("react-intl-next");
|
|
10
|
+
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
11
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
12
|
+
var _messages = require("@atlaskit/editor-common/messages");
|
|
13
|
+
var _editorToolbar = require("@atlaskit/editor-toolbar");
|
|
14
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
16
|
+
var MediaButton = exports.MediaButton = function MediaButton(_ref) {
|
|
17
|
+
var api = _ref.api;
|
|
18
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
19
|
+
formatMessage = _useIntl.formatMessage;
|
|
20
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api, ['media', 'connectivity'], function (states) {
|
|
21
|
+
var _states$mediaState, _states$mediaState2, _states$connectivityS;
|
|
22
|
+
return {
|
|
23
|
+
showMediaPicker: (_states$mediaState = states.mediaState) === null || _states$mediaState === void 0 ? void 0 : _states$mediaState.showMediaPicker,
|
|
24
|
+
allowsUploads: (_states$mediaState2 = states.mediaState) === null || _states$mediaState2 === void 0 ? void 0 : _states$mediaState2.allowsUploads,
|
|
25
|
+
connectivityMode: (_states$connectivityS = states.connectivityState) === null || _states$connectivityS === void 0 ? void 0 : _states$connectivityS.mode
|
|
26
|
+
};
|
|
27
|
+
}),
|
|
28
|
+
showMediaPicker = _useSharedPluginState.showMediaPicker,
|
|
29
|
+
connectivityMode = _useSharedPluginState.connectivityMode,
|
|
30
|
+
allowsUploads = _useSharedPluginState.allowsUploads;
|
|
31
|
+
var mediaButtonRef = (0, _react.useRef)(null);
|
|
32
|
+
if (!(api !== null && api !== void 0 && api.media)) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
var onClick = function onClick() {
|
|
36
|
+
var _api$mediaInsert, _api$analytics;
|
|
37
|
+
if (!showMediaPicker) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (api !== null && api !== void 0 && (_api$mediaInsert = api.mediaInsert) !== null && _api$mediaInsert !== void 0 && (_api$mediaInsert = _api$mediaInsert.commands) !== null && _api$mediaInsert !== void 0 && _api$mediaInsert.showMediaInsertPopup && (0, _platformFeatureFlags.fg)('platform_editor_add_media_from_url_rollout')) {
|
|
41
|
+
var _api$core, _api$mediaInsert2;
|
|
42
|
+
var mountInfo = mediaButtonRef.current ? {
|
|
43
|
+
ref: mediaButtonRef.current,
|
|
44
|
+
mountPoint: mediaButtonRef.current
|
|
45
|
+
} : undefined;
|
|
46
|
+
api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 || _api$core.actions.execute(api === null || api === void 0 || (_api$mediaInsert2 = api.mediaInsert) === null || _api$mediaInsert2 === void 0 ? void 0 : _api$mediaInsert2.commands.showMediaInsertPopup(mountInfo));
|
|
47
|
+
} else {
|
|
48
|
+
showMediaPicker();
|
|
49
|
+
}
|
|
50
|
+
api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || _api$analytics.actions.fireAnalyticsEvent({
|
|
51
|
+
action: _analytics.ACTION.OPENED,
|
|
52
|
+
actionSubject: _analytics.ACTION_SUBJECT.PICKER,
|
|
53
|
+
actionSubjectId: (0, _platformFeatureFlags.fg)('platform_editor_add_media_from_url_rollout') ? _analytics.ACTION_SUBJECT_ID.PICKER_MEDIA : _analytics.ACTION_SUBJECT_ID.PICKER_CLOUD,
|
|
54
|
+
attributes: {
|
|
55
|
+
inputMethod: _analytics.INPUT_METHOD.TOOLBAR
|
|
56
|
+
},
|
|
57
|
+
eventType: _analytics.EVENT_TYPE.UI
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
var isOffline = connectivityMode === 'offline';
|
|
61
|
+
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
|
|
62
|
+
content: formatMessage(_messages.toolbarInsertBlockMessages.addMediaFiles)
|
|
63
|
+
}, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButton, {
|
|
64
|
+
iconBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.ImageIcon, {
|
|
65
|
+
label: formatMessage(_messages.toolbarInsertBlockMessages.addMediaFiles)
|
|
66
|
+
}),
|
|
67
|
+
onClick: onClick,
|
|
68
|
+
ref: mediaButtonRef,
|
|
69
|
+
isDisabled: isOffline || !allowsUploads
|
|
70
|
+
}));
|
|
71
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.MentionButton = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactIntlNext = require("react-intl-next");
|
|
10
|
+
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
11
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
12
|
+
var _messages = require("@atlaskit/editor-common/messages");
|
|
13
|
+
var _editorToolbar = require("@atlaskit/editor-toolbar");
|
|
14
|
+
var MentionButton = exports.MentionButton = function MentionButton(_ref) {
|
|
15
|
+
var api = _ref.api;
|
|
16
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
17
|
+
formatMessage = _useIntl.formatMessage;
|
|
18
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api, ['mention', 'typeAhead'], function (states) {
|
|
19
|
+
var _states$mentionState, _states$mentionState2, _states$typeAheadStat;
|
|
20
|
+
return {
|
|
21
|
+
canInsertMention: (_states$mentionState = states.mentionState) === null || _states$mentionState === void 0 ? void 0 : _states$mentionState.canInsertMention,
|
|
22
|
+
mentionProvider: (_states$mentionState2 = states.mentionState) === null || _states$mentionState2 === void 0 ? void 0 : _states$mentionState2.mentionProvider,
|
|
23
|
+
isTypeAheadAllowed: (_states$typeAheadStat = states.typeAheadState) === null || _states$typeAheadStat === void 0 ? void 0 : _states$typeAheadStat.isAllowed
|
|
24
|
+
};
|
|
25
|
+
}),
|
|
26
|
+
canInsertMention = _useSharedPluginState.canInsertMention,
|
|
27
|
+
mentionProvider = _useSharedPluginState.mentionProvider,
|
|
28
|
+
isTypeAheadAllowed = _useSharedPluginState.isTypeAheadAllowed;
|
|
29
|
+
if (!(api !== null && api !== void 0 && api.mention)) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
var onClick = function onClick() {
|
|
33
|
+
var _api$mention;
|
|
34
|
+
api === null || api === void 0 || (_api$mention = api.mention) === null || _api$mention === void 0 || (_api$mention = _api$mention.actions) === null || _api$mention === void 0 || _api$mention.openTypeAhead(_analytics.INPUT_METHOD.TOOLBAR);
|
|
35
|
+
};
|
|
36
|
+
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
|
|
37
|
+
content: formatMessage(_messages.toolbarInsertBlockMessages.mention)
|
|
38
|
+
}, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButton, {
|
|
39
|
+
iconBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.MentionIcon, {
|
|
40
|
+
label: formatMessage(_messages.toolbarInsertBlockMessages.mention)
|
|
41
|
+
}),
|
|
42
|
+
onClick: onClick,
|
|
43
|
+
ariaKeyshortcuts: "Shift+2 Space",
|
|
44
|
+
isDisabled: !canInsertMention || !mentionProvider || !isTypeAheadAllowed
|
|
45
|
+
}));
|
|
46
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TableButton = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactIntlNext = require("react-intl-next");
|
|
10
|
+
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
11
|
+
var _keymaps = require("@atlaskit/editor-common/keymaps");
|
|
12
|
+
var _messages = require("@atlaskit/editor-common/messages");
|
|
13
|
+
var _toolbar = require("@atlaskit/editor-common/toolbar");
|
|
14
|
+
var _editorToolbar = require("@atlaskit/editor-toolbar");
|
|
15
|
+
var TableButton = exports.TableButton = function TableButton(_ref) {
|
|
16
|
+
var api = _ref.api;
|
|
17
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
18
|
+
formatMessage = _useIntl.formatMessage;
|
|
19
|
+
var _useEditorToolbar = (0, _toolbar.useEditorToolbar)(),
|
|
20
|
+
editorView = _useEditorToolbar.editorView;
|
|
21
|
+
if (!(editorView !== null && editorView !== void 0 && editorView.state.schema.nodes.table)) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
var onClick = function onClick() {
|
|
25
|
+
if (editorView) {
|
|
26
|
+
var state = editorView.state,
|
|
27
|
+
dispatch = editorView.dispatch;
|
|
28
|
+
// workaround to solve race condition where cursor is not placed correctly inside table
|
|
29
|
+
queueMicrotask(function () {
|
|
30
|
+
var _api$table, _api$table$actions$in, _api$table$actions;
|
|
31
|
+
api === null || api === void 0 || (_api$table = api.table) === null || _api$table === void 0 || (_api$table$actions$in = (_api$table$actions = _api$table.actions).insertTable) === null || _api$table$actions$in === void 0 || _api$table$actions$in.call(_api$table$actions, {
|
|
32
|
+
action: _analytics.ACTION.INSERTED,
|
|
33
|
+
actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
|
|
34
|
+
actionSubjectId: _analytics.ACTION_SUBJECT_ID.TABLE,
|
|
35
|
+
attributes: {
|
|
36
|
+
inputMethod: _analytics.INPUT_METHOD.TOOLBAR
|
|
37
|
+
},
|
|
38
|
+
eventType: _analytics.EVENT_TYPE.TRACK
|
|
39
|
+
})(state, dispatch);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
|
|
44
|
+
content: formatMessage(_messages.toolbarInsertBlockMessages.table)
|
|
45
|
+
}, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButton, {
|
|
46
|
+
iconBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.TableIcon, {
|
|
47
|
+
label: formatMessage(_messages.toolbarInsertBlockMessages.table)
|
|
48
|
+
}),
|
|
49
|
+
onClick: onClick,
|
|
50
|
+
ariaKeyshortcuts: (0, _keymaps.formatShortcut)(_keymaps.toggleTable)
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.TableSizePicker = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _reactIntlNext = require("react-intl-next");
|
|
12
|
+
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
13
|
+
var _messages = require("@atlaskit/editor-common/messages");
|
|
14
|
+
var _toolbar = require("@atlaskit/editor-common/toolbar");
|
|
15
|
+
var _ui = require("@atlaskit/editor-common/ui");
|
|
16
|
+
var _editorToolbar = require("@atlaskit/editor-toolbar");
|
|
17
|
+
var _utils = require("./utils/utils");
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
19
|
+
var TableSizePicker = exports.TableSizePicker = function TableSizePicker(_ref) {
|
|
20
|
+
var api = _ref.api,
|
|
21
|
+
tableSelectorSupported = _ref.tableSelectorSupported;
|
|
22
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
23
|
+
formatMessage = _useIntl.formatMessage;
|
|
24
|
+
var _useEditorToolbar = (0, _toolbar.useEditorToolbar)(),
|
|
25
|
+
editorView = _useEditorToolbar.editorView;
|
|
26
|
+
var _useState = (0, _react.useState)(false),
|
|
27
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
28
|
+
tableSizePickerOpen = _useState2[0],
|
|
29
|
+
setTableSizePickerOpen = _useState2[1];
|
|
30
|
+
var _useState3 = (0, _react.useState)(false),
|
|
31
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
32
|
+
isOpenedByKeyboard = _useState4[0],
|
|
33
|
+
setIsOpenedByKeyboard = _useState4[1];
|
|
34
|
+
var tableSizePickerRef = (0, _react.useRef)(null);
|
|
35
|
+
if (!(editorView !== null && editorView !== void 0 && editorView.state.schema.nodes.table) || !tableSelectorSupported) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
var handleSelectedTableSize = function handleSelectedTableSize(rowsCount, colsCount) {
|
|
39
|
+
// workaround to solve race condition where cursor is not placed correctly inside table
|
|
40
|
+
queueMicrotask(function () {
|
|
41
|
+
var _api$core, _api$table;
|
|
42
|
+
api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 || _api$core.actions.execute(api === null || api === void 0 || (_api$table = api.table) === null || _api$table === void 0 ? void 0 : _api$table.commands.insertTableWithSize(rowsCount, colsCount, _analytics.INPUT_METHOD.PICKER));
|
|
43
|
+
});
|
|
44
|
+
setTableSizePickerOpen(false);
|
|
45
|
+
};
|
|
46
|
+
var handleTableSelectorClickOutside = function handleTableSelectorClickOutside(e) {
|
|
47
|
+
// Ignore click events for detached elements.
|
|
48
|
+
if (e.target instanceof HTMLElement && !(0, _utils.isDetachedElement)(e.target)) {
|
|
49
|
+
setTableSizePickerOpen(false);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var handleTableSelectorPressEscape = function handleTableSelectorPressEscape() {
|
|
53
|
+
var _tableSizePickerRef$c;
|
|
54
|
+
setTableSizePickerOpen(false);
|
|
55
|
+
(_tableSizePickerRef$c = tableSizePickerRef.current) === null || _tableSizePickerRef$c === void 0 || _tableSizePickerRef$c.focus();
|
|
56
|
+
};
|
|
57
|
+
var onUnmount = function onUnmount() {
|
|
58
|
+
api === null || api === void 0 || api.core.actions.focus();
|
|
59
|
+
};
|
|
60
|
+
var onClick = function onClick(event) {
|
|
61
|
+
setIsOpenedByKeyboard(event.detail === 0 ? true : false);
|
|
62
|
+
setTableSizePickerOpen(!tableSizePickerOpen);
|
|
63
|
+
};
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, tableSizePickerRef.current && tableSizePickerOpen && /*#__PURE__*/_react.default.createElement(_ui.TableSelectorPopup, {
|
|
65
|
+
allowOutsideSelection: true,
|
|
66
|
+
target: tableSizePickerRef.current,
|
|
67
|
+
onUnmount: onUnmount,
|
|
68
|
+
onSelection: handleSelectedTableSize,
|
|
69
|
+
popupsMountPoint: tableSizePickerRef.current,
|
|
70
|
+
handleClickOutside: handleTableSelectorClickOutside,
|
|
71
|
+
handleEscapeKeydown: handleTableSelectorPressEscape,
|
|
72
|
+
isOpenedByKeyboard: isOpenedByKeyboard
|
|
73
|
+
}), /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
|
|
74
|
+
content: formatMessage(_messages.toolbarInsertBlockMessages.tableSelector)
|
|
75
|
+
}, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButton, {
|
|
76
|
+
iconBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.MoreItemsIcon, {
|
|
77
|
+
label: formatMessage(_messages.toolbarInsertBlockMessages.tableSelector)
|
|
78
|
+
}),
|
|
79
|
+
onClick: onClick,
|
|
80
|
+
isSelected: tableSizePickerOpen,
|
|
81
|
+
ref: tableSizePickerRef
|
|
82
|
+
})));
|
|
83
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TaskListButton = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactIntlNext = require("react-intl-next");
|
|
10
|
+
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
11
|
+
var _messages = require("@atlaskit/editor-common/messages");
|
|
12
|
+
var _toolbar = require("@atlaskit/editor-common/toolbar");
|
|
13
|
+
var _editorToolbar = require("@atlaskit/editor-toolbar");
|
|
14
|
+
var TaskListButton = exports.TaskListButton = function TaskListButton(_ref) {
|
|
15
|
+
var api = _ref.api;
|
|
16
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
17
|
+
formatMessage = _useIntl.formatMessage;
|
|
18
|
+
var _useEditorToolbar = (0, _toolbar.useEditorToolbar)(),
|
|
19
|
+
editorView = _useEditorToolbar.editorView;
|
|
20
|
+
if (!(editorView !== null && editorView !== void 0 && editorView.state.schema.nodes.taskItem)) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
var onClick = function onClick() {
|
|
24
|
+
if (editorView) {
|
|
25
|
+
var _api$taskDecision;
|
|
26
|
+
var state = editorView.state,
|
|
27
|
+
dispatch = editorView.dispatch;
|
|
28
|
+
api === null || api === void 0 || (_api$taskDecision = api.taskDecision) === null || _api$taskDecision === void 0 || _api$taskDecision.actions.insertTaskDecision('taskList', _analytics.INPUT_METHOD.TOOLBAR)(state, dispatch);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
|
|
32
|
+
content: formatMessage(_messages.toolbarInsertBlockMessages.action)
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButton, {
|
|
34
|
+
iconBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.TaskIcon, {
|
|
35
|
+
label: formatMessage(_messages.toolbarInsertBlockMessages.action)
|
|
36
|
+
}),
|
|
37
|
+
onClick: onClick,
|
|
38
|
+
ariaKeyshortcuts: "[ ] Space"
|
|
39
|
+
}));
|
|
40
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isDetachedElement = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Checks if an element is detached (i.e. not in the current document)
|
|
9
|
+
*/
|
|
10
|
+
var isDetachedElement = exports.isDetachedElement = function isDetachedElement(el) {
|
|
11
|
+
return !document.body.contains(el);
|
|
12
|
+
};
|