@wordpress/format-library 3.10.0 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/text-color/inline.native.js +10 -13
- package/build/text-color/inline.native.js.map +1 -1
- package/build-module/text-color/inline.native.js +10 -12
- package/build-module/text-color/inline.native.js.map +1 -1
- package/package.json +13 -13
- package/src/text-color/inline.native.js +3 -7
package/CHANGELOG.md
CHANGED
|
@@ -7,8 +7,6 @@ exports.default = InlineColorUI;
|
|
|
7
7
|
|
|
8
8
|
var _element = require("@wordpress/element");
|
|
9
9
|
|
|
10
|
-
var _lodash = require("lodash");
|
|
11
|
-
|
|
12
10
|
var _richText = require("@wordpress/rich-text");
|
|
13
11
|
|
|
14
12
|
var _blockEditor = require("@wordpress/block-editor");
|
|
@@ -19,10 +17,6 @@ var _index = require("./index.js");
|
|
|
19
17
|
|
|
20
18
|
var _inline = require("./inline.js");
|
|
21
19
|
|
|
22
|
-
/**
|
|
23
|
-
* External dependencies
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
20
|
/**
|
|
27
21
|
* WordPress dependencies
|
|
28
22
|
*/
|
|
@@ -110,9 +104,12 @@ function setColors(value, name, colorSettings, colors) {
|
|
|
110
104
|
const {
|
|
111
105
|
activeFormats
|
|
112
106
|
} = newFormat;
|
|
113
|
-
newFormat.formats[value.start] = [...(0
|
|
114
|
-
|
|
115
|
-
|
|
107
|
+
newFormat.formats[value.start] = [...((activeFormats === null || activeFormats === void 0 ? void 0 : activeFormats.filter(_ref => {
|
|
108
|
+
let {
|
|
109
|
+
type
|
|
110
|
+
} = _ref;
|
|
111
|
+
return type !== format.type;
|
|
112
|
+
})) || []), format];
|
|
116
113
|
return newFormat;
|
|
117
114
|
} else if (hasNoSelection) {
|
|
118
115
|
return (0, _richText.removeFormat)(value, format);
|
|
@@ -121,12 +118,12 @@ function setColors(value, name, colorSettings, colors) {
|
|
|
121
118
|
return (0, _richText.applyFormat)(value, format);
|
|
122
119
|
}
|
|
123
120
|
|
|
124
|
-
function ColorPicker(
|
|
121
|
+
function ColorPicker(_ref2) {
|
|
125
122
|
let {
|
|
126
123
|
name,
|
|
127
124
|
value,
|
|
128
125
|
onChange
|
|
129
|
-
} =
|
|
126
|
+
} = _ref2;
|
|
130
127
|
const property = 'color';
|
|
131
128
|
const colors = (0, _components.useMobileGlobalStylesColors)();
|
|
132
129
|
const colorSettings = (0, _blockEditor.useMultipleOriginColorsAndGradients)();
|
|
@@ -153,13 +150,13 @@ function ColorPicker(_ref) {
|
|
|
153
150
|
});
|
|
154
151
|
}
|
|
155
152
|
|
|
156
|
-
function InlineColorUI(
|
|
153
|
+
function InlineColorUI(_ref3) {
|
|
157
154
|
let {
|
|
158
155
|
name,
|
|
159
156
|
value,
|
|
160
157
|
onChange,
|
|
161
158
|
onClose
|
|
162
|
-
} =
|
|
159
|
+
} = _ref3;
|
|
163
160
|
return (0, _element.createElement)(_components.BottomSheet, {
|
|
164
161
|
isVisible: true,
|
|
165
162
|
onClose: onClose,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/format-library/src/text-color/inline.native.js"],"names":["parseCSS","css","split","reduce","accumulator","rule","property","value","replace","color","transparentValue","backgroundColor","getActiveColors","name","colorSettings","activeColorFormat","attributes","style","class","setColors","colors","styles","classNames","push","join","colorObject","slug","length","format","type","hasNoSelection","start","end","isAtTheEnd","text","previousCharacter","charAt","newFormat","activeFormats","formats","ColorPicker","onChange","onColorChange","activeColors","InlineColorUI","onClose","paddingLeft","paddingRight"],"mappings":";;;;;;;AASA;;AALA;;AAMA;;AAKA;;AAKA;;AASA;;AACA;;AA9BA;AACA;AACA;;AAIA;AACA;AACA;;AAkBA;AACA;AACA;AAIA,SAASA,QAAT,GAA8B;AAAA,MAAXC,GAAW,uEAAL,EAAK;AAC7B,SAAOA,GAAG,CAACC,KAAJ,CAAW,GAAX,EAAiBC,MAAjB,CAAyB,CAAEC,WAAF,EAAeC,IAAf,KAAyB;AACxD,QAAKA,IAAL,EAAY;AACX,YAAM,CAAEC,QAAF,EAAYC,KAAZ,IAAsBF,IAAI,CAACG,OAAL,CAAc,IAAd,EAAoB,EAApB,EAAyBN,KAAzB,CAAgC,GAAhC,CAA5B;AACA,UAAKI,QAAQ,KAAK,OAAlB,EAA4BF,WAAW,CAACK,KAAZ,GAAoBF,KAApB;AAC5B,UAAKD,QAAQ,KAAK,kBAAb,IAAmCC,KAAK,KAAKG,uBAAlD,EACCN,WAAW,CAACO,eAAZ,GAA8BJ,KAA9B;AACD;;AACD,WAAOH,WAAP;AACA,GARM,EAQJ,EARI,CAAP;AASA;;AAED,SAASQ,eAAT,CAA0BL,KAA1B,EAAiCM,IAAjC,EAAuCC,aAAvC,EAAuD;AACtD,QAAMC,iBAAiB,GAAG,+BAAiBR,KAAjB,EAAwBM,IAAxB,CAA1B;;AAEA,MAAK,CAAEE,iBAAP,EAA2B;AAC1B,WAAO,EAAP;AACA;;AAED,SAAO,EACN,GAAGf,QAAQ,CAAEe,iBAAiB,CAACC,UAAlB,CAA6BC,KAA/B,CADL;AAEN,OAAG,4BAAgBF,iBAAiB,CAACC,UAAlB,CAA6BE,KAA7C,EAAoDJ,aAApD;AAFG,GAAP;AAIA;;AAED,SAASK,SAAT,CAAoBZ,KAApB,EAA2BM,IAA3B,EAAiCC,aAAjC,EAAgDM,MAAhD,EAAyD;AACxD,QAAM;AAAEX,IAAAA,KAAF;AAASE,IAAAA;AAAT,MAA6B,EAClC,GAAGC,eAAe,CAAEL,KAAF,EAASM,IAAT,EAAeC,aAAf,CADgB;AAElC,OAAGM;AAF+B,GAAnC;;AAKA,MAAK,CAAEX,KAAF,IAAW,CAAEE,eAAlB,EAAoC;AACnC,WAAO,4BAAcJ,KAAd,EAAqBM,IAArB,CAAP;AACA;;AAED,QAAMQ,MAAM,GAAG,EAAf;AACA,QAAMC,UAAU,GAAG,EAAnB;AACA,QAAMN,UAAU,GAAG,EAAnB;;AAEA,MAAKL,eAAL,EAAuB;AACtBU,IAAAA,MAAM,CAACE,IAAP,CAAa,CAAE,kBAAF,EAAsBZ,eAAtB,EAAwCa,IAAxC,CAA8C,GAA9C,CAAb;AACA,GAFD,MAEO;AACN;AACAH,IAAAA,MAAM,CAACE,IAAP,CAAa,CAAE,kBAAF,EAAsBb,uBAAtB,EAAyCc,IAAzC,CAA+C,GAA/C,CAAb;AACA;;AAED,MAAKf,KAAL,EAAa;AACZ,UAAMgB,WAAW,GAAG,6CAA4BX,aAA5B,EAA2CL,KAA3C,CAApB;;AAEA,QAAKgB,WAAL,EAAmB;AAClBH,MAAAA,UAAU,CAACC,IAAX,CAAiB,oCAAmB,OAAnB,EAA4BE,WAAW,CAACC,IAAxC,CAAjB;AACAL,MAAAA,MAAM,CAACE,IAAP,CAAa,CAAE,OAAF,EAAWE,WAAW,CAAChB,KAAvB,EAA+Be,IAA/B,CAAqC,GAArC,CAAb;AACA,KAHD,MAGO;AACNH,MAAAA,MAAM,CAACE,IAAP,CAAa,CAAE,OAAF,EAAWd,KAAX,EAAmBe,IAAnB,CAAyB,GAAzB,CAAb;AACA;AACD;;AAED,MAAKH,MAAM,CAACM,MAAZ,EAAqBX,UAAU,CAACC,KAAX,GAAmBI,MAAM,CAACG,IAAP,CAAa,GAAb,CAAnB;AACrB,MAAKF,UAAU,CAACK,MAAhB,EAAyBX,UAAU,CAACE,KAAX,GAAmBI,UAAU,CAACE,IAAX,CAAiB,GAAjB,CAAnB;AAEzB,QAAMI,MAAM,GAAG;AAAEC,IAAAA,IAAI,EAAEhB,IAAR;AAAcG,IAAAA;AAAd,GAAf;AACA,QAAMc,cAAc,GAAGvB,KAAK,CAACwB,KAAN,KAAgBxB,KAAK,CAACyB,GAA7C;AACA,QAAMC,UAAU,GAAG1B,KAAK,CAACyB,GAAN,KAAczB,KAAK,CAAC2B,IAAN,CAAWP,MAA5C;AACA,QAAMQ,iBAAiB,GAAG5B,KAAK,CAAC2B,IAAN,CAAWE,MAAX,CAAmB7B,KAAK,CAACyB,GAAN,GAAY,CAA/B,CAA1B,CAtCwD,CAwCxD;;AACA,MACCF,cAAc,KACZvB,KAAK,CAAC2B,IAAN,CAAWP,MAAX,KAAsB,CAAtB,IACCQ,iBAAiB,KAAK,GAAtB,IAA6BF,UAFlB,CADf,EAIE;AACD;AACA;AACA,WAAO,2BAAa1B,KAAb,EAAoBqB,MAApB,EAA4BrB,KAAK,CAACwB,KAAN,GAAc,CAA1C,EAA6CxB,KAAK,CAACyB,GAAN,GAAY,CAAzD,CAAP;AACA,GARD,MAQO,IAAKF,cAAc,IAAIG,UAAvB,EAAoC;AAC1C;AACA;AACA,UAAMI,SAAS,GAAG,2BAAa9B,KAAb,EAAoBqB,MAApB,CAAlB;AACA,UAAM;AAAEU,MAAAA;AAAF,QAAoBD,SAA1B;AACAA,IAAAA,SAAS,CAACE,OAAV,CAAmBhC,KAAK,CAACwB,KAAzB,IAAmC,CAClC,GAAG,oBAAQO,aAAR,EAAuB;AAAET,MAAAA,IAAI,EAAED,MAAM,CAACC;AAAf,KAAvB,CAD+B,EAElCD,MAFkC,CAAnC;AAIA,WAAOS,SAAP;AACA,GAVM,MAUA,IAAKP,cAAL,EAAsB;AAC5B,WAAO,4BAAcvB,KAAd,EAAqBqB,MAArB,CAAP;AACA;;AAED,SAAO,2BAAarB,KAAb,EAAoBqB,MAApB,CAAP;AACA;;AAED,SAASY,WAAT,OAAkD;AAAA,MAA5B;AAAE3B,IAAAA,IAAF;AAAQN,IAAAA,KAAR;AAAekC,IAAAA;AAAf,GAA4B;AACjD,QAAMnC,QAAQ,GAAG,OAAjB;AACA,QAAMc,MAAM,GAAG,8CAAf;AACA,QAAMN,aAAa,GAAG,uDAAtB;AAEA,QAAM4B,aAAa,GAAG,0BACnBjC,KAAF,IAAa;AAAA;;AACZ,QAAKA,KAAK,KAAK,EAAf,EAAoB;AACnBgC,MAAAA,QAAQ,CACPtB,SAAS,CAAEZ,KAAF,EAASM,IAAT,EAAeO,MAAf,EAAuB;AAAE,SAAEd,QAAF,GAAcG;AAAhB,OAAvB,CADF,CAAR,CADmB,CAInB;AACA;AACA,KAND,MAMO,IACN,CAAAF,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEwB,KAAP,OAAiBxB,KAAjB,aAAiBA,KAAjB,uBAAiBA,KAAK,CAAEyB,GAAxB,KACA,gBAAAzB,KAAK,CAAC2B,IAAN,4DAAYE,MAAZ,CAAoB,CAAA7B,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEyB,GAAP,IAAa,CAAjC,OAAyC,GAFnC,EAGL;AACDS,MAAAA,QAAQ,CACP,4BAAclC,KAAd,EAAqBM,IAArB,EAA2BN,KAAK,CAACyB,GAAN,GAAY,CAAvC,EAA0CzB,KAAK,CAACyB,GAAhD,CADO,CAAR;AAGA,KAPM,MAOA;AACNS,MAAAA,QAAQ,CAAE,4BAAclC,KAAd,EAAqBM,IAArB,CAAF,CAAR;AACA;AACD,GAlBoB,EAmBrB,CAAEO,MAAF,EAAUqB,QAAV,EAAoBnC,QAApB,CAnBqB,CAAtB;AAqBA,QAAMqC,YAAY,GAAG,sBACpB,MAAM/B,eAAe,CAAEL,KAAF,EAASM,IAAT,EAAeO,MAAf,CADD,EAEpB,CAAEP,IAAF,EAAQN,KAAR,EAAea,MAAf,CAFoB,CAArB;AAKA,SACC,4BAAC,yBAAD;AACC,IAAA,UAAU,EAAGuB,YAAY,CAAErC,QAAF,CAD1B;AAEC,IAAA,aAAa,EAAGoC,aAFjB;AAGC,IAAA,eAAe,EAAG5B,aAHnB;AAIC,IAAA,cAAc;AAJf,IADD;AAQA;;AAEc,SAAS8B,aAAT,QAA6D;AAAA,MAArC;AAAE/B,IAAAA,IAAF;AAAQN,IAAAA,KAAR;AAAekC,IAAAA,QAAf;AAAyBI,IAAAA;AAAzB,GAAqC;AAC3E,SACC,4BAAC,uBAAD;AACC,IAAA,SAAS,MADV;AAEC,IAAA,OAAO,EAAGA,OAFX;AAGC,IAAA,UAAU,MAHX;AAIC,IAAA,YAAY,EAAG;AAAEC,MAAAA,WAAW,EAAE,CAAf;AAAkBC,MAAAA,YAAY,EAAE;AAAhC,KAJhB;AAKC,IAAA,aAAa,MALd;AAMC,IAAA,UAAU,EAAG,IANd;AAOC,IAAA,MAAM,EAAC;AAPR,KASC,4BAAC,uBAAD,CAAa,mBAAb;AAAiC,IAAA,OAAO,MAAxC;AAAyC,IAAA,IAAI;AAA7C,KACC,4BAAC,uBAAD,CAAa,gBAAb;AAA8B,IAAA,IAAI,EAAC;AAAnC,KACC,4BAAC,WAAD;AACC,IAAA,IAAI,EAAGlC,IADR;AAEC,IAAA,KAAK,EAAGN,KAFT;AAGC,IAAA,QAAQ,EAAGkC;AAHZ,IADD,CADD,CATD,CADD;AAqBA","sourcesContent":["/**\n * External dependencies\n */\n\nimport { reject } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport {\n\tapplyFormat,\n\tremoveFormat,\n\tgetActiveFormat,\n} from '@wordpress/rich-text';\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport {\n\tBottomSheet,\n\tColorSettings,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { transparentValue } from './index.js';\nimport { parseClassName } from './inline.js';\n\nfunction parseCSS( css = '' ) {\n\treturn css.split( ';' ).reduce( ( accumulator, rule ) => {\n\t\tif ( rule ) {\n\t\t\tconst [ property, value ] = rule.replace( / /g, '' ).split( ':' );\n\t\t\tif ( property === 'color' ) accumulator.color = value;\n\t\t\tif ( property === 'background-color' && value !== transparentValue )\n\t\t\t\taccumulator.backgroundColor = value;\n\t\t}\n\t\treturn accumulator;\n\t}, {} );\n}\n\nfunction getActiveColors( value, name, colorSettings ) {\n\tconst activeColorFormat = getActiveFormat( value, name );\n\n\tif ( ! activeColorFormat ) {\n\t\treturn {};\n\t}\n\n\treturn {\n\t\t...parseCSS( activeColorFormat.attributes.style ),\n\t\t...parseClassName( activeColorFormat.attributes.class, colorSettings ),\n\t};\n}\n\nfunction setColors( value, name, colorSettings, colors ) {\n\tconst { color, backgroundColor } = {\n\t\t...getActiveColors( value, name, colorSettings ),\n\t\t...colors,\n\t};\n\n\tif ( ! color && ! backgroundColor ) {\n\t\treturn removeFormat( value, name );\n\t}\n\n\tconst styles = [];\n\tconst classNames = [];\n\tconst attributes = {};\n\n\tif ( backgroundColor ) {\n\t\tstyles.push( [ 'background-color', backgroundColor ].join( ':' ) );\n\t} else {\n\t\t// Override default browser color for mark element.\n\t\tstyles.push( [ 'background-color', transparentValue ].join( ':' ) );\n\t}\n\n\tif ( color ) {\n\t\tconst colorObject = getColorObjectByColorValue( colorSettings, color );\n\n\t\tif ( colorObject ) {\n\t\t\tclassNames.push( getColorClassName( 'color', colorObject.slug ) );\n\t\t\tstyles.push( [ 'color', colorObject.color ].join( ':' ) );\n\t\t} else {\n\t\t\tstyles.push( [ 'color', color ].join( ':' ) );\n\t\t}\n\t}\n\n\tif ( styles.length ) attributes.style = styles.join( ';' );\n\tif ( classNames.length ) attributes.class = classNames.join( ' ' );\n\n\tconst format = { type: name, attributes };\n\tconst hasNoSelection = value.start === value.end;\n\tconst isAtTheEnd = value.end === value.text.length;\n\tconst previousCharacter = value.text.charAt( value.end - 1 );\n\n\t// Force formatting due to limitations in the native implementation\n\tif (\n\t\thasNoSelection &&\n\t\t( value.text.length === 0 ||\n\t\t\t( previousCharacter === ' ' && isAtTheEnd ) )\n\t) {\n\t\t// For cases where there's no text selected, there's a space before\n\t\t// the current caret position and it's at the end of the text.\n\t\treturn applyFormat( value, format, value.start - 1, value.end + 1 );\n\t} else if ( hasNoSelection && isAtTheEnd ) {\n\t\t// If there's no selection and is at the end of the text\n\t\t// manually add the format within the current caret position.\n\t\tconst newFormat = applyFormat( value, format );\n\t\tconst { activeFormats } = newFormat;\n\t\tnewFormat.formats[ value.start ] = [\n\t\t\t...reject( activeFormats, { type: format.type } ),\n\t\t\tformat,\n\t\t];\n\t\treturn newFormat;\n\t} else if ( hasNoSelection ) {\n\t\treturn removeFormat( value, format );\n\t}\n\n\treturn applyFormat( value, format );\n}\n\nfunction ColorPicker( { name, value, onChange } ) {\n\tconst property = 'color';\n\tconst colors = useMobileGlobalStylesColors();\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\n\n\tconst onColorChange = useCallback(\n\t\t( color ) => {\n\t\t\tif ( color !== '' ) {\n\t\t\t\tonChange(\n\t\t\t\t\tsetColors( value, name, colors, { [ property ]: color } )\n\t\t\t\t);\n\t\t\t\t// Remove formatting if the color was reset, there's no\n\t\t\t\t// current selection and the previous character is a space\n\t\t\t} else if (\n\t\t\t\tvalue?.start === value?.end &&\n\t\t\t\tvalue.text?.charAt( value?.end - 1 ) === ' '\n\t\t\t) {\n\t\t\t\tonChange(\n\t\t\t\t\tremoveFormat( value, name, value.end - 1, value.end )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t}\n\t\t},\n\t\t[ colors, onChange, property ]\n\t);\n\tconst activeColors = useMemo(\n\t\t() => getActiveColors( value, name, colors ),\n\t\t[ name, value, colors ]\n\t);\n\n\treturn (\n\t\t<ColorSettings\n\t\t\tcolorValue={ activeColors[ property ] }\n\t\t\tonColorChange={ onColorChange }\n\t\t\tdefaultSettings={ colorSettings }\n\t\t\thideNavigation\n\t\t/>\n\t);\n}\n\nexport default function InlineColorUI( { name, value, onChange, onClose } ) {\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible\n\t\t\tonClose={ onClose }\n\t\t\thideHeader\n\t\t\tcontentStyle={ { paddingLeft: 0, paddingRight: 0 } }\n\t\t\thasNavigation\n\t\t\tleftButton={ null }\n\t\t\ttestID=\"inline-text-color-modal\"\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen name=\"text-color\">\n\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/format-library/src/text-color/inline.native.js"],"names":["parseCSS","css","split","reduce","accumulator","rule","property","value","replace","color","transparentValue","backgroundColor","getActiveColors","name","colorSettings","activeColorFormat","attributes","style","class","setColors","colors","styles","classNames","push","join","colorObject","slug","length","format","type","hasNoSelection","start","end","isAtTheEnd","text","previousCharacter","charAt","newFormat","activeFormats","formats","filter","ColorPicker","onChange","onColorChange","activeColors","InlineColorUI","onClose","paddingLeft","paddingRight"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport {\n\tapplyFormat,\n\tremoveFormat,\n\tgetActiveFormat,\n} from '@wordpress/rich-text';\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport {\n\tBottomSheet,\n\tColorSettings,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { transparentValue } from './index.js';\nimport { parseClassName } from './inline.js';\n\nfunction parseCSS( css = '' ) {\n\treturn css.split( ';' ).reduce( ( accumulator, rule ) => {\n\t\tif ( rule ) {\n\t\t\tconst [ property, value ] = rule.replace( / /g, '' ).split( ':' );\n\t\t\tif ( property === 'color' ) accumulator.color = value;\n\t\t\tif ( property === 'background-color' && value !== transparentValue )\n\t\t\t\taccumulator.backgroundColor = value;\n\t\t}\n\t\treturn accumulator;\n\t}, {} );\n}\n\nfunction getActiveColors( value, name, colorSettings ) {\n\tconst activeColorFormat = getActiveFormat( value, name );\n\n\tif ( ! activeColorFormat ) {\n\t\treturn {};\n\t}\n\n\treturn {\n\t\t...parseCSS( activeColorFormat.attributes.style ),\n\t\t...parseClassName( activeColorFormat.attributes.class, colorSettings ),\n\t};\n}\n\nfunction setColors( value, name, colorSettings, colors ) {\n\tconst { color, backgroundColor } = {\n\t\t...getActiveColors( value, name, colorSettings ),\n\t\t...colors,\n\t};\n\n\tif ( ! color && ! backgroundColor ) {\n\t\treturn removeFormat( value, name );\n\t}\n\n\tconst styles = [];\n\tconst classNames = [];\n\tconst attributes = {};\n\n\tif ( backgroundColor ) {\n\t\tstyles.push( [ 'background-color', backgroundColor ].join( ':' ) );\n\t} else {\n\t\t// Override default browser color for mark element.\n\t\tstyles.push( [ 'background-color', transparentValue ].join( ':' ) );\n\t}\n\n\tif ( color ) {\n\t\tconst colorObject = getColorObjectByColorValue( colorSettings, color );\n\n\t\tif ( colorObject ) {\n\t\t\tclassNames.push( getColorClassName( 'color', colorObject.slug ) );\n\t\t\tstyles.push( [ 'color', colorObject.color ].join( ':' ) );\n\t\t} else {\n\t\t\tstyles.push( [ 'color', color ].join( ':' ) );\n\t\t}\n\t}\n\n\tif ( styles.length ) attributes.style = styles.join( ';' );\n\tif ( classNames.length ) attributes.class = classNames.join( ' ' );\n\n\tconst format = { type: name, attributes };\n\tconst hasNoSelection = value.start === value.end;\n\tconst isAtTheEnd = value.end === value.text.length;\n\tconst previousCharacter = value.text.charAt( value.end - 1 );\n\n\t// Force formatting due to limitations in the native implementation\n\tif (\n\t\thasNoSelection &&\n\t\t( value.text.length === 0 ||\n\t\t\t( previousCharacter === ' ' && isAtTheEnd ) )\n\t) {\n\t\t// For cases where there's no text selected, there's a space before\n\t\t// the current caret position and it's at the end of the text.\n\t\treturn applyFormat( value, format, value.start - 1, value.end + 1 );\n\t} else if ( hasNoSelection && isAtTheEnd ) {\n\t\t// If there's no selection and is at the end of the text\n\t\t// manually add the format within the current caret position.\n\t\tconst newFormat = applyFormat( value, format );\n\t\tconst { activeFormats } = newFormat;\n\t\tnewFormat.formats[ value.start ] = [\n\t\t\t...( activeFormats?.filter(\n\t\t\t\t( { type } ) => type !== format.type\n\t\t\t) || [] ),\n\t\t\tformat,\n\t\t];\n\t\treturn newFormat;\n\t} else if ( hasNoSelection ) {\n\t\treturn removeFormat( value, format );\n\t}\n\n\treturn applyFormat( value, format );\n}\n\nfunction ColorPicker( { name, value, onChange } ) {\n\tconst property = 'color';\n\tconst colors = useMobileGlobalStylesColors();\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\n\n\tconst onColorChange = useCallback(\n\t\t( color ) => {\n\t\t\tif ( color !== '' ) {\n\t\t\t\tonChange(\n\t\t\t\t\tsetColors( value, name, colors, { [ property ]: color } )\n\t\t\t\t);\n\t\t\t\t// Remove formatting if the color was reset, there's no\n\t\t\t\t// current selection and the previous character is a space\n\t\t\t} else if (\n\t\t\t\tvalue?.start === value?.end &&\n\t\t\t\tvalue.text?.charAt( value?.end - 1 ) === ' '\n\t\t\t) {\n\t\t\t\tonChange(\n\t\t\t\t\tremoveFormat( value, name, value.end - 1, value.end )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t}\n\t\t},\n\t\t[ colors, onChange, property ]\n\t);\n\tconst activeColors = useMemo(\n\t\t() => getActiveColors( value, name, colors ),\n\t\t[ name, value, colors ]\n\t);\n\n\treturn (\n\t\t<ColorSettings\n\t\t\tcolorValue={ activeColors[ property ] }\n\t\t\tonColorChange={ onColorChange }\n\t\t\tdefaultSettings={ colorSettings }\n\t\t\thideNavigation\n\t\t/>\n\t);\n}\n\nexport default function InlineColorUI( { name, value, onChange, onClose } ) {\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible\n\t\t\tonClose={ onClose }\n\t\t\thideHeader\n\t\t\tcontentStyle={ { paddingLeft: 0, paddingRight: 0 } }\n\t\t\thasNavigation\n\t\t\tleftButton={ null }\n\t\t\ttestID=\"inline-text-color-modal\"\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen name=\"text-color\">\n\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n"]}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { createElement } from "@wordpress/element";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* External dependencies
|
|
5
|
-
*/
|
|
6
|
-
import { reject } from 'lodash';
|
|
7
3
|
/**
|
|
8
4
|
* WordPress dependencies
|
|
9
5
|
*/
|
|
10
|
-
|
|
11
6
|
import { useCallback, useMemo } from '@wordpress/element';
|
|
12
7
|
import { applyFormat, removeFormat, getActiveFormat } from '@wordpress/rich-text';
|
|
13
8
|
import { getColorClassName, getColorObjectByColorValue, useMultipleOriginColorsAndGradients } from '@wordpress/block-editor';
|
|
@@ -99,9 +94,12 @@ function setColors(value, name, colorSettings, colors) {
|
|
|
99
94
|
const {
|
|
100
95
|
activeFormats
|
|
101
96
|
} = newFormat;
|
|
102
|
-
newFormat.formats[value.start] = [...
|
|
103
|
-
|
|
104
|
-
|
|
97
|
+
newFormat.formats[value.start] = [...((activeFormats === null || activeFormats === void 0 ? void 0 : activeFormats.filter(_ref => {
|
|
98
|
+
let {
|
|
99
|
+
type
|
|
100
|
+
} = _ref;
|
|
101
|
+
return type !== format.type;
|
|
102
|
+
})) || []), format];
|
|
105
103
|
return newFormat;
|
|
106
104
|
} else if (hasNoSelection) {
|
|
107
105
|
return removeFormat(value, format);
|
|
@@ -110,12 +108,12 @@ function setColors(value, name, colorSettings, colors) {
|
|
|
110
108
|
return applyFormat(value, format);
|
|
111
109
|
}
|
|
112
110
|
|
|
113
|
-
function ColorPicker(
|
|
111
|
+
function ColorPicker(_ref2) {
|
|
114
112
|
let {
|
|
115
113
|
name,
|
|
116
114
|
value,
|
|
117
115
|
onChange
|
|
118
|
-
} =
|
|
116
|
+
} = _ref2;
|
|
119
117
|
const property = 'color';
|
|
120
118
|
const colors = useMobileGlobalStylesColors();
|
|
121
119
|
const colorSettings = useMultipleOriginColorsAndGradients();
|
|
@@ -142,13 +140,13 @@ function ColorPicker(_ref) {
|
|
|
142
140
|
});
|
|
143
141
|
}
|
|
144
142
|
|
|
145
|
-
export default function InlineColorUI(
|
|
143
|
+
export default function InlineColorUI(_ref3) {
|
|
146
144
|
let {
|
|
147
145
|
name,
|
|
148
146
|
value,
|
|
149
147
|
onChange,
|
|
150
148
|
onClose
|
|
151
|
-
} =
|
|
149
|
+
} = _ref3;
|
|
152
150
|
return createElement(BottomSheet, {
|
|
153
151
|
isVisible: true,
|
|
154
152
|
onClose: onClose,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/format-library/src/text-color/inline.native.js"],"names":["reject","useCallback","useMemo","applyFormat","removeFormat","getActiveFormat","getColorClassName","getColorObjectByColorValue","useMultipleOriginColorsAndGradients","BottomSheet","ColorSettings","useMobileGlobalStylesColors","transparentValue","parseClassName","parseCSS","css","split","reduce","accumulator","rule","property","value","replace","color","backgroundColor","getActiveColors","name","colorSettings","activeColorFormat","attributes","style","class","setColors","colors","styles","classNames","push","join","colorObject","slug","length","format","type","hasNoSelection","start","end","isAtTheEnd","text","previousCharacter","charAt","newFormat","activeFormats","formats","ColorPicker","onChange","onColorChange","activeColors","InlineColorUI","onClose","paddingLeft","paddingRight"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\n\nimport { reject } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport {\n\tapplyFormat,\n\tremoveFormat,\n\tgetActiveFormat,\n} from '@wordpress/rich-text';\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport {\n\tBottomSheet,\n\tColorSettings,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { transparentValue } from './index.js';\nimport { parseClassName } from './inline.js';\n\nfunction parseCSS( css = '' ) {\n\treturn css.split( ';' ).reduce( ( accumulator, rule ) => {\n\t\tif ( rule ) {\n\t\t\tconst [ property, value ] = rule.replace( / /g, '' ).split( ':' );\n\t\t\tif ( property === 'color' ) accumulator.color = value;\n\t\t\tif ( property === 'background-color' && value !== transparentValue )\n\t\t\t\taccumulator.backgroundColor = value;\n\t\t}\n\t\treturn accumulator;\n\t}, {} );\n}\n\nfunction getActiveColors( value, name, colorSettings ) {\n\tconst activeColorFormat = getActiveFormat( value, name );\n\n\tif ( ! activeColorFormat ) {\n\t\treturn {};\n\t}\n\n\treturn {\n\t\t...parseCSS( activeColorFormat.attributes.style ),\n\t\t...parseClassName( activeColorFormat.attributes.class, colorSettings ),\n\t};\n}\n\nfunction setColors( value, name, colorSettings, colors ) {\n\tconst { color, backgroundColor } = {\n\t\t...getActiveColors( value, name, colorSettings ),\n\t\t...colors,\n\t};\n\n\tif ( ! color && ! backgroundColor ) {\n\t\treturn removeFormat( value, name );\n\t}\n\n\tconst styles = [];\n\tconst classNames = [];\n\tconst attributes = {};\n\n\tif ( backgroundColor ) {\n\t\tstyles.push( [ 'background-color', backgroundColor ].join( ':' ) );\n\t} else {\n\t\t// Override default browser color for mark element.\n\t\tstyles.push( [ 'background-color', transparentValue ].join( ':' ) );\n\t}\n\n\tif ( color ) {\n\t\tconst colorObject = getColorObjectByColorValue( colorSettings, color );\n\n\t\tif ( colorObject ) {\n\t\t\tclassNames.push( getColorClassName( 'color', colorObject.slug ) );\n\t\t\tstyles.push( [ 'color', colorObject.color ].join( ':' ) );\n\t\t} else {\n\t\t\tstyles.push( [ 'color', color ].join( ':' ) );\n\t\t}\n\t}\n\n\tif ( styles.length ) attributes.style = styles.join( ';' );\n\tif ( classNames.length ) attributes.class = classNames.join( ' ' );\n\n\tconst format = { type: name, attributes };\n\tconst hasNoSelection = value.start === value.end;\n\tconst isAtTheEnd = value.end === value.text.length;\n\tconst previousCharacter = value.text.charAt( value.end - 1 );\n\n\t// Force formatting due to limitations in the native implementation\n\tif (\n\t\thasNoSelection &&\n\t\t( value.text.length === 0 ||\n\t\t\t( previousCharacter === ' ' && isAtTheEnd ) )\n\t) {\n\t\t// For cases where there's no text selected, there's a space before\n\t\t// the current caret position and it's at the end of the text.\n\t\treturn applyFormat( value, format, value.start - 1, value.end + 1 );\n\t} else if ( hasNoSelection && isAtTheEnd ) {\n\t\t// If there's no selection and is at the end of the text\n\t\t// manually add the format within the current caret position.\n\t\tconst newFormat = applyFormat( value, format );\n\t\tconst { activeFormats } = newFormat;\n\t\tnewFormat.formats[ value.start ] = [\n\t\t\t...reject( activeFormats, { type: format.type } ),\n\t\t\tformat,\n\t\t];\n\t\treturn newFormat;\n\t} else if ( hasNoSelection ) {\n\t\treturn removeFormat( value, format );\n\t}\n\n\treturn applyFormat( value, format );\n}\n\nfunction ColorPicker( { name, value, onChange } ) {\n\tconst property = 'color';\n\tconst colors = useMobileGlobalStylesColors();\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\n\n\tconst onColorChange = useCallback(\n\t\t( color ) => {\n\t\t\tif ( color !== '' ) {\n\t\t\t\tonChange(\n\t\t\t\t\tsetColors( value, name, colors, { [ property ]: color } )\n\t\t\t\t);\n\t\t\t\t// Remove formatting if the color was reset, there's no\n\t\t\t\t// current selection and the previous character is a space\n\t\t\t} else if (\n\t\t\t\tvalue?.start === value?.end &&\n\t\t\t\tvalue.text?.charAt( value?.end - 1 ) === ' '\n\t\t\t) {\n\t\t\t\tonChange(\n\t\t\t\t\tremoveFormat( value, name, value.end - 1, value.end )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t}\n\t\t},\n\t\t[ colors, onChange, property ]\n\t);\n\tconst activeColors = useMemo(\n\t\t() => getActiveColors( value, name, colors ),\n\t\t[ name, value, colors ]\n\t);\n\n\treturn (\n\t\t<ColorSettings\n\t\t\tcolorValue={ activeColors[ property ] }\n\t\t\tonColorChange={ onColorChange }\n\t\t\tdefaultSettings={ colorSettings }\n\t\t\thideNavigation\n\t\t/>\n\t);\n}\n\nexport default function InlineColorUI( { name, value, onChange, onClose } ) {\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible\n\t\t\tonClose={ onClose }\n\t\t\thideHeader\n\t\t\tcontentStyle={ { paddingLeft: 0, paddingRight: 0 } }\n\t\t\thasNavigation\n\t\t\tleftButton={ null }\n\t\t\ttestID=\"inline-text-color-modal\"\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen name=\"text-color\">\n\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/format-library/src/text-color/inline.native.js"],"names":["useCallback","useMemo","applyFormat","removeFormat","getActiveFormat","getColorClassName","getColorObjectByColorValue","useMultipleOriginColorsAndGradients","BottomSheet","ColorSettings","useMobileGlobalStylesColors","transparentValue","parseClassName","parseCSS","css","split","reduce","accumulator","rule","property","value","replace","color","backgroundColor","getActiveColors","name","colorSettings","activeColorFormat","attributes","style","class","setColors","colors","styles","classNames","push","join","colorObject","slug","length","format","type","hasNoSelection","start","end","isAtTheEnd","text","previousCharacter","charAt","newFormat","activeFormats","formats","filter","ColorPicker","onChange","onColorChange","activeColors","InlineColorUI","onClose","paddingLeft","paddingRight"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport {\n\tapplyFormat,\n\tremoveFormat,\n\tgetActiveFormat,\n} from '@wordpress/rich-text';\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport {\n\tBottomSheet,\n\tColorSettings,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { transparentValue } from './index.js';\nimport { parseClassName } from './inline.js';\n\nfunction parseCSS( css = '' ) {\n\treturn css.split( ';' ).reduce( ( accumulator, rule ) => {\n\t\tif ( rule ) {\n\t\t\tconst [ property, value ] = rule.replace( / /g, '' ).split( ':' );\n\t\t\tif ( property === 'color' ) accumulator.color = value;\n\t\t\tif ( property === 'background-color' && value !== transparentValue )\n\t\t\t\taccumulator.backgroundColor = value;\n\t\t}\n\t\treturn accumulator;\n\t}, {} );\n}\n\nfunction getActiveColors( value, name, colorSettings ) {\n\tconst activeColorFormat = getActiveFormat( value, name );\n\n\tif ( ! activeColorFormat ) {\n\t\treturn {};\n\t}\n\n\treturn {\n\t\t...parseCSS( activeColorFormat.attributes.style ),\n\t\t...parseClassName( activeColorFormat.attributes.class, colorSettings ),\n\t};\n}\n\nfunction setColors( value, name, colorSettings, colors ) {\n\tconst { color, backgroundColor } = {\n\t\t...getActiveColors( value, name, colorSettings ),\n\t\t...colors,\n\t};\n\n\tif ( ! color && ! backgroundColor ) {\n\t\treturn removeFormat( value, name );\n\t}\n\n\tconst styles = [];\n\tconst classNames = [];\n\tconst attributes = {};\n\n\tif ( backgroundColor ) {\n\t\tstyles.push( [ 'background-color', backgroundColor ].join( ':' ) );\n\t} else {\n\t\t// Override default browser color for mark element.\n\t\tstyles.push( [ 'background-color', transparentValue ].join( ':' ) );\n\t}\n\n\tif ( color ) {\n\t\tconst colorObject = getColorObjectByColorValue( colorSettings, color );\n\n\t\tif ( colorObject ) {\n\t\t\tclassNames.push( getColorClassName( 'color', colorObject.slug ) );\n\t\t\tstyles.push( [ 'color', colorObject.color ].join( ':' ) );\n\t\t} else {\n\t\t\tstyles.push( [ 'color', color ].join( ':' ) );\n\t\t}\n\t}\n\n\tif ( styles.length ) attributes.style = styles.join( ';' );\n\tif ( classNames.length ) attributes.class = classNames.join( ' ' );\n\n\tconst format = { type: name, attributes };\n\tconst hasNoSelection = value.start === value.end;\n\tconst isAtTheEnd = value.end === value.text.length;\n\tconst previousCharacter = value.text.charAt( value.end - 1 );\n\n\t// Force formatting due to limitations in the native implementation\n\tif (\n\t\thasNoSelection &&\n\t\t( value.text.length === 0 ||\n\t\t\t( previousCharacter === ' ' && isAtTheEnd ) )\n\t) {\n\t\t// For cases where there's no text selected, there's a space before\n\t\t// the current caret position and it's at the end of the text.\n\t\treturn applyFormat( value, format, value.start - 1, value.end + 1 );\n\t} else if ( hasNoSelection && isAtTheEnd ) {\n\t\t// If there's no selection and is at the end of the text\n\t\t// manually add the format within the current caret position.\n\t\tconst newFormat = applyFormat( value, format );\n\t\tconst { activeFormats } = newFormat;\n\t\tnewFormat.formats[ value.start ] = [\n\t\t\t...( activeFormats?.filter(\n\t\t\t\t( { type } ) => type !== format.type\n\t\t\t) || [] ),\n\t\t\tformat,\n\t\t];\n\t\treturn newFormat;\n\t} else if ( hasNoSelection ) {\n\t\treturn removeFormat( value, format );\n\t}\n\n\treturn applyFormat( value, format );\n}\n\nfunction ColorPicker( { name, value, onChange } ) {\n\tconst property = 'color';\n\tconst colors = useMobileGlobalStylesColors();\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\n\n\tconst onColorChange = useCallback(\n\t\t( color ) => {\n\t\t\tif ( color !== '' ) {\n\t\t\t\tonChange(\n\t\t\t\t\tsetColors( value, name, colors, { [ property ]: color } )\n\t\t\t\t);\n\t\t\t\t// Remove formatting if the color was reset, there's no\n\t\t\t\t// current selection and the previous character is a space\n\t\t\t} else if (\n\t\t\t\tvalue?.start === value?.end &&\n\t\t\t\tvalue.text?.charAt( value?.end - 1 ) === ' '\n\t\t\t) {\n\t\t\t\tonChange(\n\t\t\t\t\tremoveFormat( value, name, value.end - 1, value.end )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t}\n\t\t},\n\t\t[ colors, onChange, property ]\n\t);\n\tconst activeColors = useMemo(\n\t\t() => getActiveColors( value, name, colors ),\n\t\t[ name, value, colors ]\n\t);\n\n\treturn (\n\t\t<ColorSettings\n\t\t\tcolorValue={ activeColors[ property ] }\n\t\t\tonColorChange={ onColorChange }\n\t\t\tdefaultSettings={ colorSettings }\n\t\t\thideNavigation\n\t\t/>\n\t);\n}\n\nexport default function InlineColorUI( { name, value, onChange, onClose } ) {\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible\n\t\t\tonClose={ onClose }\n\t\t\thideHeader\n\t\t\tcontentStyle={ { paddingLeft: 0, paddingRight: 0 } }\n\t\t\thasNavigation\n\t\t\tleftButton={ null }\n\t\t\ttestID=\"inline-text-color-modal\"\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen name=\"text-color\">\n\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/format-library",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.11.0",
|
|
4
4
|
"description": "Format library for the WordPress editor.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -26,17 +26,17 @@
|
|
|
26
26
|
"react-native": "src/index",
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@babel/runtime": "^7.16.0",
|
|
29
|
-
"@wordpress/a11y": "^3.
|
|
30
|
-
"@wordpress/block-editor": "^9.
|
|
31
|
-
"@wordpress/components": "^19.
|
|
32
|
-
"@wordpress/compose": "^5.
|
|
33
|
-
"@wordpress/data": "^6.
|
|
34
|
-
"@wordpress/element": "^4.
|
|
35
|
-
"@wordpress/html-entities": "^3.
|
|
36
|
-
"@wordpress/i18n": "^4.
|
|
37
|
-
"@wordpress/icons": "^9.
|
|
38
|
-
"@wordpress/rich-text": "^5.
|
|
39
|
-
"@wordpress/url": "^3.
|
|
29
|
+
"@wordpress/a11y": "^3.13.0",
|
|
30
|
+
"@wordpress/block-editor": "^9.5.0",
|
|
31
|
+
"@wordpress/components": "^19.15.0",
|
|
32
|
+
"@wordpress/compose": "^5.11.0",
|
|
33
|
+
"@wordpress/data": "^6.13.0",
|
|
34
|
+
"@wordpress/element": "^4.11.0",
|
|
35
|
+
"@wordpress/html-entities": "^3.13.0",
|
|
36
|
+
"@wordpress/i18n": "^4.13.0",
|
|
37
|
+
"@wordpress/icons": "^9.4.0",
|
|
38
|
+
"@wordpress/rich-text": "^5.11.0",
|
|
39
|
+
"@wordpress/url": "^3.14.0",
|
|
40
40
|
"lodash": "^4.17.21"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "9d9d33bbdf317a4381b8ca1713e43bb50df653b3"
|
|
50
50
|
}
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { reject } from 'lodash';
|
|
6
|
-
|
|
7
1
|
/**
|
|
8
2
|
* WordPress dependencies
|
|
9
3
|
*/
|
|
@@ -110,7 +104,9 @@ function setColors( value, name, colorSettings, colors ) {
|
|
|
110
104
|
const newFormat = applyFormat( value, format );
|
|
111
105
|
const { activeFormats } = newFormat;
|
|
112
106
|
newFormat.formats[ value.start ] = [
|
|
113
|
-
...
|
|
107
|
+
...( activeFormats?.filter(
|
|
108
|
+
( { type } ) => type !== format.type
|
|
109
|
+
) || [] ),
|
|
114
110
|
format,
|
|
115
111
|
];
|
|
116
112
|
return newFormat;
|