@atlaskit/editor-plugin-block-type 4.0.11 → 4.0.13
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 +15 -0
- package/dist/cjs/blockTypePlugin.js +9 -4
- package/dist/cjs/pm-plugins/block-types.js +9 -2
- package/dist/cjs/pm-plugins/commands/block-type.js +64 -15
- package/dist/cjs/pm-plugins/commands/wrapSelectionIn.js +61 -0
- package/dist/cjs/pm-plugins/main.js +12 -4
- package/dist/cjs/pm-plugins/ui/FloatingToolbarComponent.js +5 -0
- package/dist/cjs/pm-plugins/ui/PrimaryToolbarComponent.js +7 -2
- package/dist/cjs/pm-plugins/ui/ToolbarBlockType/index.js +22 -19
- package/dist/cjs/pm-plugins/ui/ToolbarBlockType/styled.js +1 -1
- package/dist/cjs/pm-plugins/utils.js +17 -1
- package/dist/es2019/blockTypePlugin.js +10 -6
- package/dist/es2019/pm-plugins/block-types.js +8 -1
- package/dist/es2019/pm-plugins/commands/block-type.js +61 -13
- package/dist/es2019/pm-plugins/commands/wrapSelectionIn.js +54 -0
- package/dist/es2019/pm-plugins/main.js +11 -5
- package/dist/es2019/pm-plugins/ui/FloatingToolbarComponent.js +5 -0
- package/dist/es2019/pm-plugins/ui/PrimaryToolbarComponent.js +7 -2
- package/dist/es2019/pm-plugins/ui/ToolbarBlockType/index.js +12 -6
- package/dist/es2019/pm-plugins/ui/ToolbarBlockType/styled.js +2 -2
- package/dist/es2019/pm-plugins/utils.js +15 -1
- package/dist/esm/blockTypePlugin.js +10 -5
- package/dist/esm/pm-plugins/block-types.js +8 -1
- package/dist/esm/pm-plugins/commands/block-type.js +62 -15
- package/dist/esm/pm-plugins/commands/wrapSelectionIn.js +55 -0
- package/dist/esm/pm-plugins/main.js +13 -5
- package/dist/esm/pm-plugins/ui/FloatingToolbarComponent.js +5 -0
- package/dist/esm/pm-plugins/ui/PrimaryToolbarComponent.js +7 -2
- package/dist/esm/pm-plugins/ui/ToolbarBlockType/index.js +22 -19
- package/dist/esm/pm-plugins/ui/ToolbarBlockType/styled.js +2 -2
- package/dist/esm/pm-plugins/utils.js +17 -1
- package/dist/types/blockTypePluginType.d.ts +2 -1
- package/dist/types/pm-plugins/block-types.d.ts +1 -0
- package/dist/types/pm-plugins/commands/block-type.d.ts +6 -4
- package/dist/types/pm-plugins/commands/wrapSelectionIn.d.ts +3 -0
- package/dist/types/pm-plugins/main.d.ts +3 -1
- package/dist/types/pm-plugins/types.d.ts +1 -0
- package/dist/types/pm-plugins/ui/ToolbarBlockType/index.d.ts +2 -1
- package/dist/types-ts4.5/blockTypePluginType.d.ts +2 -1
- package/dist/types-ts4.5/pm-plugins/block-types.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/commands/block-type.d.ts +6 -4
- package/dist/types-ts4.5/pm-plugins/commands/wrapSelectionIn.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/main.d.ts +3 -1
- package/dist/types-ts4.5/pm-plugins/types.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/ui/ToolbarBlockType/index.d.ts +2 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# @atlaskit/editor-plugin-block-type
|
2
2
|
|
3
|
+
## 4.0.13
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- Updated dependencies
|
8
|
+
|
9
|
+
## 4.0.12
|
10
|
+
|
11
|
+
### Patch Changes
|
12
|
+
|
13
|
+
- [#180067](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/180067)
|
14
|
+
[`fdee6c449ca83`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/fdee6c449ca83) -
|
15
|
+
[ux] Adding block quote as an option to the text formatting menu for full page editors
|
16
|
+
- Updated dependencies
|
17
|
+
|
3
18
|
## 4.0.11
|
4
19
|
|
5
20
|
### Patch Changes
|
@@ -153,7 +153,7 @@ var blockTypePlugin = exports.blockTypePlugin = function blockTypePlugin(_ref3)
|
|
153
153
|
name: 'blockType',
|
154
154
|
plugin: function plugin(_ref5) {
|
155
155
|
var dispatch = _ref5.dispatch;
|
156
|
-
return (0, _main.createPlugin)(api, dispatch, options && options.lastNodeMustBeParagraph);
|
156
|
+
return (0, _main.createPlugin)(api, dispatch, options && options.lastNodeMustBeParagraph, options === null || options === void 0 ? void 0 : options.includeBlockQuoteAsTextstyleOption);
|
157
157
|
}
|
158
158
|
}, {
|
159
159
|
name: 'blockTypeInputRule',
|
@@ -185,7 +185,12 @@ var blockTypePlugin = exports.blockTypePlugin = function blockTypePlugin(_ref3)
|
|
185
185
|
commands: {
|
186
186
|
setTextLevel: function setTextLevel(level, inputMethod) {
|
187
187
|
var _api$analytics4;
|
188
|
-
|
188
|
+
var fromBlockQuote = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
189
|
+
return (0, _blockType.setBlockTypeWithAnalytics)(level, inputMethod, api === null || api === void 0 || (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions, fromBlockQuote);
|
190
|
+
},
|
191
|
+
insertBlockQuote: function insertBlockQuote(inputMethod) {
|
192
|
+
var _api$analytics5;
|
193
|
+
return (0, _blockType.insertBlockQuoteWithAnalyticsCommand)(inputMethod, api === null || api === void 0 || (_api$analytics5 = api.analytics) === null || _api$analytics5 === void 0 ? void 0 : _api$analytics5.actions);
|
189
194
|
}
|
190
195
|
},
|
191
196
|
getSharedState: function getSharedState(editorState) {
|
@@ -222,9 +227,9 @@ var blockTypePlugin = exports.blockTypePlugin = function blockTypePlugin(_ref3)
|
|
222
227
|
}
|
223
228
|
},
|
224
229
|
quickInsert: function quickInsert(intl) {
|
225
|
-
var _api$
|
230
|
+
var _api$analytics6, _api$analytics7;
|
226
231
|
var exclude = options && options.allowBlockType && options.allowBlockType.exclude ? options.allowBlockType.exclude : [];
|
227
|
-
return [].concat((0, _toConsumableArray2.default)(blockquotePluginOptions(intl, exclude.indexOf('blockquote') === -1, api === null || api === void 0 || (_api$
|
232
|
+
return [].concat((0, _toConsumableArray2.default)(blockquotePluginOptions(intl, exclude.indexOf('blockquote') === -1, api === null || api === void 0 || (_api$analytics6 = api.analytics) === null || _api$analytics6 === void 0 ? void 0 : _api$analytics6.actions)), (0, _toConsumableArray2.default)(headingPluginOptions(intl, exclude.indexOf('heading') === -1, api === null || api === void 0 || (_api$analytics7 = api.analytics) === null || _api$analytics7 === void 0 ? void 0 : _api$analytics7.actions)));
|
228
233
|
}
|
229
234
|
}
|
230
235
|
};
|
@@ -3,8 +3,9 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.WRAPPER_BLOCK_TYPES = exports.TEXT_BLOCK_TYPES = exports.PANEL = exports.OTHER = exports.NORMAL_TEXT = exports.HEADING_6 = exports.HEADING_5 = exports.HEADING_4 = exports.HEADING_3 = exports.HEADING_2 = exports.HEADING_1 = exports.HEADINGS_BY_NAME = exports.HEADINGS_BY_LEVEL = exports.CODE_BLOCK = exports.BLOCK_QUOTE = exports.ALL_BLOCK_TYPES = void 0;
|
6
|
+
exports.getBlockTypesInDropdown = exports.WRAPPER_BLOCK_TYPES = exports.TEXT_BLOCK_TYPES = exports.PANEL = exports.OTHER = exports.NORMAL_TEXT = exports.HEADING_6 = exports.HEADING_5 = exports.HEADING_4 = exports.HEADING_3 = exports.HEADING_2 = exports.HEADING_1 = exports.HEADINGS_BY_NAME = exports.HEADINGS_BY_LEVEL = exports.CODE_BLOCK = exports.BLOCK_QUOTE = exports.ALL_BLOCK_TYPES = void 0;
|
7
7
|
var _messages = require("@atlaskit/editor-common/messages");
|
8
|
+
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
8
9
|
var NORMAL_TEXT = exports.NORMAL_TEXT = {
|
9
10
|
name: 'normal',
|
10
11
|
title: _messages.blockTypeMessages.normal,
|
@@ -56,7 +57,8 @@ var HEADING_6 = exports.HEADING_6 = {
|
|
56
57
|
var BLOCK_QUOTE = exports.BLOCK_QUOTE = {
|
57
58
|
name: 'blockquote',
|
58
59
|
title: _messages.blockTypeMessages.blockquote,
|
59
|
-
nodeName: 'blockquote'
|
60
|
+
nodeName: 'blockquote',
|
61
|
+
tagName: 'blockquote'
|
60
62
|
};
|
61
63
|
var CODE_BLOCK = exports.CODE_BLOCK = {
|
62
64
|
name: 'codeblock',
|
@@ -76,6 +78,11 @@ var OTHER = exports.OTHER = {
|
|
76
78
|
var TEXT_BLOCK_TYPES = exports.TEXT_BLOCK_TYPES = [NORMAL_TEXT, HEADING_1, HEADING_2, HEADING_3, HEADING_4, HEADING_5, HEADING_6];
|
77
79
|
var WRAPPER_BLOCK_TYPES = exports.WRAPPER_BLOCK_TYPES = [BLOCK_QUOTE, CODE_BLOCK, PANEL];
|
78
80
|
var ALL_BLOCK_TYPES = exports.ALL_BLOCK_TYPES = TEXT_BLOCK_TYPES.concat(WRAPPER_BLOCK_TYPES);
|
81
|
+
var getBlockTypesInDropdown = exports.getBlockTypesInDropdown = function getBlockTypesInDropdown(includeBlockQuoteAsTextstyleOption) {
|
82
|
+
return (0, _experiments.editorExperiment)('platform_editor_blockquote_in_text_formatting_menu', true, {
|
83
|
+
exposure: true
|
84
|
+
}) && includeBlockQuoteAsTextstyleOption ? [].concat(TEXT_BLOCK_TYPES, [BLOCK_QUOTE]) : TEXT_BLOCK_TYPES;
|
85
|
+
};
|
79
86
|
var HEADINGS_BY_LEVEL = exports.HEADINGS_BY_LEVEL = TEXT_BLOCK_TYPES.reduce(function (acc, blockType) {
|
80
87
|
if (blockType.level && blockType.nodeName === 'heading') {
|
81
88
|
acc[blockType.level] = blockType;
|
@@ -4,16 +4,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.insertBlockQuoteWithAnalytics = exports.cleanUpAtTheStartOfDocument = void 0;
|
7
|
+
exports.insertBlockQuoteWithAnalyticsCommand = insertBlockQuoteWithAnalyticsCommand;
|
7
8
|
exports.setBlockType = setBlockType;
|
8
9
|
exports.setBlockTypeWithAnalytics = setBlockTypeWithAnalytics;
|
9
10
|
exports.setHeading = setHeading;
|
10
11
|
exports.setHeadingWithAnalytics = void 0;
|
12
|
+
exports.setNormalText = setNormalText;
|
11
13
|
exports.setNormalTextWithAnalytics = setNormalTextWithAnalytics;
|
12
14
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
13
15
|
var _editorAnalytics = require("@atlaskit/editor-common/editor-analytics");
|
14
16
|
var _utils = require("@atlaskit/editor-common/utils");
|
17
|
+
var _model = require("@atlaskit/editor-prosemirror/model");
|
15
18
|
var _editorTables = require("@atlaskit/editor-tables");
|
16
19
|
var _blockTypes = require("../block-types");
|
20
|
+
var _wrapSelectionIn = require("./wrapSelectionIn");
|
17
21
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
18
22
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
19
23
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
@@ -35,7 +39,7 @@ function setBlockType(name) {
|
|
35
39
|
return null;
|
36
40
|
};
|
37
41
|
}
|
38
|
-
function setHeading(level) {
|
42
|
+
function setHeading(level, fromBlockQuote) {
|
39
43
|
return function (_ref2) {
|
40
44
|
var tr = _ref2.tr;
|
41
45
|
var selection = tr.selection,
|
@@ -44,32 +48,45 @@ function setHeading(level) {
|
|
44
48
|
ranges.forEach(function (_ref3) {
|
45
49
|
var $from = _ref3.$from,
|
46
50
|
$to = _ref3.$to;
|
47
|
-
|
48
|
-
|
49
|
-
|
51
|
+
if (fromBlockQuote) {
|
52
|
+
var range = $from.blockRange($to);
|
53
|
+
if (!range) {
|
54
|
+
return;
|
55
|
+
}
|
56
|
+
var content = $from.node().content;
|
57
|
+
var headingNode = schema.nodes.heading.createChecked({
|
58
|
+
level: level
|
59
|
+
}, content);
|
60
|
+
var slice = new _model.Slice(_model.Fragment.from(headingNode), 0, 0);
|
61
|
+
tr.replaceRange(range.start, range.end, slice);
|
62
|
+
} else {
|
63
|
+
tr.setBlockType($from.pos, $to.pos, schema.nodes.heading, {
|
64
|
+
level: level
|
65
|
+
});
|
66
|
+
}
|
50
67
|
});
|
51
68
|
return tr;
|
52
69
|
};
|
53
70
|
}
|
54
|
-
function setBlockTypeWithAnalytics(name, inputMethod, editorAnalyticsApi) {
|
71
|
+
function setBlockTypeWithAnalytics(name, inputMethod, editorAnalyticsApi, fromBlockQuote) {
|
55
72
|
return function (_ref4) {
|
56
73
|
var tr = _ref4.tr;
|
57
74
|
var nodes = tr.doc.type.schema.nodes;
|
58
75
|
if (name === 'normal' && nodes.paragraph) {
|
59
|
-
return setNormalTextWithAnalytics(inputMethod, editorAnalyticsApi)({
|
76
|
+
return setNormalTextWithAnalytics(inputMethod, editorAnalyticsApi, fromBlockQuote)({
|
60
77
|
tr: tr
|
61
78
|
});
|
62
79
|
}
|
63
80
|
var headingBlockType = _blockTypes.HEADINGS_BY_NAME[name];
|
64
81
|
if (headingBlockType && nodes.heading && headingBlockType.level) {
|
65
|
-
return setHeadingWithAnalytics(headingBlockType.level, inputMethod, editorAnalyticsApi)({
|
82
|
+
return setHeadingWithAnalytics(headingBlockType.level, inputMethod, editorAnalyticsApi, fromBlockQuote)({
|
66
83
|
tr: tr
|
67
84
|
});
|
68
85
|
}
|
69
86
|
return null;
|
70
87
|
};
|
71
88
|
}
|
72
|
-
function setNormalText() {
|
89
|
+
function setNormalText(fromBlockQuote) {
|
73
90
|
return function (_ref5) {
|
74
91
|
var tr = _ref5.tr;
|
75
92
|
var selection = tr.selection,
|
@@ -78,7 +95,15 @@ function setNormalText() {
|
|
78
95
|
ranges.forEach(function (_ref6) {
|
79
96
|
var $from = _ref6.$from,
|
80
97
|
$to = _ref6.$to;
|
81
|
-
|
98
|
+
if (fromBlockQuote) {
|
99
|
+
var range = $from.blockRange($to);
|
100
|
+
if (!range) {
|
101
|
+
return;
|
102
|
+
}
|
103
|
+
tr.lift(range, 0);
|
104
|
+
} else {
|
105
|
+
tr.setBlockType($from.pos, $to.pos, schema.nodes.paragraph);
|
106
|
+
}
|
82
107
|
});
|
83
108
|
return tr;
|
84
109
|
};
|
@@ -120,7 +145,7 @@ function withCurrentHeadingLevel(fn) {
|
|
120
145
|
});
|
121
146
|
};
|
122
147
|
}
|
123
|
-
function setNormalTextWithAnalytics(inputMethod, editorAnalyticsApi) {
|
148
|
+
function setNormalTextWithAnalytics(inputMethod, editorAnalyticsApi, fromBlockQuote) {
|
124
149
|
return withCurrentHeadingLevel(function (previousHeadingLevel) {
|
125
150
|
return function (_ref8) {
|
126
151
|
var tr = _ref8.tr;
|
@@ -135,13 +160,13 @@ function setNormalTextWithAnalytics(inputMethod, editorAnalyticsApi) {
|
|
135
160
|
previousHeadingLevel: previousHeadingLevel
|
136
161
|
}
|
137
162
|
})(tr);
|
138
|
-
return setNormalText()({
|
163
|
+
return setNormalText(fromBlockQuote)({
|
139
164
|
tr: tr
|
140
165
|
});
|
141
166
|
};
|
142
167
|
});
|
143
168
|
}
|
144
|
-
var setHeadingWithAnalytics = exports.setHeadingWithAnalytics = function setHeadingWithAnalytics(newHeadingLevel, inputMethod, editorAnalyticsApi) {
|
169
|
+
var setHeadingWithAnalytics = exports.setHeadingWithAnalytics = function setHeadingWithAnalytics(newHeadingLevel, inputMethod, editorAnalyticsApi, fromBlockQuote) {
|
145
170
|
return withCurrentHeadingLevel(function (previousHeadingLevel) {
|
146
171
|
return function (_ref9) {
|
147
172
|
var tr = _ref9.tr;
|
@@ -156,7 +181,7 @@ var setHeadingWithAnalytics = exports.setHeadingWithAnalytics = function setHead
|
|
156
181
|
previousHeadingLevel: previousHeadingLevel
|
157
182
|
}
|
158
183
|
})(tr);
|
159
|
-
return setHeading(newHeadingLevel)({
|
184
|
+
return setHeading(newHeadingLevel, fromBlockQuote)({
|
160
185
|
tr: tr
|
161
186
|
});
|
162
187
|
};
|
@@ -191,9 +216,33 @@ var insertBlockQuoteWithAnalytics = exports.insertBlockQuoteWithAnalytics = func
|
|
191
216
|
}
|
192
217
|
})(insertBlockQuote());
|
193
218
|
};
|
219
|
+
function insertBlockQuoteWithAnalyticsCommand(inputMethod, editorAnalyticsApi) {
|
220
|
+
return withCurrentHeadingLevel(function (previousHeadingLevel) {
|
221
|
+
return function (_ref10) {
|
222
|
+
var tr = _ref10.tr;
|
223
|
+
var nodes = tr.doc.type.schema.nodes;
|
224
|
+
|
225
|
+
// TODO: analytics event
|
226
|
+
|
227
|
+
// editorAnalyticsApi?.attachAnalyticsEvent({
|
228
|
+
// action: ACTION.FORMATTED,
|
229
|
+
// actionSubject: ACTION_SUBJECT.TEXT,
|
230
|
+
// eventType: EVENT_TYPE.TRACK,
|
231
|
+
// actionSubjectId: ACTION_SUBJECT_ID.FORMAT_BLOCK_QUOTE,
|
232
|
+
// attributes: {
|
233
|
+
// inputMethod: inputMethod,
|
234
|
+
// },
|
235
|
+
// })(tr);
|
236
|
+
|
237
|
+
return (0, _wrapSelectionIn.wrapSelectionInBlockType)(nodes.blockquote)({
|
238
|
+
tr: tr
|
239
|
+
});
|
240
|
+
};
|
241
|
+
});
|
242
|
+
}
|
194
243
|
var cleanUpAtTheStartOfDocument = exports.cleanUpAtTheStartOfDocument = function cleanUpAtTheStartOfDocument(state, dispatch) {
|
195
|
-
var
|
196
|
-
$cursor =
|
244
|
+
var _ref11 = state.selection,
|
245
|
+
$cursor = _ref11.$cursor;
|
197
246
|
if ($cursor && !$cursor.nodeBefore && !$cursor.nodeAfter && $cursor.pos === 1) {
|
198
247
|
var tr = state.tr,
|
199
248
|
schema = state.schema;
|
@@ -0,0 +1,61 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.wrapSelectionInBlockType = wrapSelectionInBlockType;
|
7
|
+
var _model = require("@atlaskit/editor-prosemirror/model");
|
8
|
+
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
9
|
+
function wrapSelectionInBlockType(nodeType) {
|
10
|
+
return function (_ref) {
|
11
|
+
var tr = _ref.tr;
|
12
|
+
var nodes = tr.doc.type.schema.nodes;
|
13
|
+
var _tr$doc$type$schema$m = tr.doc.type.schema.marks,
|
14
|
+
alignment = _tr$doc$type$schema$m.alignment,
|
15
|
+
indentation = _tr$doc$type$schema$m.indentation;
|
16
|
+
if (nodes.paragraph && nodes.blockquote) {
|
17
|
+
/**Remove alignment and indentation marks from the selection */
|
18
|
+
var marksToRemove = [alignment, indentation];
|
19
|
+
var hasMark = function hasMark(mark) {
|
20
|
+
return marksToRemove.indexOf(mark.type) > -1;
|
21
|
+
};
|
22
|
+
var not = function not(fn) {
|
23
|
+
return function (arg) {
|
24
|
+
return !fn(arg);
|
25
|
+
};
|
26
|
+
};
|
27
|
+
|
28
|
+
/**
|
29
|
+
* When you need to toggle the selection
|
30
|
+
* when another type which does not allow alignment is applied
|
31
|
+
*/
|
32
|
+
tr.doc.nodesBetween(tr.selection.from, tr.selection.to, function (node, pos) {
|
33
|
+
if (node.type === nodes.paragraph && node.marks.some(hasMark)) {
|
34
|
+
var resolvedPos = tr.doc.resolve(pos);
|
35
|
+
var withoutBlockMarks = node.marks.filter(not(hasMark));
|
36
|
+
tr = tr.setNodeMarkup(resolvedPos.pos, undefined, node.attrs, withoutBlockMarks);
|
37
|
+
}
|
38
|
+
});
|
39
|
+
|
40
|
+
/** Get range and wrapping needed for the selection */
|
41
|
+
var _tr$selection = tr.selection,
|
42
|
+
$from = _tr$selection.$from,
|
43
|
+
$to = _tr$selection.$to;
|
44
|
+
var range = $from.blockRange($to);
|
45
|
+
var wrapping = range && (0, _transform.findWrapping)(range, nodes.blockquote);
|
46
|
+
if (wrapping) {
|
47
|
+
/** Wrap the selection */
|
48
|
+
tr.wrap(range, wrapping).scrollIntoView();
|
49
|
+
} else {
|
50
|
+
/** If wrapping is not possible, replace with a blockquote */
|
51
|
+
var start = $from.start();
|
52
|
+
var end = $to.end();
|
53
|
+
var content = $from.node().content;
|
54
|
+
var blockquote = nodes.blockquote.create({}, nodes.paragraph.create({}, content));
|
55
|
+
var slice = new _model.Slice(_model.Fragment.from(blockquote), 0, 0);
|
56
|
+
tr.replaceRange(start, end, slice).scrollIntoView();
|
57
|
+
}
|
58
|
+
}
|
59
|
+
return tr;
|
60
|
+
};
|
61
|
+
}
|
@@ -25,6 +25,8 @@ var blockTypeForNode = function blockTypeForNode(node, schema) {
|
|
25
25
|
}
|
26
26
|
} else if (node.type === schema.nodes.paragraph) {
|
27
27
|
return _blockTypes.NORMAL_TEXT;
|
28
|
+
} else if (node.type === schema.nodes.blockquote) {
|
29
|
+
return _blockTypes.BLOCK_QUOTE;
|
28
30
|
}
|
29
31
|
return _blockTypes.OTHER;
|
30
32
|
};
|
@@ -67,6 +69,7 @@ var detectBlockType = function detectBlockType(availableBlockTypes, state) {
|
|
67
69
|
} else if (blockType !== _blockTypes.OTHER && blockType !== nodeBlockType[0]) {
|
68
70
|
blockType = _blockTypes.OTHER;
|
69
71
|
}
|
72
|
+
return false;
|
70
73
|
}
|
71
74
|
});
|
72
75
|
return blockType || _blockTypes.OTHER;
|
@@ -78,7 +81,7 @@ var autoformatHeading = function autoformatHeading(headingLevel, editorAnalytics
|
|
78
81
|
return (0, _blockType.setHeadingWithAnalytics)(headingLevel, _analytics.INPUT_METHOD.FORMATTING, editorAnalyticsApi);
|
79
82
|
};
|
80
83
|
var pluginKey = exports.pluginKey = new _state.PluginKey('blockTypePlugin');
|
81
|
-
var createPlugin = exports.createPlugin = function createPlugin(editorAPI, dispatch, lastNodeMustBeParagraph) {
|
84
|
+
var createPlugin = exports.createPlugin = function createPlugin(editorAPI, dispatch, lastNodeMustBeParagraph, includeBlockQuoteAsTextstyleOption) {
|
82
85
|
var _editorAPI$analytics;
|
83
86
|
var editorAnalyticsApi = editorAPI === null || editorAPI === void 0 || (_editorAPI$analytics = editorAPI.analytics) === null || _editorAPI$analytics === void 0 ? void 0 : _editorAPI$analytics.actions;
|
84
87
|
var altKeyLocation = 0;
|
@@ -101,16 +104,21 @@ var createPlugin = exports.createPlugin = function createPlugin(editorAPI, dispa
|
|
101
104
|
var availableWrapperBlockTypes = _blockTypes.WRAPPER_BLOCK_TYPES.filter(function (blockType) {
|
102
105
|
return isBlockTypeSchemaSupported(blockType, state);
|
103
106
|
});
|
107
|
+
var BLOCK_TYPES_IN_DROPDOWN = (0, _blockTypes.getBlockTypesInDropdown)(includeBlockQuoteAsTextstyleOption);
|
108
|
+
var availableBlockTypesInDropdown = BLOCK_TYPES_IN_DROPDOWN.filter(function (blockType) {
|
109
|
+
return isBlockTypeSchemaSupported(blockType, state);
|
110
|
+
});
|
104
111
|
return {
|
105
|
-
currentBlockType: detectBlockType(
|
112
|
+
currentBlockType: detectBlockType(availableBlockTypesInDropdown, state),
|
106
113
|
blockTypesDisabled: (0, _utils.areBlockTypesDisabled)(state),
|
107
114
|
availableBlockTypes: availableBlockTypes,
|
108
|
-
availableWrapperBlockTypes: availableWrapperBlockTypes
|
115
|
+
availableWrapperBlockTypes: availableWrapperBlockTypes,
|
116
|
+
availableBlockTypesInDropdown: availableBlockTypesInDropdown
|
109
117
|
};
|
110
118
|
},
|
111
119
|
apply: function apply(_tr, oldPluginState, _oldState, newState) {
|
112
120
|
var newPluginState = _objectSpread(_objectSpread({}, oldPluginState), {}, {
|
113
|
-
currentBlockType: detectBlockType(oldPluginState.
|
121
|
+
currentBlockType: detectBlockType(oldPluginState.availableBlockTypesInDropdown, newState),
|
114
122
|
blockTypesDisabled: (0, _utils.areBlockTypesDisabled)(newState)
|
115
123
|
});
|
116
124
|
if (newPluginState.currentBlockType !== oldPluginState.currentBlockType || newPluginState.blockTypesDisabled !== oldPluginState.blockTypesDisabled) {
|
@@ -26,12 +26,17 @@ function FloatingToolbarComponent(_ref) {
|
|
26
26
|
var _api$core, _api$blockType;
|
27
27
|
return api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 ? void 0 : _api$core.actions.execute(api === null || api === void 0 || (_api$blockType = api.blockType) === null || _api$blockType === void 0 || (_api$blockType = _api$blockType.commands) === null || _api$blockType === void 0 ? void 0 : _api$blockType.setTextLevel(name, _analytics.INPUT_METHOD.FLOATING_TB));
|
28
28
|
}, [api]);
|
29
|
+
var wrapBlockQuote = (0, _react.useCallback)(function () {
|
30
|
+
var _api$core2, _api$blockType2;
|
31
|
+
return api === null || api === void 0 || (_api$core2 = api.core) === null || _api$core2 === void 0 ? void 0 : _api$core2.actions.execute(api === null || api === void 0 || (_api$blockType2 = api.blockType) === null || _api$blockType2 === void 0 || (_api$blockType2 = _api$blockType2.commands) === null || _api$blockType2 === void 0 ? void 0 : _api$blockType2.insertBlockQuote(_analytics.INPUT_METHOD.TOOLBAR));
|
32
|
+
}, [api]);
|
29
33
|
return /*#__PURE__*/_react.default.createElement(_ToolbarBlockType.default, {
|
30
34
|
isSmall: FloatingToolbarSettings.isSmall,
|
31
35
|
isDisabled: FloatingToolbarSettings.disabled,
|
32
36
|
isReducedSpacing: FloatingToolbarSettings.isToolbarReducedSpacing,
|
33
37
|
setTextLevel: boundSetBlockType,
|
34
38
|
pluginState: blockTypeState,
|
39
|
+
wrapBlockQuote: wrapBlockQuote,
|
35
40
|
shouldUseDefaultRole: FloatingToolbarSettings.shouldUseDefaultRole,
|
36
41
|
api: api
|
37
42
|
});
|
@@ -20,15 +20,20 @@ function PrimaryToolbarComponent(_ref) {
|
|
20
20
|
shouldUseDefaultRole = _ref.shouldUseDefaultRole;
|
21
21
|
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['blockType']),
|
22
22
|
blockTypeState = _useSharedPluginState.blockTypeState;
|
23
|
-
var boundSetBlockType = function boundSetBlockType(name) {
|
23
|
+
var boundSetBlockType = function boundSetBlockType(name, fromBlockQuote) {
|
24
24
|
var _api$core, _api$blockType;
|
25
|
-
return api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 ? void 0 : _api$core.actions.execute(api === null || api === void 0 || (_api$blockType = api.blockType) === null || _api$blockType === void 0 || (_api$blockType = _api$blockType.commands) === null || _api$blockType === void 0 ? void 0 : _api$blockType.setTextLevel(name, _analytics.INPUT_METHOD.TOOLBAR));
|
25
|
+
return api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 ? void 0 : _api$core.actions.execute(api === null || api === void 0 || (_api$blockType = api.blockType) === null || _api$blockType === void 0 || (_api$blockType = _api$blockType.commands) === null || _api$blockType === void 0 ? void 0 : _api$blockType.setTextLevel(name, _analytics.INPUT_METHOD.TOOLBAR, fromBlockQuote));
|
26
|
+
};
|
27
|
+
var wrapBlockQuote = function wrapBlockQuote() {
|
28
|
+
var _api$core2, _api$blockType2;
|
29
|
+
return api === null || api === void 0 || (_api$core2 = api.core) === null || _api$core2 === void 0 ? void 0 : _api$core2.actions.execute(api === null || api === void 0 || (_api$blockType2 = api.blockType) === null || _api$blockType2 === void 0 || (_api$blockType2 = _api$blockType2.commands) === null || _api$blockType2 === void 0 ? void 0 : _api$blockType2.insertBlockQuote(_analytics.INPUT_METHOD.TOOLBAR));
|
26
30
|
};
|
27
31
|
return /*#__PURE__*/_react.default.createElement(_ToolbarBlockType.default, {
|
28
32
|
isSmall: isSmall,
|
29
33
|
isDisabled: disabled,
|
30
34
|
isReducedSpacing: isToolbarReducedSpacing,
|
31
35
|
setTextLevel: boundSetBlockType,
|
36
|
+
wrapBlockQuote: wrapBlockQuote,
|
32
37
|
pluginState: blockTypeState,
|
33
38
|
popupsMountPoint: popupsMountPoint,
|
34
39
|
popupsBoundariesElement: popupsBoundariesElement,
|
@@ -7,10 +7,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
exports.default = void 0;
|
8
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
9
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
10
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
11
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
12
10
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
13
11
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
14
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
15
14
|
var _react = _interopRequireDefault(require("react"));
|
16
15
|
var _react2 = require("@emotion/react");
|
@@ -24,42 +23,40 @@ var _blocktypeButton = require("./blocktype-button");
|
|
24
23
|
var _styled = require("./styled");
|
25
24
|
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; }
|
26
25
|
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; }
|
27
|
-
function
|
26
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
28
27
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /**
|
29
28
|
* @jsxRuntime classic
|
30
29
|
* @jsx jsx
|
31
30
|
*/ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
32
31
|
// eslint-disable-next-line @repo/internal/react/no-class-components
|
33
32
|
var ToolbarBlockType = /*#__PURE__*/function (_React$PureComponent) {
|
34
|
-
(0, _inherits2.default)(ToolbarBlockType, _React$PureComponent);
|
35
|
-
var _super = _createSuper(ToolbarBlockType);
|
36
33
|
function ToolbarBlockType() {
|
37
34
|
var _this;
|
38
35
|
(0, _classCallCheck2.default)(this, ToolbarBlockType);
|
39
36
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
40
37
|
args[_key] = arguments[_key];
|
41
38
|
}
|
42
|
-
_this =
|
43
|
-
(0, _defineProperty2.default)(
|
39
|
+
_this = _callSuper(this, ToolbarBlockType, [].concat(args));
|
40
|
+
(0, _defineProperty2.default)(_this, "state", {
|
44
41
|
active: false,
|
45
42
|
isOpenedByKeyboard: false,
|
46
43
|
typographyTheme: undefined,
|
47
44
|
observer: null
|
48
45
|
});
|
49
46
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
50
|
-
(0, _defineProperty2.default)(
|
47
|
+
(0, _defineProperty2.default)(_this, "onOpenChange", function (attrs) {
|
51
48
|
_this.setState(_objectSpread(_objectSpread({}, _this.state), {}, {
|
52
49
|
active: attrs.isOpen,
|
53
50
|
isOpenedByKeyboard: attrs.isOpenedByKeyboard
|
54
51
|
}));
|
55
52
|
});
|
56
|
-
(0, _defineProperty2.default)(
|
53
|
+
(0, _defineProperty2.default)(_this, "handleTriggerClick", function () {
|
57
54
|
_this.onOpenChange({
|
58
55
|
isOpen: !_this.state.active,
|
59
56
|
isOpenedByKeyboard: false
|
60
57
|
});
|
61
58
|
});
|
62
|
-
(0, _defineProperty2.default)(
|
59
|
+
(0, _defineProperty2.default)(_this, "handleTriggerByKeyboard", function (event) {
|
63
60
|
if (event.key === 'Enter' || event.key === ' ') {
|
64
61
|
event.preventDefault();
|
65
62
|
_this.onOpenChange({
|
@@ -68,12 +65,12 @@ var ToolbarBlockType = /*#__PURE__*/function (_React$PureComponent) {
|
|
68
65
|
});
|
69
66
|
}
|
70
67
|
});
|
71
|
-
(0, _defineProperty2.default)(
|
68
|
+
(0, _defineProperty2.default)(_this, "createItems", function () {
|
72
69
|
var formatMessage = _this.props.intl.formatMessage;
|
73
70
|
var _this$props$pluginSta = _this.props.pluginState,
|
74
71
|
currentBlockType = _this$props$pluginSta.currentBlockType,
|
75
|
-
|
76
|
-
var items =
|
72
|
+
availableBlockTypesInDropdown = _this$props$pluginSta.availableBlockTypesInDropdown;
|
73
|
+
var items = availableBlockTypesInDropdown.map(function (blockType, index) {
|
77
74
|
var isActive = currentBlockType === blockType;
|
78
75
|
var tagName = blockType.tagName || 'p';
|
79
76
|
var Tag = tagName;
|
@@ -101,12 +98,17 @@ var ToolbarBlockType = /*#__PURE__*/function (_React$PureComponent) {
|
|
101
98
|
items: items
|
102
99
|
}];
|
103
100
|
});
|
104
|
-
(0, _defineProperty2.default)(
|
101
|
+
(0, _defineProperty2.default)(_this, "handleSelectBlockType", function (_ref) {
|
105
102
|
var item = _ref.item,
|
106
103
|
_ref$shouldCloseMenu = _ref.shouldCloseMenu,
|
107
104
|
shouldCloseMenu = _ref$shouldCloseMenu === void 0 ? true : _ref$shouldCloseMenu;
|
108
105
|
var blockType = item.value;
|
109
|
-
|
106
|
+
if (blockType.name === 'blockquote') {
|
107
|
+
_this.props.wrapBlockQuote(blockType.name);
|
108
|
+
} else {
|
109
|
+
var fromBlockQuote = _this.props.pluginState.currentBlockType.name === 'blockquote';
|
110
|
+
_this.props.setTextLevel(blockType.name, fromBlockQuote);
|
111
|
+
}
|
110
112
|
if (shouldCloseMenu) {
|
111
113
|
_this.setState(_objectSpread(_objectSpread({}, _this.state), {}, {
|
112
114
|
active: false
|
@@ -115,7 +117,8 @@ var ToolbarBlockType = /*#__PURE__*/function (_React$PureComponent) {
|
|
115
117
|
});
|
116
118
|
return _this;
|
117
119
|
}
|
118
|
-
(0,
|
120
|
+
(0, _inherits2.default)(ToolbarBlockType, _React$PureComponent);
|
121
|
+
return (0, _createClass2.default)(ToolbarBlockType, [{
|
119
122
|
key: "componentDidMount",
|
120
123
|
value: function componentDidMount() {
|
121
124
|
var _this2 = this;
|
@@ -155,6 +158,7 @@ var ToolbarBlockType = /*#__PURE__*/function (_React$PureComponent) {
|
|
155
158
|
currentBlockType = _this$props$pluginSta2.currentBlockType,
|
156
159
|
blockTypesDisabled = _this$props$pluginSta2.blockTypesDisabled,
|
157
160
|
availableBlockTypes = _this$props$pluginSta2.availableBlockTypes,
|
161
|
+
availableBlockTypesInDropdown = _this$props$pluginSta2.availableBlockTypesInDropdown,
|
158
162
|
shouldUseDefaultRole = _this$props.shouldUseDefaultRole,
|
159
163
|
formatMessage = _this$props.intl.formatMessage,
|
160
164
|
api = _this$props.api;
|
@@ -164,12 +168,12 @@ var ToolbarBlockType = /*#__PURE__*/function (_React$PureComponent) {
|
|
164
168
|
if (isHeadingDisabled) {
|
165
169
|
return null;
|
166
170
|
}
|
167
|
-
var blockTypeTitles =
|
171
|
+
var blockTypeTitles = availableBlockTypesInDropdown.filter(function (blockType) {
|
168
172
|
return blockType.name === currentBlockType.name;
|
169
173
|
}).map(function (blockType) {
|
170
174
|
return blockType.title;
|
171
175
|
});
|
172
|
-
if (!this.props.isDisabled && !blockTypesDisabled) {
|
176
|
+
if (!this.props.isDisabled && (!blockTypesDisabled || currentBlockType.name === 'blockquote')) {
|
173
177
|
var items = this.createItems();
|
174
178
|
return (
|
175
179
|
// eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
@@ -235,6 +239,5 @@ var ToolbarBlockType = /*#__PURE__*/function (_React$PureComponent) {
|
|
235
239
|
);
|
236
240
|
}
|
237
241
|
}]);
|
238
|
-
return ToolbarBlockType;
|
239
242
|
}(_react.default.PureComponent);
|
240
243
|
var _default = exports.default = (0, _reactIntlNext.injectIntl)(ToolbarBlockType);
|
@@ -20,7 +20,7 @@ var blockTypeMenuItemStyle = exports.blockTypeMenuItemStyle = function blockType
|
|
20
20
|
return function () {
|
21
21
|
return (0, _react.css)(
|
22
22
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
|
23
|
-
(0, _styles.headingsSharedStyles)(typographyTheme), {
|
23
|
+
tagName === 'blockquote' ? _styles.blockquoteSharedStyles : (0, _styles.headingsSharedStyles)(typographyTheme), {
|
24
24
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
|
25
25
|
'>': {
|
26
26
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
|
@@ -7,6 +7,7 @@ exports.areBlockTypesDisabled = areBlockTypesDisabled;
|
|
7
7
|
exports.isNodeAWrappingBlockNode = exports.createWrappingTextBlockRule = exports.createJoinNodesRule = void 0;
|
8
8
|
var _utils = require("@atlaskit/editor-common/utils");
|
9
9
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
10
|
+
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
10
11
|
var _blockTypes = require("./block-types");
|
11
12
|
var isNodeAWrappingBlockNode = exports.isNodeAWrappingBlockNode = function isNodeAWrappingBlockNode(node) {
|
12
13
|
if (!node) {
|
@@ -82,7 +83,22 @@ function getSelectedWrapperNodes(state) {
|
|
82
83
|
*/
|
83
84
|
function areBlockTypesDisabled(state) {
|
84
85
|
var nodesTypes = getSelectedWrapperNodes(state);
|
85
|
-
var
|
86
|
+
var _state$schema$nodes2 = state.schema.nodes,
|
87
|
+
panel = _state$schema$nodes2.panel,
|
88
|
+
blockquote = _state$schema$nodes2.blockquote;
|
89
|
+
if ((0, _experiments.editorExperiment)('platform_editor_blockquote_in_text_formatting_menu', true)) {
|
90
|
+
var hasQuote = false;
|
91
|
+
var _state$selection2 = state.selection,
|
92
|
+
$from = _state$selection2.$from,
|
93
|
+
$to = _state$selection2.$to;
|
94
|
+
state.doc.nodesBetween($from.pos, $to.pos, function (node) {
|
95
|
+
hasQuote = node.type === blockquote;
|
96
|
+
return !hasQuote;
|
97
|
+
});
|
98
|
+
return nodesTypes.filter(function (type) {
|
99
|
+
return type !== panel;
|
100
|
+
}).length > 0 || hasQuote;
|
101
|
+
}
|
86
102
|
return nodesTypes.filter(function (type) {
|
87
103
|
return type !== panel;
|
88
104
|
}).length > 0;
|
@@ -7,7 +7,7 @@ import { IconHeading, IconQuote } from '@atlaskit/editor-common/quick-insert';
|
|
7
7
|
import { ToolbarSize } from '@atlaskit/editor-common/types';
|
8
8
|
import { fg } from '@atlaskit/platform-feature-flags';
|
9
9
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
10
|
-
import { setBlockTypeWithAnalytics, insertBlockQuoteWithAnalytics } from './pm-plugins/commands/block-type';
|
10
|
+
import { setBlockTypeWithAnalytics, insertBlockQuoteWithAnalytics, insertBlockQuoteWithAnalyticsCommand } from './pm-plugins/commands/block-type';
|
11
11
|
import inputRulePlugin from './pm-plugins/input-rule';
|
12
12
|
import keymapPlugin from './pm-plugins/keymap';
|
13
13
|
import { createPlugin, pluginKey } from './pm-plugins/main';
|
@@ -143,7 +143,7 @@ const blockTypePlugin = ({
|
|
143
143
|
name: 'blockType',
|
144
144
|
plugin: ({
|
145
145
|
dispatch
|
146
|
-
}) => createPlugin(api, dispatch, options && options.lastNodeMustBeParagraph)
|
146
|
+
}) => createPlugin(api, dispatch, options && options.lastNodeMustBeParagraph, options === null || options === void 0 ? void 0 : options.includeBlockQuoteAsTextstyleOption)
|
147
147
|
}, {
|
148
148
|
name: 'blockTypeInputRule',
|
149
149
|
plugin: ({
|
@@ -174,9 +174,13 @@ const blockTypePlugin = ({
|
|
174
174
|
}
|
175
175
|
},
|
176
176
|
commands: {
|
177
|
-
setTextLevel(level, inputMethod) {
|
177
|
+
setTextLevel(level, inputMethod, fromBlockQuote = false) {
|
178
178
|
var _api$analytics4;
|
179
|
-
return setBlockTypeWithAnalytics(level, inputMethod, api === null || api === void 0 ? void 0 : (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions);
|
179
|
+
return setBlockTypeWithAnalytics(level, inputMethod, api === null || api === void 0 ? void 0 : (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions, fromBlockQuote);
|
180
|
+
},
|
181
|
+
insertBlockQuote(inputMethod) {
|
182
|
+
var _api$analytics5;
|
183
|
+
return insertBlockQuoteWithAnalyticsCommand(inputMethod, api === null || api === void 0 ? void 0 : (_api$analytics5 = api.analytics) === null || _api$analytics5 === void 0 ? void 0 : _api$analytics5.actions);
|
180
184
|
}
|
181
185
|
},
|
182
186
|
getSharedState(editorState) {
|
@@ -213,9 +217,9 @@ const blockTypePlugin = ({
|
|
213
217
|
}
|
214
218
|
},
|
215
219
|
quickInsert: intl => {
|
216
|
-
var _api$
|
220
|
+
var _api$analytics6, _api$analytics7;
|
217
221
|
const exclude = options && options.allowBlockType && options.allowBlockType.exclude ? options.allowBlockType.exclude : [];
|
218
|
-
return [...blockquotePluginOptions(intl, exclude.indexOf('blockquote') === -1, api === null || api === void 0 ? void 0 : (_api$
|
222
|
+
return [...blockquotePluginOptions(intl, exclude.indexOf('blockquote') === -1, api === null || api === void 0 ? void 0 : (_api$analytics6 = api.analytics) === null || _api$analytics6 === void 0 ? void 0 : _api$analytics6.actions), ...headingPluginOptions(intl, exclude.indexOf('heading') === -1, api === null || api === void 0 ? void 0 : (_api$analytics7 = api.analytics) === null || _api$analytics7 === void 0 ? void 0 : _api$analytics7.actions)];
|
219
223
|
}
|
220
224
|
}
|
221
225
|
};
|