@atlaskit/editor-plugin-block-type 4.0.10 → 4.0.12
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 +18 -0
- package/dist/cjs/blockTypePlugin.js +9 -11
- package/dist/cjs/pm-plugins/block-types.js +9 -2
- package/dist/cjs/pm-plugins/commands/block-type.js +63 -15
- package/dist/cjs/pm-plugins/commands/wrapSelectionIn.js +61 -0
- package/dist/cjs/pm-plugins/keymap.js +6 -4
- package/dist/cjs/pm-plugins/main.js +15 -7
- 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 +11 -9
- package/dist/es2019/index.js +3 -0
- 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/keymap.js +3 -1
- package/dist/es2019/pm-plugins/main.js +12 -6
- 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/es2019/ui/consts.js +3 -0
- package/dist/esm/blockTypePlugin.js +11 -8
- package/dist/esm/index.js +3 -0
- 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/keymap.js +3 -1
- package/dist/esm/pm-plugins/main.js +14 -6
- 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/esm/ui/consts.js +3 -0
- package/dist/types/blockTypePlugin.d.ts +0 -2
- package/dist/types/blockTypePluginType.d.ts +2 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/pm-plugins/block-types.d.ts +1 -0
- package/dist/types/pm-plugins/commands/block-type.d.ts +6 -5
- 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/blockTypePlugin.d.ts +0 -2
- package/dist/types-ts4.5/blockTypePluginType.d.ts +2 -1
- package/dist/types-ts4.5/index.d.ts +1 -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 -5
- 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 +6 -6
- package/dist/cjs/pm-plugins/commands/index.js +0 -62
- package/dist/es2019/pm-plugins/commands/index.js +0 -3
- package/dist/esm/pm-plugins/commands/index.js +0 -3
- package/dist/types/pm-plugins/commands/index.d.ts +0 -4
- package/dist/types-ts4.5/pm-plugins/commands/index.d.ts +0 -4
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# @atlaskit/editor-plugin-block-type
|
2
2
|
|
3
|
+
## 4.0.12
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- [#180067](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/180067)
|
8
|
+
[`fdee6c449ca83`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/fdee6c449ca83) -
|
9
|
+
[ux] Adding block quote as an option to the text formatting menu for full page editors
|
10
|
+
- Updated dependencies
|
11
|
+
|
12
|
+
## 4.0.11
|
13
|
+
|
14
|
+
### Patch Changes
|
15
|
+
|
16
|
+
- [#176596](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/176596)
|
17
|
+
[`86e9b63cc47f0`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/86e9b63cc47f0) -
|
18
|
+
Remove internal re-exports
|
19
|
+
- Updated dependencies
|
20
|
+
|
3
21
|
## 4.0.10
|
4
22
|
|
5
23
|
### Patch Changes
|
@@ -5,12 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
6
6
|
});
|
7
7
|
exports.blockTypePlugin = void 0;
|
8
|
-
Object.defineProperty(exports, "pluginKey", {
|
9
|
-
enumerable: true,
|
10
|
-
get: function get() {
|
11
|
-
return _main.pluginKey;
|
12
|
-
}
|
13
|
-
});
|
14
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
15
9
|
var _react = _interopRequireDefault(require("react"));
|
16
10
|
var _adfSchema = require("@atlaskit/adf-schema");
|
@@ -21,7 +15,6 @@ var _quickInsert = require("@atlaskit/editor-common/quick-insert");
|
|
21
15
|
var _types = require("@atlaskit/editor-common/types");
|
22
16
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
23
17
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
24
|
-
var _commands = require("./pm-plugins/commands");
|
25
18
|
var _blockType = require("./pm-plugins/commands/block-type");
|
26
19
|
var _inputRule = _interopRequireDefault(require("./pm-plugins/input-rule"));
|
27
20
|
var _keymap = _interopRequireDefault(require("./pm-plugins/keymap"));
|
@@ -160,7 +153,7 @@ var blockTypePlugin = exports.blockTypePlugin = function blockTypePlugin(_ref3)
|
|
160
153
|
name: 'blockType',
|
161
154
|
plugin: function plugin(_ref5) {
|
162
155
|
var dispatch = _ref5.dispatch;
|
163
|
-
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);
|
164
157
|
}
|
165
158
|
}, {
|
166
159
|
name: 'blockTypeInputRule',
|
@@ -192,7 +185,12 @@ var blockTypePlugin = exports.blockTypePlugin = function blockTypePlugin(_ref3)
|
|
192
185
|
commands: {
|
193
186
|
setTextLevel: function setTextLevel(level, inputMethod) {
|
194
187
|
var _api$analytics4;
|
195
|
-
|
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);
|
196
194
|
}
|
197
195
|
},
|
198
196
|
getSharedState: function getSharedState(editorState) {
|
@@ -229,9 +227,9 @@ var blockTypePlugin = exports.blockTypePlugin = function blockTypePlugin(_ref3)
|
|
229
227
|
}
|
230
228
|
},
|
231
229
|
quickInsert: function quickInsert(intl) {
|
232
|
-
var _api$
|
230
|
+
var _api$analytics6, _api$analytics7;
|
233
231
|
var exclude = options && options.allowBlockType && options.allowBlockType.exclude ? options.allowBlockType.exclude : [];
|
234
|
-
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)));
|
235
233
|
}
|
236
234
|
}
|
237
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,6 +4,7 @@ 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;
|
@@ -13,8 +14,10 @@ exports.setNormalTextWithAnalytics = setNormalTextWithAnalytics;
|
|
13
14
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
14
15
|
var _editorAnalytics = require("@atlaskit/editor-common/editor-analytics");
|
15
16
|
var _utils = require("@atlaskit/editor-common/utils");
|
17
|
+
var _model = require("@atlaskit/editor-prosemirror/model");
|
16
18
|
var _editorTables = require("@atlaskit/editor-tables");
|
17
19
|
var _blockTypes = require("../block-types");
|
20
|
+
var _wrapSelectionIn = require("./wrapSelectionIn");
|
18
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; } } }; }
|
19
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; } }
|
20
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; }
|
@@ -36,7 +39,7 @@ function setBlockType(name) {
|
|
36
39
|
return null;
|
37
40
|
};
|
38
41
|
}
|
39
|
-
function setHeading(level) {
|
42
|
+
function setHeading(level, fromBlockQuote) {
|
40
43
|
return function (_ref2) {
|
41
44
|
var tr = _ref2.tr;
|
42
45
|
var selection = tr.selection,
|
@@ -45,32 +48,45 @@ function setHeading(level) {
|
|
45
48
|
ranges.forEach(function (_ref3) {
|
46
49
|
var $from = _ref3.$from,
|
47
50
|
$to = _ref3.$to;
|
48
|
-
|
49
|
-
|
50
|
-
|
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
|
+
}
|
51
67
|
});
|
52
68
|
return tr;
|
53
69
|
};
|
54
70
|
}
|
55
|
-
function setBlockTypeWithAnalytics(name, inputMethod, editorAnalyticsApi) {
|
71
|
+
function setBlockTypeWithAnalytics(name, inputMethod, editorAnalyticsApi, fromBlockQuote) {
|
56
72
|
return function (_ref4) {
|
57
73
|
var tr = _ref4.tr;
|
58
74
|
var nodes = tr.doc.type.schema.nodes;
|
59
75
|
if (name === 'normal' && nodes.paragraph) {
|
60
|
-
return setNormalTextWithAnalytics(inputMethod, editorAnalyticsApi)({
|
76
|
+
return setNormalTextWithAnalytics(inputMethod, editorAnalyticsApi, fromBlockQuote)({
|
61
77
|
tr: tr
|
62
78
|
});
|
63
79
|
}
|
64
80
|
var headingBlockType = _blockTypes.HEADINGS_BY_NAME[name];
|
65
81
|
if (headingBlockType && nodes.heading && headingBlockType.level) {
|
66
|
-
return setHeadingWithAnalytics(headingBlockType.level, inputMethod, editorAnalyticsApi)({
|
82
|
+
return setHeadingWithAnalytics(headingBlockType.level, inputMethod, editorAnalyticsApi, fromBlockQuote)({
|
67
83
|
tr: tr
|
68
84
|
});
|
69
85
|
}
|
70
86
|
return null;
|
71
87
|
};
|
72
88
|
}
|
73
|
-
function setNormalText() {
|
89
|
+
function setNormalText(fromBlockQuote) {
|
74
90
|
return function (_ref5) {
|
75
91
|
var tr = _ref5.tr;
|
76
92
|
var selection = tr.selection,
|
@@ -79,7 +95,15 @@ function setNormalText() {
|
|
79
95
|
ranges.forEach(function (_ref6) {
|
80
96
|
var $from = _ref6.$from,
|
81
97
|
$to = _ref6.$to;
|
82
|
-
|
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
|
+
}
|
83
107
|
});
|
84
108
|
return tr;
|
85
109
|
};
|
@@ -121,7 +145,7 @@ function withCurrentHeadingLevel(fn) {
|
|
121
145
|
});
|
122
146
|
};
|
123
147
|
}
|
124
|
-
function setNormalTextWithAnalytics(inputMethod, editorAnalyticsApi) {
|
148
|
+
function setNormalTextWithAnalytics(inputMethod, editorAnalyticsApi, fromBlockQuote) {
|
125
149
|
return withCurrentHeadingLevel(function (previousHeadingLevel) {
|
126
150
|
return function (_ref8) {
|
127
151
|
var tr = _ref8.tr;
|
@@ -136,13 +160,13 @@ function setNormalTextWithAnalytics(inputMethod, editorAnalyticsApi) {
|
|
136
160
|
previousHeadingLevel: previousHeadingLevel
|
137
161
|
}
|
138
162
|
})(tr);
|
139
|
-
return setNormalText()({
|
163
|
+
return setNormalText(fromBlockQuote)({
|
140
164
|
tr: tr
|
141
165
|
});
|
142
166
|
};
|
143
167
|
});
|
144
168
|
}
|
145
|
-
var setHeadingWithAnalytics = exports.setHeadingWithAnalytics = function setHeadingWithAnalytics(newHeadingLevel, inputMethod, editorAnalyticsApi) {
|
169
|
+
var setHeadingWithAnalytics = exports.setHeadingWithAnalytics = function setHeadingWithAnalytics(newHeadingLevel, inputMethod, editorAnalyticsApi, fromBlockQuote) {
|
146
170
|
return withCurrentHeadingLevel(function (previousHeadingLevel) {
|
147
171
|
return function (_ref9) {
|
148
172
|
var tr = _ref9.tr;
|
@@ -157,7 +181,7 @@ var setHeadingWithAnalytics = exports.setHeadingWithAnalytics = function setHead
|
|
157
181
|
previousHeadingLevel: previousHeadingLevel
|
158
182
|
}
|
159
183
|
})(tr);
|
160
|
-
return setHeading(newHeadingLevel)({
|
184
|
+
return setHeading(newHeadingLevel, fromBlockQuote)({
|
161
185
|
tr: tr
|
162
186
|
});
|
163
187
|
};
|
@@ -192,9 +216,33 @@ var insertBlockQuoteWithAnalytics = exports.insertBlockQuoteWithAnalytics = func
|
|
192
216
|
}
|
193
217
|
})(insertBlockQuote());
|
194
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
|
+
}
|
195
243
|
var cleanUpAtTheStartOfDocument = exports.cleanUpAtTheStartOfDocument = function cleanUpAtTheStartOfDocument(state, dispatch) {
|
196
|
-
var
|
197
|
-
$cursor =
|
244
|
+
var _ref11 = state.selection,
|
245
|
+
$cursor = _ref11.$cursor;
|
198
246
|
if ($cursor && !$cursor.nodeBefore && !$cursor.nodeAfter && $cursor.pos === 1) {
|
199
247
|
var tr = state.tr,
|
200
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
|
+
}
|
@@ -11,12 +11,14 @@ var _utils = require("@atlaskit/editor-common/utils");
|
|
11
11
|
var _commands = require("@atlaskit/editor-prosemirror/commands");
|
12
12
|
var _history = require("@atlaskit/editor-prosemirror/history");
|
13
13
|
var blockTypes = _interopRequireWildcard(require("./block-types"));
|
14
|
-
var
|
14
|
+
var _blockType = require("./commands/block-type");
|
15
|
+
var _deleteAndMoveCursor = require("./commands/delete-and-move-cursor");
|
16
|
+
var _deleteBlockContent = require("./commands/delete-block-content");
|
15
17
|
var _utils2 = require("./utils");
|
16
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
17
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
18
|
-
var backspaceCommand = (0, _commands.chainCommands)(
|
19
|
-
var del = (0, _commands.chainCommands)((0, _utils.deleteEmptyParagraphAndMoveBlockUp)(_utils2.isNodeAWrappingBlockNode), (0,
|
20
|
+
var backspaceCommand = (0, _commands.chainCommands)(_blockType.cleanUpAtTheStartOfDocument, (0, _deleteBlockContent.deleteBlockContent)(_utils2.isNodeAWrappingBlockNode), _deleteAndMoveCursor.deleteAndMoveCursor);
|
21
|
+
var del = (0, _commands.chainCommands)((0, _utils.deleteEmptyParagraphAndMoveBlockUp)(_utils2.isNodeAWrappingBlockNode), (0, _deleteBlockContent.deleteBlockContent)(_utils2.isNodeAWrappingBlockNode), _deleteAndMoveCursor.deleteAndMoveCursor);
|
20
22
|
function keymapPlugin(editorAnalyticsApi, schema, _featureFlags) {
|
21
23
|
var list = {};
|
22
24
|
(0, _keymaps.bindKeymapWithCommand)(_keymaps.insertNewLine.common, (0, _utils.insertNewLineWithAnalytics)(editorAnalyticsApi), list);
|
@@ -28,7 +30,7 @@ function keymapPlugin(editorAnalyticsApi, schema, _featureFlags) {
|
|
28
30
|
(0, _keymaps.bindKeymapWithCommand)(_keymaps.deleteKey.common, del, list);
|
29
31
|
(0, _keymaps.bindKeymapWithCommand)(_keymaps.forwardDelete.mac, del, list);
|
30
32
|
if (schema.nodes[blockTypes.BLOCK_QUOTE.nodeName]) {
|
31
|
-
(0, _keymaps.bindKeymapWithCommand)((0, _keymaps.findShortcutByKeymap)(_keymaps.toggleBlockQuote), (0,
|
33
|
+
(0, _keymaps.bindKeymapWithCommand)((0, _keymaps.findShortcutByKeymap)(_keymaps.toggleBlockQuote), (0, _blockType.insertBlockQuoteWithAnalytics)(_analytics.INPUT_METHOD.KEYBOARD, editorAnalyticsApi), list);
|
32
34
|
}
|
33
35
|
return (0, _keymaps.keymap)(list);
|
34
36
|
}
|
@@ -12,7 +12,7 @@ var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
12
12
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
13
13
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
14
14
|
var _blockTypes = require("./block-types");
|
15
|
-
var
|
15
|
+
var _blockType = require("./commands/block-type");
|
16
16
|
var _consts = require("./consts");
|
17
17
|
var _utils = require("./utils");
|
18
18
|
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; }
|
@@ -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,18 +69,19 @@ 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;
|
73
76
|
};
|
74
77
|
var autoformatHeading = function autoformatHeading(headingLevel, editorAnalyticsApi) {
|
75
78
|
if (headingLevel === 0) {
|
76
|
-
return (0,
|
79
|
+
return (0, _blockType.setNormalTextWithAnalytics)(_analytics.INPUT_METHOD.FORMATTING, editorAnalyticsApi);
|
77
80
|
}
|
78
|
-
return (0,
|
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
|