@wordpress/customize-widgets 4.3.6 → 4.5.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 +4 -0
- package/build/components/focus-control/index.js +7 -1
- package/build/components/focus-control/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/config.js +12 -0
- package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +67 -0
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/index.js +2 -2
- package/build/index.js.map +1 -1
- package/build-module/components/focus-control/index.js +7 -1
- package/build-module/components/focus-control/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/config.js +12 -0
- package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +66 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/index.js +3 -3
- package/build-module/index.js.map +1 -1
- package/package.json +22 -22
- package/src/components/focus-control/index.js +9 -4
- package/src/components/keyboard-shortcut-help-modal/config.js +10 -0
- package/src/components/keyboard-shortcuts/index.js +72 -1
- package/src/index.js +3 -4
package/CHANGELOG.md
CHANGED
|
@@ -55,14 +55,20 @@ function FocusControl(_ref) {
|
|
|
55
55
|
focusWidget(widgetId);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
let previewBound = false;
|
|
59
|
+
|
|
58
60
|
function handleReady() {
|
|
59
61
|
api.previewer.preview.bind('focus-control-for-setting', handleFocus);
|
|
62
|
+
previewBound = true;
|
|
60
63
|
}
|
|
61
64
|
|
|
62
65
|
api.previewer.bind('ready', handleReady);
|
|
63
66
|
return () => {
|
|
64
67
|
api.previewer.unbind('ready', handleReady);
|
|
65
|
-
|
|
68
|
+
|
|
69
|
+
if (previewBound) {
|
|
70
|
+
api.previewer.preview.unbind('focus-control-for-setting', handleFocus);
|
|
71
|
+
}
|
|
66
72
|
};
|
|
67
73
|
}, [api, focusWidget]);
|
|
68
74
|
const context = (0, _element.useMemo)(() => [focusedWidgetIdRef, focusWidget], [focusedWidgetIdRef, focusWidget]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/components/focus-control/index.js"],"names":["FocusControlContext","FocusControl","api","sidebarControls","children","focusedWidgetIdRef","setFocusedWidgetIdRef","current","focusWidget","widgetId","sidebarControl","widgets","setting","get","includes","sectionInstance","expand","completeCallback","handleFocus","settingId","handleReady","previewer","preview","bind","unbind","context","useFocusControl"],"mappings":";;;;;;;;AAGA;;AAYA;;AAfA;AACA;AACA;;AAUA;AACA;AACA;AAGA,MAAMA,mBAAmB,GAAG,6BAA5B;;AAEe,SAASC,YAAT,OAA4D;AAAA,MAArC;AAAEC,IAAAA,GAAF;AAAOC,IAAAA,eAAP;AAAwBC,IAAAA;AAAxB,GAAqC;AAC1E,QAAM,CAAEC,kBAAF,EAAsBC,qBAAtB,IAAgD,uBAAU;AAC/DC,IAAAA,OAAO,EAAE;AADsD,GAAV,CAAtD;AAIA,QAAMC,WAAW,GAAG,0BACjBC,QAAF,IAAgB;AACf,SAAM,MAAMC,cAAZ,IAA8BP,eAA9B,EAAgD;AAC/C,YAAMQ,OAAO,GAAGD,cAAc,CAACE,OAAf,CAAuBC,GAAvB,EAAhB;;AAEA,UAAKF,OAAO,CAACG,QAAR,CAAkBL,QAAlB,CAAL,EAAoC;AACnCC,QAAAA,cAAc,CAACK,eAAf,CAA+BC,MAA/B,CAAuC;AACtC;AACA;AACAC,UAAAA,gBAAgB,GAAG;AAClB;AACA;AACAX,YAAAA,qBAAqB,CAAE;AAAEC,cAAAA,OAAO,EAAEE;AAAX,aAAF,CAArB;AACA;;AAPqC,SAAvC;AAUA;AACA;AACD;AACD,GAnBkB,EAoBnB,CAAEN,eAAF,CApBmB,CAApB;AAuBA,0BAAW,MAAM;AAChB,aAASe,WAAT,CAAsBC,SAAtB,EAAkC;AACjC,YAAMV,QAAQ,GAAG,gCAAqBU,SAArB,CAAjB;AAEAX,MAAAA,WAAW,CAAEC,QAAF,CAAX;AACA;;AAED,
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/components/focus-control/index.js"],"names":["FocusControlContext","FocusControl","api","sidebarControls","children","focusedWidgetIdRef","setFocusedWidgetIdRef","current","focusWidget","widgetId","sidebarControl","widgets","setting","get","includes","sectionInstance","expand","completeCallback","handleFocus","settingId","previewBound","handleReady","previewer","preview","bind","unbind","context","useFocusControl"],"mappings":";;;;;;;;AAGA;;AAYA;;AAfA;AACA;AACA;;AAUA;AACA;AACA;AAGA,MAAMA,mBAAmB,GAAG,6BAA5B;;AAEe,SAASC,YAAT,OAA4D;AAAA,MAArC;AAAEC,IAAAA,GAAF;AAAOC,IAAAA,eAAP;AAAwBC,IAAAA;AAAxB,GAAqC;AAC1E,QAAM,CAAEC,kBAAF,EAAsBC,qBAAtB,IAAgD,uBAAU;AAC/DC,IAAAA,OAAO,EAAE;AADsD,GAAV,CAAtD;AAIA,QAAMC,WAAW,GAAG,0BACjBC,QAAF,IAAgB;AACf,SAAM,MAAMC,cAAZ,IAA8BP,eAA9B,EAAgD;AAC/C,YAAMQ,OAAO,GAAGD,cAAc,CAACE,OAAf,CAAuBC,GAAvB,EAAhB;;AAEA,UAAKF,OAAO,CAACG,QAAR,CAAkBL,QAAlB,CAAL,EAAoC;AACnCC,QAAAA,cAAc,CAACK,eAAf,CAA+BC,MAA/B,CAAuC;AACtC;AACA;AACAC,UAAAA,gBAAgB,GAAG;AAClB;AACA;AACAX,YAAAA,qBAAqB,CAAE;AAAEC,cAAAA,OAAO,EAAEE;AAAX,aAAF,CAArB;AACA;;AAPqC,SAAvC;AAUA;AACA;AACD;AACD,GAnBkB,EAoBnB,CAAEN,eAAF,CApBmB,CAApB;AAuBA,0BAAW,MAAM;AAChB,aAASe,WAAT,CAAsBC,SAAtB,EAAkC;AACjC,YAAMV,QAAQ,GAAG,gCAAqBU,SAArB,CAAjB;AAEAX,MAAAA,WAAW,CAAEC,QAAF,CAAX;AACA;;AAED,QAAIW,YAAY,GAAG,KAAnB;;AAEA,aAASC,WAAT,GAAuB;AACtBnB,MAAAA,GAAG,CAACoB,SAAJ,CAAcC,OAAd,CAAsBC,IAAtB,CACC,2BADD,EAECN,WAFD;AAIAE,MAAAA,YAAY,GAAG,IAAf;AACA;;AAEDlB,IAAAA,GAAG,CAACoB,SAAJ,CAAcE,IAAd,CAAoB,OAApB,EAA6BH,WAA7B;AAEA,WAAO,MAAM;AACZnB,MAAAA,GAAG,CAACoB,SAAJ,CAAcG,MAAd,CAAsB,OAAtB,EAA+BJ,WAA/B;;AACA,UAAKD,YAAL,EAAoB;AACnBlB,QAAAA,GAAG,CAACoB,SAAJ,CAAcC,OAAd,CAAsBE,MAAtB,CACC,2BADD,EAECP,WAFD;AAIA;AACD,KARD;AASA,GA5BD,EA4BG,CAAEhB,GAAF,EAAOM,WAAP,CA5BH;AA8BA,QAAMkB,OAAO,GAAG,sBACf,MAAM,CAAErB,kBAAF,EAAsBG,WAAtB,CADS,EAEf,CAAEH,kBAAF,EAAsBG,WAAtB,CAFe,CAAhB;AAKA,SACC,4BAAC,mBAAD,CAAqB,QAArB;AAA8B,IAAA,KAAK,EAAGkB;AAAtC,KACGtB,QADH,CADD;AAKA;;AAEM,MAAMuB,eAAe,GAAG,MAAM,yBAAY3B,mBAAZ,CAA9B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseState,\n\tuseEffect,\n\tuseContext,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst FocusControlContext = createContext();\n\nexport default function FocusControl( { api, sidebarControls, children } ) {\n\tconst [ focusedWidgetIdRef, setFocusedWidgetIdRef ] = useState( {\n\t\tcurrent: null,\n\t} );\n\n\tconst focusWidget = useCallback(\n\t\t( widgetId ) => {\n\t\t\tfor ( const sidebarControl of sidebarControls ) {\n\t\t\t\tconst widgets = sidebarControl.setting.get();\n\n\t\t\t\tif ( widgets.includes( widgetId ) ) {\n\t\t\t\t\tsidebarControl.sectionInstance.expand( {\n\t\t\t\t\t\t// Schedule it after the complete callback so that\n\t\t\t\t\t\t// it won't be overridden by the \"Back\" button focus.\n\t\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t\t// Create a \"ref-like\" object every time to ensure\n\t\t\t\t\t\t\t// the same widget id can also triggers the focus control.\n\t\t\t\t\t\t\tsetFocusedWidgetIdRef( { current: widgetId } );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ sidebarControls ]\n\t);\n\n\tuseEffect( () => {\n\t\tfunction handleFocus( settingId ) {\n\t\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\t\tfocusWidget( widgetId );\n\t\t}\n\n\t\tlet previewBound = false;\n\n\t\tfunction handleReady() {\n\t\t\tapi.previewer.preview.bind(\n\t\t\t\t'focus-control-for-setting',\n\t\t\t\thandleFocus\n\t\t\t);\n\t\t\tpreviewBound = true;\n\t\t}\n\n\t\tapi.previewer.bind( 'ready', handleReady );\n\n\t\treturn () => {\n\t\t\tapi.previewer.unbind( 'ready', handleReady );\n\t\t\tif ( previewBound ) {\n\t\t\t\tapi.previewer.preview.unbind(\n\t\t\t\t\t'focus-control-for-setting',\n\t\t\t\t\thandleFocus\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t}, [ api, focusWidget ] );\n\n\tconst context = useMemo(\n\t\t() => [ focusedWidgetIdRef, focusWidget ],\n\t\t[ focusedWidgetIdRef, focusWidget ]\n\t);\n\n\treturn (\n\t\t<FocusControlContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</FocusControlContext.Provider>\n\t);\n}\n\nexport const useFocusControl = () => useContext( FocusControlContext );\n"]}
|
|
@@ -57,6 +57,18 @@ const textFormattingShortcuts = [{
|
|
|
57
57
|
character: 'x'
|
|
58
58
|
},
|
|
59
59
|
description: (0, _i18n.__)('Make the selected text inline code.')
|
|
60
|
+
}, {
|
|
61
|
+
keyCombination: {
|
|
62
|
+
modifier: 'access',
|
|
63
|
+
character: '0'
|
|
64
|
+
},
|
|
65
|
+
description: (0, _i18n.__)('Convert the current heading to a paragraph.')
|
|
66
|
+
}, {
|
|
67
|
+
keyCombination: {
|
|
68
|
+
modifier: 'access',
|
|
69
|
+
character: '1-6'
|
|
70
|
+
},
|
|
71
|
+
description: (0, _i18n.__)('Convert the current paragraph or heading to a heading of level 1 to 6.')
|
|
60
72
|
}];
|
|
61
73
|
exports.textFormattingShortcuts = textFormattingShortcuts;
|
|
62
74
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/components/keyboard-shortcut-help-modal/config.js"],"names":["textFormattingShortcuts","keyCombination","modifier","character","description"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,MAAMA,uBAAuB,GAAG,CACtC;AACCC,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,8BAAJ;AAFd,CADsC,EAKtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,gCAAJ;AAFd,CALsC,EAStC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,wCAAJ;AAFd,CATsC,EAatC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,cAAZ;AAA4BC,IAAAA,SAAS,EAAE;AAAvC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,gBAAJ;AAFd,CAbsC,EAiBtC;AACCH,EAAAA,cAAc,EAAE;AAAEE,IAAAA,SAAS,EAAE;AAAb,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,kCAAJ;AAFd,CAjBsC,EAqBtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,8BAAJ;AAFd,CArBsC,EAyBtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,kCAAJ;AAFd,CAzBsC,EA6BtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,qCAAJ;AAFd,CA7BsC,CAAhC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const textFormattingShortcuts = [\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'b' },\n\t\tdescription: __( 'Make the selected text bold.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'i' },\n\t\tdescription: __( 'Make the selected text italic.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'k' },\n\t\tdescription: __( 'Convert the selected text into a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primaryShift', character: 'k' },\n\t\tdescription: __( 'Remove a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { character: '[[' },\n\t\tdescription: __( 'Insert a link to a post or page.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'u' },\n\t\tdescription: __( 'Underline the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'd' },\n\t\tdescription: __( 'Strikethrough the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'x' },\n\t\tdescription: __( 'Make the selected text inline code.' ),\n\t},\n];\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/components/keyboard-shortcut-help-modal/config.js"],"names":["textFormattingShortcuts","keyCombination","modifier","character","description"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,MAAMA,uBAAuB,GAAG,CACtC;AACCC,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,8BAAJ;AAFd,CADsC,EAKtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,gCAAJ;AAFd,CALsC,EAStC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,wCAAJ;AAFd,CATsC,EAatC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,cAAZ;AAA4BC,IAAAA,SAAS,EAAE;AAAvC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,gBAAJ;AAFd,CAbsC,EAiBtC;AACCH,EAAAA,cAAc,EAAE;AAAEE,IAAAA,SAAS,EAAE;AAAb,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,kCAAJ;AAFd,CAjBsC,EAqBtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,8BAAJ;AAFd,CArBsC,EAyBtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,kCAAJ;AAFd,CAzBsC,EA6BtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,qCAAJ;AAFd,CA7BsC,EAiCtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,6CAAJ;AAFd,CAjCsC,EAqCtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAE,cACZ,wEADY;AAFd,CArCsC,CAAhC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const textFormattingShortcuts = [\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'b' },\n\t\tdescription: __( 'Make the selected text bold.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'i' },\n\t\tdescription: __( 'Make the selected text italic.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'k' },\n\t\tdescription: __( 'Convert the selected text into a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primaryShift', character: 'k' },\n\t\tdescription: __( 'Remove a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { character: '[[' },\n\t\tdescription: __( 'Insert a link to a post or page.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'u' },\n\t\tdescription: __( 'Underline the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'd' },\n\t\tdescription: __( 'Strikethrough the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'x' },\n\t\tdescription: __( 'Make the selected text inline code.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: '0' },\n\t\tdescription: __( 'Convert the current heading to a paragraph.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: '1-6' },\n\t\tdescription: __(\n\t\t\t'Convert the current paragraph or heading to a heading of level 1 to 6.'\n\t\t),\n\t},\n];\n"]}
|
|
@@ -15,6 +15,10 @@ var _data = require("@wordpress/data");
|
|
|
15
15
|
|
|
16
16
|
var _i18n = require("@wordpress/i18n");
|
|
17
17
|
|
|
18
|
+
var _blockEditor = require("@wordpress/block-editor");
|
|
19
|
+
|
|
20
|
+
var _blocks = require("@wordpress/blocks");
|
|
21
|
+
|
|
18
22
|
/**
|
|
19
23
|
* WordPress dependencies
|
|
20
24
|
*/
|
|
@@ -24,6 +28,42 @@ function KeyboardShortcuts(_ref) {
|
|
|
24
28
|
redo,
|
|
25
29
|
save
|
|
26
30
|
} = _ref;
|
|
31
|
+
const {
|
|
32
|
+
replaceBlocks
|
|
33
|
+
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
34
|
+
const {
|
|
35
|
+
getBlockName,
|
|
36
|
+
getSelectedBlockClientId,
|
|
37
|
+
getBlockAttributes
|
|
38
|
+
} = (0, _data.useSelect)(_blockEditor.store);
|
|
39
|
+
|
|
40
|
+
const handleTextLevelShortcut = (event, level) => {
|
|
41
|
+
event.preventDefault();
|
|
42
|
+
const destinationBlockName = level === 0 ? 'core/paragraph' : 'core/heading';
|
|
43
|
+
const currentClientId = getSelectedBlockClientId();
|
|
44
|
+
|
|
45
|
+
if (currentClientId === null) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const blockName = getBlockName(currentClientId);
|
|
50
|
+
|
|
51
|
+
if (blockName !== 'core/paragraph' && blockName !== 'core/heading') {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const attributes = getBlockAttributes(currentClientId);
|
|
56
|
+
const textAlign = blockName === 'core/paragraph' ? 'align' : 'textAlign';
|
|
57
|
+
const destinationTextAlign = destinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';
|
|
58
|
+
replaceBlocks(currentClientId, (0, _blocks.createBlock)(destinationBlockName, {
|
|
59
|
+
level,
|
|
60
|
+
content: attributes.content,
|
|
61
|
+
...{
|
|
62
|
+
[destinationTextAlign]: attributes[textAlign]
|
|
63
|
+
}
|
|
64
|
+
}));
|
|
65
|
+
};
|
|
66
|
+
|
|
27
67
|
(0, _keyboardShortcuts.useShortcut)('core/customize-widgets/undo', event => {
|
|
28
68
|
undo();
|
|
29
69
|
event.preventDefault();
|
|
@@ -36,6 +76,13 @@ function KeyboardShortcuts(_ref) {
|
|
|
36
76
|
event.preventDefault();
|
|
37
77
|
save();
|
|
38
78
|
});
|
|
79
|
+
(0, _keyboardShortcuts.useShortcut)('core/customize-widgets/transform-heading-to-paragraph', event => handleTextLevelShortcut(event, 0));
|
|
80
|
+
[1, 2, 3, 4, 5, 6].forEach(level => {
|
|
81
|
+
//the loop is based off on a constant therefore
|
|
82
|
+
//the hook will execute the same way every time
|
|
83
|
+
//eslint-disable-next-line react-hooks/rules-of-hooks
|
|
84
|
+
(0, _keyboardShortcuts.useShortcut)(`core/customize-widgets/transform-paragraph-to-heading-${level}`, event => handleTextLevelShortcut(event, level));
|
|
85
|
+
});
|
|
39
86
|
return null;
|
|
40
87
|
}
|
|
41
88
|
|
|
@@ -80,6 +127,26 @@ function KeyboardShortcutsRegister() {
|
|
|
80
127
|
character: 's'
|
|
81
128
|
}
|
|
82
129
|
});
|
|
130
|
+
registerShortcut({
|
|
131
|
+
name: `core/customize-widgets/transform-heading-to-paragraph`,
|
|
132
|
+
category: 'block-library',
|
|
133
|
+
description: (0, _i18n.__)('Transform heading to paragraph.'),
|
|
134
|
+
keyCombination: {
|
|
135
|
+
modifier: 'access',
|
|
136
|
+
character: `0`
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
[1, 2, 3, 4, 5, 6].forEach(level => {
|
|
140
|
+
registerShortcut({
|
|
141
|
+
name: `core/customize-widgets/transform-paragraph-to-heading-${level}`,
|
|
142
|
+
category: 'block-library',
|
|
143
|
+
description: (0, _i18n.__)('Transform paragraph to heading.'),
|
|
144
|
+
keyCombination: {
|
|
145
|
+
modifier: 'access',
|
|
146
|
+
character: `${level}`
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
});
|
|
83
150
|
return () => {
|
|
84
151
|
unregisterShortcut('core/customize-widgets/undo');
|
|
85
152
|
unregisterShortcut('core/customize-widgets/redo');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/components/keyboard-shortcuts/index.js"],"names":["KeyboardShortcuts","undo","redo","save","event","preventDefault","KeyboardShortcutsRegister","registerShortcut","unregisterShortcut","keyboardShortcutsStore","name","category","description","keyCombination","modifier","character","aliases","Register"],"mappings":";;;;;;;AAGA;;AACA;;AAIA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/components/keyboard-shortcuts/index.js"],"names":["KeyboardShortcuts","undo","redo","save","replaceBlocks","blockEditorStore","getBlockName","getSelectedBlockClientId","getBlockAttributes","handleTextLevelShortcut","event","level","preventDefault","destinationBlockName","currentClientId","blockName","attributes","textAlign","destinationTextAlign","content","forEach","KeyboardShortcutsRegister","registerShortcut","unregisterShortcut","keyboardShortcutsStore","name","category","description","keyCombination","modifier","character","aliases","Register"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { isAppleOS } from '@wordpress/keycodes';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\n\nfunction KeyboardShortcuts( { undo, redo, save } ) {\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { getBlockName, getSelectedBlockClientId, getBlockAttributes } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst handleTextLevelShortcut = ( event, level ) => {\n\t\tevent.preventDefault();\n\t\tconst destinationBlockName =\n\t\t\tlevel === 0 ? 'core/paragraph' : 'core/heading';\n\t\tconst currentClientId = getSelectedBlockClientId();\n\t\tif ( currentClientId === null ) {\n\t\t\treturn;\n\t\t}\n\t\tconst blockName = getBlockName( currentClientId );\n\t\tif ( blockName !== 'core/paragraph' && blockName !== 'core/heading' ) {\n\t\t\treturn;\n\t\t}\n\t\tconst attributes = getBlockAttributes( currentClientId );\n\t\tconst textAlign =\n\t\t\tblockName === 'core/paragraph' ? 'align' : 'textAlign';\n\t\tconst destinationTextAlign =\n\t\t\tdestinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';\n\n\t\treplaceBlocks(\n\t\t\tcurrentClientId,\n\t\t\tcreateBlock( destinationBlockName, {\n\t\t\t\tlevel,\n\t\t\t\tcontent: attributes.content,\n\t\t\t\t...{ [ destinationTextAlign ]: attributes[ textAlign ] },\n\t\t\t} )\n\t\t);\n\t};\n\n\tuseShortcut( 'core/customize-widgets/undo', ( event ) => {\n\t\tundo();\n\t\tevent.preventDefault();\n\t} );\n\n\tuseShortcut( 'core/customize-widgets/redo', ( event ) => {\n\t\tredo();\n\t\tevent.preventDefault();\n\t} );\n\n\tuseShortcut( 'core/customize-widgets/save', ( event ) => {\n\t\tevent.preventDefault();\n\t\tsave();\n\t} );\n\n\tuseShortcut(\n\t\t'core/customize-widgets/transform-heading-to-paragraph',\n\t\t( event ) => handleTextLevelShortcut( event, 0 )\n\t);\n\n\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t//the loop is based off on a constant therefore\n\t\t//the hook will execute the same way every time\n\t\t//eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tuseShortcut(\n\t\t\t`core/customize-widgets/transform-paragraph-to-heading-${ level }`,\n\t\t\t( event ) => handleTextLevelShortcut( event, level )\n\t\t);\n\t} );\n\n\treturn null;\n}\n\nfunction KeyboardShortcutsRegister() {\n\tconst { registerShortcut, unregisterShortcut } = useDispatch(\n\t\tkeyboardShortcutsStore\n\t);\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/customize-widgets/undo',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Undo your last changes.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'z',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/customize-widgets/redo',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Redo your last undo.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryShift',\n\t\t\t\tcharacter: 'z',\n\t\t\t},\n\t\t\t// Disable on Apple OS because it conflicts with the browser's\n\t\t\t// history shortcut. It's a fine alias for both Windows and Linux.\n\t\t\t// Since there's no conflict for Ctrl+Shift+Z on both Windows and\n\t\t\t// Linux, we keep it as the default for consistency.\n\t\t\taliases: isAppleOS()\n\t\t\t\t? []\n\t\t\t\t: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodifier: 'primary',\n\t\t\t\t\t\t\tcharacter: 'y',\n\t\t\t\t\t\t},\n\t\t\t\t ],\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/customize-widgets/save',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Save your changes.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 's',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: `core/customize-widgets/transform-heading-to-paragraph`,\n\t\t\tcategory: 'block-library',\n\t\t\tdescription: __( 'Transform heading to paragraph.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: `0`,\n\t\t\t},\n\t\t} );\n\n\t\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t\tregisterShortcut( {\n\t\t\t\tname: `core/customize-widgets/transform-paragraph-to-heading-${ level }`,\n\t\t\t\tcategory: 'block-library',\n\t\t\t\tdescription: __( 'Transform paragraph to heading.' ),\n\t\t\t\tkeyCombination: {\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: `${ level }`,\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\n\t\treturn () => {\n\t\t\tunregisterShortcut( 'core/customize-widgets/undo' );\n\t\t\tunregisterShortcut( 'core/customize-widgets/redo' );\n\t\t\tunregisterShortcut( 'core/customize-widgets/save' );\n\t\t};\n\t}, [ registerShortcut ] );\n\n\treturn null;\n}\n\nKeyboardShortcuts.Register = KeyboardShortcutsRegister;\nexport default KeyboardShortcuts;\n"]}
|
package/build/index.js
CHANGED
|
@@ -85,11 +85,11 @@ function initialize(editorName, blockEditorSettings) {
|
|
|
85
85
|
sidebarControls.push(control);
|
|
86
86
|
}
|
|
87
87
|
});
|
|
88
|
-
(0, _element.
|
|
88
|
+
(0, _element.createRoot)(container).render((0, _element.createElement)(_customizeWidgets.default, {
|
|
89
89
|
api: wp.customize,
|
|
90
90
|
sidebarControls: sidebarControls,
|
|
91
91
|
blockEditorSettings: blockEditorSettings
|
|
92
|
-
})
|
|
92
|
+
}));
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/index.js"],"names":["wp","window","DISABLED_BLOCKS","ENABLE_EXPERIMENTAL_FSE_BLOCKS","initialize","editorName","blockEditorSettings","preferencesStore","setDefaults","fixedToolbar","welcomeGuide","blocksStore","__experimentalReapplyBlockTypeFilters","coreBlocks","filter","block","includes","name","startsWith","process","env","IS_GUTENBERG_PLUGIN","enableFSEBlocks","SidebarControl","customize","sectionConstructor","sidebar","controlConstructor","sidebar_block_editor","container","document","createElement","body","appendChild","bind","sidebarControls","control","each","push"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AAKA;;AAIA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AA3BA;AACA;AACA;;AAmBA;AACA;AACA;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAASC,MAAf;AAEA,MAAMC,eAAe,GAAG,CACvB,WADuB,EAEvB,YAFuB,EAGvB,eAHuB,EAIvB,oBAJuB,CAAxB;AAMA,MAAMC,8BAA8B,GAAG,KAAvC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,UAAT,CAAqBC,UAArB,EAAiCC,mBAAjC,EAAuD;AAC7D,sBAAUC,kBAAV,EAA6BC,WAA7B,CAA0C,wBAA1C,EAAoE;AACnEC,IAAAA,YAAY,EAAE,KADqD;AAEnEC,IAAAA,YAAY,EAAE;AAFqD,GAApE;;AAKA,sBAAUC,aAAV,EAAwBC,qCAAxB;;AACA,QAAMC,UAAU,GAAG,iDAA8BC,MAA9B,CAAwCC,KAAF,IAAa;AACrE,WAAO,EACNb,eAAe,CAACc,QAAhB,CAA0BD,KAAK,CAACE,IAAhC,KACAF,KAAK,CAACE,IAAN,CAAWC,UAAX,CAAuB,WAAvB,CADA,IAEAH,KAAK,CAACE,IAAN,CAAWC,UAAX,CAAuB,YAAvB,CAFA,IAGAH,KAAK,CAACE,IAAN,CAAWC,UAAX,CAAuB,WAAvB,CAHA,IAIAH,KAAK,CAACE,IAAN,CAAWC,UAAX,CAAuB,iBAAvB,CALM,CAAP;AAOA,GARkB,CAAnB;AASA,wCAAoBL,UAApB;AACA;;AACA,MAAKM,OAAO,CAACC,GAAR,CAAYC,mBAAjB,EAAuC;AACtC,oEAA8C;AAC7CC,MAAAA,eAAe,EAAEnB;AAD4B,KAA9C;AAGA;;AACD,+CAAgCG,mBAAhC;AACA,2CAxB6D,CA0B7D;AACA;AACA;AACA;;AACA,6CAA+B,WAA/B;AAEA,QAAMiB,cAAc,GAAG,6BAAmBjB,mBAAnB,CAAvB;AAEAN,EAAAA,EAAE,CAACwB,SAAH,CAAaC,kBAAb,CAAgCC,OAAhC,GAA0C,8BAA1C;AACA1B,EAAAA,EAAE,CAACwB,SAAH,CAAaG,kBAAb,CAAgCC,oBAAhC,GAAuDL,cAAvD;AAEA,QAAMM,SAAS,GAAGC,QAAQ,CAACC,aAAT,CAAwB,KAAxB,CAAlB;AACAD,EAAAA,QAAQ,CAACE,IAAT,CAAcC,WAAd,CAA2BJ,SAA3B;AAEA7B,EAAAA,EAAE,CAACwB,SAAH,CAAaU,IAAb,CAAmB,OAAnB,EAA4B,MAAM;AACjC,UAAMC,eAAe,GAAG,EAAxB;AACAnC,IAAAA,EAAE,CAACwB,SAAH,CAAaY,OAAb,CAAqBC,IAArB,CAA6BD,OAAF,IAAe;AACzC,UAAKA,OAAO,YAAYb,cAAxB,EAAyC;AACxCY,QAAAA,eAAe,CAACG,IAAhB,CAAsBF,OAAtB;AACA;AACD,KAJD;AAMA,
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/index.js"],"names":["wp","window","DISABLED_BLOCKS","ENABLE_EXPERIMENTAL_FSE_BLOCKS","initialize","editorName","blockEditorSettings","preferencesStore","setDefaults","fixedToolbar","welcomeGuide","blocksStore","__experimentalReapplyBlockTypeFilters","coreBlocks","filter","block","includes","name","startsWith","process","env","IS_GUTENBERG_PLUGIN","enableFSEBlocks","SidebarControl","customize","sectionConstructor","sidebar","controlConstructor","sidebar_block_editor","container","document","createElement","body","appendChild","bind","sidebarControls","control","each","push","render"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AAKA;;AAIA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AA3BA;AACA;AACA;;AAmBA;AACA;AACA;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAASC,MAAf;AAEA,MAAMC,eAAe,GAAG,CACvB,WADuB,EAEvB,YAFuB,EAGvB,eAHuB,EAIvB,oBAJuB,CAAxB;AAMA,MAAMC,8BAA8B,GAAG,KAAvC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,UAAT,CAAqBC,UAArB,EAAiCC,mBAAjC,EAAuD;AAC7D,sBAAUC,kBAAV,EAA6BC,WAA7B,CAA0C,wBAA1C,EAAoE;AACnEC,IAAAA,YAAY,EAAE,KADqD;AAEnEC,IAAAA,YAAY,EAAE;AAFqD,GAApE;;AAKA,sBAAUC,aAAV,EAAwBC,qCAAxB;;AACA,QAAMC,UAAU,GAAG,iDAA8BC,MAA9B,CAAwCC,KAAF,IAAa;AACrE,WAAO,EACNb,eAAe,CAACc,QAAhB,CAA0BD,KAAK,CAACE,IAAhC,KACAF,KAAK,CAACE,IAAN,CAAWC,UAAX,CAAuB,WAAvB,CADA,IAEAH,KAAK,CAACE,IAAN,CAAWC,UAAX,CAAuB,YAAvB,CAFA,IAGAH,KAAK,CAACE,IAAN,CAAWC,UAAX,CAAuB,WAAvB,CAHA,IAIAH,KAAK,CAACE,IAAN,CAAWC,UAAX,CAAuB,iBAAvB,CALM,CAAP;AAOA,GARkB,CAAnB;AASA,wCAAoBL,UAApB;AACA;;AACA,MAAKM,OAAO,CAACC,GAAR,CAAYC,mBAAjB,EAAuC;AACtC,oEAA8C;AAC7CC,MAAAA,eAAe,EAAEnB;AAD4B,KAA9C;AAGA;;AACD,+CAAgCG,mBAAhC;AACA,2CAxB6D,CA0B7D;AACA;AACA;AACA;;AACA,6CAA+B,WAA/B;AAEA,QAAMiB,cAAc,GAAG,6BAAmBjB,mBAAnB,CAAvB;AAEAN,EAAAA,EAAE,CAACwB,SAAH,CAAaC,kBAAb,CAAgCC,OAAhC,GAA0C,8BAA1C;AACA1B,EAAAA,EAAE,CAACwB,SAAH,CAAaG,kBAAb,CAAgCC,oBAAhC,GAAuDL,cAAvD;AAEA,QAAMM,SAAS,GAAGC,QAAQ,CAACC,aAAT,CAAwB,KAAxB,CAAlB;AACAD,EAAAA,QAAQ,CAACE,IAAT,CAAcC,WAAd,CAA2BJ,SAA3B;AAEA7B,EAAAA,EAAE,CAACwB,SAAH,CAAaU,IAAb,CAAmB,OAAnB,EAA4B,MAAM;AACjC,UAAMC,eAAe,GAAG,EAAxB;AACAnC,IAAAA,EAAE,CAACwB,SAAH,CAAaY,OAAb,CAAqBC,IAArB,CAA6BD,OAAF,IAAe;AACzC,UAAKA,OAAO,YAAYb,cAAxB,EAAyC;AACxCY,QAAAA,eAAe,CAACG,IAAhB,CAAsBF,OAAtB;AACA;AACD,KAJD;AAMA,6BAAYP,SAAZ,EAAwBU,MAAxB,CACC,4BAAC,yBAAD;AACC,MAAA,GAAG,EAAGvC,EAAE,CAACwB,SADV;AAEC,MAAA,eAAe,EAAGW,eAFnB;AAGC,MAAA,mBAAmB,EAAG7B;AAHvB,MADD;AAOA,GAfD;AAgBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createRoot } from '@wordpress/element';\nimport {\n\tregisterCoreBlocks,\n\t__experimentalGetCoreBlocks,\n\t__experimentalRegisterExperimentalCoreBlocks,\n} from '@wordpress/block-library';\nimport {\n\tregisterLegacyWidgetBlock,\n\tregisterLegacyWidgetVariations,\n\tregisterWidgetGroupBlock,\n} from '@wordpress/widgets';\nimport {\n\tsetFreeformContentHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { dispatch } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport CustomizeWidgets from './components/customize-widgets';\nimport getSidebarSection from './controls/sidebar-section';\nimport getSidebarControl from './controls/sidebar-control';\nimport './filters';\n\nconst { wp } = window;\n\nconst DISABLED_BLOCKS = [\n\t'core/more',\n\t'core/block',\n\t'core/freeform',\n\t'core/template-part',\n];\nconst ENABLE_EXPERIMENTAL_FSE_BLOCKS = false;\n\n/**\n * Initializes the widgets block editor in the customizer.\n *\n * @param {string} editorName The editor name.\n * @param {Object} blockEditorSettings Block editor settings.\n */\nexport function initialize( editorName, blockEditorSettings ) {\n\tdispatch( preferencesStore ).setDefaults( 'core/customize-widgets', {\n\t\tfixedToolbar: false,\n\t\twelcomeGuide: true,\n\t} );\n\n\tdispatch( blocksStore ).__experimentalReapplyBlockTypeFilters();\n\tconst coreBlocks = __experimentalGetCoreBlocks().filter( ( block ) => {\n\t\treturn ! (\n\t\t\tDISABLED_BLOCKS.includes( block.name ) ||\n\t\t\tblock.name.startsWith( 'core/post' ) ||\n\t\t\tblock.name.startsWith( 'core/query' ) ||\n\t\t\tblock.name.startsWith( 'core/site' ) ||\n\t\t\tblock.name.startsWith( 'core/navigation' )\n\t\t);\n\t} );\n\tregisterCoreBlocks( coreBlocks );\n\tregisterLegacyWidgetBlock();\n\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t__experimentalRegisterExperimentalCoreBlocks( {\n\t\t\tenableFSEBlocks: ENABLE_EXPERIMENTAL_FSE_BLOCKS,\n\t\t} );\n\t}\n\tregisterLegacyWidgetVariations( blockEditorSettings );\n\tregisterWidgetGroupBlock();\n\n\t// As we are unregistering `core/freeform` to avoid the Classic block, we must\n\t// replace it with something as the default freeform content handler. Failure to\n\t// do this will result in errors in the default block parser.\n\t// see: https://github.com/WordPress/gutenberg/issues/33097\n\tsetFreeformContentHandlerName( 'core/html' );\n\n\tconst SidebarControl = getSidebarControl( blockEditorSettings );\n\n\twp.customize.sectionConstructor.sidebar = getSidebarSection();\n\twp.customize.controlConstructor.sidebar_block_editor = SidebarControl;\n\n\tconst container = document.createElement( 'div' );\n\tdocument.body.appendChild( container );\n\n\twp.customize.bind( 'ready', () => {\n\t\tconst sidebarControls = [];\n\t\twp.customize.control.each( ( control ) => {\n\t\t\tif ( control instanceof SidebarControl ) {\n\t\t\t\tsidebarControls.push( control );\n\t\t\t}\n\t\t} );\n\n\t\tcreateRoot( container ).render(\n\t\t\t<CustomizeWidgets\n\t\t\t\tapi={ wp.customize }\n\t\t\t\tsidebarControls={ sidebarControls }\n\t\t\t\tblockEditorSettings={ blockEditorSettings }\n\t\t\t/>\n\t\t);\n\t} );\n}\n"]}
|
|
@@ -46,14 +46,20 @@ export default function FocusControl(_ref) {
|
|
|
46
46
|
focusWidget(widgetId);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
let previewBound = false;
|
|
50
|
+
|
|
49
51
|
function handleReady() {
|
|
50
52
|
api.previewer.preview.bind('focus-control-for-setting', handleFocus);
|
|
53
|
+
previewBound = true;
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
api.previewer.bind('ready', handleReady);
|
|
54
57
|
return () => {
|
|
55
58
|
api.previewer.unbind('ready', handleReady);
|
|
56
|
-
|
|
59
|
+
|
|
60
|
+
if (previewBound) {
|
|
61
|
+
api.previewer.preview.unbind('focus-control-for-setting', handleFocus);
|
|
62
|
+
}
|
|
57
63
|
};
|
|
58
64
|
}, [api, focusWidget]);
|
|
59
65
|
const context = useMemo(() => [focusedWidgetIdRef, focusWidget], [focusedWidgetIdRef, focusWidget]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/components/focus-control/index.js"],"names":["createContext","useState","useEffect","useContext","useCallback","useMemo","settingIdToWidgetId","FocusControlContext","FocusControl","api","sidebarControls","children","focusedWidgetIdRef","setFocusedWidgetIdRef","current","focusWidget","widgetId","sidebarControl","widgets","setting","get","includes","sectionInstance","expand","completeCallback","handleFocus","settingId","handleReady","previewer","preview","bind","unbind","context","useFocusControl"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,aADD,EAECC,QAFD,EAGCC,SAHD,EAICC,UAJD,EAKCC,WALD,EAMCC,OAND,QAOO,oBAPP;AASA;AACA;AACA;;AACA,SAASC,mBAAT,QAAoC,aAApC;AAEA,MAAMC,mBAAmB,GAAGP,aAAa,EAAzC;AAEA,eAAe,SAASQ,YAAT,OAA4D;AAAA,MAArC;AAAEC,IAAAA,GAAF;AAAOC,IAAAA,eAAP;AAAwBC,IAAAA;AAAxB,GAAqC;AAC1E,QAAM,CAAEC,kBAAF,EAAsBC,qBAAtB,IAAgDZ,QAAQ,CAAE;AAC/Da,IAAAA,OAAO,EAAE;AADsD,GAAF,CAA9D;AAIA,QAAMC,WAAW,GAAGX,WAAW,CAC5BY,QAAF,IAAgB;AACf,SAAM,MAAMC,cAAZ,IAA8BP,eAA9B,EAAgD;AAC/C,YAAMQ,OAAO,GAAGD,cAAc,CAACE,OAAf,CAAuBC,GAAvB,EAAhB;;AAEA,UAAKF,OAAO,CAACG,QAAR,CAAkBL,QAAlB,CAAL,EAAoC;AACnCC,QAAAA,cAAc,CAACK,eAAf,CAA+BC,MAA/B,CAAuC;AACtC;AACA;AACAC,UAAAA,gBAAgB,GAAG;AAClB;AACA;AACAX,YAAAA,qBAAqB,CAAE;AAAEC,cAAAA,OAAO,EAAEE;AAAX,aAAF,CAArB;AACA;;AAPqC,SAAvC;AAUA;AACA;AACD;AACD,GAnB6B,EAoB9B,CAAEN,eAAF,CApB8B,CAA/B;AAuBAR,EAAAA,SAAS,CAAE,MAAM;AAChB,aAASuB,WAAT,CAAsBC,SAAtB,EAAkC;AACjC,YAAMV,QAAQ,GAAGV,mBAAmB,CAAEoB,SAAF,CAApC;AAEAX,MAAAA,WAAW,CAAEC,QAAF,CAAX;AACA;;AAED,
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/components/focus-control/index.js"],"names":["createContext","useState","useEffect","useContext","useCallback","useMemo","settingIdToWidgetId","FocusControlContext","FocusControl","api","sidebarControls","children","focusedWidgetIdRef","setFocusedWidgetIdRef","current","focusWidget","widgetId","sidebarControl","widgets","setting","get","includes","sectionInstance","expand","completeCallback","handleFocus","settingId","previewBound","handleReady","previewer","preview","bind","unbind","context","useFocusControl"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,aADD,EAECC,QAFD,EAGCC,SAHD,EAICC,UAJD,EAKCC,WALD,EAMCC,OAND,QAOO,oBAPP;AASA;AACA;AACA;;AACA,SAASC,mBAAT,QAAoC,aAApC;AAEA,MAAMC,mBAAmB,GAAGP,aAAa,EAAzC;AAEA,eAAe,SAASQ,YAAT,OAA4D;AAAA,MAArC;AAAEC,IAAAA,GAAF;AAAOC,IAAAA,eAAP;AAAwBC,IAAAA;AAAxB,GAAqC;AAC1E,QAAM,CAAEC,kBAAF,EAAsBC,qBAAtB,IAAgDZ,QAAQ,CAAE;AAC/Da,IAAAA,OAAO,EAAE;AADsD,GAAF,CAA9D;AAIA,QAAMC,WAAW,GAAGX,WAAW,CAC5BY,QAAF,IAAgB;AACf,SAAM,MAAMC,cAAZ,IAA8BP,eAA9B,EAAgD;AAC/C,YAAMQ,OAAO,GAAGD,cAAc,CAACE,OAAf,CAAuBC,GAAvB,EAAhB;;AAEA,UAAKF,OAAO,CAACG,QAAR,CAAkBL,QAAlB,CAAL,EAAoC;AACnCC,QAAAA,cAAc,CAACK,eAAf,CAA+BC,MAA/B,CAAuC;AACtC;AACA;AACAC,UAAAA,gBAAgB,GAAG;AAClB;AACA;AACAX,YAAAA,qBAAqB,CAAE;AAAEC,cAAAA,OAAO,EAAEE;AAAX,aAAF,CAArB;AACA;;AAPqC,SAAvC;AAUA;AACA;AACD;AACD,GAnB6B,EAoB9B,CAAEN,eAAF,CApB8B,CAA/B;AAuBAR,EAAAA,SAAS,CAAE,MAAM;AAChB,aAASuB,WAAT,CAAsBC,SAAtB,EAAkC;AACjC,YAAMV,QAAQ,GAAGV,mBAAmB,CAAEoB,SAAF,CAApC;AAEAX,MAAAA,WAAW,CAAEC,QAAF,CAAX;AACA;;AAED,QAAIW,YAAY,GAAG,KAAnB;;AAEA,aAASC,WAAT,GAAuB;AACtBnB,MAAAA,GAAG,CAACoB,SAAJ,CAAcC,OAAd,CAAsBC,IAAtB,CACC,2BADD,EAECN,WAFD;AAIAE,MAAAA,YAAY,GAAG,IAAf;AACA;;AAEDlB,IAAAA,GAAG,CAACoB,SAAJ,CAAcE,IAAd,CAAoB,OAApB,EAA6BH,WAA7B;AAEA,WAAO,MAAM;AACZnB,MAAAA,GAAG,CAACoB,SAAJ,CAAcG,MAAd,CAAsB,OAAtB,EAA+BJ,WAA/B;;AACA,UAAKD,YAAL,EAAoB;AACnBlB,QAAAA,GAAG,CAACoB,SAAJ,CAAcC,OAAd,CAAsBE,MAAtB,CACC,2BADD,EAECP,WAFD;AAIA;AACD,KARD;AASA,GA5BQ,EA4BN,CAAEhB,GAAF,EAAOM,WAAP,CA5BM,CAAT;AA8BA,QAAMkB,OAAO,GAAG5B,OAAO,CACtB,MAAM,CAAEO,kBAAF,EAAsBG,WAAtB,CADgB,EAEtB,CAAEH,kBAAF,EAAsBG,WAAtB,CAFsB,CAAvB;AAKA,SACC,cAAC,mBAAD,CAAqB,QAArB;AAA8B,IAAA,KAAK,EAAGkB;AAAtC,KACGtB,QADH,CADD;AAKA;AAED,OAAO,MAAMuB,eAAe,GAAG,MAAM/B,UAAU,CAAEI,mBAAF,CAAxC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseState,\n\tuseEffect,\n\tuseContext,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst FocusControlContext = createContext();\n\nexport default function FocusControl( { api, sidebarControls, children } ) {\n\tconst [ focusedWidgetIdRef, setFocusedWidgetIdRef ] = useState( {\n\t\tcurrent: null,\n\t} );\n\n\tconst focusWidget = useCallback(\n\t\t( widgetId ) => {\n\t\t\tfor ( const sidebarControl of sidebarControls ) {\n\t\t\t\tconst widgets = sidebarControl.setting.get();\n\n\t\t\t\tif ( widgets.includes( widgetId ) ) {\n\t\t\t\t\tsidebarControl.sectionInstance.expand( {\n\t\t\t\t\t\t// Schedule it after the complete callback so that\n\t\t\t\t\t\t// it won't be overridden by the \"Back\" button focus.\n\t\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t\t// Create a \"ref-like\" object every time to ensure\n\t\t\t\t\t\t\t// the same widget id can also triggers the focus control.\n\t\t\t\t\t\t\tsetFocusedWidgetIdRef( { current: widgetId } );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ sidebarControls ]\n\t);\n\n\tuseEffect( () => {\n\t\tfunction handleFocus( settingId ) {\n\t\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\t\tfocusWidget( widgetId );\n\t\t}\n\n\t\tlet previewBound = false;\n\n\t\tfunction handleReady() {\n\t\t\tapi.previewer.preview.bind(\n\t\t\t\t'focus-control-for-setting',\n\t\t\t\thandleFocus\n\t\t\t);\n\t\t\tpreviewBound = true;\n\t\t}\n\n\t\tapi.previewer.bind( 'ready', handleReady );\n\n\t\treturn () => {\n\t\t\tapi.previewer.unbind( 'ready', handleReady );\n\t\t\tif ( previewBound ) {\n\t\t\t\tapi.previewer.preview.unbind(\n\t\t\t\t\t'focus-control-for-setting',\n\t\t\t\t\thandleFocus\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t}, [ api, focusWidget ] );\n\n\tconst context = useMemo(\n\t\t() => [ focusedWidgetIdRef, focusWidget ],\n\t\t[ focusedWidgetIdRef, focusWidget ]\n\t);\n\n\treturn (\n\t\t<FocusControlContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</FocusControlContext.Provider>\n\t);\n}\n\nexport const useFocusControl = () => useContext( FocusControlContext );\n"]}
|
|
@@ -49,5 +49,17 @@ export const textFormattingShortcuts = [{
|
|
|
49
49
|
character: 'x'
|
|
50
50
|
},
|
|
51
51
|
description: __('Make the selected text inline code.')
|
|
52
|
+
}, {
|
|
53
|
+
keyCombination: {
|
|
54
|
+
modifier: 'access',
|
|
55
|
+
character: '0'
|
|
56
|
+
},
|
|
57
|
+
description: __('Convert the current heading to a paragraph.')
|
|
58
|
+
}, {
|
|
59
|
+
keyCombination: {
|
|
60
|
+
modifier: 'access',
|
|
61
|
+
character: '1-6'
|
|
62
|
+
},
|
|
63
|
+
description: __('Convert the current paragraph or heading to a heading of level 1 to 6.')
|
|
52
64
|
}];
|
|
53
65
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/components/keyboard-shortcut-help-modal/config.js"],"names":["__","textFormattingShortcuts","keyCombination","modifier","character","description"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AAEA,OAAO,MAAMC,uBAAuB,GAAG,CACtC;AACCC,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,8BAAF;AAFhB,CADsC,EAKtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,gCAAF;AAFhB,CALsC,EAStC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,wCAAF;AAFhB,CATsC,EAatC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,cAAZ;AAA4BC,IAAAA,SAAS,EAAE;AAAvC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,gBAAF;AAFhB,CAbsC,EAiBtC;AACCE,EAAAA,cAAc,EAAE;AAAEE,IAAAA,SAAS,EAAE;AAAb,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,kCAAF;AAFhB,CAjBsC,EAqBtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,8BAAF;AAFhB,CArBsC,EAyBtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,kCAAF;AAFhB,CAzBsC,EA6BtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,qCAAF;AAFhB,CA7BsC,CAAhC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const textFormattingShortcuts = [\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'b' },\n\t\tdescription: __( 'Make the selected text bold.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'i' },\n\t\tdescription: __( 'Make the selected text italic.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'k' },\n\t\tdescription: __( 'Convert the selected text into a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primaryShift', character: 'k' },\n\t\tdescription: __( 'Remove a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { character: '[[' },\n\t\tdescription: __( 'Insert a link to a post or page.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'u' },\n\t\tdescription: __( 'Underline the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'd' },\n\t\tdescription: __( 'Strikethrough the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'x' },\n\t\tdescription: __( 'Make the selected text inline code.' ),\n\t},\n];\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/components/keyboard-shortcut-help-modal/config.js"],"names":["__","textFormattingShortcuts","keyCombination","modifier","character","description"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AAEA,OAAO,MAAMC,uBAAuB,GAAG,CACtC;AACCC,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,8BAAF;AAFhB,CADsC,EAKtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,gCAAF;AAFhB,CALsC,EAStC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,wCAAF;AAFhB,CATsC,EAatC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,cAAZ;AAA4BC,IAAAA,SAAS,EAAE;AAAvC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,gBAAF;AAFhB,CAbsC,EAiBtC;AACCE,EAAAA,cAAc,EAAE;AAAEE,IAAAA,SAAS,EAAE;AAAb,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,kCAAF;AAFhB,CAjBsC,EAqBtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,8BAAF;AAFhB,CArBsC,EAyBtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,kCAAF;AAFhB,CAzBsC,EA6BtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,qCAAF;AAFhB,CA7BsC,EAiCtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,6CAAF;AAFhB,CAjCsC,EAqCtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CACd,wEADc;AAFhB,CArCsC,CAAhC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const textFormattingShortcuts = [\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'b' },\n\t\tdescription: __( 'Make the selected text bold.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'i' },\n\t\tdescription: __( 'Make the selected text italic.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'k' },\n\t\tdescription: __( 'Convert the selected text into a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primaryShift', character: 'k' },\n\t\tdescription: __( 'Remove a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { character: '[[' },\n\t\tdescription: __( 'Insert a link to a post or page.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'u' },\n\t\tdescription: __( 'Underline the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'd' },\n\t\tdescription: __( 'Strikethrough the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'x' },\n\t\tdescription: __( 'Make the selected text inline code.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: '0' },\n\t\tdescription: __( 'Convert the current heading to a paragraph.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: '1-6' },\n\t\tdescription: __(\n\t\t\t'Convert the current paragraph or heading to a heading of level 1 to 6.'\n\t\t),\n\t},\n];\n"]}
|
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
import { useEffect } from '@wordpress/element';
|
|
5
5
|
import { useShortcut, store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
6
6
|
import { isAppleOS } from '@wordpress/keycodes';
|
|
7
|
-
import { useDispatch } from '@wordpress/data';
|
|
7
|
+
import { useDispatch, useSelect } from '@wordpress/data';
|
|
8
8
|
import { __ } from '@wordpress/i18n';
|
|
9
|
+
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
10
|
+
import { createBlock } from '@wordpress/blocks';
|
|
9
11
|
|
|
10
12
|
function KeyboardShortcuts(_ref) {
|
|
11
13
|
let {
|
|
@@ -13,6 +15,42 @@ function KeyboardShortcuts(_ref) {
|
|
|
13
15
|
redo,
|
|
14
16
|
save
|
|
15
17
|
} = _ref;
|
|
18
|
+
const {
|
|
19
|
+
replaceBlocks
|
|
20
|
+
} = useDispatch(blockEditorStore);
|
|
21
|
+
const {
|
|
22
|
+
getBlockName,
|
|
23
|
+
getSelectedBlockClientId,
|
|
24
|
+
getBlockAttributes
|
|
25
|
+
} = useSelect(blockEditorStore);
|
|
26
|
+
|
|
27
|
+
const handleTextLevelShortcut = (event, level) => {
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
const destinationBlockName = level === 0 ? 'core/paragraph' : 'core/heading';
|
|
30
|
+
const currentClientId = getSelectedBlockClientId();
|
|
31
|
+
|
|
32
|
+
if (currentClientId === null) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const blockName = getBlockName(currentClientId);
|
|
37
|
+
|
|
38
|
+
if (blockName !== 'core/paragraph' && blockName !== 'core/heading') {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const attributes = getBlockAttributes(currentClientId);
|
|
43
|
+
const textAlign = blockName === 'core/paragraph' ? 'align' : 'textAlign';
|
|
44
|
+
const destinationTextAlign = destinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';
|
|
45
|
+
replaceBlocks(currentClientId, createBlock(destinationBlockName, {
|
|
46
|
+
level,
|
|
47
|
+
content: attributes.content,
|
|
48
|
+
...{
|
|
49
|
+
[destinationTextAlign]: attributes[textAlign]
|
|
50
|
+
}
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
53
|
+
|
|
16
54
|
useShortcut('core/customize-widgets/undo', event => {
|
|
17
55
|
undo();
|
|
18
56
|
event.preventDefault();
|
|
@@ -25,6 +63,13 @@ function KeyboardShortcuts(_ref) {
|
|
|
25
63
|
event.preventDefault();
|
|
26
64
|
save();
|
|
27
65
|
});
|
|
66
|
+
useShortcut('core/customize-widgets/transform-heading-to-paragraph', event => handleTextLevelShortcut(event, 0));
|
|
67
|
+
[1, 2, 3, 4, 5, 6].forEach(level => {
|
|
68
|
+
//the loop is based off on a constant therefore
|
|
69
|
+
//the hook will execute the same way every time
|
|
70
|
+
//eslint-disable-next-line react-hooks/rules-of-hooks
|
|
71
|
+
useShortcut(`core/customize-widgets/transform-paragraph-to-heading-${level}`, event => handleTextLevelShortcut(event, level));
|
|
72
|
+
});
|
|
28
73
|
return null;
|
|
29
74
|
}
|
|
30
75
|
|
|
@@ -69,6 +114,26 @@ function KeyboardShortcutsRegister() {
|
|
|
69
114
|
character: 's'
|
|
70
115
|
}
|
|
71
116
|
});
|
|
117
|
+
registerShortcut({
|
|
118
|
+
name: `core/customize-widgets/transform-heading-to-paragraph`,
|
|
119
|
+
category: 'block-library',
|
|
120
|
+
description: __('Transform heading to paragraph.'),
|
|
121
|
+
keyCombination: {
|
|
122
|
+
modifier: 'access',
|
|
123
|
+
character: `0`
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
[1, 2, 3, 4, 5, 6].forEach(level => {
|
|
127
|
+
registerShortcut({
|
|
128
|
+
name: `core/customize-widgets/transform-paragraph-to-heading-${level}`,
|
|
129
|
+
category: 'block-library',
|
|
130
|
+
description: __('Transform paragraph to heading.'),
|
|
131
|
+
keyCombination: {
|
|
132
|
+
modifier: 'access',
|
|
133
|
+
character: `${level}`
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
});
|
|
72
137
|
return () => {
|
|
73
138
|
unregisterShortcut('core/customize-widgets/undo');
|
|
74
139
|
unregisterShortcut('core/customize-widgets/redo');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/components/keyboard-shortcuts/index.js"],"names":["useEffect","useShortcut","store","keyboardShortcutsStore","isAppleOS","useDispatch","__","KeyboardShortcuts","undo","redo","save","event","preventDefault","KeyboardShortcutsRegister","registerShortcut","unregisterShortcut","name","category","description","keyCombination","modifier","character","aliases","Register"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,oBAA1B;AACA,SACCC,WADD,EAECC,KAAK,IAAIC,sBAFV,QAGO,+BAHP;AAIA,SAASC,SAAT,QAA0B,qBAA1B;AACA,SAASC,WAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/components/keyboard-shortcuts/index.js"],"names":["useEffect","useShortcut","store","keyboardShortcutsStore","isAppleOS","useDispatch","useSelect","__","blockEditorStore","createBlock","KeyboardShortcuts","undo","redo","save","replaceBlocks","getBlockName","getSelectedBlockClientId","getBlockAttributes","handleTextLevelShortcut","event","level","preventDefault","destinationBlockName","currentClientId","blockName","attributes","textAlign","destinationTextAlign","content","forEach","KeyboardShortcutsRegister","registerShortcut","unregisterShortcut","name","category","description","keyCombination","modifier","character","aliases","Register"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { isAppleOS } from '@wordpress/keycodes';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\n\nfunction KeyboardShortcuts( { undo, redo, save } ) {\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { getBlockName, getSelectedBlockClientId, getBlockAttributes } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst handleTextLevelShortcut = ( event, level ) => {\n\t\tevent.preventDefault();\n\t\tconst destinationBlockName =\n\t\t\tlevel === 0 ? 'core/paragraph' : 'core/heading';\n\t\tconst currentClientId = getSelectedBlockClientId();\n\t\tif ( currentClientId === null ) {\n\t\t\treturn;\n\t\t}\n\t\tconst blockName = getBlockName( currentClientId );\n\t\tif ( blockName !== 'core/paragraph' && blockName !== 'core/heading' ) {\n\t\t\treturn;\n\t\t}\n\t\tconst attributes = getBlockAttributes( currentClientId );\n\t\tconst textAlign =\n\t\t\tblockName === 'core/paragraph' ? 'align' : 'textAlign';\n\t\tconst destinationTextAlign =\n\t\t\tdestinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';\n\n\t\treplaceBlocks(\n\t\t\tcurrentClientId,\n\t\t\tcreateBlock( destinationBlockName, {\n\t\t\t\tlevel,\n\t\t\t\tcontent: attributes.content,\n\t\t\t\t...{ [ destinationTextAlign ]: attributes[ textAlign ] },\n\t\t\t} )\n\t\t);\n\t};\n\n\tuseShortcut( 'core/customize-widgets/undo', ( event ) => {\n\t\tundo();\n\t\tevent.preventDefault();\n\t} );\n\n\tuseShortcut( 'core/customize-widgets/redo', ( event ) => {\n\t\tredo();\n\t\tevent.preventDefault();\n\t} );\n\n\tuseShortcut( 'core/customize-widgets/save', ( event ) => {\n\t\tevent.preventDefault();\n\t\tsave();\n\t} );\n\n\tuseShortcut(\n\t\t'core/customize-widgets/transform-heading-to-paragraph',\n\t\t( event ) => handleTextLevelShortcut( event, 0 )\n\t);\n\n\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t//the loop is based off on a constant therefore\n\t\t//the hook will execute the same way every time\n\t\t//eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tuseShortcut(\n\t\t\t`core/customize-widgets/transform-paragraph-to-heading-${ level }`,\n\t\t\t( event ) => handleTextLevelShortcut( event, level )\n\t\t);\n\t} );\n\n\treturn null;\n}\n\nfunction KeyboardShortcutsRegister() {\n\tconst { registerShortcut, unregisterShortcut } = useDispatch(\n\t\tkeyboardShortcutsStore\n\t);\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/customize-widgets/undo',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Undo your last changes.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'z',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/customize-widgets/redo',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Redo your last undo.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryShift',\n\t\t\t\tcharacter: 'z',\n\t\t\t},\n\t\t\t// Disable on Apple OS because it conflicts with the browser's\n\t\t\t// history shortcut. It's a fine alias for both Windows and Linux.\n\t\t\t// Since there's no conflict for Ctrl+Shift+Z on both Windows and\n\t\t\t// Linux, we keep it as the default for consistency.\n\t\t\taliases: isAppleOS()\n\t\t\t\t? []\n\t\t\t\t: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodifier: 'primary',\n\t\t\t\t\t\t\tcharacter: 'y',\n\t\t\t\t\t\t},\n\t\t\t\t ],\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/customize-widgets/save',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Save your changes.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 's',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: `core/customize-widgets/transform-heading-to-paragraph`,\n\t\t\tcategory: 'block-library',\n\t\t\tdescription: __( 'Transform heading to paragraph.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: `0`,\n\t\t\t},\n\t\t} );\n\n\t\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t\tregisterShortcut( {\n\t\t\t\tname: `core/customize-widgets/transform-paragraph-to-heading-${ level }`,\n\t\t\t\tcategory: 'block-library',\n\t\t\t\tdescription: __( 'Transform paragraph to heading.' ),\n\t\t\t\tkeyCombination: {\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: `${ level }`,\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\n\t\treturn () => {\n\t\t\tunregisterShortcut( 'core/customize-widgets/undo' );\n\t\t\tunregisterShortcut( 'core/customize-widgets/redo' );\n\t\t\tunregisterShortcut( 'core/customize-widgets/save' );\n\t\t};\n\t}, [ registerShortcut ] );\n\n\treturn null;\n}\n\nKeyboardShortcuts.Register = KeyboardShortcutsRegister;\nexport default KeyboardShortcuts;\n"]}
|
package/build-module/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createElement } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* WordPress dependencies
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { createRoot } from '@wordpress/element';
|
|
7
7
|
import { registerCoreBlocks, __experimentalGetCoreBlocks, __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';
|
|
8
8
|
import { registerLegacyWidgetBlock, registerLegacyWidgetVariations, registerWidgetGroupBlock } from '@wordpress/widgets';
|
|
9
9
|
import { setFreeformContentHandlerName, store as blocksStore } from '@wordpress/blocks';
|
|
@@ -69,11 +69,11 @@ export function initialize(editorName, blockEditorSettings) {
|
|
|
69
69
|
sidebarControls.push(control);
|
|
70
70
|
}
|
|
71
71
|
});
|
|
72
|
-
render(createElement(CustomizeWidgets, {
|
|
72
|
+
createRoot(container).render(createElement(CustomizeWidgets, {
|
|
73
73
|
api: wp.customize,
|
|
74
74
|
sidebarControls: sidebarControls,
|
|
75
75
|
blockEditorSettings: blockEditorSettings
|
|
76
|
-
})
|
|
76
|
+
}));
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
79
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/index.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/index.js"],"names":["createRoot","registerCoreBlocks","__experimentalGetCoreBlocks","__experimentalRegisterExperimentalCoreBlocks","registerLegacyWidgetBlock","registerLegacyWidgetVariations","registerWidgetGroupBlock","setFreeformContentHandlerName","store","blocksStore","dispatch","preferencesStore","CustomizeWidgets","getSidebarSection","getSidebarControl","wp","window","DISABLED_BLOCKS","ENABLE_EXPERIMENTAL_FSE_BLOCKS","initialize","editorName","blockEditorSettings","setDefaults","fixedToolbar","welcomeGuide","__experimentalReapplyBlockTypeFilters","coreBlocks","filter","block","includes","name","startsWith","process","env","IS_GUTENBERG_PLUGIN","enableFSEBlocks","SidebarControl","customize","sectionConstructor","sidebar","controlConstructor","sidebar_block_editor","container","document","createElement","body","appendChild","bind","sidebarControls","control","each","push","render"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createRoot } from '@wordpress/element';\nimport {\n\tregisterCoreBlocks,\n\t__experimentalGetCoreBlocks,\n\t__experimentalRegisterExperimentalCoreBlocks,\n} from '@wordpress/block-library';\nimport {\n\tregisterLegacyWidgetBlock,\n\tregisterLegacyWidgetVariations,\n\tregisterWidgetGroupBlock,\n} from '@wordpress/widgets';\nimport {\n\tsetFreeformContentHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { dispatch } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport CustomizeWidgets from './components/customize-widgets';\nimport getSidebarSection from './controls/sidebar-section';\nimport getSidebarControl from './controls/sidebar-control';\nimport './filters';\n\nconst { wp } = window;\n\nconst DISABLED_BLOCKS = [\n\t'core/more',\n\t'core/block',\n\t'core/freeform',\n\t'core/template-part',\n];\nconst ENABLE_EXPERIMENTAL_FSE_BLOCKS = false;\n\n/**\n * Initializes the widgets block editor in the customizer.\n *\n * @param {string} editorName The editor name.\n * @param {Object} blockEditorSettings Block editor settings.\n */\nexport function initialize( editorName, blockEditorSettings ) {\n\tdispatch( preferencesStore ).setDefaults( 'core/customize-widgets', {\n\t\tfixedToolbar: false,\n\t\twelcomeGuide: true,\n\t} );\n\n\tdispatch( blocksStore ).__experimentalReapplyBlockTypeFilters();\n\tconst coreBlocks = __experimentalGetCoreBlocks().filter( ( block ) => {\n\t\treturn ! (\n\t\t\tDISABLED_BLOCKS.includes( block.name ) ||\n\t\t\tblock.name.startsWith( 'core/post' ) ||\n\t\t\tblock.name.startsWith( 'core/query' ) ||\n\t\t\tblock.name.startsWith( 'core/site' ) ||\n\t\t\tblock.name.startsWith( 'core/navigation' )\n\t\t);\n\t} );\n\tregisterCoreBlocks( coreBlocks );\n\tregisterLegacyWidgetBlock();\n\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t__experimentalRegisterExperimentalCoreBlocks( {\n\t\t\tenableFSEBlocks: ENABLE_EXPERIMENTAL_FSE_BLOCKS,\n\t\t} );\n\t}\n\tregisterLegacyWidgetVariations( blockEditorSettings );\n\tregisterWidgetGroupBlock();\n\n\t// As we are unregistering `core/freeform` to avoid the Classic block, we must\n\t// replace it with something as the default freeform content handler. Failure to\n\t// do this will result in errors in the default block parser.\n\t// see: https://github.com/WordPress/gutenberg/issues/33097\n\tsetFreeformContentHandlerName( 'core/html' );\n\n\tconst SidebarControl = getSidebarControl( blockEditorSettings );\n\n\twp.customize.sectionConstructor.sidebar = getSidebarSection();\n\twp.customize.controlConstructor.sidebar_block_editor = SidebarControl;\n\n\tconst container = document.createElement( 'div' );\n\tdocument.body.appendChild( container );\n\n\twp.customize.bind( 'ready', () => {\n\t\tconst sidebarControls = [];\n\t\twp.customize.control.each( ( control ) => {\n\t\t\tif ( control instanceof SidebarControl ) {\n\t\t\t\tsidebarControls.push( control );\n\t\t\t}\n\t\t} );\n\n\t\tcreateRoot( container ).render(\n\t\t\t<CustomizeWidgets\n\t\t\t\tapi={ wp.customize }\n\t\t\t\tsidebarControls={ sidebarControls }\n\t\t\t\tblockEditorSettings={ blockEditorSettings }\n\t\t\t/>\n\t\t);\n\t} );\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/customize-widgets",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.0",
|
|
4
4
|
"description": "Widgets blocks in Customizer Module for WordPress.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -24,26 +24,26 @@
|
|
|
24
24
|
"react-native": "src/index",
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@babel/runtime": "^7.16.0",
|
|
27
|
-
"@wordpress/block-editor": "^11.
|
|
28
|
-
"@wordpress/block-library": "^8.
|
|
29
|
-
"@wordpress/blocks": "^12.
|
|
30
|
-
"@wordpress/components": "^23.
|
|
31
|
-
"@wordpress/compose": "^6.
|
|
32
|
-
"@wordpress/core-data": "^6.
|
|
33
|
-
"@wordpress/data": "^8.
|
|
34
|
-
"@wordpress/dom": "^3.
|
|
35
|
-
"@wordpress/element": "^5.
|
|
36
|
-
"@wordpress/hooks": "^3.
|
|
37
|
-
"@wordpress/i18n": "^4.
|
|
38
|
-
"@wordpress/icons": "^9.
|
|
39
|
-
"@wordpress/interface": "^5.
|
|
40
|
-
"@wordpress/is-shallow-equal": "^4.
|
|
41
|
-
"@wordpress/keyboard-shortcuts": "^4.
|
|
42
|
-
"@wordpress/keycodes": "^3.
|
|
43
|
-
"@wordpress/media-utils": "^4.
|
|
44
|
-
"@wordpress/preferences": "^3.
|
|
45
|
-
"@wordpress/private-apis": "^0.
|
|
46
|
-
"@wordpress/widgets": "^3.
|
|
27
|
+
"@wordpress/block-editor": "^11.5.0",
|
|
28
|
+
"@wordpress/block-library": "^8.5.0",
|
|
29
|
+
"@wordpress/blocks": "^12.5.0",
|
|
30
|
+
"@wordpress/components": "^23.5.0",
|
|
31
|
+
"@wordpress/compose": "^6.5.0",
|
|
32
|
+
"@wordpress/core-data": "^6.5.0",
|
|
33
|
+
"@wordpress/data": "^8.5.0",
|
|
34
|
+
"@wordpress/dom": "^3.28.0",
|
|
35
|
+
"@wordpress/element": "^5.5.0",
|
|
36
|
+
"@wordpress/hooks": "^3.28.0",
|
|
37
|
+
"@wordpress/i18n": "^4.28.0",
|
|
38
|
+
"@wordpress/icons": "^9.19.0",
|
|
39
|
+
"@wordpress/interface": "^5.5.0",
|
|
40
|
+
"@wordpress/is-shallow-equal": "^4.28.0",
|
|
41
|
+
"@wordpress/keyboard-shortcuts": "^4.5.0",
|
|
42
|
+
"@wordpress/keycodes": "^3.28.0",
|
|
43
|
+
"@wordpress/media-utils": "^4.19.0",
|
|
44
|
+
"@wordpress/preferences": "^3.5.0",
|
|
45
|
+
"@wordpress/private-apis": "^0.10.0",
|
|
46
|
+
"@wordpress/widgets": "^3.5.0",
|
|
47
47
|
"classnames": "^2.3.1",
|
|
48
48
|
"fast-deep-equal": "^3.1.3"
|
|
49
49
|
},
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"publishConfig": {
|
|
55
55
|
"access": "public"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "d5e03a74b79e3ca84afda24375474a103a063ee4"
|
|
58
58
|
}
|
|
@@ -52,21 +52,26 @@ export default function FocusControl( { api, sidebarControls, children } ) {
|
|
|
52
52
|
focusWidget( widgetId );
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
let previewBound = false;
|
|
56
|
+
|
|
55
57
|
function handleReady() {
|
|
56
58
|
api.previewer.preview.bind(
|
|
57
59
|
'focus-control-for-setting',
|
|
58
60
|
handleFocus
|
|
59
61
|
);
|
|
62
|
+
previewBound = true;
|
|
60
63
|
}
|
|
61
64
|
|
|
62
65
|
api.previewer.bind( 'ready', handleReady );
|
|
63
66
|
|
|
64
67
|
return () => {
|
|
65
68
|
api.previewer.unbind( 'ready', handleReady );
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
if ( previewBound ) {
|
|
70
|
+
api.previewer.preview.unbind(
|
|
71
|
+
'focus-control-for-setting',
|
|
72
|
+
handleFocus
|
|
73
|
+
);
|
|
74
|
+
}
|
|
70
75
|
};
|
|
71
76
|
}, [ api, focusWidget ] );
|
|
72
77
|
|
|
@@ -36,4 +36,14 @@ export const textFormattingShortcuts = [
|
|
|
36
36
|
keyCombination: { modifier: 'access', character: 'x' },
|
|
37
37
|
description: __( 'Make the selected text inline code.' ),
|
|
38
38
|
},
|
|
39
|
+
{
|
|
40
|
+
keyCombination: { modifier: 'access', character: '0' },
|
|
41
|
+
description: __( 'Convert the current heading to a paragraph.' ),
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
keyCombination: { modifier: 'access', character: '1-6' },
|
|
45
|
+
description: __(
|
|
46
|
+
'Convert the current paragraph or heading to a heading of level 1 to 6.'
|
|
47
|
+
),
|
|
48
|
+
},
|
|
39
49
|
];
|
|
@@ -7,10 +7,44 @@ import {
|
|
|
7
7
|
store as keyboardShortcutsStore,
|
|
8
8
|
} from '@wordpress/keyboard-shortcuts';
|
|
9
9
|
import { isAppleOS } from '@wordpress/keycodes';
|
|
10
|
-
import { useDispatch } from '@wordpress/data';
|
|
10
|
+
import { useDispatch, useSelect } from '@wordpress/data';
|
|
11
11
|
import { __ } from '@wordpress/i18n';
|
|
12
|
+
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
13
|
+
import { createBlock } from '@wordpress/blocks';
|
|
12
14
|
|
|
13
15
|
function KeyboardShortcuts( { undo, redo, save } ) {
|
|
16
|
+
const { replaceBlocks } = useDispatch( blockEditorStore );
|
|
17
|
+
const { getBlockName, getSelectedBlockClientId, getBlockAttributes } =
|
|
18
|
+
useSelect( blockEditorStore );
|
|
19
|
+
|
|
20
|
+
const handleTextLevelShortcut = ( event, level ) => {
|
|
21
|
+
event.preventDefault();
|
|
22
|
+
const destinationBlockName =
|
|
23
|
+
level === 0 ? 'core/paragraph' : 'core/heading';
|
|
24
|
+
const currentClientId = getSelectedBlockClientId();
|
|
25
|
+
if ( currentClientId === null ) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const blockName = getBlockName( currentClientId );
|
|
29
|
+
if ( blockName !== 'core/paragraph' && blockName !== 'core/heading' ) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const attributes = getBlockAttributes( currentClientId );
|
|
33
|
+
const textAlign =
|
|
34
|
+
blockName === 'core/paragraph' ? 'align' : 'textAlign';
|
|
35
|
+
const destinationTextAlign =
|
|
36
|
+
destinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';
|
|
37
|
+
|
|
38
|
+
replaceBlocks(
|
|
39
|
+
currentClientId,
|
|
40
|
+
createBlock( destinationBlockName, {
|
|
41
|
+
level,
|
|
42
|
+
content: attributes.content,
|
|
43
|
+
...{ [ destinationTextAlign ]: attributes[ textAlign ] },
|
|
44
|
+
} )
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
14
48
|
useShortcut( 'core/customize-widgets/undo', ( event ) => {
|
|
15
49
|
undo();
|
|
16
50
|
event.preventDefault();
|
|
@@ -26,6 +60,21 @@ function KeyboardShortcuts( { undo, redo, save } ) {
|
|
|
26
60
|
save();
|
|
27
61
|
} );
|
|
28
62
|
|
|
63
|
+
useShortcut(
|
|
64
|
+
'core/customize-widgets/transform-heading-to-paragraph',
|
|
65
|
+
( event ) => handleTextLevelShortcut( event, 0 )
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {
|
|
69
|
+
//the loop is based off on a constant therefore
|
|
70
|
+
//the hook will execute the same way every time
|
|
71
|
+
//eslint-disable-next-line react-hooks/rules-of-hooks
|
|
72
|
+
useShortcut(
|
|
73
|
+
`core/customize-widgets/transform-paragraph-to-heading-${ level }`,
|
|
74
|
+
( event ) => handleTextLevelShortcut( event, level )
|
|
75
|
+
);
|
|
76
|
+
} );
|
|
77
|
+
|
|
29
78
|
return null;
|
|
30
79
|
}
|
|
31
80
|
|
|
@@ -77,6 +126,28 @@ function KeyboardShortcutsRegister() {
|
|
|
77
126
|
},
|
|
78
127
|
} );
|
|
79
128
|
|
|
129
|
+
registerShortcut( {
|
|
130
|
+
name: `core/customize-widgets/transform-heading-to-paragraph`,
|
|
131
|
+
category: 'block-library',
|
|
132
|
+
description: __( 'Transform heading to paragraph.' ),
|
|
133
|
+
keyCombination: {
|
|
134
|
+
modifier: 'access',
|
|
135
|
+
character: `0`,
|
|
136
|
+
},
|
|
137
|
+
} );
|
|
138
|
+
|
|
139
|
+
[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {
|
|
140
|
+
registerShortcut( {
|
|
141
|
+
name: `core/customize-widgets/transform-paragraph-to-heading-${ level }`,
|
|
142
|
+
category: 'block-library',
|
|
143
|
+
description: __( 'Transform paragraph to heading.' ),
|
|
144
|
+
keyCombination: {
|
|
145
|
+
modifier: 'access',
|
|
146
|
+
character: `${ level }`,
|
|
147
|
+
},
|
|
148
|
+
} );
|
|
149
|
+
} );
|
|
150
|
+
|
|
80
151
|
return () => {
|
|
81
152
|
unregisterShortcut( 'core/customize-widgets/undo' );
|
|
82
153
|
unregisterShortcut( 'core/customize-widgets/redo' );
|
package/src/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { createRoot } from '@wordpress/element';
|
|
5
5
|
import {
|
|
6
6
|
registerCoreBlocks,
|
|
7
7
|
__experimentalGetCoreBlocks,
|
|
@@ -91,13 +91,12 @@ export function initialize( editorName, blockEditorSettings ) {
|
|
|
91
91
|
}
|
|
92
92
|
} );
|
|
93
93
|
|
|
94
|
-
render(
|
|
94
|
+
createRoot( container ).render(
|
|
95
95
|
<CustomizeWidgets
|
|
96
96
|
api={ wp.customize }
|
|
97
97
|
sidebarControls={ sidebarControls }
|
|
98
98
|
blockEditorSettings={ blockEditorSettings }
|
|
99
|
-
|
|
100
|
-
container
|
|
99
|
+
/>
|
|
101
100
|
);
|
|
102
101
|
} );
|
|
103
102
|
}
|