PluginProbe
Gutenberg / 8.5.1
Gutenberg v8.5.1
24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 All 403 releases
← All changes | build/format-library/index.js +1 -1820 12.6.0 → 8.5.1 View file →
@@ -1,1820 +1 @@
1 -/******/ (function() { // webpackBootstrap
2 -/******/ "use strict";
3 -/******/ // The require scope
4 -/******/ var __webpack_require__ = {};
5 -/******/
6 -/************************************************************************/
7 -/******/ /* webpack/runtime/make namespace object */
8 -/******/ !function() {
9 -/******/ // define __esModule on exports
10 -/******/ __webpack_require__.r = function(exports) {
11 -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
12 -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
13 -/******/ }
14 -/******/ Object.defineProperty(exports, '__esModule', { value: true });
15 -/******/ };
16 -/******/ }();
17 -/******/
18 -/************************************************************************/
19 -var __webpack_exports__ = {};
20 -// ESM COMPAT FLAG
21 -__webpack_require__.r(__webpack_exports__);
22 -
23 -;// CONCATENATED MODULE: external ["wp","richText"]
24 -var external_wp_richText_namespaceObject = window["wp"]["richText"];
25 -;// CONCATENATED MODULE: external ["wp","element"]
26 -var external_wp_element_namespaceObject = window["wp"]["element"];
27 -;// CONCATENATED MODULE: external ["wp","i18n"]
28 -var external_wp_i18n_namespaceObject = window["wp"]["i18n"];
29 -;// CONCATENATED MODULE: external ["wp","blockEditor"]
30 -var external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"];
31 -;// CONCATENATED MODULE: external ["wp","primitives"]
32 -var external_wp_primitives_namespaceObject = window["wp"]["primitives"];
33 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/format-bold.js
34 -
35 -
36 -/**
37 - * WordPress dependencies
38 - */
39 -
40 -const formatBold = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
41 - xmlns: "http://www.w3.org/2000/svg",
42 - viewBox: "0 0 24 24"
43 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
44 - d: "M14.7 11.3c1-.6 1.5-1.6 1.5-3 0-2.3-1.3-3.4-4-3.4H7v14h5.8c1.4 0 2.5-.3 3.3-1 .8-.7 1.2-1.7 1.2-2.9.1-1.9-.8-3.1-2.6-3.7zm-5.1-4h2.3c.6 0 1.1.1 1.4.4.3.3.5.7.5 1.2s-.2 1-.5 1.2c-.3.3-.8.4-1.4.4H9.6V7.3zm4.6 9c-.4.3-1 .4-1.7.4H9.6v-3.9h2.9c.7 0 1.3.2 1.7.5.4.3.6.8.6 1.5s-.2 1.2-.6 1.5z"
45 -}));
46 -/* harmony default export */ var format_bold = (formatBold);
47 -//# sourceMappingURL=format-bold.js.map
48 -;// CONCATENATED MODULE: ./packages/format-library/build-module/bold/index.js
49 -
50 -
51 -/**
52 - * WordPress dependencies
53 - */
54 -
55 -
56 -
57 -
58 -const bold_name = 'core/bold';
59 -
60 -const title = (0,external_wp_i18n_namespaceObject.__)('Bold');
61 -
62 -const bold = {
63 - name: bold_name,
64 - title,
65 - tagName: 'strong',
66 - className: null,
67 -
68 - edit(_ref) {
69 - let {
70 - isActive,
71 - value,
72 - onChange,
73 - onFocus
74 - } = _ref;
75 -
76 - function onToggle() {
77 - onChange((0,external_wp_richText_namespaceObject.toggleFormat)(value, {
78 - type: bold_name,
79 - title
80 - }));
81 - }
82 -
83 - function onClick() {
84 - onChange((0,external_wp_richText_namespaceObject.toggleFormat)(value, {
85 - type: bold_name
86 - }));
87 - onFocus();
88 - }
89 -
90 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
91 - type: "primary",
92 - character: "b",
93 - onUse: onToggle
94 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
95 - name: "bold",
96 - icon: format_bold,
97 - title: title,
98 - onClick: onClick,
99 - isActive: isActive,
100 - shortcutType: "primary",
101 - shortcutCharacter: "b"
102 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__unstableRichTextInputEvent, {
103 - inputType: "formatBold",
104 - onInput: onToggle
105 - }));
106 - }
107 -
108 -};
109 -//# sourceMappingURL=index.js.map
110 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/code.js
111 -
112 -
113 -/**
114 - * WordPress dependencies
115 - */
116 -
117 -const code = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
118 - viewBox: "0 0 24 24",
119 - xmlns: "http://www.w3.org/2000/svg"
120 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
121 - d: "M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z"
122 -}));
123 -/* harmony default export */ var library_code = (code);
124 -//# sourceMappingURL=code.js.map
125 -;// CONCATENATED MODULE: ./packages/format-library/build-module/code/index.js
126 -
127 -
128 -/**
129 - * WordPress dependencies
130 - */
131 -
132 -
133 -
134 -
135 -const code_name = 'core/code';
136 -
137 -const code_title = (0,external_wp_i18n_namespaceObject.__)('Inline code');
138 -
139 -const code_code = {
140 - name: code_name,
141 - title: code_title,
142 - tagName: 'code',
143 - className: null,
144 -
145 - __unstableInputRule(value) {
146 - const BACKTICK = '`';
147 - const {
148 - start,
149 - text
150 - } = value;
151 - const characterBefore = text.slice(start - 1, start); // Quick check the text for the necessary character.
152 -
153 - if (characterBefore !== BACKTICK) {
154 - return value;
155 - }
156 -
157 - const textBefore = text.slice(0, start - 1);
158 - const indexBefore = textBefore.lastIndexOf(BACKTICK);
159 -
160 - if (indexBefore === -1) {
161 - return value;
162 - }
163 -
164 - const startIndex = indexBefore;
165 - const endIndex = start - 2;
166 -
167 - if (startIndex === endIndex) {
168 - return value;
169 - }
170 -
171 - value = (0,external_wp_richText_namespaceObject.remove)(value, startIndex, startIndex + 1);
172 - value = (0,external_wp_richText_namespaceObject.remove)(value, endIndex, endIndex + 1);
173 - value = (0,external_wp_richText_namespaceObject.applyFormat)(value, {
174 - type: code_name
175 - }, startIndex, endIndex);
176 - return value;
177 - },
178 -
179 - edit(_ref) {
180 - let {
181 - value,
182 - onChange,
183 - onFocus,
184 - isActive
185 - } = _ref;
186 -
187 - function onClick() {
188 - onChange((0,external_wp_richText_namespaceObject.toggleFormat)(value, {
189 - type: code_name,
190 - title: code_title
191 - }));
192 - onFocus();
193 - }
194 -
195 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
196 - icon: library_code,
197 - title: code_title,
198 - onClick: onClick,
199 - isActive: isActive,
200 - role: "menuitemcheckbox"
201 - });
202 - }
203 -
204 -};
205 -//# sourceMappingURL=index.js.map
206 -;// CONCATENATED MODULE: external ["wp","components"]
207 -var external_wp_components_namespaceObject = window["wp"]["components"];
208 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/keyboard-return.js
209 -
210 -
211 -/**
212 - * WordPress dependencies
213 - */
214 -
215 -const keyboardReturn = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
216 - xmlns: "http://www.w3.org/2000/svg",
217 - viewBox: "-2 -2 24 24"
218 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
219 - d: "M6.734 16.106l2.176-2.38-1.093-1.028-3.846 4.158 3.846 4.157 1.093-1.027-2.176-2.38h2.811c1.125 0 2.25.03 3.374 0 1.428-.001 3.362-.25 4.963-1.277 1.66-1.065 2.868-2.906 2.868-5.859 0-2.479-1.327-4.896-3.65-5.93-1.82-.813-3.044-.8-4.806-.788l-.567.002v1.5c.184 0 .368 0 .553-.002 1.82-.007 2.704-.014 4.21.657 1.854.827 2.76 2.657 2.76 4.561 0 2.472-.973 3.824-2.178 4.596-1.258.807-2.864 1.04-4.163 1.04h-.02c-1.115.03-2.229 0-3.344 0H6.734z"
220 -}));
221 -/* harmony default export */ var keyboard_return = (keyboardReturn);
222 -//# sourceMappingURL=keyboard-return.js.map
223 -;// CONCATENATED MODULE: ./packages/format-library/build-module/image/index.js
224 -
225 -
226 -/**
227 - * WordPress dependencies
228 - */
229 -
230 -
231 -
232 -
233 -
234 -
235 -const ALLOWED_MEDIA_TYPES = ['image'];
236 -const image_name = 'core/image';
237 -
238 -const image_title = (0,external_wp_i18n_namespaceObject.__)('Inline image');
239 -
240 -const image_image = {
241 - name: image_name,
242 - title: image_title,
243 - keywords: [(0,external_wp_i18n_namespaceObject.__)('photo'), (0,external_wp_i18n_namespaceObject.__)('media')],
244 - object: true,
245 - tagName: 'img',
246 - className: null,
247 - attributes: {
248 - className: 'class',
249 - style: 'style',
250 - url: 'src',
251 - alt: 'alt'
252 - },
253 - edit: Edit
254 -};
255 -
256 -function InlineUI(_ref) {
257 - let {
258 - value,
259 - onChange,
260 - activeObjectAttributes,
261 - contentRef
262 - } = _ref;
263 - const {
264 - style
265 - } = activeObjectAttributes;
266 - const [width, setWidth] = (0,external_wp_element_namespaceObject.useState)(style === null || style === void 0 ? void 0 : style.replace(/\D/g, ''));
267 - const anchorRef = (0,external_wp_richText_namespaceObject.useAnchorRef)({
268 - ref: contentRef,
269 - value,
270 - settings: image_image
271 - });
272 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, {
273 - position: "bottom center",
274 - focusOnMount: false,
275 - anchorRef: anchorRef,
276 - className: "block-editor-format-toolbar__image-popover"
277 - }, (0,external_wp_element_namespaceObject.createElement)("form", {
278 - className: "block-editor-format-toolbar__image-container-content",
279 - onSubmit: event => {
280 - const newReplacements = value.replacements.slice();
281 - newReplacements[value.start] = {
282 - type: image_name,
283 - attributes: { ...activeObjectAttributes,
284 - style: width ? `width: ${width}px;` : ''
285 - }
286 - };
287 - onChange({ ...value,
288 - replacements: newReplacements
289 - });
290 - event.preventDefault();
291 - }
292 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
293 - className: "block-editor-format-toolbar__image-container-value",
294 - type: "number",
295 - label: (0,external_wp_i18n_namespaceObject.__)('Width'),
296 - value: width,
297 - min: 1,
298 - onChange: newWidth => setWidth(newWidth)
299 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
300 - icon: keyboard_return,
301 - label: (0,external_wp_i18n_namespaceObject.__)('Apply'),
302 - type: "submit"
303 - })));
304 -}
305 -
306 -function Edit(_ref2) {
307 - let {
308 - value,
309 - onChange,
310 - onFocus,
311 - isObjectActive,
312 - activeObjectAttributes,
313 - contentRef
314 - } = _ref2;
315 - const [isModalOpen, setIsModalOpen] = (0,external_wp_element_namespaceObject.useState)(false);
316 -
317 - function openModal() {
318 - setIsModalOpen(true);
319 - }
320 -
321 - function closeModal() {
322 - setIsModalOpen(false);
323 - }
324 -
325 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
326 - icon: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.SVG, {
327 - xmlns: "http://www.w3.org/2000/svg",
328 - viewBox: "0 0 24 24"
329 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Path, {
330 - d: "M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z"
331 - })),
332 - title: image_title,
333 - onClick: openModal,
334 - isActive: isObjectActive
335 - }), isModalOpen && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.MediaUpload, {
336 - allowedTypes: ALLOWED_MEDIA_TYPES,
337 - onSelect: _ref3 => {
338 - let {
339 - id,
340 - url,
341 - alt,
342 - width: imgWidth
343 - } = _ref3;
344 - closeModal();
345 - onChange((0,external_wp_richText_namespaceObject.insertObject)(value, {
346 - type: image_name,
347 - attributes: {
348 - className: `wp-image-${id}`,
349 - style: `width: ${Math.min(imgWidth, 150)}px;`,
350 - url,
351 - alt
352 - }
353 - }));
354 - onFocus();
355 - },
356 - onClose: closeModal,
357 - render: _ref4 => {
358 - let {
359 - open
360 - } = _ref4;
361 - open();
362 - return null;
363 - }
364 - }), isObjectActive && (0,external_wp_element_namespaceObject.createElement)(InlineUI, {
365 - value: value,
366 - onChange: onChange,
367 - activeObjectAttributes: activeObjectAttributes,
368 - contentRef: contentRef
369 - }));
370 -}
371 -//# sourceMappingURL=index.js.map
372 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/format-italic.js
373 -
374 -
375 -/**
376 - * WordPress dependencies
377 - */
378 -
379 -const formatItalic = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
380 - xmlns: "http://www.w3.org/2000/svg",
381 - viewBox: "0 0 24 24"
382 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
383 - d: "M12.5 5L10 19h1.9l2.5-14z"
384 -}));
385 -/* harmony default export */ var format_italic = (formatItalic);
386 -//# sourceMappingURL=format-italic.js.map
387 -;// CONCATENATED MODULE: ./packages/format-library/build-module/italic/index.js
388 -
389 -
390 -/**
391 - * WordPress dependencies
392 - */
393 -
394 -
395 -
396 -
397 -const italic_name = 'core/italic';
398 -
399 -const italic_title = (0,external_wp_i18n_namespaceObject.__)('Italic');
400 -
401 -const italic = {
402 - name: italic_name,
403 - title: italic_title,
404 - tagName: 'em',
405 - className: null,
406 -
407 - edit(_ref) {
408 - let {
409 - isActive,
410 - value,
411 - onChange,
412 - onFocus
413 - } = _ref;
414 -
415 - function onToggle() {
416 - onChange((0,external_wp_richText_namespaceObject.toggleFormat)(value, {
417 - type: italic_name,
418 - title: italic_title
419 - }));
420 - }
421 -
422 - function onClick() {
423 - onChange((0,external_wp_richText_namespaceObject.toggleFormat)(value, {
424 - type: italic_name
425 - }));
426 - onFocus();
427 - }
428 -
429 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
430 - type: "primary",
431 - character: "i",
432 - onUse: onToggle
433 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
434 - name: "italic",
435 - icon: format_italic,
436 - title: italic_title,
437 - onClick: onClick,
438 - isActive: isActive,
439 - shortcutType: "primary",
440 - shortcutCharacter: "i"
441 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__unstableRichTextInputEvent, {
442 - inputType: "formatItalic",
443 - onInput: onToggle
444 - }));
445 - }
446 -
447 -};
448 -//# sourceMappingURL=index.js.map
449 -;// CONCATENATED MODULE: external ["wp","url"]
450 -var external_wp_url_namespaceObject = window["wp"]["url"];
451 -;// CONCATENATED MODULE: external ["wp","htmlEntities"]
452 -var external_wp_htmlEntities_namespaceObject = window["wp"]["htmlEntities"];
453 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/link-off.js
454 -
455 -
456 -/**
457 - * WordPress dependencies
458 - */
459 -
460 -const linkOff = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
461 - xmlns: "http://www.w3.org/2000/svg",
462 - viewBox: "0 0 24 24"
463 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
464 - d: "M15.6 7.3h-.7l1.6-3.5-.9-.4-3.9 8.5H9v1.5h2l-1.3 2.8H8.4c-2 0-3.7-1.7-3.7-3.7s1.7-3.7 3.7-3.7H10V7.3H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H9l-1.4 3.2.9.4 5.7-12.5h1.4c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.9 0 5.2-2.3 5.2-5.2 0-2.9-2.4-5.2-5.2-5.2z"
465 -}));
466 -/* harmony default export */ var link_off = (linkOff);
467 -//# sourceMappingURL=link-off.js.map
468 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/link.js
469 -
470 -
471 -/**
472 - * WordPress dependencies
473 - */
474 -
475 -const link_link = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
476 - xmlns: "http://www.w3.org/2000/svg",
477 - viewBox: "0 0 24 24"
478 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
479 - d: "M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"
480 -}));
481 -/* harmony default export */ var library_link = (link_link);
482 -//# sourceMappingURL=link.js.map
483 -;// CONCATENATED MODULE: external ["wp","a11y"]
484 -var external_wp_a11y_namespaceObject = window["wp"]["a11y"];
485 -;// CONCATENATED MODULE: external ["wp","data"]
486 -var external_wp_data_namespaceObject = window["wp"]["data"];
487 -;// CONCATENATED MODULE: external "lodash"
488 -var external_lodash_namespaceObject = window["lodash"];
489 -;// CONCATENATED MODULE: ./packages/format-library/build-module/link/utils.js
490 -/**
491 - * External dependencies
492 - */
493 -
494 -/**
495 - * WordPress dependencies
496 - */
497 -
498 -
499 -/**
500 - * Check for issues with the provided href.
501 - *
502 - * @param {string} href The href.
503 - *
504 - * @return {boolean} Is the href invalid?
505 - */
506 -
507 -function isValidHref(href) {
508 - if (!href) {
509 - return false;
510 - }
511 -
512 - const trimmedHref = href.trim();
513 -
514 - if (!trimmedHref) {
515 - return false;
516 - } // Does the href start with something that looks like a URL protocol?
517 -
518 -
519 - if (/^\S+:/.test(trimmedHref)) {
520 - const protocol = (0,external_wp_url_namespaceObject.getProtocol)(trimmedHref);
521 -
522 - if (!(0,external_wp_url_namespaceObject.isValidProtocol)(protocol)) {
523 - return false;
524 - } // Add some extra checks for http(s) URIs, since these are the most common use-case.
525 - // This ensures URIs with an http protocol have exactly two forward slashes following the protocol.
526 -
527 -
528 - if ((0,external_lodash_namespaceObject.startsWith)(protocol, 'http') && !/^https?:\/\/[^\/\s]/i.test(trimmedHref)) {
529 - return false;
530 - }
531 -
532 - const authority = (0,external_wp_url_namespaceObject.getAuthority)(trimmedHref);
533 -
534 - if (!(0,external_wp_url_namespaceObject.isValidAuthority)(authority)) {
535 - return false;
536 - }
537 -
538 - const path = (0,external_wp_url_namespaceObject.getPath)(trimmedHref);
539 -
540 - if (path && !(0,external_wp_url_namespaceObject.isValidPath)(path)) {
541 - return false;
542 - }
543 -
544 - const queryString = (0,external_wp_url_namespaceObject.getQueryString)(trimmedHref);
545 -
546 - if (queryString && !(0,external_wp_url_namespaceObject.isValidQueryString)(queryString)) {
547 - return false;
548 - }
549 -
550 - const fragment = (0,external_wp_url_namespaceObject.getFragment)(trimmedHref);
551 -
552 - if (fragment && !(0,external_wp_url_namespaceObject.isValidFragment)(fragment)) {
553 - return false;
554 - }
555 - } // Validate anchor links.
556 -
557 -
558 - if ((0,external_lodash_namespaceObject.startsWith)(trimmedHref, '#') && !(0,external_wp_url_namespaceObject.isValidFragment)(trimmedHref)) {
559 - return false;
560 - }
561 -
562 - return true;
563 -}
564 -/**
565 - * Generates the format object that will be applied to the link text.
566 - *
567 - * @param {Object} options
568 - * @param {string} options.url The href of the link.
569 - * @param {string} options.type The type of the link.
570 - * @param {string} options.id The ID of the link.
571 - * @param {boolean} options.opensInNewWindow Whether this link will open in a new window.
572 - *
573 - * @return {Object} The final format object.
574 - */
575 -
576 -function createLinkFormat(_ref) {
577 - let {
578 - url,
579 - type,
580 - id,
581 - opensInNewWindow
582 - } = _ref;
583 - const format = {
584 - type: 'core/link',
585 - attributes: {
586 - url
587 - }
588 - };
589 - if (type) format.attributes.type = type;
590 - if (id) format.attributes.id = id;
591 -
592 - if (opensInNewWindow) {
593 - format.attributes.target = '_blank';
594 - format.attributes.rel = 'noreferrer noopener';
595 - }
596 -
597 - return format;
598 -}
599 -/* eslint-disable jsdoc/no-undefined-types */
600 -
601 -/**
602 - * Get the start and end boundaries of a given format from a rich text value.
603 - *
604 - *
605 - * @param {RichTextValue} value the rich text value to interrogate.
606 - * @param {string} format the identifier for the target format (e.g. `core/link`, `core/bold`).
607 - * @param {number?} startIndex optional startIndex to seek from.
608 - * @param {number?} endIndex optional endIndex to seek from.
609 - * @return {Object} object containing start and end values for the given format.
610 - */
611 -
612 -/* eslint-enable jsdoc/no-undefined-types */
613 -
614 -function getFormatBoundary(value, format) {
615 - let startIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : value.start;
616 - let endIndex = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : value.end;
617 - const EMPTY_BOUNDARIES = {
618 - start: null,
619 - end: null
620 - };
621 - const {
622 - formats
623 - } = value;
624 - let targetFormat;
625 - let initialIndex;
626 -
627 - if (!(formats !== null && formats !== void 0 && formats.length)) {
628 - return EMPTY_BOUNDARIES;
629 - } // Clone formats to avoid modifying source formats.
630 -
631 -
632 - const newFormats = formats.slice();
633 - const formatAtStart = (0,external_lodash_namespaceObject.find)(newFormats[startIndex], {
634 - type: format.type
635 - });
636 - const formatAtEnd = (0,external_lodash_namespaceObject.find)(newFormats[endIndex], {
637 - type: format.type
638 - });
639 - const formatAtEndMinusOne = (0,external_lodash_namespaceObject.find)(newFormats[endIndex - 1], {
640 - type: format.type
641 - });
642 -
643 - if (!!formatAtStart) {
644 - // Set values to conform to "start"
645 - targetFormat = formatAtStart;
646 - initialIndex = startIndex;
647 - } else if (!!formatAtEnd) {
648 - // Set values to conform to "end"
649 - targetFormat = formatAtEnd;
650 - initialIndex = endIndex;
651 - } else if (!!formatAtEndMinusOne) {
652 - // This is an edge case which will occur if you create a format, then place
653 - // the caret just before the format and hit the back ARROW key. The resulting
654 - // value object will have start and end +1 beyond the edge of the format boundary.
655 - targetFormat = formatAtEndMinusOne;
656 - initialIndex = endIndex - 1;
657 - } else {
658 - return EMPTY_BOUNDARIES;
659 - }
660 -
661 - const index = newFormats[initialIndex].indexOf(targetFormat);
662 - const walkingArgs = [newFormats, initialIndex, targetFormat, index]; // Walk the startIndex "backwards" to the leading "edge" of the matching format.
663 -
664 - startIndex = walkToStart(...walkingArgs); // Walk the endIndex "forwards" until the trailing "edge" of the matching format.
665 -
666 - endIndex = walkToEnd(...walkingArgs); // Safe guard: start index cannot be less than 0
667 -
668 - startIndex = startIndex < 0 ? 0 : startIndex; // // Return the indicies of the "edges" as the boundaries.
669 -
670 - return {
671 - start: startIndex,
672 - end: endIndex
673 - };
674 -}
675 -/**
676 - * Walks forwards/backwards towards the boundary of a given format within an
677 - * array of format objects. Returns the index of the boundary.
678 - *
679 - * @param {Array} formats the formats to search for the given format type.
680 - * @param {number} initialIndex the starting index from which to walk.
681 - * @param {Object} targetFormatRef a reference to the format type object being sought.
682 - * @param {number} formatIndex the index at which we expect the target format object to be.
683 - * @param {string} direction either 'forwards' or 'backwards' to indicate the direction.
684 - * @return {number} the index of the boundary of the given format.
685 - */
686 -
687 -function walkToBoundary(formats, initialIndex, targetFormatRef, formatIndex, direction) {
688 - let index = initialIndex;
689 - const directions = {
690 - forwards: 1,
691 - backwards: -1
692 - };
693 - const directionIncrement = directions[direction] || 1; // invalid direction arg default to forwards
694 -
695 - const inverseDirectionIncrement = directionIncrement * -1;
696 -
697 - while (formats[index] && formats[index][formatIndex] === targetFormatRef) {
698 - // Increment/decrement in the direction of operation.
699 - index = index + directionIncrement;
700 - } // Restore by one in inverse direction of operation
701 - // to avoid out of bounds.
702 -
703 -
704 - index = index + inverseDirectionIncrement;
705 - return index;
706 -}
707 -
708 -const walkToStart = (0,external_lodash_namespaceObject.partialRight)(walkToBoundary, 'backwards');
709 -const walkToEnd = (0,external_lodash_namespaceObject.partialRight)(walkToBoundary, 'forwards');
710 -//# sourceMappingURL=utils.js.map
711 -;// CONCATENATED MODULE: ./packages/format-library/build-module/link/use-link-instance-key.js
712 -// Weakly referenced map allows unused ids to be garbage collected.
713 -const weakMap = new WeakMap(); // Incrementing zero-based ID value
714 -
715 -let id = -1;
716 -const prefix = 'link-control-instance';
717 -
718 -function getKey(_id) {
719 - return `${prefix}-${_id}`;
720 -}
721 -/**
722 - * Builds a unique link control key for the given object reference.
723 - *
724 - * @param {Object} instance an unique object reference specific to this link control instance.
725 - * @return {string} the unique key to use for this link control.
726 - */
727 -
728 -
729 -function useLinkInstanceKey(instance) {
730 - if (!instance) {
731 - return;
732 - }
733 -
734 - if (weakMap.has(instance)) {
735 - return getKey(weakMap.get(instance));
736 - }
737 -
738 - id += 1;
739 - weakMap.set(instance, id);
740 - return getKey(id);
741 -}
742 -
743 -/* harmony default export */ var use_link_instance_key = (useLinkInstanceKey);
744 -//# sourceMappingURL=use-link-instance-key.js.map
745 -;// CONCATENATED MODULE: ./packages/format-library/build-module/link/inline.js
746 -
747 -
748 -/**
749 - * WordPress dependencies
750 - */
751 -
752 -
753 -
754 -
755 -
756 -
757 -
758 -/**
759 - * Internal dependencies
760 - */
761 -
762 -
763 -
764 -
765 -
766 -function InlineLinkUI(_ref) {
767 - let {
768 - isActive,
769 - activeAttributes,
770 - addingLink,
771 - value,
772 - onChange,
773 - speak,
774 - stopAddingLink,
775 - contentRef
776 - } = _ref;
777 - const richLinkTextValue = getRichTextValueFromSelection(value, isActive); // Get the text content minus any HTML tags.
778 -
779 - const richTextText = richLinkTextValue.text;
780 - /**
781 - * Pending settings to be applied to the next link. When inserting a new
782 - * link, toggle values cannot be applied immediately, because there is not
783 - * yet a link for them to apply to. Thus, they are maintained in a state
784 - * value until the time that the link can be inserted or edited.
785 - *
786 - * @type {[Object|undefined,Function]}
787 - */
788 -
789 - const [nextLinkValue, setNextLinkValue] = (0,external_wp_element_namespaceObject.useState)();
790 - const {
791 - createPageEntity,
792 - userCanCreatePages
793 - } = (0,external_wp_data_namespaceObject.useSelect)(select => {
794 - const {
795 - getSettings
796 - } = select(external_wp_blockEditor_namespaceObject.store);
797 -
798 - const _settings = getSettings();
799 -
800 - return {
801 - createPageEntity: _settings.__experimentalCreatePageEntity,
802 - userCanCreatePages: _settings.__experimentalUserCanCreatePages
803 - };
804 - }, []);
805 - const linkValue = {
806 - url: activeAttributes.url,
807 - type: activeAttributes.type,
808 - id: activeAttributes.id,
809 - opensInNewTab: activeAttributes.target === '_blank',
810 - title: richTextText,
811 - ...nextLinkValue
812 - };
813 -
814 - function removeLink() {
815 - const newValue = (0,external_wp_richText_namespaceObject.removeFormat)(value, 'core/link');
816 - onChange(newValue);
817 - stopAddingLink();
818 - speak((0,external_wp_i18n_namespaceObject.__)('Link removed.'), 'assertive');
819 - }
820 -
821 - function onChangeLink(nextValue) {
822 - // Merge with values from state, both for the purpose of assigning the
823 - // next state value, and for use in constructing the new link format if
824 - // the link is ready to be applied.
825 - nextValue = { ...nextLinkValue,
826 - ...nextValue
827 - }; // LinkControl calls `onChange` immediately upon the toggling a setting.
828 -
829 - const didToggleSetting = linkValue.opensInNewTab !== nextValue.opensInNewTab && linkValue.url === nextValue.url; // If change handler was called as a result of a settings change during
830 - // link insertion, it must be held in state until the link is ready to
831 - // be applied.
832 -
833 - const didToggleSettingForNewLink = didToggleSetting && nextValue.url === undefined; // If link will be assigned, the state value can be considered flushed.
834 - // Otherwise, persist the pending changes.
835 -
836 - setNextLinkValue(didToggleSettingForNewLink ? nextValue : undefined);
837 -
838 - if (didToggleSettingForNewLink) {
839 - return;
840 - }
841 -
842 - const newUrl = (0,external_wp_url_namespaceObject.prependHTTP)(nextValue.url);
843 - const linkFormat = createLinkFormat({
844 - url: newUrl,
845 - type: nextValue.type,
846 - id: nextValue.id !== undefined && nextValue.id !== null ? String(nextValue.id) : undefined,
847 - opensInNewWindow: nextValue.opensInNewTab
848 - });
849 - const newText = nextValue.title || newUrl;
850 -
851 - if ((0,external_wp_richText_namespaceObject.isCollapsed)(value) && !isActive) {
852 - // Scenario: we don't have any actively selected text or formats.
853 - const toInsert = (0,external_wp_richText_namespaceObject.applyFormat)((0,external_wp_richText_namespaceObject.create)({
854 - text: newText
855 - }), linkFormat, 0, newText.length);
856 - onChange((0,external_wp_richText_namespaceObject.insert)(value, toInsert));
857 - } else {
858 - // Scenario: we have any active text selection or an active format
859 - let newValue;
860 -
861 - if (newText === richTextText) {
862 - // If we're not updating the text then ignore
863 - newValue = (0,external_wp_richText_namespaceObject.applyFormat)(value, linkFormat);
864 - } else {
865 - // Create new RichText value for the new text in order that we
866 - // can apply formats to it.
867 - newValue = (0,external_wp_richText_namespaceObject.create)({
868 - text: newText
869 - }); // Apply the new Link format to this new text value.
870 -
871 - newValue = (0,external_wp_richText_namespaceObject.applyFormat)(newValue, linkFormat, 0, newText.length); // Update the original (full) RichTextValue replacing the
872 - // target text with the *new* RichTextValue containing:
873 - // 1. The new text content.
874 - // 2. The new link format.
875 - // Note original formats will be lost when applying this change.
876 - // That is expected behaviour.
877 - // See: https://github.com/WordPress/gutenberg/pull/33849#issuecomment-936134179.
878 -
879 - newValue = (0,external_wp_richText_namespaceObject.replace)(value, richTextText, newValue);
880 - }
881 -
882 - newValue.start = newValue.end;
883 - newValue.activeFormats = [];
884 - onChange(newValue);
885 - } // Focus should only be shifted back to the formatted segment when the
886 - // URL is submitted.
887 -
888 -
889 - if (!didToggleSetting) {
890 - stopAddingLink();
891 - }
892 -
893 - if (!isValidHref(newUrl)) {
894 - speak((0,external_wp_i18n_namespaceObject.__)('Warning: the link has been inserted but may have errors. Please test it.'), 'assertive');
895 - } else if (isActive) {
896 - speak((0,external_wp_i18n_namespaceObject.__)('Link edited.'), 'assertive');
897 - } else {
898 - speak((0,external_wp_i18n_namespaceObject.__)('Link inserted.'), 'assertive');
899 - }
900 - }
901 -
902 - const anchorRef = (0,external_wp_richText_namespaceObject.useAnchorRef)({
903 - ref: contentRef,
904 - value,
905 - settings: build_module_link_link
906 - }); // Generate a string based key that is unique to this anchor reference.
907 - // This is used to force re-mount the LinkControl component to avoid
908 - // potential stale state bugs caused by the component not being remounted
909 - // See https://github.com/WordPress/gutenberg/pull/34742.
910 -
911 - const forceRemountKey = use_link_instance_key(anchorRef); // The focusOnMount prop shouldn't evolve during render of a Popover
912 - // otherwise it causes a render of the content.
913 -
914 - const focusOnMount = (0,external_wp_element_namespaceObject.useRef)(addingLink ? 'firstElement' : false);
915 -
916 - async function handleCreate(pageTitle) {
917 - const page = await createPageEntity({
918 - title: pageTitle,
919 - status: 'draft'
920 - });
921 - return {
922 - id: page.id,
923 - type: page.type,
924 - title: page.title.rendered,
925 - url: page.link,
926 - kind: 'post-type'
927 - };
928 - }
929 -
930 - function createButtonText(searchTerm) {
931 - return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(
932 - /* translators: %s: search term. */
933 - (0,external_wp_i18n_namespaceObject.__)('Create Page: <mark>%s</mark>'), searchTerm), {
934 - mark: (0,external_wp_element_namespaceObject.createElement)("mark", null)
935 - });
936 - }
937 -
938 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, {
939 - anchorRef: anchorRef,
940 - focusOnMount: focusOnMount.current,
941 - onClose: stopAddingLink,
942 - position: "bottom center"
943 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalLinkControl, {
944 - key: forceRemountKey,
945 - value: linkValue,
946 - onChange: onChangeLink,
947 - onRemove: removeLink,
948 - forceIsEditingLink: addingLink,
949 - hasRichPreviews: true,
950 - createSuggestion: createPageEntity && handleCreate,
951 - withCreateSuggestion: userCanCreatePages,
952 - createSuggestionButtonText: createButtonText,
953 - hasTextControl: true
954 - }));
955 -}
956 -
957 -function getRichTextValueFromSelection(value, isActive) {
958 - // Default to the selection ranges on the RichTextValue object.
959 - let textStart = value.start;
960 - let textEnd = value.end; // If the format is currently active then the rich text value
961 - // should always be taken from the bounds of the active format
962 - // and not the selected text.
963 -
964 - if (isActive) {
965 - const boundary = getFormatBoundary(value, {
966 - type: 'core/link'
967 - });
968 - textStart = boundary.start; // Text *selection* always extends +1 beyond the edge of the format.
969 - // We account for that here.
970 -
971 - textEnd = boundary.end + 1;
972 - } // Get a RichTextValue containing the selected text content.
973 -
974 -
975 - return (0,external_wp_richText_namespaceObject.slice)(value, textStart, textEnd);
976 -}
977 -
978 -/* harmony default export */ var inline = ((0,external_wp_components_namespaceObject.withSpokenMessages)(InlineLinkUI));
979 -//# sourceMappingURL=inline.js.map
980 -;// CONCATENATED MODULE: ./packages/format-library/build-module/link/index.js
981 -
982 -
983 -/**
984 - * WordPress dependencies
985 - */
986 -
987 -
988 -
989 -
990 -
991 -
992 -
993 -
994 -/**
995 - * Internal dependencies
996 - */
997 -
998 -
999 -
1000 -const link_name = 'core/link';
1001 -
1002 -const link_title = (0,external_wp_i18n_namespaceObject.__)('Link');
1003 -
1004 -function link_Edit(_ref) {
1005 - let {
1006 - isActive,
1007 - activeAttributes,
1008 - value,
1009 - onChange,
1010 - onFocus,
1011 - contentRef
1012 - } = _ref;
1013 - const [addingLink, setAddingLink] = (0,external_wp_element_namespaceObject.useState)(false);
1014 -
1015 - function addLink() {
1016 - const text = (0,external_wp_richText_namespaceObject.getTextContent)((0,external_wp_richText_namespaceObject.slice)(value));
1017 -
1018 - if (text && (0,external_wp_url_namespaceObject.isURL)(text) && isValidHref(text)) {
1019 - onChange((0,external_wp_richText_namespaceObject.applyFormat)(value, {
1020 - type: link_name,
1021 - attributes: {
1022 - url: text
1023 - }
1024 - }));
1025 - } else if (text && (0,external_wp_url_namespaceObject.isEmail)(text)) {
1026 - onChange((0,external_wp_richText_namespaceObject.applyFormat)(value, {
1027 - type: link_name,
1028 - attributes: {
1029 - url: `mailto:${text}`
1030 - }
1031 - }));
1032 - } else {
1033 - setAddingLink(true);
1034 - }
1035 - }
1036 -
1037 - function stopAddingLink() {
1038 - setAddingLink(false);
1039 - onFocus();
1040 - }
1041 -
1042 - function onRemoveFormat() {
1043 - onChange((0,external_wp_richText_namespaceObject.removeFormat)(value, link_name));
1044 - (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Link removed.'), 'assertive');
1045 - }
1046 -
1047 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
1048 - type: "primary",
1049 - character: "k",
1050 - onUse: addLink
1051 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
1052 - type: "primaryShift",
1053 - character: "k",
1054 - onUse: onRemoveFormat
1055 - }), isActive && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
1056 - name: "link",
1057 - icon: link_off,
1058 - title: (0,external_wp_i18n_namespaceObject.__)('Unlink'),
1059 - onClick: onRemoveFormat,
1060 - isActive: isActive,
1061 - shortcutType: "primaryShift",
1062 - shortcutCharacter: "k"
1063 - }), !isActive && (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
1064 - name: "link",
1065 - icon: library_link,
1066 - title: link_title,
1067 - onClick: addLink,
1068 - isActive: isActive,
1069 - shortcutType: "primary",
1070 - shortcutCharacter: "k"
1071 - }), (addingLink || isActive) && (0,external_wp_element_namespaceObject.createElement)(inline, {
1072 - addingLink: addingLink,
1073 - stopAddingLink: stopAddingLink,
1074 - isActive: isActive,
1075 - activeAttributes: activeAttributes,
1076 - value: value,
1077 - onChange: onChange,
1078 - contentRef: contentRef
1079 - }));
1080 -}
1081 -
1082 -const build_module_link_link = {
1083 - name: link_name,
1084 - title: link_title,
1085 - tagName: 'a',
1086 - className: null,
1087 - attributes: {
1088 - url: 'href',
1089 - type: 'data-type',
1090 - id: 'data-id',
1091 - target: 'target'
1092 - },
1093 -
1094 - __unstablePasteRule(value, _ref2) {
1095 - let {
1096 - html,
1097 - plainText
1098 - } = _ref2;
1099 -
1100 - if ((0,external_wp_richText_namespaceObject.isCollapsed)(value)) {
1101 - return value;
1102 - }
1103 -
1104 - const pastedText = (html || plainText).replace(/<[^>]+>/g, '').trim(); // A URL was pasted, turn the selection into a link
1105 -
1106 - if (!(0,external_wp_url_namespaceObject.isURL)(pastedText)) {
1107 - return value;
1108 - } // Allows us to ask for this information when we get a report.
1109 -
1110 -
1111 - window.console.log('Created link:\n\n', pastedText);
1112 - return (0,external_wp_richText_namespaceObject.applyFormat)(value, {
1113 - type: link_name,
1114 - attributes: {
1115 - url: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(pastedText)
1116 - }
1117 - });
1118 - },
1119 -
1120 - edit: link_Edit
1121 -};
1122 -//# sourceMappingURL=index.js.map
1123 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/format-strikethrough.js
1124 -
1125 -
1126 -/**
1127 - * WordPress dependencies
1128 - */
1129 -
1130 -const formatStrikethrough = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
1131 - xmlns: "http://www.w3.org/2000/svg",
1132 - viewBox: "0 0 24 24"
1133 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
1134 - d: "M9.1 9v-.5c0-.6.2-1.1.7-1.4.5-.3 1.2-.5 2-.5.7 0 1.4.1 2.1.3.7.2 1.4.5 2.1.9l.2-1.9c-.6-.3-1.2-.5-1.9-.7-.8-.1-1.6-.2-2.4-.2-1.5 0-2.7.3-3.6 1-.8.7-1.2 1.5-1.2 2.6V9h2zM20 12H4v1h8.3c.3.1.6.2.8.3.5.2.9.5 1.1.8.3.3.4.7.4 1.2 0 .7-.2 1.1-.8 1.5-.5.3-1.2.5-2.1.5-.8 0-1.6-.1-2.4-.3-.8-.2-1.5-.5-2.2-.8L7 18.1c.5.2 1.2.4 2 .6.8.2 1.6.3 2.4.3 1.7 0 3-.3 3.9-1 .9-.7 1.3-1.6 1.3-2.8 0-.9-.2-1.7-.7-2.2H20v-1z"
1135 -}));
1136 -/* harmony default export */ var format_strikethrough = (formatStrikethrough);
1137 -//# sourceMappingURL=format-strikethrough.js.map
1138 -;// CONCATENATED MODULE: ./packages/format-library/build-module/strikethrough/index.js
1139 -
1140 -
1141 -/**
1142 - * WordPress dependencies
1143 - */
1144 -
1145 -
1146 -
1147 -
1148 -const strikethrough_name = 'core/strikethrough';
1149 -
1150 -const strikethrough_title = (0,external_wp_i18n_namespaceObject.__)('Strikethrough');
1151 -
1152 -const strikethrough = {
1153 - name: strikethrough_name,
1154 - title: strikethrough_title,
1155 - tagName: 's',
1156 - className: null,
1157 -
1158 - edit(_ref) {
1159 - let {
1160 - isActive,
1161 - value,
1162 - onChange,
1163 - onFocus
1164 - } = _ref;
1165 -
1166 - function onClick() {
1167 - onChange((0,external_wp_richText_namespaceObject.toggleFormat)(value, {
1168 - type: strikethrough_name,
1169 - title: strikethrough_title
1170 - }));
1171 - onFocus();
1172 - }
1173 -
1174 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
1175 - icon: format_strikethrough,
1176 - title: strikethrough_title,
1177 - onClick: onClick,
1178 - isActive: isActive,
1179 - role: "menuitemcheckbox"
1180 - });
1181 - }
1182 -
1183 -};
1184 -//# sourceMappingURL=index.js.map
1185 -;// CONCATENATED MODULE: ./packages/format-library/build-module/underline/index.js
1186 -
1187 -
1188 -/**
1189 - * WordPress dependencies
1190 - */
1191 -
1192 -
1193 -
1194 -const underline_name = 'core/underline';
1195 -
1196 -const underline_title = (0,external_wp_i18n_namespaceObject.__)('Underline');
1197 -
1198 -const underline = {
1199 - name: underline_name,
1200 - title: underline_title,
1201 - tagName: 'span',
1202 - className: null,
1203 - attributes: {
1204 - style: 'style'
1205 - },
1206 -
1207 - edit(_ref) {
1208 - let {
1209 - value,
1210 - onChange
1211 - } = _ref;
1212 -
1213 - const onToggle = () => {
1214 - onChange((0,external_wp_richText_namespaceObject.toggleFormat)(value, {
1215 - type: underline_name,
1216 - attributes: {
1217 - style: 'text-decoration: underline;'
1218 - },
1219 - title: underline_title
1220 - }));
1221 - };
1222 -
1223 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextShortcut, {
1224 - type: "primary",
1225 - character: "u",
1226 - onUse: onToggle
1227 - }), (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__unstableRichTextInputEvent, {
1228 - inputType: "formatUnderline",
1229 - onInput: onToggle
1230 - }));
1231 - }
1232 -
1233 -};
1234 -//# sourceMappingURL=index.js.map
1235 -;// CONCATENATED MODULE: ./packages/icons/build-module/icon/index.js
1236 -/**
1237 - * WordPress dependencies
1238 - */
1239 -
1240 -/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
1241 -
1242 -/**
1243 - * Return an SVG icon.
1244 - *
1245 - * @param {IconProps} props icon is the SVG component to render
1246 - * size is a number specifiying the icon size in pixels
1247 - * Other props will be passed to wrapped SVG component
1248 - *
1249 - * @return {JSX.Element} Icon component
1250 - */
1251 -
1252 -function Icon(_ref) {
1253 - let {
1254 - icon,
1255 - size = 24,
1256 - ...props
1257 - } = _ref;
1258 - return (0,external_wp_element_namespaceObject.cloneElement)(icon, {
1259 - width: size,
1260 - height: size,
1261 - ...props
1262 - });
1263 -}
1264 -
1265 -/* harmony default export */ var icon = (Icon);
1266 -//# sourceMappingURL=index.js.map
1267 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/text-color.js
1268 -
1269 -
1270 -/**
1271 - * WordPress dependencies
1272 - */
1273 -
1274 -const textColor = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
1275 - xmlns: "http://www.w3.org/2000/svg",
1276 - viewBox: "0 0 24 24"
1277 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
1278 - d: "M12.9 6h-2l-4 11h1.9l1.1-3h4.2l1.1 3h1.9L12.9 6zm-2.5 6.5l1.5-4.9 1.7 4.9h-3.2z"
1279 -}));
1280 -/* harmony default export */ var text_color = (textColor);
1281 -//# sourceMappingURL=text-color.js.map
1282 -;// CONCATENATED MODULE: ./packages/format-library/build-module/text-color/inline.js
1283 -
1284 -
1285 -/**
1286 - * External dependencies
1287 - */
1288 -
1289 -/**
1290 - * WordPress dependencies
1291 - */
1292 -
1293 -
1294 -
1295 -
1296 -
1297 -
1298 -
1299 -/**
1300 - * Internal dependencies
1301 - */
1302 -
1303 -
1304 -
1305 -function parseCSS() {
1306 - let css = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
1307 - return css.split(';').reduce((accumulator, rule) => {
1308 - if (rule) {
1309 - const [property, value] = rule.split(':');
1310 - if (property === 'color') accumulator.color = value;
1311 - if (property === 'background-color' && value !== transparentValue) accumulator.backgroundColor = value;
1312 - }
1313 -
1314 - return accumulator;
1315 - }, {});
1316 -}
1317 -
1318 -function parseClassName() {
1319 - let className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
1320 - let colorSettings = arguments.length > 1 ? arguments[1] : undefined;
1321 - return className.split(' ').reduce((accumulator, name) => {
1322 - // `colorSlug` could contain dashes, so simply match the start and end.
1323 - if (name.startsWith('has-') && name.endsWith('-color')) {
1324 - const colorSlug = name.replace(/^has-/, '').replace(/-color$/, '');
1325 - const colorObject = (0,external_wp_blockEditor_namespaceObject.getColorObjectByAttributeValues)(colorSettings, colorSlug);
1326 - accumulator.color = colorObject.color;
1327 - }
1328 -
1329 - return accumulator;
1330 - }, {});
1331 -}
1332 -function getActiveColors(value, name, colorSettings) {
1333 - const activeColorFormat = (0,external_wp_richText_namespaceObject.getActiveFormat)(value, name);
1334 -
1335 - if (!activeColorFormat) {
1336 - return {};
1337 - }
1338 -
1339 - return { ...parseCSS(activeColorFormat.attributes.style),
1340 - ...parseClassName(activeColorFormat.attributes.class, colorSettings)
1341 - };
1342 -}
1343 -
1344 -function setColors(value, name, colorSettings, colors) {
1345 - const {
1346 - color,
1347 - backgroundColor
1348 - } = { ...getActiveColors(value, name, colorSettings),
1349 - ...colors
1350 - };
1351 -
1352 - if (!color && !backgroundColor) {
1353 - return (0,external_wp_richText_namespaceObject.removeFormat)(value, name);
1354 - }
1355 -
1356 - const styles = [];
1357 - const classNames = [];
1358 - const attributes = {};
1359 -
1360 - if (backgroundColor) {
1361 - styles.push(['background-color', backgroundColor].join(':'));
1362 - } else {
1363 - // Override default browser color for mark element.
1364 - styles.push(['background-color', transparentValue].join(':'));
1365 - }
1366 -
1367 - if (color) {
1368 - const colorObject = (0,external_wp_blockEditor_namespaceObject.getColorObjectByColorValue)(colorSettings, color);
1369 -
1370 - if (colorObject) {
1371 - classNames.push((0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', colorObject.slug));
1372 - } else {
1373 - styles.push(['color', color].join(':'));
1374 - }
1375 - }
1376 -
1377 - if (styles.length) attributes.style = styles.join(';');
1378 - if (classNames.length) attributes.class = classNames.join(' ');
1379 - return (0,external_wp_richText_namespaceObject.applyFormat)(value, {
1380 - type: name,
1381 - attributes
1382 - });
1383 -}
1384 -
1385 -function ColorPicker(_ref) {
1386 - let {
1387 - name,
1388 - property,
1389 - value,
1390 - onChange
1391 - } = _ref;
1392 - const colors = (0,external_wp_data_namespaceObject.useSelect)(select => {
1393 - const {
1394 - getSettings
1395 - } = select(external_wp_blockEditor_namespaceObject.store);
1396 - return (0,external_lodash_namespaceObject.get)(getSettings(), ['colors'], []);
1397 - }, []);
1398 - const onColorChange = (0,external_wp_element_namespaceObject.useCallback)(color => {
1399 - onChange(setColors(value, name, colors, {
1400 - [property]: color
1401 - }));
1402 - }, [colors, onChange, property]);
1403 - const activeColors = (0,external_wp_element_namespaceObject.useMemo)(() => getActiveColors(value, name, colors), [name, value, colors]);
1404 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.ColorPalette, {
1405 - value: activeColors[property],
1406 - onChange: onColorChange
1407 - });
1408 -}
1409 -
1410 -function InlineColorUI(_ref2) {
1411 - let {
1412 - name,
1413 - value,
1414 - onChange,
1415 - onClose,
1416 - contentRef
1417 - } = _ref2;
1418 -
1419 - /*
1420 - As you change the text color by typing a HEX value into a field,
1421 - the return value of document.getSelection jumps to the field you're editing,
1422 - not the highlighted text. Given that useAnchorRef uses document.getSelection,
1423 - it will return null, since it can't find the <mark> element within the HEX input.
1424 - This caches the last truthy value of the selection anchor reference.
1425 - */
1426 - const anchorRef = (0,external_wp_blockEditor_namespaceObject.useCachedTruthy)((0,external_wp_richText_namespaceObject.useAnchorRef)({
1427 - ref: contentRef,
1428 - value,
1429 - settings: text_color_textColor
1430 - }));
1431 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Popover, {
1432 - onClose: onClose,
1433 - className: "components-inline-color-popover",
1434 - anchorRef: anchorRef
1435 - }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.TabPanel, {
1436 - tabs: [{
1437 - name: 'color',
1438 - title: (0,external_wp_i18n_namespaceObject.__)('Text')
1439 - }, {
1440 - name: 'backgroundColor',
1441 - title: (0,external_wp_i18n_namespaceObject.__)('Background')
1442 - }]
1443 - }, tab => (0,external_wp_element_namespaceObject.createElement)(ColorPicker, {
1444 - name: name,
1445 - property: tab.name,
1446 - value: value,
1447 - onChange: onChange
1448 - })));
1449 -}
1450 -//# sourceMappingURL=inline.js.map
1451 -;// CONCATENATED MODULE: ./packages/format-library/build-module/text-color/index.js
1452 -
1453 -
1454 -/**
1455 - * External dependencies
1456 - */
1457 -
1458 -/**
1459 - * WordPress dependencies
1460 - */
1461 -
1462 -
1463 -
1464 -
1465 -
1466 -
1467 -/**
1468 - * Internal dependencies
1469 - */
1470 -
1471 -
1472 -const transparentValue = 'rgba(0, 0, 0, 0)';
1473 -const text_color_name = 'core/text-color';
1474 -
1475 -const text_color_title = (0,external_wp_i18n_namespaceObject.__)('Highlight');
1476 -
1477 -const EMPTY_ARRAY = [];
1478 -
1479 -function getComputedStyleProperty(element, property) {
1480 - const {
1481 - ownerDocument
1482 - } = element;
1483 - const {
1484 - defaultView
1485 - } = ownerDocument;
1486 - const style = defaultView.getComputedStyle(element);
1487 - const value = style.getPropertyValue(property);
1488 -
1489 - if (property === 'background-color' && value === transparentValue && element.parentElement) {
1490 - return getComputedStyleProperty(element.parentElement, property);
1491 - }
1492 -
1493 - return value;
1494 -}
1495 -
1496 -function fillComputedColors(element, _ref) {
1497 - let {
1498 - color,
1499 - backgroundColor
1500 - } = _ref;
1501 -
1502 - if (!color && !backgroundColor) {
1503 - return;
1504 - }
1505 -
1506 - return {
1507 - color: color || getComputedStyleProperty(element, 'color'),
1508 - backgroundColor: backgroundColor === transparentValue ? getComputedStyleProperty(element, 'background-color') : backgroundColor
1509 - };
1510 -}
1511 -
1512 -function TextColorEdit(_ref2) {
1513 - let {
1514 - value,
1515 - onChange,
1516 - isActive,
1517 - activeAttributes,
1518 - contentRef
1519 - } = _ref2;
1520 - const allowCustomControl = (0,external_wp_blockEditor_namespaceObject.useSetting)('color.custom');
1521 - const colors = (0,external_wp_blockEditor_namespaceObject.useSetting)('color.palette') || EMPTY_ARRAY;
1522 - const [isAddingColor, setIsAddingColor] = (0,external_wp_element_namespaceObject.useState)(false);
1523 - const enableIsAddingColor = (0,external_wp_element_namespaceObject.useCallback)(() => setIsAddingColor(true), [setIsAddingColor]);
1524 - const disableIsAddingColor = (0,external_wp_element_namespaceObject.useCallback)(() => setIsAddingColor(false), [setIsAddingColor]);
1525 - const colorIndicatorStyle = (0,external_wp_element_namespaceObject.useMemo)(() => fillComputedColors(contentRef.current, getActiveColors(value, text_color_name, colors)), [value, colors]);
1526 - const hasColorsToChoose = !(0,external_lodash_namespaceObject.isEmpty)(colors) || !allowCustomControl;
1527 -
1528 - if (!hasColorsToChoose && !isActive) {
1529 - return null;
1530 - }
1531 -
1532 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
1533 - className: "format-library-text-color-button",
1534 - isActive: isActive,
1535 - icon: (0,external_wp_element_namespaceObject.createElement)(icon, {
1536 - icon: text_color,
1537 - style: colorIndicatorStyle
1538 - }),
1539 - title: text_color_title // If has no colors to choose but a color is active remove the color onClick
1540 - ,
1541 - onClick: hasColorsToChoose ? enableIsAddingColor : () => onChange((0,external_wp_richText_namespaceObject.removeFormat)(value, text_color_name)),
1542 - role: "menuitemcheckbox"
1543 - }), isAddingColor && (0,external_wp_element_namespaceObject.createElement)(InlineColorUI, {
1544 - name: text_color_name,
1545 - onClose: disableIsAddingColor,
1546 - activeAttributes: activeAttributes,
1547 - value: value,
1548 - onChange: onChange,
1549 - contentRef: contentRef
1550 - }));
1551 -}
1552 -
1553 -const text_color_textColor = {
1554 - name: text_color_name,
1555 - title: text_color_title,
1556 - tagName: 'mark',
1557 - className: 'has-inline-color',
1558 - attributes: {
1559 - style: 'style',
1560 - class: 'class'
1561 - },
1562 -
1563 - /*
1564 - * Since this format relies on the <mark> tag, it's important to
1565 - * prevent the default yellow background color applied by most
1566 - * browsers. The solution is to detect when this format is used with a
1567 - * text color but no background color, and in such cases to override
1568 - * the default styling with a transparent background.
1569 - *
1570 - * @see https://github.com/WordPress/gutenberg/pull/35516
1571 - */
1572 - __unstableFilterAttributeValue(key, value) {
1573 - if (key !== 'style') return value; // We should not add a background-color if it's already set
1574 -
1575 - if (value && value.includes('background-color')) return value;
1576 - const addedCSS = ['background-color', transparentValue].join(':'); // Prepend `addedCSS` to avoid a double `;;` as any the existing CSS
1577 - // rules will already include a `;`.
1578 -
1579 - return value ? [addedCSS, value].join(';') : addedCSS;
1580 - },
1581 -
1582 - edit: TextColorEdit
1583 -};
1584 -//# sourceMappingURL=index.js.map
1585 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/subscript.js
1586 -
1587 -
1588 -/**
1589 - * WordPress dependencies
1590 - */
1591 -
1592 -const subscript = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
1593 - xmlns: "http://www.w3.org/2000/svg",
1594 - viewBox: "0 0 24 24"
1595 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
1596 - d: "M16.9 18.3l.8-1.2c.4-.6.7-1.2.9-1.6.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1-.1-.3-.4-.5-.6-.7-.3-.2-.6-.3-1-.3s-.8.1-1.1.2c-.3.1-.7.3-1 .6l.2 1.3c.3-.3.5-.5.8-.6s.6-.2.9-.2c.3 0 .5.1.7.2.2.2.2.4.2.7 0 .3-.1.5-.2.8-.1.3-.4.7-.8 1.3L15 19.4h4.3v-1.2h-2.4zM14.1 7.2h-2L9.5 11 6.9 7.2h-2l3.6 5.3L4.7 18h2l2.7-4 2.7 4h2l-3.8-5.5 3.8-5.3z"
1597 -}));
1598 -/* harmony default export */ var library_subscript = (subscript);
1599 -//# sourceMappingURL=subscript.js.map
1600 -;// CONCATENATED MODULE: ./packages/format-library/build-module/subscript/index.js
1601 -
1602 -
1603 -/**
1604 - * WordPress dependencies
1605 - */
1606 -
1607 -
1608 -
1609 -
1610 -const subscript_name = 'core/subscript';
1611 -
1612 -const subscript_title = (0,external_wp_i18n_namespaceObject.__)('Subscript');
1613 -
1614 -const subscript_subscript = {
1615 - name: subscript_name,
1616 - title: subscript_title,
1617 - tagName: 'sub',
1618 - className: null,
1619 -
1620 - edit(_ref) {
1621 - let {
1622 - isActive,
1623 - value,
1624 - onChange,
1625 - onFocus
1626 - } = _ref;
1627 -
1628 - function onToggle() {
1629 - onChange((0,external_wp_richText_namespaceObject.toggleFormat)(value, {
1630 - type: subscript_name,
1631 - title: subscript_title
1632 - }));
1633 - }
1634 -
1635 - function onClick() {
1636 - onToggle();
1637 - onFocus();
1638 - }
1639 -
1640 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
1641 - icon: library_subscript,
1642 - title: subscript_title,
1643 - onClick: onClick,
1644 - isActive: isActive,
1645 - role: "menuitemcheckbox"
1646 - });
1647 - }
1648 -
1649 -};
1650 -//# sourceMappingURL=index.js.map
1651 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/superscript.js
1652 -
1653 -
1654 -/**
1655 - * WordPress dependencies
1656 - */
1657 -
1658 -const superscript = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
1659 - xmlns: "http://www.w3.org/2000/svg",
1660 - viewBox: "0 0 24 24"
1661 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
1662 - d: "M16.9 10.3l.8-1.3c.4-.6.7-1.2.9-1.6.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1-.2-.2-.4-.4-.7-.6-.3-.2-.6-.3-1-.3s-.8.1-1.1.2c-.3.1-.7.3-1 .6l.1 1.3c.3-.3.5-.5.8-.6s.6-.2.9-.2c.3 0 .5.1.7.2.2.2.2.4.2.7 0 .3-.1.5-.2.8-.1.3-.4.7-.8 1.3l-1.8 2.8h4.3v-1.2h-2.2zm-2.8-3.1h-2L9.5 11 6.9 7.2h-2l3.6 5.3L4.7 18h2l2.7-4 2.7 4h2l-3.8-5.5 3.8-5.3z"
1663 -}));
1664 -/* harmony default export */ var library_superscript = (superscript);
1665 -//# sourceMappingURL=superscript.js.map
1666 -;// CONCATENATED MODULE: ./packages/format-library/build-module/superscript/index.js
1667 -
1668 -
1669 -/**
1670 - * WordPress dependencies
1671 - */
1672 -
1673 -
1674 -
1675 -
1676 -const superscript_name = 'core/superscript';
1677 -
1678 -const superscript_title = (0,external_wp_i18n_namespaceObject.__)('Superscript');
1679 -
1680 -const superscript_superscript = {
1681 - name: superscript_name,
1682 - title: superscript_title,
1683 - tagName: 'sup',
1684 - className: null,
1685 -
1686 - edit(_ref) {
1687 - let {
1688 - isActive,
1689 - value,
1690 - onChange,
1691 - onFocus
1692 - } = _ref;
1693 -
1694 - function onToggle() {
1695 - onChange((0,external_wp_richText_namespaceObject.toggleFormat)(value, {
1696 - type: superscript_name,
1697 - title: superscript_title
1698 - }));
1699 - }
1700 -
1701 - function onClick() {
1702 - onToggle();
1703 - onFocus();
1704 - }
1705 -
1706 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
1707 - icon: library_superscript,
1708 - title: superscript_title,
1709 - onClick: onClick,
1710 - isActive: isActive,
1711 - role: "menuitemcheckbox"
1712 - });
1713 - }
1714 -
1715 -};
1716 -//# sourceMappingURL=index.js.map
1717 -;// CONCATENATED MODULE: ./packages/icons/build-module/library/button.js
1718 -
1719 -
1720 -/**
1721 - * WordPress dependencies
1722 - */
1723 -
1724 -const button_button = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
1725 - viewBox: "0 0 24 24",
1726 - xmlns: "http://www.w3.org/2000/svg"
1727 -}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
1728 - d: "M19 6.5H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v7zM8 12.8h8v-1.5H8v1.5z"
1729 -}));
1730 -/* harmony default export */ var library_button = (button_button);
1731 -//# sourceMappingURL=button.js.map
1732 -;// CONCATENATED MODULE: ./packages/format-library/build-module/keyboard/index.js
1733 -
1734 -
1735 -/**
1736 - * WordPress dependencies
1737 - */
1738 -
1739 -
1740 -
1741 -
1742 -const keyboard_name = 'core/keyboard';
1743 -
1744 -const keyboard_title = (0,external_wp_i18n_namespaceObject.__)('Keyboard input');
1745 -
1746 -const keyboard = {
1747 - name: keyboard_name,
1748 - title: keyboard_title,
1749 - tagName: 'kbd',
1750 - className: null,
1751 -
1752 - edit(_ref) {
1753 - let {
1754 - isActive,
1755 - value,
1756 - onChange,
1757 - onFocus
1758 - } = _ref;
1759 -
1760 - function onToggle() {
1761 - onChange((0,external_wp_richText_namespaceObject.toggleFormat)(value, {
1762 - type: keyboard_name,
1763 - title: keyboard_title
1764 - }));
1765 - }
1766 -
1767 - function onClick() {
1768 - onToggle();
1769 - onFocus();
1770 - }
1771 -
1772 - return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
1773 - icon: library_button,
1774 - title: keyboard_title,
1775 - onClick: onClick,
1776 - isActive: isActive,
1777 - role: "menuitemcheckbox"
1778 - });
1779 - }
1780 -
1781 -};
1782 -//# sourceMappingURL=index.js.map
1783 -;// CONCATENATED MODULE: ./packages/format-library/build-module/default-formats.js
1784 -/**
1785 - * Internal dependencies
1786 - */
1787 -
1788 -
1789 -
1790 -
1791 -
1792 -
1793 -
1794 -
1795 -
1796 -
1797 -
1798 -/* harmony default export */ var default_formats = ([bold, code_code, image_image, italic, build_module_link_link, strikethrough, underline, text_color_textColor, subscript_subscript, superscript_superscript, keyboard]);
1799 -//# sourceMappingURL=default-formats.js.map
1800 -;// CONCATENATED MODULE: ./packages/format-library/build-module/index.js
1801 -/**
1802 - * WordPress dependencies
1803 - */
1804 -
1805 -/**
1806 - * Internal dependencies
1807 - */
1808 -
1809 -
1810 -default_formats.forEach(_ref => {
1811 - let {
1812 - name,
1813 - ...settings
1814 - } = _ref;
1815 - return (0,external_wp_richText_namespaceObject.registerFormatType)(name, settings);
1816 -});
1817 -//# sourceMappingURL=index.js.map
1818 -(window.wp = window.wp || {}).formatLibrary = __webpack_exports__;
1819 -/******/ })()
1820 -;
1 +this.wp=this.wp||{},this.wp.formatLibrary=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=389)}({0:function(t,e){!function(){t.exports=this.wp.element}()},1:function(t,e){!function(){t.exports=this.wp.i18n}()},12:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(36);var o=n(29),c=n(37);function i(t,e){return Object(r.a)(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],r=!0,o=!1,c=void 0;try{for(var i,a=t[Symbol.iterator]();!(r=(i=a.next()).done)&&(n.push(i.value),!e||n.length!==e);r=!0);}catch(t){o=!0,c=t}finally{try{r||null==a.return||a.return()}finally{if(o)throw c}}return n}}(t,e)||Object(o.a)(t,e)||Object(c.a)()}},120:function(t,e,n){"use strict";var r=n(5),o=n(14),c=n(0);function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}e.a=function(t){var e=t.icon,n=t.size,a=void 0===n?24:n,l=Object(o.a)(t,["icon","size"]);return Object(c.cloneElement)(e,function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?i(Object(n),!0).forEach((function(e){Object(r.a)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({width:a,height:a},l))}},13:function(t,e,n){"use strict";function r(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}n.d(e,"a",(function(){return r}))},14:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(41);function o(t,e){if(null==t)return{};var n,o,c=Object(r.a)(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(o=0;o<i.length;o++)n=i[o],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(c[n]=t[n])}return c}},15:function(t,e,n){"use strict";function r(t){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}n.d(e,"a",(function(){return r}))},177:function(t,e,n){"use strict";var r=n(0),o=n(7),c=Object(r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.createElement)(o.Path,{d:"M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"}));e.a=c},18:function(t,e,n){"use strict";function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function o(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),t}n.d(e,"a",(function(){return o}))},19:function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.d(e,"a",(function(){return r}))},195:function(t,e,n){"use strict";var r=n(0),o=n(7),c=Object(r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -2 24 24"},Object(r.createElement)(o.Path,{d:"M16 4h2v9H7v3l-5-4 5-4v3h9V4z"}));e.a=c},198:function(t,e,n){"use strict";var r=n(0),o=n(7),c=Object(r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.createElement)(o.Path,{d:"M15.6 7.3h-.7l1.6-3.5-.9-.4-3.9 8.5H9v1.5h2l-1.3 2.8H8.4c-2 0-3.7-1.7-3.7-3.7s1.7-3.7 3.7-3.7H10V7.3H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H9l-1.4 3.2.9.4 5.7-12.5h1.4c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.9 0 5.2-2.3 5.2-5.2 0-2.9-2.4-5.2-5.2-5.2z"}));e.a=c},2:function(t,e){!function(){t.exports=this.lodash}()},20:function(t,e){!function(){t.exports=this.wp.keycodes}()},21:function(t,e,n){"use strict";function r(t,e){return(r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&r(t,e)}n.d(e,"a",(function(){return o}))},23:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var r=n(40),o=n(13);function c(t,e){return!e||"object"!==Object(r.a)(e)&&"function"!=typeof e?Object(o.a)(t):e}},25:function(t,e){!function(){t.exports=this.wp.richText}()},27:function(t,e,n){"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}n.d(e,"a",(function(){return r}))},276:function(t,e,n){"use strict";var r=n(0),o=n(7),c=Object(r.createElement)(o.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Object(r.createElement)(o.Path,{d:"M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z"}));e.a=c},28:function(t,e){!function(){t.exports=this.wp.url}()},29:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(27);function o(t,e){if(t){if("string"==typeof t)return Object(r.a)(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Object(r.a)(t,e):void 0}}},3:function(t,e){!function(){t.exports=this.wp.components}()},31:function(t,e){!function(){t.exports=this.wp.dom}()},351:function(t,e,n){"use strict";var r=n(0),o=n(7),c=Object(r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -2 24 24"},Object(r.createElement)(o.Path,{d:"M13.23 15h1.9L11 4H9L5 15h1.88l1.07-3h4.18zm-1.53-4.54H8.51L10 5.6z"}));e.a=c},36:function(t,e,n){"use strict";function r(t){if(Array.isArray(t))return t}n.d(e,"a",(function(){return r}))},37:function(t,e,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(e,"a",(function(){return r}))},389:function(t,e,n){"use strict";n.r(e);var r=n(14),o=n(25),c=n(0),i=n(1),a=n(6),l=n(7),u=Object(c.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(c.createElement)(l.Path,{d:"M14.7 11.3c1-.6 1.5-1.6 1.5-3 0-2.3-1.3-3.4-4-3.4H7v14h5.8c1.4 0 2.5-.3 3.3-1 .8-.7 1.2-1.7 1.2-2.9.1-1.9-.8-3.1-2.6-3.7zm-5.1-4h2.3c.6 0 1.1.1 1.4.4.3.3.5.7.5 1.2s-.2 1-.5 1.2c-.3.3-.8.4-1.4.4H9.6V7.3zm4.6 9c-.4.3-1 .4-1.7.4H9.6v-3.9h2.9c.7 0 1.3.2 1.7.5.4.3.6.8.6 1.5s-.2 1.2-.6 1.5z"})),s=Object(i.__)("Bold"),b={name:"core/bold",title:s,tagName:"strong",className:null,edit:function(t){var e=t.isActive,n=t.value,r=t.onChange,i=t.onFocus;function l(){r(Object(o.toggleFormat)(n,{type:"core/bold"}))}return Object(c.createElement)(c.Fragment,null,Object(c.createElement)(a.RichTextShortcut,{type:"primary",character:"b",onUse:l}),Object(c.createElement)(a.RichTextToolbarButton,{name:"bold",icon:u,title:s,onClick:function(){l(),i()},isActive:e,shortcutType:"primary",shortcutCharacter:"b"}),Object(c.createElement)(a.__unstableRichTextInputEvent,{inputType:"formatBold",onInput:l}))}},f=n(276),p=Object(i.__)("Inline Code"),m={name:"core/code",title:p,tagName:"code",className:null,__unstableInputRule:function(t){var e=t,n=e.start,r=e.text;if("`"!==r.slice(n-1,n))return t;var c=r.slice(0,n-1).lastIndexOf("`");if(-1===c)return t;var i=c,a=n-2;return i===a?t:(t=Object(o.remove)(t,i,i+1),t=Object(o.remove)(t,a,a+1),t=Object(o.applyFormat)(t,{type:"core/code"},i,a))},edit:function(t){var e=t.value,n=t.onChange,r=t.onFocus,i=t.isActive;return Object(c.createElement)(a.RichTextToolbarButton,{icon:f.a,title:p,onClick:function(){n(Object(o.toggleFormat)(e,{type:"core/code"})),r()},isActive:i})}},O=n(5),v=n(19),h=n(18),d=n(13),j=n(23),y=n(15),g=n(21),w=n(3),E=n(20),k=n(195);function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?x(Object(n),!0).forEach((function(e){Object(O.a)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function S(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}var _=["image"],P=Object(i.__)("Inline image"),T=function(t){return t.stopPropagation()};function A(){var t=window.getSelection();return t.rangeCount?t.getRangeAt(0):null}var R={name:"core/image",title:P,keywords:[Object(i.__)("photo"),Object(i.__)("media")],object:!0,tagName:"img",className:null,attributes:{className:"class",style:"style",url:"src",alt:"alt"},edit:function(t){Object(g.a)(r,t);var e,n=(e=r,function(){var t,n=Object(y.a)(e);if(S()){var r=Object(y.a)(this).constructor;t=Reflect.construct(n,arguments,r)}else t=n.apply(this,arguments);return Object(j.a)(this,t)});function r(){var t;return Object(v.a)(this,r),(t=n.apply(this,arguments)).onChange=t.onChange.bind(Object(d.a)(t)),t.onKeyDown=t.onKeyDown.bind(Object(d.a)(t)),t.openModal=t.openModal.bind(Object(d.a)(t)),t.closeModal=t.closeModal.bind(Object(d.a)(t)),t.anchorRef=null,t.state={modal:!1},t}return Object(h.a)(r,[{key:"onChange",value:function(t){this.setState({width:t})}},{key:"onKeyDown",value:function(t){[E.LEFT,E.DOWN,E.RIGHT,E.UP,E.BACKSPACE,E.ENTER].indexOf(t.keyCode)>-1&&t.stopPropagation()}},{key:"openModal",value:function(){this.setState({modal:!0})}},{key:"closeModal",value:function(){this.setState({modal:!1})}},{key:"componentDidMount",value:function(){this.anchorRef=A()}},{key:"componentDidUpdate",value:function(t){(!t.isObjectActive&&this.props.isObjectActive||t.activeObjectAttributes.url!==this.props.activeObjectAttributes.url)&&(this.anchorRef=A())}},{key:"render",value:function(){var t=this,e=this.props,n=e.value,r=e.onChange,l=e.onFocus,u=e.isObjectActive,s=e.activeObjectAttributes;return Object(c.createElement)(a.MediaUploadCheck,null,Object(c.createElement)(a.RichTextToolbarButton,{icon:Object(c.createElement)(w.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(c.createElement)(w.Path,{d:"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z"})),title:P,onClick:this.openModal,isActive:u}),this.state.modal&&Object(c.createElement)(a.MediaUpload,{allowedTypes:_,onSelect:function(e){var c=e.id,i=e.url,a=e.alt,u=e.width;t.closeModal(),r(Object(o.insertObject)(n,{type:"core/image",attributes:{className:"wp-image-".concat(c),style:"width: ".concat(Math.min(u,150),"px;"),url:i,alt:a}})),l()},onClose:this.closeModal,render:function(t){return(0,t.open)(),null}}),u&&Object(c.createElement)(w.Popover,{position:"bottom center",focusOnMount:!1,anchorRef:this.anchorRef},Object(c.createElement)("form",{className:"block-editor-format-toolbar__image-container-content",onKeyPress:T,onKeyDown:this.onKeyDown,onSubmit:function(e){var o=n.replacements.slice();o[n.start]={type:"core/image",attributes:C({},s,{style:"width: ".concat(t.state.width,"px;")})},r(C({},n,{replacements:o})),e.preventDefault()}},Object(c.createElement)(w.TextControl,{className:"block-editor-format-toolbar__image-container-value",type:"number",label:Object(i.__)("Width"),value:this.state.width,min:1,onChange:this.onChange}),Object(c.createElement)(w.Button,{icon:k.a,label:Object(i.__)("Apply"),type:"submit"}))))}}],[{key:"getDerivedStateFromProps",value:function(t,e){var n=t.activeObjectAttributes.style;return n===e.previousStyle?null:n?{width:n.replace(/\D/g,""),previousStyle:n}:{width:void 0,previousStyle:n}}}]),r}(c.Component)},M=Object(c.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(c.createElement)(l.Path,{d:"M12.5 5L10 19h1.9l2.5-14z"})),F=Object(i.__)("Italic"),N={name:"core/italic",title:F,tagName:"em",className:null,edit:function(t){var e=t.isActive,n=t.value,r=t.onChange,i=t.onFocus;function l(){r(Object(o.toggleFormat)(n,{type:"core/italic"}))}return Object(c.createElement)(c.Fragment,null,Object(c.createElement)(a.RichTextShortcut,{type:"primary",character:"i",onUse:l}),Object(c.createElement)(a.RichTextToolbarButton,{name:"italic",icon:M,title:F,onClick:function(){l(),i()},isActive:e,shortcutType:"primary",shortcutCharacter:"i"}),Object(c.createElement)(a.__unstableRichTextInputEvent,{inputType:"formatItalic",onInput:l}))}},L=n(28),D=n(60),V=n(198),B=n(177),z=n(12),H=n(2);function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function U(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?I(Object(n),!0).forEach((function(e){Object(O.a)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var G=Object(w.withSpokenMessages)((function(t){var e=t.isActive,n=t.activeAttributes,r=t.addingLink,l=t.value,u=t.onChange,s=t.speak,b=t.stopAddingLink,f=Object(c.useMemo)(H.uniqueId,[r]),p=Object(c.useState)(),m=Object(z.a)(p,2),O=m[0],v=m[1],h=Object(c.useMemo)((function(){var t=window.getSelection();if(t.rangeCount){var n=t.getRangeAt(0);if(r&&!e)return n;var o=n.startContainer;for(o=o.nextElementSibling||o;o.nodeType!==window.Node.ELEMENT_NODE;)o=o.parentNode;return o.closest("a")}}),[r,l.start,l.end]),d=U({url:n.url,type:n.type,id:n.id,opensInNewTab:"_blank"===n.target},O);return Object(c.createElement)(w.Popover,{key:f,anchorRef:h,focusOnMount:!!r&&"firstElement",onClose:b,position:"bottom center"},Object(c.createElement)(a.__experimentalLinkControl,{value:d,onChange:function(t){t=U({},O,{},t);var n=d.opensInNewTab!==t.opensInNewTab&&d.url===t.url,r=n&&void 0===t.url;if(v(r?t:void 0),!r){var c=Object(L.prependHTTP)(t.url),a=function(t){var e=t.url,n=t.type,r=t.id,o=t.opensInNewWindow,c={type:"core/link",attributes:{url:e}};return n&&(c.attributes.type=n),r&&(c.attributes.id=r),o&&(c.attributes.target="_blank",c.attributes.rel="noreferrer noopener"),c}({url:c,type:t.type,id:void 0!==t.id&&null!==t.id?String(t.id):void 0,opensInNewWindow:t.opensInNewTab});if(Object(o.isCollapsed)(l)&&!e){var f=t.title||c,p=Object(o.applyFormat)(Object(o.create)({text:f}),a,0,f.length);u(Object(o.insert)(l,p))}else{var m=Object(o.applyFormat)(l,a);m.start=m.end,m.activeFormats=[],u(m)}n||b(),!function(t){if(!t)return!1;var e=t.trim();if(!e)return!1;if(/^\S+:/.test(e)){var n=Object(L.getProtocol)(e);if(!Object(L.isValidProtocol)(n))return!1;if(Object(H.startsWith)(n,"http")&&!/^https?:\/\/[^\/\s]/i.test(e))return!1;var r=Object(L.getAuthority)(e);if(!Object(L.isValidAuthority)(r))return!1;var o=Object(L.getPath)(e);if(o&&!Object(L.isValidPath)(o))return!1;var c=Object(L.getQueryString)(e);if(c&&!Object(L.isValidQueryString)(c))return!1;var i=Object(L.getFragment)(e);if(i&&!Object(L.isValidFragment)(i))return!1}return!(Object(H.startsWith)(e,"#")&&!Object(L.isValidFragment)(e))}(c)?s(Object(i.__)("Warning: the link has been inserted but may have errors. Please test it."),"assertive"):s(e?Object(i.__)("Link edited."):Object(i.__)("Link inserted."),"assertive")}},forceIsEditingLink:r}))}));function K(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}var W=Object(i.__)("Link"),Q={name:"core/link",title:W,tagName:"a",className:null,attributes:{url:"href",type:"data-type",id:"data-id",target:"target"},__unstablePasteRule:function(t,e){var n=e.html,r=e.plainText;if(Object(o.isCollapsed)(t))return t;var c=(n||r).replace(/<[^>]+>/g,"").trim();return Object(L.isURL)(c)?(window.console.log("Created link:\n\n",c),Object(o.applyFormat)(t,{type:"core/link",attributes:{url:Object(D.decodeEntities)(c)}})):t},edit:Object(w.withSpokenMessages)(function(t){Object(g.a)(r,t);var e,n=(e=r,function(){var t,n=Object(y.a)(e);if(K()){var r=Object(y.a)(this).constructor;t=Reflect.construct(n,arguments,r)}else t=n.apply(this,arguments);return Object(j.a)(this,t)});function r(){var t;return Object(v.a)(this,r),(t=n.apply(this,arguments)).addLink=t.addLink.bind(Object(d.a)(t)),t.stopAddingLink=t.stopAddingLink.bind(Object(d.a)(t)),t.onRemoveFormat=t.onRemoveFormat.bind(Object(d.a)(t)),t.state={addingLink:!1},t}return Object(h.a)(r,[{key:"addLink",value:function(){var t=this.props,e=t.value,n=t.onChange,r=Object(o.getTextContent)(Object(o.slice)(e));r&&Object(L.isURL)(r)?n(Object(o.applyFormat)(e,{type:"core/link",attributes:{url:r}})):r&&Object(L.isEmail)(r)?n(Object(o.applyFormat)(e,{type:"core/link",attributes:{url:"mailto:".concat(r)}})):this.setState({addingLink:!0})}},{key:"stopAddingLink",value:function(){this.setState({addingLink:!1}),this.props.onFocus()}},{key:"onRemoveFormat",value:function(){var t=this.props,e=t.value,n=t.onChange,r=t.speak;n(Object(o.removeFormat)(e,"core/link")),r(Object(i.__)("Link removed."),"assertive")}},{key:"render",value:function(){var t=this.props,e=t.isActive,n=t.activeAttributes,r=t.value,o=t.onChange;return Object(c.createElement)(c.Fragment,null,Object(c.createElement)(a.RichTextShortcut,{type:"primary",character:"k",onUse:this.addLink}),Object(c.createElement)(a.RichTextShortcut,{type:"primaryShift",character:"k",onUse:this.onRemoveFormat}),e&&Object(c.createElement)(a.RichTextToolbarButton,{name:"link",icon:V.a,title:Object(i.__)("Unlink"),onClick:this.onRemoveFormat,isActive:e,shortcutType:"primaryShift",shortcutCharacter:"k"}),!e&&Object(c.createElement)(a.RichTextToolbarButton,{name:"link",icon:B.a,title:W,onClick:this.addLink,isActive:e,shortcutType:"primary",shortcutCharacter:"k"}),(this.state.addingLink||e)&&Object(c.createElement)(G,{addingLink:this.state.addingLink,stopAddingLink:this.stopAddingLink,isActive:e,activeAttributes:n,value:r,onChange:o}))}}]),r}(c.Component))},$=Object(c.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(c.createElement)(l.Path,{d:"M9.1 9v-.5c0-.6.2-1.1.7-1.4.5-.3 1.2-.5 2-.5.7 0 1.4.1 2.1.3.7.2 1.4.5 2.1.9l.2-1.9c-.6-.3-1.2-.5-1.9-.7-.8-.1-1.6-.2-2.4-.2-1.5 0-2.7.3-3.6 1-.8.7-1.2 1.5-1.2 2.6V9h2zM20 12H4v1h8.3c.3.1.6.2.8.3.5.2.9.5 1.1.8.3.3.4.7.4 1.2 0 .7-.2 1.1-.8 1.5-.5.3-1.2.5-2.1.5-.8 0-1.6-.1-2.4-.3-.8-.2-1.5-.5-2.2-.8L7 18.1c.5.2 1.2.4 2 .6.8.2 1.6.3 2.4.3 1.7 0 3-.3 3.9-1 .9-.7 1.3-1.6 1.3-2.8 0-.9-.2-1.7-.7-2.2H20v-1z"})),q=Object(i.__)("Strikethrough"),J={name:"core/strikethrough",title:q,tagName:"s",className:null,edit:function(t){var e=t.isActive,n=t.value,r=t.onChange,i=t.onFocus;return Object(c.createElement)(a.RichTextToolbarButton,{icon:$,title:q,onClick:function(){r(Object(o.toggleFormat)(n,{type:"core/strikethrough"})),i()},isActive:e})}},X={name:"core/underline",title:Object(i.__)("Underline"),tagName:"span",className:null,attributes:{style:"style"},edit:function(t){var e=t.value,n=t.onChange,r=function(){n(Object(o.toggleFormat)(e,{type:"core/underline",attributes:{style:"text-decoration: underline;"}}))};return Object(c.createElement)(c.Fragment,null,Object(c.createElement)(a.RichTextShortcut,{type:"primary",character:"u",onUse:r}),Object(c.createElement)(a.__unstableRichTextInputEvent,{inputType:"formatUnderline",onInput:r}))}},Y=n(4),Z=n(120),tt=n(351),et=n(8),nt=n(31);function rt(t,e,n){var r=Object(o.getActiveFormat)(e,t);if(r){var c=r.attributes.style;if(c)return c.replace(new RegExp("^color:\\s*"),"");var i=r.attributes.class;if(i){var l=i.replace(/.*has-(.*?)-color.*/,"$1");return Object(a.getColorObjectByAttributeValues)(n,l).color}}}var ot=function(t){var e=t.addingColor,n=Object(r.a)(t,["addingColor"]),o=Object(c.useMemo)((function(){var t=window.getSelection(),n=t.rangeCount>0?t.getRangeAt(0):null;if(n){if(e)return Object(nt.getRectangleFromRange)(n);var r=n.startContainer;for(r=r.nextElementSibling||r;r.nodeType!==window.Node.ELEMENT_NODE;)r=r.parentNode;var o=r.closest("span");return o?o.getBoundingClientRect():void 0}}),[]);return o?Object(c.createElement)(a.URLPopover,Object(et.a)({anchorRect:o},n)):null},ct=function(t){var e=t.name,n=t.value,r=t.onChange,i=Object(Y.useSelect)((function(t){var e=t("core/block-editor").getSettings;return Object(H.get)(e(),["colors"],[])})),l=Object(c.useCallback)((function(t){if(t){var c=Object(a.getColorObjectByColorValue)(i,t);r(Object(o.applyFormat)(n,{type:e,attributes:c?{class:Object(a.getColorClassName)("color",c.slug)}:{style:"color:".concat(t)}}))}else r(Object(o.removeFormat)(n,e))}),[i,r]),u=Object(c.useMemo)((function(){return rt(e,n,i)}),[e,n,i]);return Object(c.createElement)(a.ColorPalette,{value:u,onChange:l})},it=Object(w.withSpokenMessages)((function(t){var e=t.name,n=t.value,r=t.onChange,o=t.onClose,i=t.isActive,a=t.addingColor;return Object(c.createElement)(ot,{value:n,isActive:i,addingColor:a,onClose:o,className:"components-inline-color-popover"},Object(c.createElement)(ct,{name:e,value:n,onChange:r}))})),at=Object(i.__)("Text Color"),lt=[];var ut={name:"core/text-color",title:at,tagName:"span",className:"has-inline-color",attributes:{style:"style",class:"class"},edit:function(t){var e=t.value,n=t.onChange,r=t.isActive,i=t.activeAttributes,l=Object(Y.useSelect)((function(t){var e,n=t("core/block-editor");return e=n&&n.getSettings?n.getSettings():{},{colors:Object(H.get)(e,["colors"],lt),disableCustomColors:e.disableCustomColors}})),u=l.colors,s=l.disableCustomColors,b=Object(c.useState)(!1),f=Object(z.a)(b,2),p=f[0],m=f[1],O=Object(c.useCallback)((function(){return m(!0)}),[m]),v=Object(c.useCallback)((function(){return m(!1)}),[m]),h=Object(c.useMemo)((function(){var t=rt("core/text-color",e,u);if(t)return{backgroundColor:t}}),[e,u]),d=!Object(H.isEmpty)(u)||!0!==s;return d||r?Object(c.createElement)(c.Fragment,null,Object(c.createElement)(a.RichTextToolbarButton,{key:r?"text-color":"text-color-not-active",className:"format-library-text-color-button",name:r?"text-color":void 0,icon:Object(c.createElement)(c.Fragment,null,Object(c.createElement)(Z.a,{icon:tt.a}),r&&Object(c.createElement)("span",{className:"format-library-text-color-button__indicator",style:h})),title:at,onClick:d?O:function(){return n(Object(o.removeFormat)(e,"core/text-color"))}}),p&&Object(c.createElement)(it,{name:"core/text-color",addingColor:p,onClose:v,isActive:r,activeAttributes:i,value:e,onChange:n})):null}},st=Object(c.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(c.createElement)(l.Path,{d:"M16.9 18.3l.8-1.2c.4-.6.7-1.2.9-1.6.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1-.1-.3-.4-.5-.6-.7-.3-.2-.6-.3-1-.3s-.8.1-1.1.2c-.3.1-.7.3-1 .6l.2 1.3c.3-.3.5-.5.8-.6s.6-.2.9-.2c.3 0 .5.1.7.2.2.2.2.4.2.7 0 .3-.1.5-.2.8-.1.3-.4.7-.8 1.3L15 19.4h4.3v-1.2h-2.4zM14.1 7.2h-2L9.5 11 6.9 7.2h-2l3.6 5.3L4.7 18h2l2.7-4 2.7 4h2l-3.8-5.5 3.8-5.3z"})),bt=Object(i.__)("Subscript"),ft={name:"core/subscript",title:bt,tagName:"sub",className:null,edit:function(t){var e=t.isActive,n=t.value,r=t.onChange,i=t.onFocus;return Object(c.createElement)(a.RichTextToolbarButton,{icon:st,title:bt,onClick:function(){r(Object(o.toggleFormat)(n,{type:"core/subscript"})),i()},isActive:e})}},pt=Object(c.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(c.createElement)(l.Path,{d:"M16.9 10.3l.8-1.3c.4-.6.7-1.2.9-1.6.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1-.2-.2-.4-.4-.7-.6-.3-.2-.6-.3-1-.3s-.8.1-1.1.2c-.3.1-.7.3-1 .6l.1 1.3c.3-.3.5-.5.8-.6s.6-.2.9-.2c.3 0 .5.1.7.2.2.2.2.4.2.7 0 .3-.1.5-.2.8-.1.3-.4.7-.8 1.3l-1.8 2.8h4.3v-1.2h-2.2zm-2.8-3.1h-2L9.5 11 6.9 7.2h-2l3.6 5.3L4.7 18h2l2.7-4 2.7 4h2l-3.8-5.5 3.8-5.3z"})),mt=Object(i.__)("Superscript");[b,m,R,N,Q,J,X,ut,ft,{name:"core/superscript",title:mt,tagName:"sup",className:null,edit:function(t){var e=t.isActive,n=t.value,r=t.onChange,i=t.onFocus;return Object(c.createElement)(a.RichTextToolbarButton,{icon:pt,title:mt,onClick:function(){r(Object(o.toggleFormat)(n,{type:"core/superscript"})),i()},isActive:e})}}].forEach((function(t){var e=t.name,n=Object(r.a)(t,["name"]);return Object(o.registerFormatType)(e,n)}))},4:function(t,e){!function(){t.exports=this.wp.data}()},40:function(t,e,n){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}n.d(e,"a",(function(){return r}))},41:function(t,e,n){"use strict";function r(t,e){if(null==t)return{};var n,r,o={},c=Object.keys(t);for(r=0;r<c.length;r++)n=c[r],e.indexOf(n)>=0||(o[n]=t[n]);return o}n.d(e,"a",(function(){return r}))},5:function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,"a",(function(){return r}))},6:function(t,e){!function(){t.exports=this.wp.blockEditor}()},60:function(t,e){!function(){t.exports=this.wp.htmlEntities}()},7:function(t,e){!function(){t.exports=this.wp.primitives}()},8:function(t,e,n){"use strict";function r(){return(r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}n.d(e,"a",(function(){return r}))}});