2022-04-11 08:04:30 -04:00
/******/ ( function ( ) { // webpackBootstrap
/******/ "use strict" ;
/******/ // The require scope
/******/ var _ _webpack _require _ _ = { } ;
/******/
/************************************************************************/
/******/ /* webpack/runtime/make namespace object */
/******/ ! function ( ) {
/******/ // define __esModule on exports
/******/ _ _webpack _require _ _ . r = function ( exports ) {
/******/ if ( typeof Symbol !== 'undefined' && Symbol . toStringTag ) {
/******/ Object . defineProperty ( exports , Symbol . toStringTag , { value : 'Module' } ) ;
/******/ }
/******/ Object . defineProperty ( exports , '__esModule' , { value : true } ) ;
2018-12-14 06:02:53 -05:00
/******/ } ;
2022-04-11 08:04:30 -04:00
/******/ } ( ) ;
/******/
2018-12-14 06:02:53 -05:00
/************************************************************************/
2022-04-11 08:04:30 -04:00
var _ _webpack _exports _ _ = { } ;
2020-06-29 07:50:29 -04:00
// ESM COMPAT FLAG
2018-12-14 06:02:53 -05:00
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
2018-12-17 22:14:52 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: external ["wp","richText"]
var external _wp _richText _namespaceObject = window [ "wp" ] [ "richText" ] ;
; // CONCATENATED MODULE: external ["wp","element"]
var external _wp _element _namespaceObject = window [ "wp" ] [ "element" ] ;
; // CONCATENATED MODULE: external ["wp","i18n"]
var external _wp _i18n _namespaceObject = window [ "wp" ] [ "i18n" ] ;
; // CONCATENATED MODULE: external ["wp","blockEditor"]
var external _wp _blockEditor _namespaceObject = window [ "wp" ] [ "blockEditor" ] ;
; // CONCATENATED MODULE: external ["wp","primitives"]
var external _wp _primitives _namespaceObject = window [ "wp" ] [ "primitives" ] ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-bold.js
2021-05-21 06:14:23 -04:00
/ * *
* WordPress dependencies
* /
2022-04-11 08:04:30 -04:00
const formatBold = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
2021-05-21 06:14:23 -04:00
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
2022-04-11 08:04:30 -04:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
2021-05-21 06:14:23 -04:00
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"
} ) ) ;
/* harmony default export */ var format _bold = ( formatBold ) ;
2020-02-10 17:33:27 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/bold/index.js
2018-12-14 06:02:53 -05:00
/ * *
* WordPress dependencies
* /
2020-02-10 17:33:27 -05:00
2021-05-19 11:09:27 -04:00
const bold _name = 'core/bold' ;
2019-09-19 11:19:18 -04:00
2022-04-11 08:04:30 -04:00
const title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Bold' ) ;
2019-09-19 11:19:18 -04:00
2021-05-19 11:09:27 -04:00
const bold = {
2018-12-17 22:14:52 -05:00
name : bold _name ,
2021-05-19 11:09:27 -04:00
title ,
2018-12-16 23:52:00 -05:00
tagName : 'strong' ,
className : null ,
2018-12-14 06:02:53 -05:00
2023-06-27 10:24:19 -04:00
edit ( {
isActive ,
value ,
onChange ,
onFocus
} ) {
2020-02-06 16:03:31 -05:00
function onToggle ( ) {
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . toggleFormat ) ( value , {
2021-11-08 09:29:21 -05:00
type : bold _name ,
title
2018-12-14 06:02:53 -05:00
} ) ) ;
2020-02-06 16:03:31 -05:00
}
function onClick ( ) {
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . toggleFormat ) ( value , {
2021-11-08 09:29:21 -05:00
type : bold _name
} ) ) ;
2020-02-06 16:03:31 -05:00
onFocus ( ) ;
}
2018-12-14 06:02:53 -05:00
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextShortcut , {
2018-12-14 06:02:53 -05:00
type : "primary" ,
character : "b" ,
onUse : onToggle
2022-04-11 08:04:30 -04:00
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
2018-12-14 06:02:53 -05:00
name : "bold" ,
2021-05-21 06:14:23 -04:00
icon : format _bold ,
2019-09-19 11:19:18 -04:00
title : title ,
2020-02-06 16:03:31 -05:00
onClick : onClick ,
2018-12-14 06:02:53 -05:00
isActive : isActive ,
shortcutType : "primary" ,
shortcutCharacter : "b"
2022-04-11 08:04:30 -04:00
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . _ _unstableRichTextInputEvent , {
2019-03-07 04:09:59 -05:00
inputType : "formatBold" ,
onInput : onToggle
2018-12-14 06:02:53 -05:00
} ) ) ;
}
2021-05-19 11:09:27 -04:00
2018-12-14 06:02:53 -05:00
} ;
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/code.js
2020-02-10 17:33:27 -05:00
2022-04-11 08:04:30 -04:00
/ * *
* WordPress dependencies
* /
const code = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
viewBox : "0 0 24 24" ,
xmlns : "http://www.w3.org/2000/svg"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . 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"
} ) ) ;
/* harmony default export */ var library _code = ( code ) ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/code/index.js
2018-12-14 06:02:53 -05:00
/ * *
* WordPress dependencies
* /
2020-02-10 17:33:27 -05:00
2021-05-19 11:09:27 -04:00
const code _name = 'core/code' ;
2019-09-19 11:19:18 -04:00
2022-04-11 08:04:30 -04:00
const code _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Inline code' ) ;
2019-09-19 11:19:18 -04:00
2021-05-19 11:09:27 -04:00
const code _code = {
2018-12-17 22:14:52 -05:00
name : code _name ,
2019-09-19 11:19:18 -04:00
title : code _title ,
2018-12-16 23:52:00 -05:00
tagName : 'code' ,
className : null ,
2021-05-19 11:09:27 -04:00
_ _unstableInputRule ( value ) {
const BACKTICK = '`' ;
const {
start ,
text
} = value ;
2023-06-27 10:24:19 -04:00
const characterBefore = text [ start - 1 ] ; // Quick check the text for the necessary character.
2019-09-19 11:19:18 -04:00
if ( characterBefore !== BACKTICK ) {
return value ;
}
2023-06-27 10:24:19 -04:00
if ( start - 2 < 0 ) {
return value ;
}
const indexBefore = text . lastIndexOf ( BACKTICK , start - 2 ) ;
2019-09-19 11:19:18 -04:00
if ( indexBefore === - 1 ) {
return value ;
}
2021-05-19 11:09:27 -04:00
const startIndex = indexBefore ;
const endIndex = start - 2 ;
2019-09-19 11:19:18 -04:00
if ( startIndex === endIndex ) {
return value ;
}
2022-04-11 08:04:30 -04:00
value = ( 0 , external _wp _richText _namespaceObject . remove ) ( value , startIndex , startIndex + 1 ) ;
value = ( 0 , external _wp _richText _namespaceObject . remove ) ( value , endIndex , endIndex + 1 ) ;
value = ( 0 , external _wp _richText _namespaceObject . applyFormat ) ( value , {
2019-09-19 11:19:18 -04:00
type : code _name
} , startIndex , endIndex ) ;
return value ;
} ,
2018-12-14 06:02:53 -05:00
2023-06-27 10:24:19 -04:00
edit ( {
value ,
onChange ,
onFocus ,
isActive
} ) {
2020-02-06 16:03:31 -05:00
function onClick ( ) {
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . toggleFormat ) ( value , {
2021-11-08 09:29:21 -05:00
type : code _name ,
title : code _title
2018-12-14 06:02:53 -05:00
} ) ) ;
2020-02-06 16:03:31 -05:00
onFocus ( ) ;
}
2018-12-14 06:02:53 -05:00
2022-09-20 11:43:29 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextShortcut , {
type : "access" ,
character : "x" ,
onUse : onClick
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
2022-04-11 08:04:30 -04:00
icon : library _code ,
2019-09-19 11:19:18 -04:00
title : code _title ,
2020-02-06 16:03:31 -05:00
onClick : onClick ,
2021-11-08 09:29:21 -05:00
isActive : isActive ,
role : "menuitemcheckbox"
2022-09-20 11:43:29 -04:00
} ) ) ;
2018-12-14 06:02:53 -05:00
}
2019-03-07 04:09:59 -05:00
2021-05-19 11:09:27 -04:00
} ;
2018-12-17 22:14:52 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: external ["wp","components"]
var external _wp _components _namespaceObject = window [ "wp" ] [ "components" ] ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js
2020-02-10 17:33:27 -05:00
2022-04-11 08:04:30 -04:00
/ * *
* WordPress dependencies
* /
const keyboardReturn = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "-2 -2 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
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"
} ) ) ;
/* harmony default export */ var keyboard _return = ( keyboardReturn ) ;
2019-09-19 11:19:18 -04:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/image/index.js
2018-12-14 06:02:53 -05:00
/ * *
* WordPress dependencies
* /
2019-03-07 04:09:59 -05:00
2021-05-19 11:09:27 -04:00
const ALLOWED _MEDIA _TYPES = [ 'image' ] ;
const image _name = 'core/image' ;
2019-03-07 04:09:59 -05:00
2022-04-11 08:04:30 -04:00
const image _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Inline image' ) ;
2019-09-19 11:19:18 -04:00
2021-05-19 11:09:27 -04:00
const image _image = {
2018-12-17 22:14:52 -05:00
name : image _name ,
2019-09-19 11:19:18 -04:00
title : image _title ,
2022-04-11 08:04:30 -04:00
keywords : [ ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'photo' ) , ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'media' ) ] ,
2018-12-14 06:02:53 -05:00
object : true ,
2018-12-16 23:52:00 -05:00
tagName : 'img' ,
className : null ,
2018-12-14 06:02:53 -05:00
attributes : {
className : 'class' ,
style : 'style' ,
url : 'src' ,
alt : 'alt'
} ,
2021-01-27 21:04:13 -05:00
edit : Edit
} ;
2020-06-26 09:33:47 -04:00
2023-06-27 10:24:19 -04:00
function InlineUI ( {
value ,
onChange ,
activeObjectAttributes ,
contentRef
} ) {
2021-05-19 11:09:27 -04:00
const {
style
} = activeObjectAttributes ;
2023-06-27 10:24:19 -04:00
const [ width , setWidth ] = ( 0 , external _wp _element _namespaceObject . useState ) ( style ? . replace ( /\D/g , '' ) ) ;
2022-09-20 11:43:29 -04:00
const popoverAnchor = ( 0 , external _wp _richText _namespaceObject . useAnchor ) ( {
editableContentElement : contentRef . current ,
2021-01-27 21:04:13 -05:00
settings : image _image
} ) ;
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Popover , {
2023-02-07 02:04:52 -05:00
placement : "bottom" ,
2021-01-27 21:04:13 -05:00
focusOnMount : false ,
2022-09-20 11:43:29 -04:00
anchor : popoverAnchor ,
2021-02-02 00:17:13 -05:00
className : "block-editor-format-toolbar__image-popover"
2022-04-11 08:04:30 -04:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( "form" , {
2021-01-27 21:04:13 -05:00
className : "block-editor-format-toolbar__image-container-content" ,
2021-05-19 11:09:27 -04:00
onSubmit : event => {
const newReplacements = value . replacements . slice ( ) ;
2021-01-27 21:04:13 -05:00
newReplacements [ value . start ] = {
type : image _name ,
2021-05-19 11:09:27 -04:00
attributes : { ... activeObjectAttributes ,
2021-11-08 09:29:21 -05:00
style : width ? ` width: ${ width } px; ` : ''
2021-05-19 11:09:27 -04:00
}
2018-12-14 06:02:53 -05:00
} ;
2021-05-19 11:09:27 -04:00
onChange ( { ... value ,
2021-01-27 21:04:13 -05:00
replacements : newReplacements
2021-05-19 11:09:27 -04:00
} ) ;
2021-01-27 21:04:13 -05:00
event . preventDefault ( ) ;
2018-12-14 06:02:53 -05:00
}
2023-06-27 10:24:19 -04:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . _ _experimentalHStack , {
alignment : "bottom" ,
spacing : "0"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . _ _experimentalNumberControl , {
2021-01-27 21:04:13 -05:00
className : "block-editor-format-toolbar__image-container-value" ,
2022-04-11 08:04:30 -04:00
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Width' ) ,
2021-01-27 21:04:13 -05:00
value : width ,
min : 1 ,
2021-05-19 11:09:27 -04:00
onChange : newWidth => setWidth ( newWidth )
2022-04-11 08:04:30 -04:00
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Button , {
2023-06-27 10:24:19 -04:00
className : "block-editor-format-toolbar__image-container-button" ,
2022-04-11 08:04:30 -04:00
icon : keyboard _return ,
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Apply' ) ,
2021-01-27 21:04:13 -05:00
type : "submit"
2023-06-27 10:24:19 -04:00
} ) ) ) ) ;
2021-01-27 21:04:13 -05:00
}
2018-12-14 06:02:53 -05:00
2023-06-27 10:24:19 -04:00
function Edit ( {
value ,
onChange ,
onFocus ,
isObjectActive ,
activeObjectAttributes ,
contentRef
} ) {
2022-04-11 08:04:30 -04:00
const [ isModalOpen , setIsModalOpen ] = ( 0 , external _wp _element _namespaceObject . useState ) ( false ) ;
2021-01-27 21:04:13 -05:00
function openModal ( ) {
setIsModalOpen ( true ) ;
}
2019-03-07 04:09:59 -05:00
2021-01-27 21:04:13 -05:00
function closeModal ( ) {
setIsModalOpen ( false ) ;
}
2019-03-07 04:09:59 -05:00
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . MediaUploadCheck , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
icon : ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . SVG , {
2021-01-27 21:04:13 -05:00
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
2022-04-11 08:04:30 -04:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Path , {
2021-01-27 21:04:13 -05:00
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 : image _title ,
onClick : openModal ,
isActive : isObjectActive
2022-04-11 08:04:30 -04:00
} ) , isModalOpen && ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . MediaUpload , {
2021-01-27 21:04:13 -05:00
allowedTypes : ALLOWED _MEDIA _TYPES ,
2023-06-27 10:24:19 -04:00
onSelect : ( {
id ,
url ,
alt ,
width : imgWidth
} ) => {
2021-01-27 21:04:13 -05:00
closeModal ( ) ;
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . insertObject ) ( value , {
2021-01-27 21:04:13 -05:00
type : image _name ,
attributes : {
2021-05-19 11:09:27 -04:00
className : ` wp-image- ${ id } ` ,
style : ` width: ${ Math . min ( imgWidth , 150 ) } px; ` ,
url ,
alt
2019-03-07 04:09:59 -05:00
}
2021-01-27 21:04:13 -05:00
} ) ) ;
onFocus ( ) ;
} ,
onClose : closeModal ,
2023-06-27 10:24:19 -04:00
render : ( {
open
} ) => {
2021-01-27 21:04:13 -05:00
open ( ) ;
return null ;
}
2022-04-11 08:04:30 -04:00
} ) , isObjectActive && ( 0 , external _wp _element _namespaceObject . createElement ) ( InlineUI , {
2021-01-27 21:04:13 -05:00
value : value ,
onChange : onChange ,
activeObjectAttributes : activeObjectAttributes ,
contentRef : contentRef
} ) ) ;
}
2018-12-14 06:02:53 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-italic.js
2021-05-21 06:14:23 -04:00
/ * *
* WordPress dependencies
* /
2022-04-11 08:04:30 -04:00
const formatItalic = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
2021-05-21 06:14:23 -04:00
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
2022-04-11 08:04:30 -04:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
2021-05-21 06:14:23 -04:00
d : "M12.5 5L10 19h1.9l2.5-14z"
} ) ) ;
/* harmony default export */ var format _italic = ( formatItalic ) ;
2020-02-10 17:33:27 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/italic/index.js
2018-12-14 06:02:53 -05:00
/ * *
* WordPress dependencies
* /
2020-02-10 17:33:27 -05:00
2021-05-19 11:09:27 -04:00
const italic _name = 'core/italic' ;
2019-09-19 11:19:18 -04:00
2022-04-11 08:04:30 -04:00
const italic _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Italic' ) ;
2019-09-19 11:19:18 -04:00
2021-05-19 11:09:27 -04:00
const italic = {
2018-12-17 22:14:52 -05:00
name : italic _name ,
2019-09-19 11:19:18 -04:00
title : italic _title ,
2018-12-16 23:52:00 -05:00
tagName : 'em' ,
className : null ,
2018-12-14 06:02:53 -05:00
2023-06-27 10:24:19 -04:00
edit ( {
isActive ,
value ,
onChange ,
onFocus
} ) {
2020-02-06 16:03:31 -05:00
function onToggle ( ) {
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . toggleFormat ) ( value , {
2021-11-08 09:29:21 -05:00
type : italic _name ,
title : italic _title
2018-12-14 06:02:53 -05:00
} ) ) ;
2020-02-06 16:03:31 -05:00
}
function onClick ( ) {
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . toggleFormat ) ( value , {
2021-11-08 09:29:21 -05:00
type : italic _name
} ) ) ;
2020-02-06 16:03:31 -05:00
onFocus ( ) ;
}
2018-12-14 06:02:53 -05:00
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextShortcut , {
2018-12-14 06:02:53 -05:00
type : "primary" ,
character : "i" ,
onUse : onToggle
2022-04-11 08:04:30 -04:00
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
2018-12-14 06:02:53 -05:00
name : "italic" ,
2021-05-21 06:14:23 -04:00
icon : format _italic ,
2019-09-19 11:19:18 -04:00
title : italic _title ,
2020-02-06 16:03:31 -05:00
onClick : onClick ,
2018-12-14 06:02:53 -05:00
isActive : isActive ,
shortcutType : "primary" ,
shortcutCharacter : "i"
2022-04-11 08:04:30 -04:00
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . _ _unstableRichTextInputEvent , {
2019-03-07 04:09:59 -05:00
inputType : "formatItalic" ,
onInput : onToggle
2018-12-14 06:02:53 -05:00
} ) ) ;
}
2021-05-19 11:09:27 -04:00
2018-12-14 06:02:53 -05:00
} ;
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: external ["wp","url"]
var external _wp _url _namespaceObject = window [ "wp" ] [ "url" ] ;
; // CONCATENATED MODULE: external ["wp","htmlEntities"]
var external _wp _htmlEntities _namespaceObject = window [ "wp" ] [ "htmlEntities" ] ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js
2018-12-14 06:02:53 -05:00
2020-02-10 17:33:27 -05:00
2022-04-11 08:04:30 -04:00
/ * *
* WordPress dependencies
* /
2020-02-10 17:33:27 -05:00
2022-04-11 08:04:30 -04:00
const linkOff = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
2023-06-27 10:24:19 -04:00
d : "M17.031 4.703 15.576 4l-1.56 3H14v.03l-2.324 4.47H9.5V13h1.396l-1.502 2.889h-.95a3.694 3.694 0 0 1 0-7.389H10V7H8.444a5.194 5.194 0 1 0 0 10.389h.17L7.5 19.53l1.416.719L15.049 8.5h.507a3.694 3.694 0 0 1 0 7.39H14v1.5h1.556a5.194 5.194 0 0 0 .273-10.383l1.202-2.304Z"
2022-04-11 08:04:30 -04:00
} ) ) ;
/* harmony default export */ var link _off = ( linkOff ) ;
2020-02-10 17:33:27 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js
2020-02-10 17:33:27 -05:00
2021-11-08 09:29:21 -05:00
2022-04-11 08:04:30 -04:00
/ * *
* WordPress dependencies
* /
2018-12-14 06:02:53 -05:00
2022-04-11 08:04:30 -04:00
const link _link = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
2023-06-27 10:24:19 -04:00
d : "M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z"
2022-04-11 08:04:30 -04:00
} ) ) ;
/* harmony default export */ var library _link = ( link _link ) ;
; // CONCATENATED MODULE: external ["wp","a11y"]
var external _wp _a11y _namespaceObject = window [ "wp" ] [ "a11y" ] ;
; // CONCATENATED MODULE: external ["wp","data"]
var external _wp _data _namespaceObject = window [ "wp" ] [ "data" ] ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/link/utils.js
2018-12-17 22:14:52 -05:00
/ * *
* WordPress dependencies
* /
2018-12-14 06:02:53 -05:00
2018-12-17 22:14:52 -05:00
/ * *
* Check for issues with the provided href .
*
* @ param { string } href The href .
*
* @ return { boolean } Is the href invalid ?
* /
function isValidHref ( href ) {
if ( ! href ) {
return false ;
}
2021-05-19 11:09:27 -04:00
const trimmedHref = href . trim ( ) ;
2018-12-17 22:14:52 -05:00
if ( ! trimmedHref ) {
return false ;
} // Does the href start with something that looks like a URL protocol?
if ( /^\S+:/ . test ( trimmedHref ) ) {
2022-04-11 08:04:30 -04:00
const protocol = ( 0 , external _wp _url _namespaceObject . getProtocol ) ( trimmedHref ) ;
2018-12-17 22:14:52 -05:00
2022-04-11 08:04:30 -04:00
if ( ! ( 0 , external _wp _url _namespaceObject . isValidProtocol ) ( protocol ) ) {
2018-12-17 22:14:52 -05:00
return false ;
} // Add some extra checks for http(s) URIs, since these are the most common use-case.
// This ensures URIs with an http protocol have exactly two forward slashes following the protocol.
2022-09-20 11:43:29 -04:00
if ( protocol . startsWith ( 'http' ) && ! /^https?:\/\/[^\/\s]/i . test ( trimmedHref ) ) {
2018-12-17 22:14:52 -05:00
return false ;
}
2022-04-11 08:04:30 -04:00
const authority = ( 0 , external _wp _url _namespaceObject . getAuthority ) ( trimmedHref ) ;
2018-12-17 22:14:52 -05:00
2022-04-11 08:04:30 -04:00
if ( ! ( 0 , external _wp _url _namespaceObject . isValidAuthority ) ( authority ) ) {
2018-12-17 22:14:52 -05:00
return false ;
}
2022-04-11 08:04:30 -04:00
const path = ( 0 , external _wp _url _namespaceObject . getPath ) ( trimmedHref ) ;
2018-12-17 22:14:52 -05:00
2022-04-11 08:04:30 -04:00
if ( path && ! ( 0 , external _wp _url _namespaceObject . isValidPath ) ( path ) ) {
2018-12-17 22:14:52 -05:00
return false ;
}
2022-04-11 08:04:30 -04:00
const queryString = ( 0 , external _wp _url _namespaceObject . getQueryString ) ( trimmedHref ) ;
2018-12-17 22:14:52 -05:00
2022-04-11 08:04:30 -04:00
if ( queryString && ! ( 0 , external _wp _url _namespaceObject . isValidQueryString ) ( queryString ) ) {
2018-12-17 22:14:52 -05:00
return false ;
}
2022-04-11 08:04:30 -04:00
const fragment = ( 0 , external _wp _url _namespaceObject . getFragment ) ( trimmedHref ) ;
2018-12-17 22:14:52 -05:00
2022-04-11 08:04:30 -04:00
if ( fragment && ! ( 0 , external _wp _url _namespaceObject . isValidFragment ) ( fragment ) ) {
2018-12-17 22:14:52 -05:00
return false ;
}
} // Validate anchor links.
2022-09-20 11:43:29 -04:00
if ( trimmedHref . startsWith ( '#' ) && ! ( 0 , external _wp _url _namespaceObject . isValidFragment ) ( trimmedHref ) ) {
2018-12-17 22:14:52 -05:00
return false ;
}
return true ;
}
2019-03-07 04:09:59 -05:00
/ * *
* Generates the format object that will be applied to the link text .
*
2019-09-19 11:19:18 -04:00
* @ param { Object } options
* @ param { string } options . url The href of the link .
2020-06-26 09:33:47 -04:00
* @ param { string } options . type The type of the link .
* @ param { string } options . id The ID of the link .
2019-09-19 11:19:18 -04:00
* @ param { boolean } options . opensInNewWindow Whether this link will open in a new window .
2019-03-07 04:09:59 -05:00
*
* @ return { Object } The final format object .
* /
2023-06-27 10:24:19 -04:00
function createLinkFormat ( {
url ,
type ,
id ,
opensInNewWindow
} ) {
2021-05-19 11:09:27 -04:00
const format = {
2019-03-07 04:09:59 -05:00
type : 'core/link' ,
attributes : {
2021-05-19 11:09:27 -04:00
url
2019-03-07 04:09:59 -05:00
}
} ;
2020-06-26 09:33:47 -04:00
if ( type ) format . attributes . type = type ;
if ( id ) format . attributes . id = id ;
2019-03-07 04:09:59 -05:00
if ( opensInNewWindow ) {
format . attributes . target = '_blank' ;
format . attributes . rel = 'noreferrer noopener' ;
}
return format ;
}
2021-11-08 09:29:21 -05:00
/* eslint-disable jsdoc/no-undefined-types */
/ * *
* Get the start and end boundaries of a given format from a rich text value .
*
*
* @ param { RichTextValue } value the rich text value to interrogate .
* @ param { string } format the identifier for the target format ( e . g . ` core/link ` , ` core/bold ` ) .
* @ param { number ? } startIndex optional startIndex to seek from .
* @ param { number ? } endIndex optional endIndex to seek from .
* @ return { Object } object containing start and end values for the given format .
* /
/* eslint-enable jsdoc/no-undefined-types */
2023-06-27 10:24:19 -04:00
function getFormatBoundary ( value , format , startIndex = value . start , endIndex = value . end ) {
2021-11-08 09:29:21 -05:00
const EMPTY _BOUNDARIES = {
start : null ,
end : null
} ;
const {
formats
} = value ;
let targetFormat ;
let initialIndex ;
2023-06-27 10:24:19 -04:00
if ( ! formats ? . length ) {
2021-11-08 09:29:21 -05:00
return EMPTY _BOUNDARIES ;
} // Clone formats to avoid modifying source formats.
const newFormats = formats . slice ( ) ;
2023-06-27 10:24:19 -04:00
const formatAtStart = newFormats [ startIndex ] ? . find ( ( {
type
} ) => type === format . type ) ;
const formatAtEnd = newFormats [ endIndex ] ? . find ( ( {
type
} ) => type === format . type ) ;
const formatAtEndMinusOne = newFormats [ endIndex - 1 ] ? . find ( ( {
type
} ) => type === format . type ) ;
2021-11-08 09:29:21 -05:00
if ( ! ! formatAtStart ) {
// Set values to conform to "start"
targetFormat = formatAtStart ;
initialIndex = startIndex ;
} else if ( ! ! formatAtEnd ) {
// Set values to conform to "end"
targetFormat = formatAtEnd ;
initialIndex = endIndex ;
} else if ( ! ! formatAtEndMinusOne ) {
// This is an edge case which will occur if you create a format, then place
// the caret just before the format and hit the back ARROW key. The resulting
// value object will have start and end +1 beyond the edge of the format boundary.
targetFormat = formatAtEndMinusOne ;
initialIndex = endIndex - 1 ;
} else {
return EMPTY _BOUNDARIES ;
}
const index = newFormats [ initialIndex ] . indexOf ( targetFormat ) ;
const walkingArgs = [ newFormats , initialIndex , targetFormat , index ] ; // Walk the startIndex "backwards" to the leading "edge" of the matching format.
startIndex = walkToStart ( ... walkingArgs ) ; // Walk the endIndex "forwards" until the trailing "edge" of the matching format.
2022-04-12 11:12:47 -04:00
endIndex = walkToEnd ( ... walkingArgs ) ; // Safe guard: start index cannot be less than 0.
2021-11-08 09:29:21 -05:00
startIndex = startIndex < 0 ? 0 : startIndex ; // // Return the indicies of the "edges" as the boundaries.
return {
start : startIndex ,
end : endIndex
} ;
}
/ * *
* Walks forwards / backwards towards the boundary of a given format within an
* array of format objects . Returns the index of the boundary .
*
* @ param { Array } formats the formats to search for the given format type .
* @ param { number } initialIndex the starting index from which to walk .
* @ param { Object } targetFormatRef a reference to the format type object being sought .
* @ param { number } formatIndex the index at which we expect the target format object to be .
* @ param { string } direction either 'forwards' or 'backwards' to indicate the direction .
* @ return { number } the index of the boundary of the given format .
* /
function walkToBoundary ( formats , initialIndex , targetFormatRef , formatIndex , direction ) {
let index = initialIndex ;
const directions = {
forwards : 1 ,
backwards : - 1
} ;
const directionIncrement = directions [ direction ] || 1 ; // invalid direction arg default to forwards
const inverseDirectionIncrement = directionIncrement * - 1 ;
while ( formats [ index ] && formats [ index ] [ formatIndex ] === targetFormatRef ) {
// Increment/decrement in the direction of operation.
index = index + directionIncrement ;
} // Restore by one in inverse direction of operation
// to avoid out of bounds.
index = index + inverseDirectionIncrement ;
return index ;
}
2023-06-27 10:24:19 -04:00
const partialRight = ( fn , ... partialArgs ) => ( ... args ) => fn ( ... args , ... partialArgs ) ;
2022-09-20 11:43:29 -04:00
const walkToStart = partialRight ( walkToBoundary , 'backwards' ) ;
const walkToEnd = partialRight ( walkToBoundary , 'forwards' ) ;
2018-12-17 22:14:52 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/link/use-link-instance-key.js
2021-11-10 01:01:30 -05:00
// Weakly referenced map allows unused ids to be garbage collected.
2022-04-12 11:12:47 -04:00
const weakMap = new WeakMap ( ) ; // Incrementing zero-based ID value.
2021-11-10 01:01:30 -05:00
2022-04-11 08:04:30 -04:00
let id = - 1 ;
2021-11-10 01:01:30 -05:00
const prefix = 'link-control-instance' ;
function getKey ( _id ) {
return ` ${ prefix } - ${ _id } ` ;
}
/ * *
* Builds a unique link control key for the given object reference .
*
* @ param { Object } instance an unique object reference specific to this link control instance .
2023-02-07 02:04:52 -05:00
* @ return { string | undefined } the unique key to use for this link control .
2021-11-10 01:01:30 -05:00
* /
function useLinkInstanceKey ( instance ) {
2021-11-11 02:43:31 -05:00
if ( ! instance ) {
return ;
}
2021-11-10 01:01:30 -05:00
if ( weakMap . has ( instance ) ) {
return getKey ( weakMap . get ( instance ) ) ;
}
2022-04-11 08:04:30 -04:00
id += 1 ;
weakMap . set ( instance , id ) ;
return getKey ( id ) ;
2021-11-10 01:01:30 -05:00
}
/* harmony default export */ var use _link _instance _key = ( useLinkInstanceKey ) ;
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/link/inline.js
2018-12-14 06:02:53 -05:00
/ * *
* WordPress dependencies
* /
2021-11-08 09:29:21 -05:00
2018-12-14 06:02:53 -05:00
/ * *
* Internal dependencies
* /
2021-01-27 21:04:13 -05:00
2021-11-10 01:01:30 -05:00
2023-06-27 10:24:19 -04:00
function InlineLinkUI ( {
isActive ,
activeAttributes ,
addingLink ,
value ,
onChange ,
speak ,
stopAddingLink ,
contentRef
} ) {
2021-11-08 09:29:21 -05:00
const richLinkTextValue = getRichTextValueFromSelection ( value , isActive ) ; // Get the text content minus any HTML tags.
const richTextText = richLinkTextValue . text ;
2020-02-10 17:33:27 -05:00
/ * *
* Pending settings to be applied to the next link . When inserting a new
* link , toggle values cannot be applied immediately , because there is not
* yet a link for them to apply to . Thus , they are maintained in a state
* value until the time that the link can be inserted or edited .
*
* @ type { [ Object | undefined , Function ] }
* /
2021-11-08 09:29:21 -05:00
2022-04-11 08:04:30 -04:00
const [ nextLinkValue , setNextLinkValue ] = ( 0 , external _wp _element _namespaceObject . useState ) ( ) ;
2021-11-08 09:29:21 -05:00
const {
createPageEntity ,
userCanCreatePages
2022-04-11 08:04:30 -04:00
} = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
2021-11-08 09:29:21 -05:00
const {
getSettings
2022-04-11 08:04:30 -04:00
} = select ( external _wp _blockEditor _namespaceObject . store ) ;
2021-11-08 09:29:21 -05:00
const _settings = getSettings ( ) ;
return {
createPageEntity : _settings . _ _experimentalCreatePageEntity ,
userCanCreatePages : _settings . _ _experimentalUserCanCreatePages
} ;
} , [ ] ) ;
2021-05-19 11:09:27 -04:00
const linkValue = {
2020-02-06 16:03:31 -05:00
url : activeAttributes . url ,
2020-06-26 09:33:47 -04:00
type : activeAttributes . type ,
id : activeAttributes . id ,
2021-05-19 11:09:27 -04:00
opensInNewTab : activeAttributes . target === '_blank' ,
2021-11-08 09:29:21 -05:00
title : richTextText ,
2021-05-19 11:09:27 -04:00
... nextLinkValue
} ;
2018-12-14 06:02:53 -05:00
2021-11-08 09:29:21 -05:00
function removeLink ( ) {
2022-04-11 08:04:30 -04:00
const newValue = ( 0 , external _wp _richText _namespaceObject . removeFormat ) ( value , 'core/link' ) ;
2021-11-08 09:29:21 -05:00
onChange ( newValue ) ;
stopAddingLink ( ) ;
2022-04-11 08:04:30 -04:00
speak ( ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Link removed.' ) , 'assertive' ) ;
2021-11-08 09:29:21 -05:00
}
2020-02-06 16:03:31 -05:00
function onChangeLink ( nextValue ) {
2020-02-10 17:33:27 -05:00
// Merge with values from state, both for the purpose of assigning the
// next state value, and for use in constructing the new link format if
// the link is ready to be applied.
2021-05-19 11:09:27 -04:00
nextValue = { ... nextLinkValue ,
... nextValue
} ; // LinkControl calls `onChange` immediately upon the toggling a setting.
2020-02-10 17:33:27 -05:00
2021-05-19 11:09:27 -04:00
const didToggleSetting = linkValue . opensInNewTab !== nextValue . opensInNewTab && linkValue . url === nextValue . url ; // If change handler was called as a result of a settings change during
2020-02-10 17:33:27 -05:00
// link insertion, it must be held in state until the link is ready to
// be applied.
2021-05-19 11:09:27 -04:00
const didToggleSettingForNewLink = didToggleSetting && nextValue . url === undefined ; // If link will be assigned, the state value can be considered flushed.
2020-02-10 17:33:27 -05:00
// Otherwise, persist the pending changes.
setNextLinkValue ( didToggleSettingForNewLink ? nextValue : undefined ) ;
if ( didToggleSettingForNewLink ) {
return ;
}
2022-04-11 08:04:30 -04:00
const newUrl = ( 0 , external _wp _url _namespaceObject . prependHTTP ) ( nextValue . url ) ;
2021-11-08 09:29:21 -05:00
const linkFormat = createLinkFormat ( {
2020-02-06 16:03:31 -05:00
url : newUrl ,
2020-06-26 09:33:47 -04:00
type : nextValue . type ,
id : nextValue . id !== undefined && nextValue . id !== null ? String ( nextValue . id ) : undefined ,
2020-02-17 18:02:14 -05:00
opensInNewWindow : nextValue . opensInNewTab
2020-02-06 16:03:31 -05:00
} ) ;
2021-11-08 09:29:21 -05:00
const newText = nextValue . title || newUrl ;
2018-12-14 06:02:53 -05:00
2022-04-11 08:04:30 -04:00
if ( ( 0 , external _wp _richText _namespaceObject . isCollapsed ) ( value ) && ! isActive ) {
2021-11-08 09:29:21 -05:00
// Scenario: we don't have any actively selected text or formats.
2022-04-11 08:04:30 -04:00
const toInsert = ( 0 , external _wp _richText _namespaceObject . applyFormat ) ( ( 0 , external _wp _richText _namespaceObject . create ) ( {
2020-06-26 09:33:47 -04:00
text : newText
2021-11-08 09:29:21 -05:00
} ) , linkFormat , 0 , newText . length ) ;
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . insert ) ( value , toInsert ) ) ;
2020-02-06 16:03:31 -05:00
} else {
2022-04-12 11:12:47 -04:00
// Scenario: we have any active text selection or an active format.
2021-11-08 09:29:21 -05:00
let newValue ;
if ( newText === richTextText ) {
2022-04-12 11:12:47 -04:00
// If we're not updating the text then ignore.
2022-04-11 08:04:30 -04:00
newValue = ( 0 , external _wp _richText _namespaceObject . applyFormat ) ( value , linkFormat ) ;
2021-11-08 09:29:21 -05:00
} else {
// Create new RichText value for the new text in order that we
// can apply formats to it.
2022-04-11 08:04:30 -04:00
newValue = ( 0 , external _wp _richText _namespaceObject . create ) ( {
2021-11-08 09:29:21 -05:00
text : newText
} ) ; // Apply the new Link format to this new text value.
2023-02-07 02:04:52 -05:00
newValue = ( 0 , external _wp _richText _namespaceObject . applyFormat ) ( newValue , linkFormat , 0 , newText . length ) ; // Get the boundaries of the active link format.
const boundary = getFormatBoundary ( value , {
type : 'core/link'
} ) ; // Split the value at the start of the active link format.
// Passing "start" as the 3rd parameter is required to ensure
// the second half of the split value is split at the format's
// start boundary and avoids relying on the value's "end" property
// which may not correspond correctly.
const [ valBefore , valAfter ] = ( 0 , external _wp _richText _namespaceObject . split ) ( value , boundary . start , boundary . start ) ; // Update the original (full) RichTextValue replacing the
2021-11-08 09:29:21 -05:00
// target text with the *new* RichTextValue containing:
// 1. The new text content.
// 2. The new link format.
2023-02-07 02:04:52 -05:00
// As "replace" will operate on the first match only, it is
// run only against the second half of the value which was
// split at the active format's boundary. This avoids a bug
// with incorrectly targetted replacements.
// See: https://github.com/WordPress/gutenberg/issues/41771.
2021-11-08 09:29:21 -05:00
// Note original formats will be lost when applying this change.
// That is expected behaviour.
// See: https://github.com/WordPress/gutenberg/pull/33849#issuecomment-936134179.
2023-02-07 02:04:52 -05:00
const newValAfter = ( 0 , external _wp _richText _namespaceObject . replace ) ( valAfter , richTextText , newValue ) ;
newValue = ( 0 , external _wp _richText _namespaceObject . concat ) ( valBefore , newValAfter ) ;
2021-11-08 09:29:21 -05:00
}
2020-06-26 09:33:47 -04:00
newValue . start = newValue . end ;
newValue . activeFormats = [ ] ;
onChange ( newValue ) ;
2020-02-10 17:33:27 -05:00
} // Focus should only be shifted back to the formatted segment when the
// URL is submitted.
2018-12-14 06:02:53 -05:00
2020-02-10 17:33:27 -05:00
if ( ! didToggleSetting ) {
stopAddingLink ( ) ;
}
2019-10-15 12:17:12 -04:00
2020-02-06 16:03:31 -05:00
if ( ! isValidHref ( newUrl ) ) {
2022-04-11 08:04:30 -04:00
speak ( ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Warning: the link has been inserted but may have errors. Please test it.' ) , 'assertive' ) ;
2020-02-06 16:03:31 -05:00
} else if ( isActive ) {
2022-04-11 08:04:30 -04:00
speak ( ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Link edited.' ) , 'assertive' ) ;
2020-02-06 16:03:31 -05:00
} else {
2022-04-11 08:04:30 -04:00
speak ( ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Link inserted.' ) , 'assertive' ) ;
2018-12-14 06:02:53 -05:00
}
2020-02-06 16:03:31 -05:00
}
2018-12-14 06:02:53 -05:00
2022-09-20 11:43:29 -04:00
const popoverAnchor = ( 0 , external _wp _richText _namespaceObject . useAnchor ) ( {
editableContentElement : contentRef . current ,
2022-04-11 08:04:30 -04:00
settings : build _module _link _link
2021-11-10 01:01:30 -05:00
} ) ; // Generate a string based key that is unique to this anchor reference.
// This is used to force re-mount the LinkControl component to avoid
// potential stale state bugs caused by the component not being remounted
// See https://github.com/WordPress/gutenberg/pull/34742.
2022-09-20 11:43:29 -04:00
const forceRemountKey = use _link _instance _key ( popoverAnchor ) ; // The focusOnMount prop shouldn't evolve during render of a Popover
2021-01-27 21:04:13 -05:00
// otherwise it causes a render of the content.
2022-04-11 08:04:30 -04:00
const focusOnMount = ( 0 , external _wp _element _namespaceObject . useRef ) ( addingLink ? 'firstElement' : false ) ;
2021-11-08 09:29:21 -05:00
async function handleCreate ( pageTitle ) {
const page = await createPageEntity ( {
title : pageTitle ,
status : 'draft'
} ) ;
return {
id : page . id ,
type : page . type ,
title : page . title . rendered ,
url : page . link ,
kind : 'post-type'
} ;
}
function createButtonText ( searchTerm ) {
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createInterpolateElement ) ( ( 0 , external _wp _i18n _namespaceObject . sprintf ) (
2021-11-08 09:29:21 -05:00
/* translators: %s: search term. */
2022-04-11 08:04:30 -04:00
( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Create Page: <mark>%s</mark>' ) , searchTerm ) , {
mark : ( 0 , external _wp _element _namespaceObject . createElement ) ( "mark" , null )
2021-11-08 09:29:21 -05:00
} ) ;
}
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Popover , {
2022-09-20 11:43:29 -04:00
anchor : popoverAnchor ,
2021-01-27 21:04:13 -05:00
focusOnMount : focusOnMount . current ,
2020-02-06 16:03:31 -05:00
onClose : stopAddingLink ,
2023-06-27 10:24:19 -04:00
onFocusOutside : ( ) => stopAddingLink ( false ) ,
2023-02-07 02:04:52 -05:00
placement : "bottom" ,
2022-09-20 11:43:29 -04:00
shift : true
2022-04-11 08:04:30 -04:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . _ _experimentalLinkControl , {
2021-11-10 01:01:30 -05:00
key : forceRemountKey ,
2020-02-06 16:03:31 -05:00
value : linkValue ,
2020-02-10 17:33:27 -05:00
onChange : onChangeLink ,
2021-11-08 09:29:21 -05:00
onRemove : removeLink ,
forceIsEditingLink : addingLink ,
hasRichPreviews : true ,
createSuggestion : createPageEntity && handleCreate ,
withCreateSuggestion : userCanCreatePages ,
createSuggestionButtonText : createButtonText ,
hasTextControl : true
2020-02-06 16:03:31 -05:00
} ) ) ;
}
2018-12-14 06:02:53 -05:00
2021-11-08 09:29:21 -05:00
function getRichTextValueFromSelection ( value , isActive ) {
// Default to the selection ranges on the RichTextValue object.
let textStart = value . start ;
let textEnd = value . end ; // If the format is currently active then the rich text value
// should always be taken from the bounds of the active format
// and not the selected text.
if ( isActive ) {
const boundary = getFormatBoundary ( value , {
type : 'core/link'
} ) ;
textStart = boundary . start ; // Text *selection* always extends +1 beyond the edge of the format.
// We account for that here.
textEnd = boundary . end + 1 ;
} // Get a RichTextValue containing the selected text content.
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _richText _namespaceObject . slice ) ( value , textStart , textEnd ) ;
2021-11-08 09:29:21 -05:00
}
2022-04-11 08:04:30 -04:00
/* harmony default export */ var inline = ( ( 0 , external _wp _components _namespaceObject . withSpokenMessages ) ( InlineLinkUI ) ) ;
2018-12-14 06:02:53 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/link/index.js
2018-12-14 06:02:53 -05:00
2021-01-27 21:04:13 -05:00
/ * *
* WordPress dependencies
* /
2018-12-14 06:02:53 -05:00
2020-06-26 09:33:47 -04:00
2018-12-14 06:02:53 -05:00
/ * *
2021-01-27 21:04:13 -05:00
* Internal dependencies
2018-12-14 06:02:53 -05:00
* /
2021-11-08 09:29:21 -05:00
2021-05-19 11:09:27 -04:00
const link _name = 'core/link' ;
2018-12-14 06:02:53 -05:00
2022-04-11 08:04:30 -04:00
const link _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Link' ) ;
2018-12-14 06:02:53 -05:00
2023-06-27 10:24:19 -04:00
function link _Edit ( {
isActive ,
activeAttributes ,
value ,
onChange ,
onFocus ,
contentRef
} ) {
2022-04-11 08:04:30 -04:00
const [ addingLink , setAddingLink ] = ( 0 , external _wp _element _namespaceObject . useState ) ( false ) ;
2018-12-14 06:02:53 -05:00
2021-01-27 21:04:13 -05:00
function addLink ( ) {
2022-04-11 08:04:30 -04:00
const text = ( 0 , external _wp _richText _namespaceObject . getTextContent ) ( ( 0 , external _wp _richText _namespaceObject . slice ) ( value ) ) ;
2019-09-19 11:19:18 -04:00
2022-04-11 08:04:30 -04:00
if ( text && ( 0 , external _wp _url _namespaceObject . isURL ) ( text ) && isValidHref ( text ) ) {
onChange ( ( 0 , external _wp _richText _namespaceObject . applyFormat ) ( value , {
2021-01-27 21:04:13 -05:00
type : link _name ,
attributes : {
url : text
}
} ) ) ;
2022-04-11 08:04:30 -04:00
} else if ( text && ( 0 , external _wp _url _namespaceObject . isEmail ) ( text ) ) {
onChange ( ( 0 , external _wp _richText _namespaceObject . applyFormat ) ( value , {
2021-01-27 21:04:13 -05:00
type : link _name ,
attributes : {
2021-05-19 11:09:27 -04:00
url : ` mailto: ${ text } `
2021-01-27 21:04:13 -05:00
}
} ) ) ;
} else {
setAddingLink ( true ) ;
}
}
2020-02-10 17:33:27 -05:00
2023-06-27 10:24:19 -04:00
function stopAddingLink ( returnFocus = true ) {
2021-01-27 21:04:13 -05:00
setAddingLink ( false ) ;
2023-06-27 10:24:19 -04:00
if ( returnFocus ) {
onFocus ( ) ;
}
2021-01-27 21:04:13 -05:00
}
2018-12-14 06:02:53 -05:00
2021-01-27 21:04:13 -05:00
function onRemoveFormat ( ) {
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . removeFormat ) ( value , link _name ) ) ;
( 0 , external _wp _a11y _namespaceObject . speak ) ( ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Link removed.' ) , 'assertive' ) ;
2021-01-27 21:04:13 -05:00
}
2019-09-19 11:19:18 -04:00
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextShortcut , {
2021-01-27 21:04:13 -05:00
type : "primary" ,
character : "k" ,
onUse : addLink
2022-04-11 08:04:30 -04:00
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextShortcut , {
2021-01-27 21:04:13 -05:00
type : "primaryShift" ,
character : "k" ,
onUse : onRemoveFormat
2022-04-11 08:04:30 -04:00
} ) , isActive && ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
2021-01-27 21:04:13 -05:00
name : "link" ,
2022-04-11 08:04:30 -04:00
icon : link _off ,
title : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Unlink' ) ,
2021-01-27 21:04:13 -05:00
onClick : onRemoveFormat ,
isActive : isActive ,
shortcutType : "primaryShift" ,
shortcutCharacter : "k"
2022-04-11 08:04:30 -04:00
} ) , ! isActive && ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
2021-01-27 21:04:13 -05:00
name : "link" ,
2022-04-11 08:04:30 -04:00
icon : library _link ,
2021-01-27 21:04:13 -05:00
title : link _title ,
onClick : addLink ,
isActive : isActive ,
shortcutType : "primary" ,
shortcutCharacter : "k"
2022-04-11 08:04:30 -04:00
} ) , ( addingLink || isActive ) && ( 0 , external _wp _element _namespaceObject . createElement ) ( inline , {
2021-01-27 21:04:13 -05:00
addingLink : addingLink ,
stopAddingLink : stopAddingLink ,
isActive : isActive ,
activeAttributes : activeAttributes ,
value : value ,
onChange : onChange ,
contentRef : contentRef
} ) ) ;
}
2019-09-19 11:19:18 -04:00
2022-04-11 08:04:30 -04:00
const build _module _link _link = {
2018-12-17 22:14:52 -05:00
name : link _name ,
2019-09-19 11:19:18 -04:00
title : link _title ,
2018-12-17 22:14:52 -05:00
tagName : 'a' ,
className : null ,
attributes : {
url : 'href' ,
2020-06-26 09:33:47 -04:00
type : 'data-type' ,
id : 'data-id' ,
2018-12-17 22:14:52 -05:00
target : 'target'
} ,
2019-09-19 11:19:18 -04:00
2023-06-27 10:24:19 -04:00
_ _unstablePasteRule ( value , {
html ,
plainText
} ) {
2022-04-11 08:04:30 -04:00
if ( ( 0 , external _wp _richText _namespaceObject . isCollapsed ) ( value ) ) {
2019-09-19 11:19:18 -04:00
return value ;
}
2022-04-12 11:12:47 -04:00
const pastedText = ( html || plainText ) . replace ( /<[^>]+>/g , '' ) . trim ( ) ; // A URL was pasted, turn the selection into a link.
2019-09-19 11:19:18 -04:00
2022-04-11 08:04:30 -04:00
if ( ! ( 0 , external _wp _url _namespaceObject . isURL ) ( pastedText ) ) {
2019-09-19 11:19:18 -04:00
return value ;
} // Allows us to ask for this information when we get a report.
window . console . log ( 'Created link:\n\n' , pastedText ) ;
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _richText _namespaceObject . applyFormat ) ( value , {
2019-09-19 11:19:18 -04:00
type : link _name ,
attributes : {
2022-04-11 08:04:30 -04:00
url : ( 0 , external _wp _htmlEntities _namespaceObject . decodeEntities ) ( pastedText )
2019-09-19 11:19:18 -04:00
}
} ) ;
} ,
2021-05-19 11:09:27 -04:00
2021-01-27 21:04:13 -05:00
edit : link _Edit
2018-12-17 22:14:52 -05:00
} ;
2018-12-14 06:02:53 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-strikethrough.js
/ * *
* WordPress dependencies
* /
const formatStrikethrough = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . 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"
} ) ) ;
/* harmony default export */ var format _strikethrough = ( formatStrikethrough ) ;
2020-02-10 17:33:27 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/strikethrough/index.js
2018-12-14 06:02:53 -05:00
/ * *
* WordPress dependencies
* /
2020-02-10 17:33:27 -05:00
2021-05-19 11:09:27 -04:00
const strikethrough _name = 'core/strikethrough' ;
2019-09-19 11:19:18 -04:00
2022-04-11 08:04:30 -04:00
const strikethrough _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Strikethrough' ) ;
2019-09-19 11:19:18 -04:00
2021-05-19 11:09:27 -04:00
const strikethrough = {
2018-12-17 22:14:52 -05:00
name : strikethrough _name ,
2019-09-19 11:19:18 -04:00
title : strikethrough _title ,
2019-03-21 08:48:00 -04:00
tagName : 's' ,
2018-12-16 23:52:00 -05:00
className : null ,
2018-12-14 06:02:53 -05:00
2023-06-27 10:24:19 -04:00
edit ( {
isActive ,
value ,
onChange ,
onFocus
} ) {
2020-02-06 16:03:31 -05:00
function onClick ( ) {
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . toggleFormat ) ( value , {
2021-11-08 09:29:21 -05:00
type : strikethrough _name ,
title : strikethrough _title
2018-12-14 06:02:53 -05:00
} ) ) ;
2020-02-06 16:03:31 -05:00
onFocus ( ) ;
}
2018-12-14 06:02:53 -05:00
2022-09-20 11:43:29 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextShortcut , {
type : "access" ,
character : "d" ,
onUse : onClick
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
2022-04-11 08:04:30 -04:00
icon : format _strikethrough ,
2019-09-19 11:19:18 -04:00
title : strikethrough _title ,
2020-02-06 16:03:31 -05:00
onClick : onClick ,
2021-11-08 09:29:21 -05:00
isActive : isActive ,
role : "menuitemcheckbox"
2022-09-20 11:43:29 -04:00
} ) ) ;
2018-12-14 06:02:53 -05:00
}
2021-05-19 11:09:27 -04:00
2018-12-14 06:02:53 -05:00
} ;
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/underline/index.js
2018-12-14 06:02:53 -05:00
2018-12-16 23:52:00 -05:00
2019-03-07 04:09:59 -05:00
/ * *
* WordPress dependencies
* /
2021-05-19 11:09:27 -04:00
const underline _name = 'core/underline' ;
2021-11-08 09:29:21 -05:00
2022-04-11 08:04:30 -04:00
const underline _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Underline' ) ;
2021-11-08 09:29:21 -05:00
2021-05-19 11:09:27 -04:00
const underline = {
2019-03-07 04:09:59 -05:00
name : underline _name ,
2021-11-08 09:29:21 -05:00
title : underline _title ,
2019-03-07 04:09:59 -05:00
tagName : 'span' ,
className : null ,
attributes : {
style : 'style'
} ,
2023-06-27 10:24:19 -04:00
edit ( {
value ,
onChange
} ) {
2021-05-19 11:09:27 -04:00
const onToggle = ( ) => {
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . toggleFormat ) ( value , {
2019-03-07 04:09:59 -05:00
type : underline _name ,
attributes : {
style : 'text-decoration: underline;'
2021-11-08 09:29:21 -05:00
} ,
title : underline _title
2019-03-07 04:09:59 -05:00
} ) ) ;
} ;
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextShortcut , {
2019-03-07 04:09:59 -05:00
type : "primary" ,
character : "u" ,
onUse : onToggle
2022-04-11 08:04:30 -04:00
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . _ _unstableRichTextInputEvent , {
2019-03-07 04:09:59 -05:00
inputType : "formatUnderline" ,
onInput : onToggle
} ) ) ;
}
2021-05-19 11:09:27 -04:00
2019-03-07 04:09:59 -05:00
} ;
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js
/ * *
* WordPress dependencies
* /
/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
/ * *
* Return an SVG icon .
*
* @ param { IconProps } props icon is the SVG component to render
* size is a number specifiying the icon size in pixels
* Other props will be passed to wrapped SVG component
*
* @ return { JSX . Element } Icon component
* /
2023-06-27 10:24:19 -04:00
function Icon ( {
icon ,
size = 24 ,
... props
} ) {
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . cloneElement ) ( icon , {
width : size ,
height : size ,
... props
} ) ;
}
/* harmony default export */ var icon = ( Icon ) ;
2020-06-26 09:33:47 -04:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/text-color.js
2020-10-13 09:10:30 -04:00
2021-11-08 09:29:21 -05:00
/ * *
* WordPress dependencies
* /
2022-04-11 08:04:30 -04:00
const textColor = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
2021-11-08 09:29:21 -05:00
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
2022-04-11 08:04:30 -04:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
2021-11-08 09:29:21 -05:00
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"
} ) ) ;
/* harmony default export */ var text _color = ( textColor ) ;
2020-02-10 17:33:27 -05:00
2023-02-07 02:04:52 -05:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/color.js
/ * *
* WordPress dependencies
* /
const color = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
viewBox : "0 0 24 24" ,
xmlns : "http://www.w3.org/2000/svg"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
d : "M17.2 10.9c-.5-1-1.2-2.1-2.1-3.2-.6-.9-1.3-1.7-2.1-2.6L12 4l-1 1.1c-.6.9-1.3 1.7-2 2.6-.8 1.2-1.5 2.3-2 3.2-.6 1.2-1 2.2-1 3 0 3.4 2.7 6.1 6.1 6.1s6.1-2.7 6.1-6.1c0-.8-.3-1.8-1-3zm-5.1 7.6c-2.5 0-4.6-2.1-4.6-4.6 0-.3.1-1 .8-2.3.5-.9 1.1-1.9 2-3.1.7-.9 1.3-1.7 1.8-2.3.7.8 1.3 1.6 1.8 2.3.8 1.1 1.5 2.2 2 3.1.7 1.3.8 2 .8 2.3 0 2.5-2.1 4.6-4.6 4.6z"
} ) ) ;
/* harmony default export */ var library _color = ( color ) ;
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/text-color/inline.js
2020-02-10 17:33:27 -05:00
/ * *
* WordPress dependencies
* /
2021-11-08 09:29:21 -05:00
2021-01-27 21:04:13 -05:00
/ * *
* Internal dependencies
* /
2020-02-10 17:33:27 -05:00
2021-11-08 09:29:21 -05:00
2023-06-27 10:24:19 -04:00
function parseCSS ( css = '' ) {
2021-11-08 09:29:21 -05:00
return css . split ( ';' ) . reduce ( ( accumulator , rule ) => {
if ( rule ) {
const [ property , value ] = rule . split ( ':' ) ;
if ( property === 'color' ) accumulator . color = value ;
2021-12-13 20:57:26 -05:00
if ( property === 'background-color' && value !== transparentValue ) accumulator . backgroundColor = value ;
2021-11-08 09:29:21 -05:00
}
return accumulator ;
} , { } ) ;
}
2023-06-27 10:24:19 -04:00
function parseClassName ( className = '' , colorSettings ) {
2021-11-08 09:29:21 -05:00
return className . split ( ' ' ) . reduce ( ( accumulator , name ) => {
2021-12-13 20:57:26 -05:00
// `colorSlug` could contain dashes, so simply match the start and end.
if ( name . startsWith ( 'has-' ) && name . endsWith ( '-color' ) ) {
const colorSlug = name . replace ( /^has-/ , '' ) . replace ( /-color$/ , '' ) ;
2022-04-11 08:04:30 -04:00
const colorObject = ( 0 , external _wp _blockEditor _namespaceObject . getColorObjectByAttributeValues ) ( colorSettings , colorSlug ) ;
2021-11-08 09:29:21 -05:00
accumulator . color = colorObject . color ;
}
return accumulator ;
} , { } ) ;
}
function getActiveColors ( value , name , colorSettings ) {
2022-04-11 08:04:30 -04:00
const activeColorFormat = ( 0 , external _wp _richText _namespaceObject . getActiveFormat ) ( value , name ) ;
2020-02-10 17:33:27 -05:00
if ( ! activeColorFormat ) {
2021-11-08 09:29:21 -05:00
return { } ;
2020-02-10 17:33:27 -05:00
}
2021-11-08 09:29:21 -05:00
return { ... parseCSS ( activeColorFormat . attributes . style ) ,
... parseClassName ( activeColorFormat . attributes . class , colorSettings )
} ;
}
function setColors ( value , name , colorSettings , colors ) {
const {
color ,
backgroundColor
} = { ... getActiveColors ( value , name , colorSettings ) ,
... colors
} ;
if ( ! color && ! backgroundColor ) {
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _richText _namespaceObject . removeFormat ) ( value , name ) ;
2021-11-08 09:29:21 -05:00
}
const styles = [ ] ;
const classNames = [ ] ;
const attributes = { } ;
2020-02-10 17:33:27 -05:00
2021-11-08 09:29:21 -05:00
if ( backgroundColor ) {
styles . push ( [ 'background-color' , backgroundColor ] . join ( ':' ) ) ;
} else {
// Override default browser color for mark element.
2021-12-13 20:57:26 -05:00
styles . push ( [ 'background-color' , transparentValue ] . join ( ':' ) ) ;
2020-02-10 17:33:27 -05:00
}
2021-11-08 09:29:21 -05:00
if ( color ) {
2022-04-11 08:04:30 -04:00
const colorObject = ( 0 , external _wp _blockEditor _namespaceObject . getColorObjectByColorValue ) ( colorSettings , color ) ;
2020-02-10 17:33:27 -05:00
2021-11-08 09:29:21 -05:00
if ( colorObject ) {
2022-04-11 08:04:30 -04:00
classNames . push ( ( 0 , external _wp _blockEditor _namespaceObject . getColorClassName ) ( 'color' , colorObject . slug ) ) ;
2021-11-08 09:29:21 -05:00
} else {
styles . push ( [ 'color' , color ] . join ( ':' ) ) ;
}
2020-02-10 17:33:27 -05:00
}
2021-11-08 09:29:21 -05:00
if ( styles . length ) attributes . style = styles . join ( ';' ) ;
if ( classNames . length ) attributes . class = classNames . join ( ' ' ) ;
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _richText _namespaceObject . applyFormat ) ( value , {
2021-11-08 09:29:21 -05:00
type : name ,
attributes
} ) ;
2020-02-10 17:33:27 -05:00
}
2023-06-27 10:24:19 -04:00
function ColorPicker ( {
name ,
property ,
value ,
onChange
} ) {
2022-04-11 08:04:30 -04:00
const colors = ( 0 , external _wp _data _namespaceObject . useSelect ) ( select => {
2022-09-20 11:43:29 -04:00
var _getSettings$colors ;
2021-05-19 11:09:27 -04:00
const {
getSettings
2022-04-11 08:04:30 -04:00
} = select ( external _wp _blockEditor _namespaceObject . store ) ;
2022-09-20 11:43:29 -04:00
return ( _getSettings$colors = getSettings ( ) . colors ) !== null && _getSettings$colors !== void 0 ? _getSettings$colors : [ ] ;
2021-11-08 09:29:21 -05:00
} , [ ] ) ;
2022-04-11 08:04:30 -04:00
const onColorChange = ( 0 , external _wp _element _namespaceObject . useCallback ) ( color => {
2021-11-08 09:29:21 -05:00
onChange ( setColors ( value , name , colors , {
[ property ] : color
} ) ) ;
} , [ colors , onChange , property ] ) ;
2022-04-11 08:04:30 -04:00
const activeColors = ( 0 , external _wp _element _namespaceObject . useMemo ) ( ( ) => getActiveColors ( value , name , colors ) , [ name , value , colors ] ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . ColorPalette , {
2021-11-08 09:29:21 -05:00
value : activeColors [ property ] ,
2020-02-10 17:33:27 -05:00
onChange : onColorChange
} ) ;
2021-11-08 09:29:21 -05:00
}
2020-02-10 17:33:27 -05:00
2023-06-27 10:24:19 -04:00
function InlineColorUI ( {
name ,
value ,
onChange ,
onClose ,
contentRef
} ) {
2022-09-20 11:43:29 -04:00
/ *
2021-11-08 09:29:21 -05:00
As you change the text color by typing a HEX value into a field ,
the return value of document . getSelection jumps to the field you ' re editing ,
2022-09-20 11:43:29 -04:00
not the highlighted text . Given that useAnchor uses document . getSelection ,
2021-11-08 09:29:21 -05:00
it will return null , since it can ' t find the < mark > element within the HEX input .
This caches the last truthy value of the selection anchor reference .
* /
2022-09-20 11:43:29 -04:00
const popoverAnchor = ( 0 , external _wp _blockEditor _namespaceObject . useCachedTruthy ) ( ( 0 , external _wp _richText _namespaceObject . useAnchor ) ( {
editableContentElement : contentRef . current ,
2021-11-08 09:29:21 -05:00
settings : text _color _textColor
} ) ) ;
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Popover , {
2020-02-10 17:33:27 -05:00
onClose : onClose ,
2021-01-27 21:04:13 -05:00
className : "components-inline-color-popover" ,
2022-09-20 11:43:29 -04:00
anchor : popoverAnchor
2022-04-11 08:04:30 -04:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . TabPanel , {
2021-11-08 09:29:21 -05:00
tabs : [ {
name : 'color' ,
2022-04-11 08:04:30 -04:00
title : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Text' )
2021-11-08 09:29:21 -05:00
} , {
name : 'backgroundColor' ,
2022-04-11 08:04:30 -04:00
title : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Background' )
2021-11-08 09:29:21 -05:00
} ]
2022-04-11 08:04:30 -04:00
} , tab => ( 0 , external _wp _element _namespaceObject . createElement ) ( ColorPicker , {
2020-02-10 17:33:27 -05:00
name : name ,
2021-11-08 09:29:21 -05:00
property : tab . name ,
2020-02-10 17:33:27 -05:00
value : value ,
onChange : onChange
2021-11-08 09:29:21 -05:00
} ) ) ) ;
2020-10-20 09:36:16 -04:00
}
2020-02-10 17:33:27 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/text-color/index.js
2020-02-10 17:33:27 -05:00
/ * *
* WordPress dependencies
* /
/ * *
* Internal dependencies
* /
2021-12-13 20:57:26 -05:00
const transparentValue = 'rgba(0, 0, 0, 0)' ;
2021-05-19 11:09:27 -04:00
const text _color _name = 'core/text-color' ;
2020-02-10 17:33:27 -05:00
2022-04-11 08:04:30 -04:00
const text _color _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Highlight' ) ;
2020-02-10 17:33:27 -05:00
2021-05-19 11:09:27 -04:00
const EMPTY _ARRAY = [ ] ;
2020-02-10 17:33:27 -05:00
2021-11-08 09:29:21 -05:00
function getComputedStyleProperty ( element , property ) {
const {
ownerDocument
} = element ;
const {
defaultView
} = ownerDocument ;
const style = defaultView . getComputedStyle ( element ) ;
const value = style . getPropertyValue ( property ) ;
2021-12-13 20:57:26 -05:00
if ( property === 'background-color' && value === transparentValue && element . parentElement ) {
2021-11-08 09:29:21 -05:00
return getComputedStyleProperty ( element . parentElement , property ) ;
}
return value ;
}
2023-06-27 10:24:19 -04:00
function fillComputedColors ( element , {
color ,
backgroundColor
} ) {
2021-11-08 09:29:21 -05:00
if ( ! color && ! backgroundColor ) {
return ;
}
return {
color : color || getComputedStyleProperty ( element , 'color' ) ,
2021-12-13 20:57:26 -05:00
backgroundColor : backgroundColor === transparentValue ? getComputedStyleProperty ( element , 'background-color' ) : backgroundColor
2021-11-08 09:29:21 -05:00
} ;
}
2023-06-27 10:24:19 -04:00
function TextColorEdit ( {
value ,
onChange ,
isActive ,
activeAttributes ,
contentRef
} ) {
2022-04-11 08:04:30 -04:00
const allowCustomControl = ( 0 , external _wp _blockEditor _namespaceObject . useSetting ) ( 'color.custom' ) ;
const colors = ( 0 , external _wp _blockEditor _namespaceObject . useSetting ) ( 'color.palette' ) || EMPTY _ARRAY ;
const [ isAddingColor , setIsAddingColor ] = ( 0 , external _wp _element _namespaceObject . useState ) ( false ) ;
const enableIsAddingColor = ( 0 , external _wp _element _namespaceObject . useCallback ) ( ( ) => setIsAddingColor ( true ) , [ setIsAddingColor ] ) ;
const disableIsAddingColor = ( 0 , external _wp _element _namespaceObject . useCallback ) ( ( ) => setIsAddingColor ( false ) , [ setIsAddingColor ] ) ;
const colorIndicatorStyle = ( 0 , external _wp _element _namespaceObject . useMemo ) ( ( ) => fillComputedColors ( contentRef . current , getActiveColors ( value , text _color _name , colors ) ) , [ value , colors ] ) ;
2022-09-20 11:43:29 -04:00
const hasColorsToChoose = colors . length || ! allowCustomControl ;
2020-02-17 18:02:14 -05:00
if ( ! hasColorsToChoose && ! isActive ) {
return null ;
}
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
2020-02-10 17:33:27 -05:00
className : "format-library-text-color-button" ,
2021-11-08 09:29:21 -05:00
isActive : isActive ,
2022-04-11 08:04:30 -04:00
icon : ( 0 , external _wp _element _namespaceObject . createElement ) ( icon , {
2023-02-07 02:04:52 -05:00
icon : Object . keys ( activeAttributes ) . length ? text _color : library _color ,
2020-02-10 17:33:27 -05:00
style : colorIndicatorStyle
2021-11-08 09:29:21 -05:00
} ) ,
2022-04-12 11:12:47 -04:00
title : text _color _title // If has no colors to choose but a color is active remove the color onClick.
2020-02-17 18:02:14 -05:00
,
2022-04-11 08:04:30 -04:00
onClick : hasColorsToChoose ? enableIsAddingColor : ( ) => onChange ( ( 0 , external _wp _richText _namespaceObject . removeFormat ) ( value , text _color _name ) ) ,
2021-11-08 09:29:21 -05:00
role : "menuitemcheckbox"
2022-04-11 08:04:30 -04:00
} ) , isAddingColor && ( 0 , external _wp _element _namespaceObject . createElement ) ( InlineColorUI , {
2020-02-10 17:33:27 -05:00
name : text _color _name ,
onClose : disableIsAddingColor ,
activeAttributes : activeAttributes ,
value : value ,
2021-05-21 06:14:23 -04:00
onChange : onChange ,
2021-01-27 21:04:13 -05:00
contentRef : contentRef
2020-02-10 17:33:27 -05:00
} ) ) ;
}
2021-11-08 09:29:21 -05:00
const text _color _textColor = {
2020-02-10 17:33:27 -05:00
name : text _color _name ,
title : text _color _title ,
2021-11-08 09:29:21 -05:00
tagName : 'mark' ,
2020-02-10 17:33:27 -05:00
className : 'has-inline-color' ,
attributes : {
style : 'style' ,
class : 'class'
} ,
2021-11-08 09:29:21 -05:00
/ *
* Since this format relies on the < mark > tag , it ' s important to
* prevent the default yellow background color applied by most
* browsers . The solution is to detect when this format is used with a
* text color but no background color , and in such cases to override
* the default styling with a transparent background .
*
* @ see https : //github.com/WordPress/gutenberg/pull/35516
* /
_ _unstableFilterAttributeValue ( key , value ) {
2022-04-12 11:12:47 -04:00
if ( key !== 'style' ) return value ; // We should not add a background-color if it's already set.
2021-11-08 09:29:21 -05:00
if ( value && value . includes ( 'background-color' ) ) return value ;
2021-12-13 20:57:26 -05:00
const addedCSS = [ 'background-color' , transparentValue ] . join ( ':' ) ; // Prepend `addedCSS` to avoid a double `;;` as any the existing CSS
2021-11-08 09:29:21 -05:00
// rules will already include a `;`.
return value ? [ addedCSS , value ] . join ( ';' ) : addedCSS ;
} ,
2020-02-10 17:33:27 -05:00
edit : TextColorEdit
} ;
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/subscript.js
2021-05-21 06:14:23 -04:00
/ * *
* WordPress dependencies
* /
2022-04-11 08:04:30 -04:00
const subscript = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
2021-05-21 06:14:23 -04:00
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
2022-04-11 08:04:30 -04:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
2021-05-21 06:14:23 -04:00
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"
} ) ) ;
/* harmony default export */ var library _subscript = ( subscript ) ;
2020-06-26 09:33:47 -04:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/subscript/index.js
2020-06-26 09:33:47 -04:00
/ * *
* WordPress dependencies
* /
2021-05-19 11:09:27 -04:00
const subscript _name = 'core/subscript' ;
2020-06-26 09:33:47 -04:00
2022-04-11 08:04:30 -04:00
const subscript _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Subscript' ) ;
2020-06-26 09:33:47 -04:00
2021-05-19 11:09:27 -04:00
const subscript _subscript = {
2020-06-26 09:33:47 -04:00
name : subscript _name ,
title : subscript _title ,
tagName : 'sub' ,
className : null ,
2023-06-27 10:24:19 -04:00
edit ( {
isActive ,
value ,
onChange ,
onFocus
} ) {
2020-06-26 09:33:47 -04:00
function onToggle ( ) {
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . toggleFormat ) ( value , {
2021-11-08 09:29:21 -05:00
type : subscript _name ,
title : subscript _title
2020-06-26 09:33:47 -04:00
} ) ) ;
}
function onClick ( ) {
onToggle ( ) ;
onFocus ( ) ;
}
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
2021-05-21 06:14:23 -04:00
icon : library _subscript ,
2020-06-26 09:33:47 -04:00
title : subscript _title ,
onClick : onClick ,
2021-11-08 09:29:21 -05:00
isActive : isActive ,
role : "menuitemcheckbox"
2020-06-26 09:33:47 -04:00
} ) ;
}
2021-05-19 11:09:27 -04:00
} ;
2020-06-26 09:33:47 -04:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/superscript.js
2021-05-21 06:14:23 -04:00
/ * *
* WordPress dependencies
* /
2022-04-11 08:04:30 -04:00
const superscript = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
2021-05-21 06:14:23 -04:00
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
2022-04-11 08:04:30 -04:00
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
2021-05-21 06:14:23 -04:00
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"
} ) ) ;
/* harmony default export */ var library _superscript = ( superscript ) ;
2020-06-26 09:33:47 -04:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/superscript/index.js
2020-06-26 09:33:47 -04:00
/ * *
* WordPress dependencies
* /
2021-05-19 11:09:27 -04:00
const superscript _name = 'core/superscript' ;
2020-06-26 09:33:47 -04:00
2022-04-11 08:04:30 -04:00
const superscript _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Superscript' ) ;
2020-06-26 09:33:47 -04:00
2021-05-19 11:09:27 -04:00
const superscript _superscript = {
2020-06-26 09:33:47 -04:00
name : superscript _name ,
title : superscript _title ,
tagName : 'sup' ,
className : null ,
2023-06-27 10:24:19 -04:00
edit ( {
isActive ,
value ,
onChange ,
onFocus
} ) {
2020-06-26 09:33:47 -04:00
function onToggle ( ) {
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . toggleFormat ) ( value , {
2021-11-08 09:29:21 -05:00
type : superscript _name ,
title : superscript _title
2020-06-26 09:33:47 -04:00
} ) ) ;
}
function onClick ( ) {
onToggle ( ) ;
onFocus ( ) ;
}
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
2021-05-21 06:14:23 -04:00
icon : library _superscript ,
2020-06-26 09:33:47 -04:00
title : superscript _title ,
onClick : onClick ,
2021-11-08 09:29:21 -05:00
isActive : isActive ,
role : "menuitemcheckbox"
2020-06-26 09:33:47 -04:00
} ) ;
}
2021-05-19 11:09:27 -04:00
2020-06-26 09:33:47 -04:00
} ;
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/button.js
2021-01-27 21:04:13 -05:00
2022-04-11 08:04:30 -04:00
/ * *
* WordPress dependencies
* /
const button _button = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
viewBox : "0 0 24 24" ,
xmlns : "http://www.w3.org/2000/svg"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
2023-06-27 10:24:19 -04:00
d : "M8 12.5h8V11H8v1.5Z M19 6.5H5a2 2 0 0 0-2 2V15a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a2 2 0 0 0-2-2ZM5 8h14a.5.5 0 0 1 .5.5V15a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V8.5A.5.5 0 0 1 5 8Z"
2022-04-11 08:04:30 -04:00
} ) ) ;
/* harmony default export */ var library _button = ( button _button ) ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/keyboard/index.js
2021-01-27 21:04:13 -05:00
/ * *
* WordPress dependencies
* /
2021-05-19 11:09:27 -04:00
const keyboard _name = 'core/keyboard' ;
2021-01-27 21:04:13 -05:00
2022-04-11 08:04:30 -04:00
const keyboard _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Keyboard input' ) ;
2021-01-27 21:04:13 -05:00
2021-05-19 11:09:27 -04:00
const keyboard = {
2021-01-27 21:04:13 -05:00
name : keyboard _name ,
title : keyboard _title ,
tagName : 'kbd' ,
className : null ,
2023-06-27 10:24:19 -04:00
edit ( {
isActive ,
value ,
onChange ,
onFocus
} ) {
2021-01-27 21:04:13 -05:00
function onToggle ( ) {
2022-04-11 08:04:30 -04:00
onChange ( ( 0 , external _wp _richText _namespaceObject . toggleFormat ) ( value , {
2021-11-08 09:29:21 -05:00
type : keyboard _name ,
title : keyboard _title
2021-01-27 21:04:13 -05:00
} ) ) ;
}
function onClick ( ) {
onToggle ( ) ;
onFocus ( ) ;
}
2022-04-11 08:04:30 -04:00
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
icon : library _button ,
2021-01-27 21:04:13 -05:00
title : keyboard _title ,
onClick : onClick ,
2021-11-08 09:29:21 -05:00
isActive : isActive ,
role : "menuitemcheckbox"
2021-01-27 21:04:13 -05:00
} ) ;
}
2021-05-19 11:09:27 -04:00
2021-01-27 21:04:13 -05:00
} ;
2023-02-07 02:04:52 -05:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/help.js
/ * *
* WordPress dependencies
* /
const help = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
d : "M12 4.75a7.25 7.25 0 100 14.5 7.25 7.25 0 000-14.5zM3.25 12a8.75 8.75 0 1117.5 0 8.75 8.75 0 01-17.5 0zM12 8.75a1.5 1.5 0 01.167 2.99c-.465.052-.917.44-.917 1.01V14h1.5v-.845A3 3 0 109 10.25h1.5a1.5 1.5 0 011.5-1.5zM11.25 15v1.5h1.5V15h-1.5z"
} ) ) ;
/* harmony default export */ var library _help = ( help ) ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/unknown/index.js
/ * *
* WordPress dependencies
* /
const unknown _name = 'core/unknown' ;
const unknown _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Clear Unknown Formatting' ) ;
const unknown = {
name : unknown _name ,
title : unknown _title ,
tagName : '*' ,
className : null ,
2023-06-27 10:24:19 -04:00
edit ( {
isActive ,
value ,
onChange ,
onFocus
} ) {
2023-02-07 02:04:52 -05:00
function onClick ( ) {
onChange ( ( 0 , external _wp _richText _namespaceObject . removeFormat ) ( value , unknown _name ) ) ;
onFocus ( ) ;
}
const selectedValue = ( 0 , external _wp _richText _namespaceObject . slice ) ( value ) ;
const hasUnknownFormats = selectedValue . formats . some ( formats => {
return formats . some ( format => format . type === unknown _name ) ;
} ) ;
if ( ! isActive && ! hasUnknownFormats ) {
return null ;
}
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
name : "unknown" ,
icon : library _help ,
title : unknown _title ,
onClick : onClick ,
isActive : true
} ) ;
}
} ;
2023-06-27 10:24:19 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/language.js
/ * *
* WordPress dependencies
* /
const language = ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . SVG , {
xmlns : "http://www.w3.org/2000/svg" ,
viewBox : "0 0 24 24"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _primitives _namespaceObject . Path , {
d : "M17.5 10h-1.7l-3.7 10.5h1.7l.9-2.6h3.9l.9 2.6h1.7L17.5 10zm-2.2 6.3 1.4-4 1.4 4h-2.8zm-4.8-3.8c1.6-1.8 2.9-3.6 3.7-5.7H16V5.2h-5.8V3H8.8v2.2H3v1.5h9.6c-.7 1.6-1.8 3.1-3.1 4.6C8.6 10.2 7.8 9 7.2 8H5.6c.6 1.4 1.7 2.9 2.9 4.4l-2.4 2.4c-.3.4-.7.8-1.1 1.2l1 1 1.2-1.2c.8-.8 1.6-1.5 2.3-2.3.8.9 1.7 1.7 2.5 2.5l.6-1.5c-.7-.6-1.4-1.3-2.1-2z"
} ) ) ;
/* harmony default export */ var library _language = ( language ) ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/language/index.js
/ * *
* WordPress dependencies
* /
/ * *
* WordPress dependencies
* /
const language _name = 'core/language' ;
const language _title = ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Language' ) ;
const language _language = {
name : language _name ,
tagName : 'bdo' ,
className : null ,
edit : language _Edit ,
title : language _title
} ;
function language _Edit ( {
isActive ,
value ,
onChange ,
contentRef
} ) {
const [ isPopoverVisible , setIsPopoverVisible ] = ( 0 , external _wp _element _namespaceObject . useState ) ( false ) ;
const togglePopover = ( ) => {
setIsPopoverVisible ( state => ! state ) ;
} ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _element _namespaceObject . Fragment , null , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _blockEditor _namespaceObject . RichTextToolbarButton , {
icon : library _language ,
label : language _title ,
title : language _title ,
onClick : ( ) => {
if ( isActive ) {
onChange ( ( 0 , external _wp _richText _namespaceObject . removeFormat ) ( value , language _name ) ) ;
} else {
togglePopover ( ) ;
}
} ,
isActive : isActive ,
role : "menuitemcheckbox"
} ) , isPopoverVisible && ( 0 , external _wp _element _namespaceObject . createElement ) ( InlineLanguageUI , {
value : value ,
onChange : onChange ,
onClose : togglePopover ,
contentRef : contentRef
} ) ) ;
}
function InlineLanguageUI ( {
value ,
contentRef ,
onChange ,
onClose
} ) {
const popoverAnchor = ( 0 , external _wp _richText _namespaceObject . useAnchor ) ( {
editableContentElement : contentRef . current ,
settings : language _language
} ) ;
const [ lang , setLang ] = ( 0 , external _wp _element _namespaceObject . useState ) ( '' ) ;
const [ dir , setDir ] = ( 0 , external _wp _element _namespaceObject . useState ) ( 'ltr' ) ;
return ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Popover , {
className : "block-editor-format-toolbar__language-popover" ,
anchor : popoverAnchor ,
placement : "bottom" ,
onClose : onClose
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( "form" , {
className : "block-editor-format-toolbar__language-container-content" ,
onSubmit : event => {
event . preventDefault ( ) ;
onChange ( ( 0 , external _wp _richText _namespaceObject . applyFormat ) ( value , {
type : language _name ,
attributes : {
lang ,
dir
}
} ) ) ;
onClose ( ) ;
}
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . TextControl , {
label : language _title ,
value : lang ,
onChange : val => setLang ( val ) ,
help : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'A valid language attribute, like "en" or "fr".' )
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . SelectControl , {
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Text direction' ) ,
value : dir ,
options : [ {
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Left to right' ) ,
value : 'ltr'
} , {
label : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Right to left' ) ,
value : 'rtl'
} ] ,
onChange : val => setDir ( val )
} ) , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . _ _experimentalHStack , {
alignment : "right"
} , ( 0 , external _wp _element _namespaceObject . createElement ) ( external _wp _components _namespaceObject . Button , {
variant : "primary" ,
type : "submit" ,
text : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Apply' )
} ) ) ) ) ;
}
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/default-formats.js
2018-12-17 22:14:52 -05:00
/ * *
* Internal dependencies
* /
2018-12-16 23:52:00 -05:00
2019-03-07 04:09:59 -05:00
2020-02-10 17:33:27 -05:00
2020-06-26 09:33:47 -04:00
2021-01-27 21:04:13 -05:00
2023-02-07 02:04:52 -05:00
2023-06-27 10:24:19 -04:00
/* 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 , unknown , language _language ] ) ;
2019-03-07 04:09:59 -05:00
2022-04-11 08:04:30 -04:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/index.js
2018-12-17 22:14:52 -05:00
/ * *
* WordPress dependencies
* /
2018-12-16 23:52:00 -05:00
2019-03-07 04:09:59 -05:00
/ * *
* Internal dependencies
* /
2018-12-16 23:52:00 -05:00
2019-03-07 04:09:59 -05:00
2023-06-27 10:24:19 -04:00
default _formats . forEach ( ( {
name ,
... settings
} ) => ( 0 , external _wp _richText _namespaceObject . registerFormatType ) ( name , settings ) ) ;
2018-12-16 23:52:00 -05:00
2022-04-11 08:04:30 -04:00
( window . wp = window . wp || { } ) . formatLibrary = _ _webpack _exports _ _ ;
/******/ } ) ( )
;