@wordpress/customize-widgets 3.19.0 → 4.1.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 +8 -0
- package/build/components/keyboard-shortcuts/index.js +11 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/sidebar-block-editor/use-sidebar-block-editor.js +2 -2
- package/build/components/sidebar-block-editor/use-sidebar-block-editor.js.map +1 -1
- package/build/utils.js +3 -1
- package/build/utils.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +10 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/sidebar-block-editor/use-sidebar-block-editor.js +2 -2
- package/build-module/components/sidebar-block-editor/use-sidebar-block-editor.js.map +1 -1
- package/build-module/utils.js +3 -1
- package/build-module/utils.js.map +1 -1
- package/build-style/style-rtl.css +17 -3
- package/build-style/style.css +17 -3
- package/package.json +24 -24
- package/src/components/keyboard-shortcuts/index.js +13 -0
- package/src/components/sidebar-block-editor/use-sidebar-block-editor.js +5 -2
- package/src/utils.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 4.1.0 (2023-01-02)
|
|
6
|
+
|
|
7
|
+
## 4.0.0 (2022-12-14)
|
|
8
|
+
|
|
9
|
+
### Breaking Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies to require React 18 ([45235](https://github.com/WordPress/gutenberg/pull/45235))
|
|
12
|
+
|
|
5
13
|
## 3.19.0 (2022-11-16)
|
|
6
14
|
|
|
7
15
|
## 3.18.0 (2022-11-02)
|
|
@@ -9,6 +9,8 @@ var _element = require("@wordpress/element");
|
|
|
9
9
|
|
|
10
10
|
var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
|
|
11
11
|
|
|
12
|
+
var _keycodes = require("@wordpress/keycodes");
|
|
13
|
+
|
|
12
14
|
var _data = require("@wordpress/data");
|
|
13
15
|
|
|
14
16
|
var _i18n = require("@wordpress/i18n");
|
|
@@ -59,7 +61,15 @@ function KeyboardShortcutsRegister() {
|
|
|
59
61
|
keyCombination: {
|
|
60
62
|
modifier: 'primaryShift',
|
|
61
63
|
character: 'z'
|
|
62
|
-
}
|
|
64
|
+
},
|
|
65
|
+
// Disable on Apple OS because it conflicts with the browser's
|
|
66
|
+
// history shortcut. It's a fine alias for both Windows and Linux.
|
|
67
|
+
// Since there's no conflict for Ctrl+Shift+Z on both Windows and
|
|
68
|
+
// Linux, we keep it as the default for consistency.
|
|
69
|
+
aliases: (0, _keycodes.isAppleOS)() ? [] : [{
|
|
70
|
+
modifier: 'primary',
|
|
71
|
+
character: 'y'
|
|
72
|
+
}]
|
|
63
73
|
});
|
|
64
74
|
registerShortcut({
|
|
65
75
|
name: 'core/customize-widgets/save',
|
|
@@ -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","Register"],"mappings":";;;;;;;AAGA;;AACA;;AAIA;;AACA;;
|
|
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;;AAVA;AACA;AACA;AAUA,SAASA,iBAAT,OAAmD;AAAA,MAAvB;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA;AAAd,GAAuB;AAClD,sCAAa,6BAAb,EAA8CC,KAAF,IAAa;AACxDH,IAAAA,IAAI;AACJG,IAAAA,KAAK,CAACC,cAAN;AACA,GAHD;AAKA,sCAAa,6BAAb,EAA8CD,KAAF,IAAa;AACxDF,IAAAA,IAAI;AACJE,IAAAA,KAAK,CAACC,cAAN;AACA,GAHD;AAKA,sCAAa,6BAAb,EAA8CD,KAAF,IAAa;AACxDA,IAAAA,KAAK,CAACC,cAAN;AACAF,IAAAA,IAAI;AACJ,GAHD;AAKA,SAAO,IAAP;AACA;;AAED,SAASG,yBAAT,GAAqC;AACpC,QAAM;AAAEC,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MAA2C,uBAChDC,wBADgD,CAAjD;AAIA,0BAAW,MAAM;AAChBF,IAAAA,gBAAgB,CAAE;AACjBG,MAAAA,IAAI,EAAE,6BADW;AAEjBC,MAAAA,QAAQ,EAAE,QAFO;AAGjBC,MAAAA,WAAW,EAAE,cAAI,yBAAJ,CAHI;AAIjBC,MAAAA,cAAc,EAAE;AACfC,QAAAA,QAAQ,EAAE,SADK;AAEfC,QAAAA,SAAS,EAAE;AAFI;AAJC,KAAF,CAAhB;AAUAR,IAAAA,gBAAgB,CAAE;AACjBG,MAAAA,IAAI,EAAE,6BADW;AAEjBC,MAAAA,QAAQ,EAAE,QAFO;AAGjBC,MAAAA,WAAW,EAAE,cAAI,sBAAJ,CAHI;AAIjBC,MAAAA,cAAc,EAAE;AACfC,QAAAA,QAAQ,EAAE,cADK;AAEfC,QAAAA,SAAS,EAAE;AAFI,OAJC;AAQjB;AACA;AACA;AACA;AACAC,MAAAA,OAAO,EAAE,6BACN,EADM,GAEN,CACA;AACCF,QAAAA,QAAQ,EAAE,SADX;AAECC,QAAAA,SAAS,EAAE;AAFZ,OADA;AAdc,KAAF,CAAhB;AAsBAR,IAAAA,gBAAgB,CAAE;AACjBG,MAAAA,IAAI,EAAE,6BADW;AAEjBC,MAAAA,QAAQ,EAAE,QAFO;AAGjBC,MAAAA,WAAW,EAAE,cAAI,oBAAJ,CAHI;AAIjBC,MAAAA,cAAc,EAAE;AACfC,QAAAA,QAAQ,EAAE,SADK;AAEfC,QAAAA,SAAS,EAAE;AAFI;AAJC,KAAF,CAAhB;AAUA,WAAO,MAAM;AACZP,MAAAA,kBAAkB,CAAE,6BAAF,CAAlB;AACAA,MAAAA,kBAAkB,CAAE,6BAAF,CAAlB;AACAA,MAAAA,kBAAkB,CAAE,6BAAF,CAAlB;AACA,KAJD;AAKA,GAhDD,EAgDG,CAAED,gBAAF,CAhDH;AAkDA,SAAO,IAAP;AACA;;AAEDP,iBAAiB,CAACiB,QAAlB,GAA6BX,yBAA7B;eACeN,iB","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 } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\nfunction KeyboardShortcuts( { undo, redo, save } ) {\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\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\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"]}
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = useSidebarBlockEditor;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _es = _interopRequireDefault(require("fast-deep-equal/es6"));
|
|
11
11
|
|
|
12
12
|
var _element = require("@wordpress/element");
|
|
13
13
|
|
|
@@ -72,7 +72,7 @@ function useSidebarBlockEditor(sidebar) {
|
|
|
72
72
|
const prevWidget = sidebar.getWidget(widgetId); // Bail out updates by returning the previous widgets.
|
|
73
73
|
// Deep equality is necessary until the block editor's internals changes.
|
|
74
74
|
|
|
75
|
-
if ((0,
|
|
75
|
+
if ((0, _es.default)(nextBlock, prevBlock) && prevWidget) {
|
|
76
76
|
return prevWidget;
|
|
77
77
|
}
|
|
78
78
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/use-sidebar-block-editor.js"],"names":["widgetsToBlocks","widgets","map","widget","useSidebarBlockEditor","sidebar","blocks","setBlocks","getWidgets","subscribe","prevWidgets","nextWidgets","prevBlocks","prevWidgetsMap","Map","id","prevBlocksMap","block","nextBlocks","nextWidget","prevWidget","get","onChangeBlocks","nextBlock","widgetId","has","prevBlock","getWidget","addedWidgetIds","setWidgets","reduce","updatedNextBlocks","index","addedWidgetId","slice"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAGA,SAASA,eAAT,CAA0BC,OAA1B,EAAoC;AACnC,SAAOA,OAAO,CAACC,GAAR,CAAeC,MAAF,IAAc,0BAAeA,MAAf,CAA3B,CAAP;AACA;;AAEc,SAASC,qBAAT,CAAgCC,OAAhC,EAA0C;AACxD,QAAM,CAAEC,MAAF,EAAUC,SAAV,IAAwB,uBAAU,MACvCP,eAAe,CAAEK,OAAO,CAACG,UAAR,EAAF,CADc,CAA9B;AAIA,0BAAW,MAAM;AAChB,WAAOH,OAAO,CAACI,SAAR,CAAmB,CAAEC,WAAF,EAAeC,WAAf,KAAgC;AACzDJ,MAAAA,SAAS,CAAIK,UAAF,IAAkB;AAC5B,cAAMC,cAAc,GAAG,IAAIC,GAAJ,CACtBJ,WAAW,CAACR,GAAZ,CAAmBC,MAAF,IAAc,CAAEA,MAAM,CAACY,EAAT,EAAaZ,MAAb,CAA/B,CADsB,CAAvB;AAGA,cAAMa,aAAa,GAAG,IAAIF,GAAJ,CACrBF,UAAU,CAACV,GAAX,CAAkBe,KAAF,IAAa,CAC5B,mCAAsBA,KAAtB,CAD4B,EAE5BA,KAF4B,CAA7B,CADqB,CAAtB;AAOA,cAAMC,UAAU,GAAGP,WAAW,CAACT,GAAZ,CAAmBiB,UAAF,IAAkB;AACrD,gBAAMC,UAAU,GAAGP,cAAc,CAACQ,GAAf,CAAoBF,UAAU,CAACJ,EAA/B,CAAnB,CADqD,CAGrD;;AACA,cAAKK,UAAU,IAAIA,UAAU,KAAKD,UAAlC,EAA+C;AAC9C,mBAAOH,aAAa,CAACK,GAAd,CAAmBF,UAAU,CAACJ,EAA9B,CAAP;AACA;;AAED,iBAAO,0BAAeI,UAAf,CAAP;AACA,SATkB,CAAnB,CAX4B,CAsB5B;;AACA,YAAK,6BAAgBP,UAAhB,EAA4BM,UAA5B,CAAL,EAAgD;AAC/C,iBAAON,UAAP;AACA;;AAED,eAAOM,UAAP;AACA,OA5BQ,CAAT;AA6BA,KA9BM,CAAP;AA+BA,GAhCD,EAgCG,CAAEb,OAAF,CAhCH;AAkCA,QAAMiB,cAAc,GAAG,0BACpBJ,UAAF,IAAkB;AACjBX,IAAAA,SAAS,CAAIK,UAAF,IAAkB;AAC5B,UAAK,6BAAgBA,UAAhB,EAA4BM,UAA5B,CAAL,EAAgD;AAC/C,eAAON,UAAP;AACA;;AAED,YAAMI,aAAa,GAAG,IAAIF,GAAJ,CACrBF,UAAU,CAACV,GAAX,CAAkBe,KAAF,IAAa,CAC5B,mCAAsBA,KAAtB,CAD4B,EAE5BA,KAF4B,CAA7B,CADqB,CAAtB;AAOA,YAAMN,WAAW,GAAGO,UAAU,CAAChB,GAAX,CAAkBqB,SAAF,IAAiB;AACpD,cAAMC,QAAQ,GAAG,mCAAsBD,SAAtB,CAAjB,CADoD,CAGpD;;AACA,YAAKC,QAAQ,IAAIR,aAAa,CAACS,GAAd,CAAmBD,QAAnB,CAAjB,EAAiD;AAChD,gBAAME,SAAS,GAAGV,aAAa,CAACK,GAAd,CAAmBG,QAAnB,CAAlB;AACA,gBAAMJ,UAAU,GAAGf,OAAO,CAACsB,SAAR,CAAmBH,QAAnB,CAAnB,CAFgD,CAIhD;AACA;;AACA,
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/use-sidebar-block-editor.js"],"names":["widgetsToBlocks","widgets","map","widget","useSidebarBlockEditor","sidebar","blocks","setBlocks","getWidgets","subscribe","prevWidgets","nextWidgets","prevBlocks","prevWidgetsMap","Map","id","prevBlocksMap","block","nextBlocks","nextWidget","prevWidget","get","onChangeBlocks","nextBlock","widgetId","has","prevBlock","getWidget","addedWidgetIds","setWidgets","reduce","updatedNextBlocks","index","addedWidgetId","slice"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport { getWidgetIdFromBlock, addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport { blockToWidget, widgetToBlock } from '../../utils';\n\nfunction widgetsToBlocks( widgets ) {\n\treturn widgets.map( ( widget ) => widgetToBlock( widget ) );\n}\n\nexport default function useSidebarBlockEditor( sidebar ) {\n\tconst [ blocks, setBlocks ] = useState( () =>\n\t\twidgetsToBlocks( sidebar.getWidgets() )\n\t);\n\n\tuseEffect( () => {\n\t\treturn sidebar.subscribe( ( prevWidgets, nextWidgets ) => {\n\t\t\tsetBlocks( ( prevBlocks ) => {\n\t\t\t\tconst prevWidgetsMap = new Map(\n\t\t\t\t\tprevWidgets.map( ( widget ) => [ widget.id, widget ] )\n\t\t\t\t);\n\t\t\t\tconst prevBlocksMap = new Map(\n\t\t\t\t\tprevBlocks.map( ( block ) => [\n\t\t\t\t\t\tgetWidgetIdFromBlock( block ),\n\t\t\t\t\t\tblock,\n\t\t\t\t\t] )\n\t\t\t\t);\n\n\t\t\t\tconst nextBlocks = nextWidgets.map( ( nextWidget ) => {\n\t\t\t\t\tconst prevWidget = prevWidgetsMap.get( nextWidget.id );\n\n\t\t\t\t\t// Bail out updates.\n\t\t\t\t\tif ( prevWidget && prevWidget === nextWidget ) {\n\t\t\t\t\t\treturn prevBlocksMap.get( nextWidget.id );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn widgetToBlock( nextWidget );\n\t\t\t\t} );\n\n\t\t\t\t// Bail out updates.\n\t\t\t\tif ( isShallowEqual( prevBlocks, nextBlocks ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\treturn nextBlocks;\n\t\t\t} );\n\t\t} );\n\t}, [ sidebar ] );\n\n\tconst onChangeBlocks = useCallback(\n\t\t( nextBlocks ) => {\n\t\t\tsetBlocks( ( prevBlocks ) => {\n\t\t\t\tif ( isShallowEqual( prevBlocks, nextBlocks ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\tconst prevBlocksMap = new Map(\n\t\t\t\t\tprevBlocks.map( ( block ) => [\n\t\t\t\t\t\tgetWidgetIdFromBlock( block ),\n\t\t\t\t\t\tblock,\n\t\t\t\t\t] )\n\t\t\t\t);\n\n\t\t\t\tconst nextWidgets = nextBlocks.map( ( nextBlock ) => {\n\t\t\t\t\tconst widgetId = getWidgetIdFromBlock( nextBlock );\n\n\t\t\t\t\t// Update existing widgets.\n\t\t\t\t\tif ( widgetId && prevBlocksMap.has( widgetId ) ) {\n\t\t\t\t\t\tconst prevBlock = prevBlocksMap.get( widgetId );\n\t\t\t\t\t\tconst prevWidget = sidebar.getWidget( widgetId );\n\n\t\t\t\t\t\t// Bail out updates by returning the previous widgets.\n\t\t\t\t\t\t// Deep equality is necessary until the block editor's internals changes.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tfastDeepEqual( nextBlock, prevBlock ) &&\n\t\t\t\t\t\t\tprevWidget\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn prevWidget;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn blockToWidget( nextBlock, prevWidget );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add a new widget.\n\t\t\t\t\treturn blockToWidget( nextBlock );\n\t\t\t\t} );\n\n\t\t\t\t// Bail out updates if the updated widgets are the same.\n\t\t\t\tif ( isShallowEqual( sidebar.getWidgets(), nextWidgets ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\tconst addedWidgetIds = sidebar.setWidgets( nextWidgets );\n\n\t\t\t\treturn nextBlocks.reduce(\n\t\t\t\t\t( updatedNextBlocks, nextBlock, index ) => {\n\t\t\t\t\t\tconst addedWidgetId = addedWidgetIds[ index ];\n\n\t\t\t\t\t\tif ( addedWidgetId !== null ) {\n\t\t\t\t\t\t\t// Only create a new instance if necessary to prevent\n\t\t\t\t\t\t\t// the whole editor from re-rendering on every edit.\n\t\t\t\t\t\t\tif ( updatedNextBlocks === nextBlocks ) {\n\t\t\t\t\t\t\t\tupdatedNextBlocks = nextBlocks.slice();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tupdatedNextBlocks[ index ] = addWidgetIdToBlock(\n\t\t\t\t\t\t\t\tnextBlock,\n\t\t\t\t\t\t\t\taddedWidgetId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn updatedNextBlocks;\n\t\t\t\t\t},\n\t\t\t\t\tnextBlocks\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t[ sidebar ]\n\t);\n\n\treturn [ blocks, onChangeBlocks, onChangeBlocks ];\n}\n"]}
|
package/build/utils.js
CHANGED
|
@@ -124,7 +124,9 @@ function widgetToBlock(_ref) {
|
|
|
124
124
|
} = instance;
|
|
125
125
|
|
|
126
126
|
if (idBase === 'block') {
|
|
127
|
-
|
|
127
|
+
var _raw$content;
|
|
128
|
+
|
|
129
|
+
const parsedBlocks = (0, _blocks.parse)((_raw$content = raw.content) !== null && _raw$content !== void 0 ? _raw$content : '', {
|
|
128
130
|
__unstableSkipAutop: true
|
|
129
131
|
});
|
|
130
132
|
block = parsedBlocks.length ? parsedBlocks[0] : (0, _blocks.createBlock)('core/paragraph', {});
|
package/build/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/utils.js"],"names":["settingIdToWidgetId","settingId","matches","match","idBase","number","parseInt","blockToWidget","block","existingWidget","widget","isValidLegacyWidgetBlock","name","attributes","id","instance","encoded","hash","raw","rest","is_widget_customizer_js_value","encoded_serialized_instance","instance_hash_key","raw_instance","content","widgetClass","form","rendered","restExistingWidget","widgetToBlock","parsedBlocks","__unstableSkipAutop","length"],"mappings":";;;;;;;;;AAIA;;AACA;;AALA;;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAT,CAA8BC,SAA9B,EAA0C;AAChD,QAAMC,OAAO,GAAGD,SAAS,CAACE,KAAV,CAAiB,4BAAjB,CAAhB;;AAEA,MAAKD,OAAL,EAAe;AACd,UAAME,MAAM,GAAGF,OAAO,CAAE,CAAF,CAAtB;AACA,UAAMG,MAAM,GAAGC,QAAQ,CAAEJ,OAAO,CAAE,CAAF,CAAT,EAAgB,EAAhB,CAAvB;AAEA,WAAQ,GAAGE,MAAQ,IAAIC,MAAQ,EAA/B;AACA;;AAED,SAAOJ,SAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASM,aAAT,CAAwBC,KAAxB,EAAuD;AAAA,MAAxBC,cAAwB,uEAAP,IAAO;AAC7D,MAAIC,MAAJ;AAEA,QAAMC,wBAAwB,GAC7BH,KAAK,CAACI,IAAN,KAAe,oBAAf,KACEJ,KAAK,CAACK,UAAN,CAAiBC,EAAjB,IAAuBN,KAAK,CAACK,UAAN,CAAiBE,QAD1C,CADD;;AAIA,MAAKJ,wBAAL,EAAgC;AAC/B,QAAKH,KAAK,CAACK,UAAN,CAAiBC,EAAtB,EAA2B;AAC1B;AACAJ,MAAAA,MAAM,GAAG;AACRI,QAAAA,EAAE,EAAEN,KAAK,CAACK,UAAN,CAAiBC;AADb,OAAT;AAGA,KALD,MAKO;AACN,YAAM;AAAEE,QAAAA,OAAF;AAAWC,QAAAA,IAAX;AAAiBC,QAAAA,GAAjB;AAAsB,WAAGC;AAAzB,UAAkCX,KAAK,CAACK,UAAN,CAAiBE,QAAzD,CADM,CAGN;;AACAL,MAAAA,MAAM,GAAG;AACRN,QAAAA,MAAM,EAAEI,KAAK,CAACK,UAAN,CAAiBT,MADjB;AAERW,QAAAA,QAAQ,EAAE,EACT,IAAGN,cAAH,aAAGA,cAAH,uBAAGA,cAAc,CAAEM,QAAnB,CADS;AAET;AACAK,UAAAA,6BAA6B,EAAE,IAHtB;AAITC,UAAAA,2BAA2B,EAAEL,OAJpB;AAKTM,UAAAA,iBAAiB,EAAEL,IALV;AAMTM,UAAAA,YAAY,EAAEL,GANL;AAOT,aAAGC;AAPM;AAFF,OAAT;AAYA;AACD,GAvBD,MAuBO;AACN,UAAMJ,QAAQ,GAAG;AAChBS,MAAAA,OAAO,EAAE,uBAAWhB,KAAX;AADO,KAAjB;AAGAE,IAAAA,MAAM,GAAG;AACRN,MAAAA,MAAM,EAAE,OADA;AAERqB,MAAAA,WAAW,EAAE,iBAFL;AAGRV,MAAAA,QAAQ,EAAE;AACTQ,QAAAA,YAAY,EAAER;AADL;AAHF,KAAT;AAOA;;AAED,QAAM;AAAEW,IAAAA,IAAF;AAAQC,IAAAA,QAAR;AAAkB,OAAGC;AAArB,MAA4CnB,cAAc,IAAI,EAApE;AAEA,SAAO,EACN,GAAGmB,kBADG;AAEN,OAAGlB;AAFG,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASmB,aAAT,OAA2D;AAAA,MAAnC;AAAEf,IAAAA,EAAF;AAAMV,IAAAA,MAAN;AAAcC,IAAAA,MAAd;AAAsBU,IAAAA;AAAtB,GAAmC;AACjE,MAAIP,KAAJ;AAEA,QAAM;AACLa,IAAAA,2BAA2B,EAAEL,OADxB;AAELM,IAAAA,iBAAiB,EAAEL,IAFd;AAGLM,IAAAA,YAAY,EAAEL,GAHT;AAIL,OAAGC;AAJE,MAKFJ,QALJ;;AAOA,MAAKX,MAAM,KAAK,OAAhB,EAA0B;AACzB,UAAM0B,YAAY,GAAG,
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/utils.js"],"names":["settingIdToWidgetId","settingId","matches","match","idBase","number","parseInt","blockToWidget","block","existingWidget","widget","isValidLegacyWidgetBlock","name","attributes","id","instance","encoded","hash","raw","rest","is_widget_customizer_js_value","encoded_serialized_instance","instance_hash_key","raw_instance","content","widgetClass","form","rendered","restExistingWidget","widgetToBlock","parsedBlocks","__unstableSkipAutop","length"],"mappings":"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","sourcesContent":["// @ts-check\n/**\n * WordPress dependencies\n */\nimport { serialize, parse, createBlock } from '@wordpress/blocks';\nimport { addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Convert settingId to widgetId.\n *\n * @param {string} settingId The setting id.\n * @return {string} The widget id.\n */\nexport function settingIdToWidgetId( settingId ) {\n\tconst matches = settingId.match( /^widget_(.+)(?:\\[(\\d+)\\])$/ );\n\n\tif ( matches ) {\n\t\tconst idBase = matches[ 1 ];\n\t\tconst number = parseInt( matches[ 2 ], 10 );\n\n\t\treturn `${ idBase }-${ number }`;\n\t}\n\n\treturn settingId;\n}\n\n/**\n * Transform a block to a customizable widget.\n *\n * @param {WPBlock} block The block to be transformed from.\n * @param {Object} existingWidget The widget to be extended from.\n * @return {Object} The transformed widget.\n */\nexport function blockToWidget( block, existingWidget = null ) {\n\tlet widget;\n\n\tconst isValidLegacyWidgetBlock =\n\t\tblock.name === 'core/legacy-widget' &&\n\t\t( block.attributes.id || block.attributes.instance );\n\n\tif ( isValidLegacyWidgetBlock ) {\n\t\tif ( block.attributes.id ) {\n\t\t\t// Widget that does not extend WP_Widget.\n\t\t\twidget = {\n\t\t\t\tid: block.attributes.id,\n\t\t\t};\n\t\t} else {\n\t\t\tconst { encoded, hash, raw, ...rest } = block.attributes.instance;\n\n\t\t\t// Widget that extends WP_Widget.\n\t\t\twidget = {\n\t\t\t\tidBase: block.attributes.idBase,\n\t\t\t\tinstance: {\n\t\t\t\t\t...existingWidget?.instance,\n\t\t\t\t\t// Required only for the customizer.\n\t\t\t\t\tis_widget_customizer_js_value: true,\n\t\t\t\t\tencoded_serialized_instance: encoded,\n\t\t\t\t\tinstance_hash_key: hash,\n\t\t\t\t\traw_instance: raw,\n\t\t\t\t\t...rest,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t} else {\n\t\tconst instance = {\n\t\t\tcontent: serialize( block ),\n\t\t};\n\t\twidget = {\n\t\t\tidBase: 'block',\n\t\t\twidgetClass: 'WP_Widget_Block',\n\t\t\tinstance: {\n\t\t\t\traw_instance: instance,\n\t\t\t},\n\t\t};\n\t}\n\n\tconst { form, rendered, ...restExistingWidget } = existingWidget || {};\n\n\treturn {\n\t\t...restExistingWidget,\n\t\t...widget,\n\t};\n}\n\n/**\n * Transform a widget to a block.\n *\n * @param {Object} widget The widget to be transformed from.\n * @param {string} widget.id The widget id.\n * @param {string} widget.idBase The id base of the widget.\n * @param {number} widget.number The number/index of the widget.\n * @param {Object} widget.instance The instance of the widget.\n * @return {WPBlock} The transformed block.\n */\nexport function widgetToBlock( { id, idBase, number, instance } ) {\n\tlet block;\n\n\tconst {\n\t\tencoded_serialized_instance: encoded,\n\t\tinstance_hash_key: hash,\n\t\traw_instance: raw,\n\t\t...rest\n\t} = instance;\n\n\tif ( idBase === 'block' ) {\n\t\tconst parsedBlocks = parse( raw.content ?? '', {\n\t\t\t__unstableSkipAutop: true,\n\t\t} );\n\t\tblock = parsedBlocks.length\n\t\t\t? parsedBlocks[ 0 ]\n\t\t\t: createBlock( 'core/paragraph', {} );\n\t} else if ( number ) {\n\t\t// Widget that extends WP_Widget.\n\t\tblock = createBlock( 'core/legacy-widget', {\n\t\t\tidBase,\n\t\t\tinstance: {\n\t\t\t\tencoded,\n\t\t\t\thash,\n\t\t\t\traw,\n\t\t\t\t...rest,\n\t\t\t},\n\t\t} );\n\t} else {\n\t\t// Widget that does not extend WP_Widget.\n\t\tblock = createBlock( 'core/legacy-widget', {\n\t\t\tid,\n\t\t} );\n\t}\n\n\treturn addWidgetIdToBlock( block, id );\n}\n"]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { useEffect } from '@wordpress/element';
|
|
5
5
|
import { useShortcut, store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
6
|
+
import { isAppleOS } from '@wordpress/keycodes';
|
|
6
7
|
import { useDispatch } from '@wordpress/data';
|
|
7
8
|
import { __ } from '@wordpress/i18n';
|
|
8
9
|
|
|
@@ -49,7 +50,15 @@ function KeyboardShortcutsRegister() {
|
|
|
49
50
|
keyCombination: {
|
|
50
51
|
modifier: 'primaryShift',
|
|
51
52
|
character: 'z'
|
|
52
|
-
}
|
|
53
|
+
},
|
|
54
|
+
// Disable on Apple OS because it conflicts with the browser's
|
|
55
|
+
// history shortcut. It's a fine alias for both Windows and Linux.
|
|
56
|
+
// Since there's no conflict for Ctrl+Shift+Z on both Windows and
|
|
57
|
+
// Linux, we keep it as the default for consistency.
|
|
58
|
+
aliases: isAppleOS() ? [] : [{
|
|
59
|
+
modifier: 'primary',
|
|
60
|
+
character: 'y'
|
|
61
|
+
}]
|
|
53
62
|
});
|
|
54
63
|
registerShortcut({
|
|
55
64
|
name: 'core/customize-widgets/save',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/components/keyboard-shortcuts/index.js"],"names":["useEffect","useShortcut","store","keyboardShortcutsStore","useDispatch","__","KeyboardShortcuts","undo","redo","save","event","preventDefault","KeyboardShortcutsRegister","registerShortcut","unregisterShortcut","name","category","description","keyCombination","modifier","character","Register"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,oBAA1B;AACA,SACCC,WADD,EAECC,KAAK,IAAIC,sBAFV,QAGO,+BAHP;AAIA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,EAAT,QAAmB,iBAAnB;;AAEA,SAASC,iBAAT,OAAmD;AAAA,MAAvB;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA;AAAd,GAAuB;
|
|
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,QAA4B,iBAA5B;AACA,SAASC,EAAT,QAAmB,iBAAnB;;AAEA,SAASC,iBAAT,OAAmD;AAAA,MAAvB;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA;AAAd,GAAuB;AAClDT,EAAAA,WAAW,CAAE,6BAAF,EAAmCU,KAAF,IAAa;AACxDH,IAAAA,IAAI;AACJG,IAAAA,KAAK,CAACC,cAAN;AACA,GAHU,CAAX;AAKAX,EAAAA,WAAW,CAAE,6BAAF,EAAmCU,KAAF,IAAa;AACxDF,IAAAA,IAAI;AACJE,IAAAA,KAAK,CAACC,cAAN;AACA,GAHU,CAAX;AAKAX,EAAAA,WAAW,CAAE,6BAAF,EAAmCU,KAAF,IAAa;AACxDA,IAAAA,KAAK,CAACC,cAAN;AACAF,IAAAA,IAAI;AACJ,GAHU,CAAX;AAKA,SAAO,IAAP;AACA;;AAED,SAASG,yBAAT,GAAqC;AACpC,QAAM;AAAEC,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MAA2CV,WAAW,CAC3DF,sBAD2D,CAA5D;AAIAH,EAAAA,SAAS,CAAE,MAAM;AAChBc,IAAAA,gBAAgB,CAAE;AACjBE,MAAAA,IAAI,EAAE,6BADW;AAEjBC,MAAAA,QAAQ,EAAE,QAFO;AAGjBC,MAAAA,WAAW,EAAEZ,EAAE,CAAE,yBAAF,CAHE;AAIjBa,MAAAA,cAAc,EAAE;AACfC,QAAAA,QAAQ,EAAE,SADK;AAEfC,QAAAA,SAAS,EAAE;AAFI;AAJC,KAAF,CAAhB;AAUAP,IAAAA,gBAAgB,CAAE;AACjBE,MAAAA,IAAI,EAAE,6BADW;AAEjBC,MAAAA,QAAQ,EAAE,QAFO;AAGjBC,MAAAA,WAAW,EAAEZ,EAAE,CAAE,sBAAF,CAHE;AAIjBa,MAAAA,cAAc,EAAE;AACfC,QAAAA,QAAQ,EAAE,cADK;AAEfC,QAAAA,SAAS,EAAE;AAFI,OAJC;AAQjB;AACA;AACA;AACA;AACAC,MAAAA,OAAO,EAAElB,SAAS,KACf,EADe,GAEf,CACA;AACCgB,QAAAA,QAAQ,EAAE,SADX;AAECC,QAAAA,SAAS,EAAE;AAFZ,OADA;AAdc,KAAF,CAAhB;AAsBAP,IAAAA,gBAAgB,CAAE;AACjBE,MAAAA,IAAI,EAAE,6BADW;AAEjBC,MAAAA,QAAQ,EAAE,QAFO;AAGjBC,MAAAA,WAAW,EAAEZ,EAAE,CAAE,oBAAF,CAHE;AAIjBa,MAAAA,cAAc,EAAE;AACfC,QAAAA,QAAQ,EAAE,SADK;AAEfC,QAAAA,SAAS,EAAE;AAFI;AAJC,KAAF,CAAhB;AAUA,WAAO,MAAM;AACZN,MAAAA,kBAAkB,CAAE,6BAAF,CAAlB;AACAA,MAAAA,kBAAkB,CAAE,6BAAF,CAAlB;AACAA,MAAAA,kBAAkB,CAAE,6BAAF,CAAlB;AACA,KAJD;AAKA,GAhDQ,EAgDN,CAAED,gBAAF,CAhDM,CAAT;AAkDA,SAAO,IAAP;AACA;;AAEDP,iBAAiB,CAACgB,QAAlB,GAA6BV,yBAA7B;AACA,eAAeN,iBAAf","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 } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\nfunction KeyboardShortcuts( { undo, redo, save } ) {\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\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\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"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import fastDeepEqual from 'fast-deep-equal/es6';
|
|
5
5
|
/**
|
|
6
6
|
* WordPress dependencies
|
|
7
7
|
*/
|
|
@@ -59,7 +59,7 @@ export default function useSidebarBlockEditor(sidebar) {
|
|
|
59
59
|
const prevWidget = sidebar.getWidget(widgetId); // Bail out updates by returning the previous widgets.
|
|
60
60
|
// Deep equality is necessary until the block editor's internals changes.
|
|
61
61
|
|
|
62
|
-
if (
|
|
62
|
+
if (fastDeepEqual(nextBlock, prevBlock) && prevWidget) {
|
|
63
63
|
return prevWidget;
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/use-sidebar-block-editor.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/use-sidebar-block-editor.js"],"names":["fastDeepEqual","useState","useEffect","useCallback","isShallowEqual","getWidgetIdFromBlock","addWidgetIdToBlock","blockToWidget","widgetToBlock","widgetsToBlocks","widgets","map","widget","useSidebarBlockEditor","sidebar","blocks","setBlocks","getWidgets","subscribe","prevWidgets","nextWidgets","prevBlocks","prevWidgetsMap","Map","id","prevBlocksMap","block","nextBlocks","nextWidget","prevWidget","get","onChangeBlocks","nextBlock","widgetId","has","prevBlock","getWidget","addedWidgetIds","setWidgets","reduce","updatedNextBlocks","index","addedWidgetId","slice"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport { getWidgetIdFromBlock, addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport { blockToWidget, widgetToBlock } from '../../utils';\n\nfunction widgetsToBlocks( widgets ) {\n\treturn widgets.map( ( widget ) => widgetToBlock( widget ) );\n}\n\nexport default function useSidebarBlockEditor( sidebar ) {\n\tconst [ blocks, setBlocks ] = useState( () =>\n\t\twidgetsToBlocks( sidebar.getWidgets() )\n\t);\n\n\tuseEffect( () => {\n\t\treturn sidebar.subscribe( ( prevWidgets, nextWidgets ) => {\n\t\t\tsetBlocks( ( prevBlocks ) => {\n\t\t\t\tconst prevWidgetsMap = new Map(\n\t\t\t\t\tprevWidgets.map( ( widget ) => [ widget.id, widget ] )\n\t\t\t\t);\n\t\t\t\tconst prevBlocksMap = new Map(\n\t\t\t\t\tprevBlocks.map( ( block ) => [\n\t\t\t\t\t\tgetWidgetIdFromBlock( block ),\n\t\t\t\t\t\tblock,\n\t\t\t\t\t] )\n\t\t\t\t);\n\n\t\t\t\tconst nextBlocks = nextWidgets.map( ( nextWidget ) => {\n\t\t\t\t\tconst prevWidget = prevWidgetsMap.get( nextWidget.id );\n\n\t\t\t\t\t// Bail out updates.\n\t\t\t\t\tif ( prevWidget && prevWidget === nextWidget ) {\n\t\t\t\t\t\treturn prevBlocksMap.get( nextWidget.id );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn widgetToBlock( nextWidget );\n\t\t\t\t} );\n\n\t\t\t\t// Bail out updates.\n\t\t\t\tif ( isShallowEqual( prevBlocks, nextBlocks ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\treturn nextBlocks;\n\t\t\t} );\n\t\t} );\n\t}, [ sidebar ] );\n\n\tconst onChangeBlocks = useCallback(\n\t\t( nextBlocks ) => {\n\t\t\tsetBlocks( ( prevBlocks ) => {\n\t\t\t\tif ( isShallowEqual( prevBlocks, nextBlocks ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\tconst prevBlocksMap = new Map(\n\t\t\t\t\tprevBlocks.map( ( block ) => [\n\t\t\t\t\t\tgetWidgetIdFromBlock( block ),\n\t\t\t\t\t\tblock,\n\t\t\t\t\t] )\n\t\t\t\t);\n\n\t\t\t\tconst nextWidgets = nextBlocks.map( ( nextBlock ) => {\n\t\t\t\t\tconst widgetId = getWidgetIdFromBlock( nextBlock );\n\n\t\t\t\t\t// Update existing widgets.\n\t\t\t\t\tif ( widgetId && prevBlocksMap.has( widgetId ) ) {\n\t\t\t\t\t\tconst prevBlock = prevBlocksMap.get( widgetId );\n\t\t\t\t\t\tconst prevWidget = sidebar.getWidget( widgetId );\n\n\t\t\t\t\t\t// Bail out updates by returning the previous widgets.\n\t\t\t\t\t\t// Deep equality is necessary until the block editor's internals changes.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tfastDeepEqual( nextBlock, prevBlock ) &&\n\t\t\t\t\t\t\tprevWidget\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn prevWidget;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn blockToWidget( nextBlock, prevWidget );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add a new widget.\n\t\t\t\t\treturn blockToWidget( nextBlock );\n\t\t\t\t} );\n\n\t\t\t\t// Bail out updates if the updated widgets are the same.\n\t\t\t\tif ( isShallowEqual( sidebar.getWidgets(), nextWidgets ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\tconst addedWidgetIds = sidebar.setWidgets( nextWidgets );\n\n\t\t\t\treturn nextBlocks.reduce(\n\t\t\t\t\t( updatedNextBlocks, nextBlock, index ) => {\n\t\t\t\t\t\tconst addedWidgetId = addedWidgetIds[ index ];\n\n\t\t\t\t\t\tif ( addedWidgetId !== null ) {\n\t\t\t\t\t\t\t// Only create a new instance if necessary to prevent\n\t\t\t\t\t\t\t// the whole editor from re-rendering on every edit.\n\t\t\t\t\t\t\tif ( updatedNextBlocks === nextBlocks ) {\n\t\t\t\t\t\t\t\tupdatedNextBlocks = nextBlocks.slice();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tupdatedNextBlocks[ index ] = addWidgetIdToBlock(\n\t\t\t\t\t\t\t\tnextBlock,\n\t\t\t\t\t\t\t\taddedWidgetId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn updatedNextBlocks;\n\t\t\t\t\t},\n\t\t\t\t\tnextBlocks\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t[ sidebar ]\n\t);\n\n\treturn [ blocks, onChangeBlocks, onChangeBlocks ];\n}\n"]}
|
package/build-module/utils.js
CHANGED
|
@@ -111,7 +111,9 @@ export function widgetToBlock(_ref) {
|
|
|
111
111
|
} = instance;
|
|
112
112
|
|
|
113
113
|
if (idBase === 'block') {
|
|
114
|
-
|
|
114
|
+
var _raw$content;
|
|
115
|
+
|
|
116
|
+
const parsedBlocks = parse((_raw$content = raw.content) !== null && _raw$content !== void 0 ? _raw$content : '', {
|
|
115
117
|
__unstableSkipAutop: true
|
|
116
118
|
});
|
|
117
119
|
block = parsedBlocks.length ? parsedBlocks[0] : createBlock('core/paragraph', {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/customize-widgets/src/utils.js"],"names":["serialize","parse","createBlock","addWidgetIdToBlock","settingIdToWidgetId","settingId","matches","match","idBase","number","parseInt","blockToWidget","block","existingWidget","widget","isValidLegacyWidgetBlock","name","attributes","id","instance","encoded","hash","raw","rest","is_widget_customizer_js_value","encoded_serialized_instance","instance_hash_key","raw_instance","content","widgetClass","form","rendered","restExistingWidget","widgetToBlock","parsedBlocks","__unstableSkipAutop","length"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["@wordpress/customize-widgets/src/utils.js"],"names":["serialize","parse","createBlock","addWidgetIdToBlock","settingIdToWidgetId","settingId","matches","match","idBase","number","parseInt","blockToWidget","block","existingWidget","widget","isValidLegacyWidgetBlock","name","attributes","id","instance","encoded","hash","raw","rest","is_widget_customizer_js_value","encoded_serialized_instance","instance_hash_key","raw_instance","content","widgetClass","form","rendered","restExistingWidget","widgetToBlock","parsedBlocks","__unstableSkipAutop","length"],"mappings":"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","sourcesContent":["// @ts-check\n/**\n * WordPress dependencies\n */\nimport { serialize, parse, createBlock } from '@wordpress/blocks';\nimport { addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Convert settingId to widgetId.\n *\n * @param {string} settingId The setting id.\n * @return {string} The widget id.\n */\nexport function settingIdToWidgetId( settingId ) {\n\tconst matches = settingId.match( /^widget_(.+)(?:\\[(\\d+)\\])$/ );\n\n\tif ( matches ) {\n\t\tconst idBase = matches[ 1 ];\n\t\tconst number = parseInt( matches[ 2 ], 10 );\n\n\t\treturn `${ idBase }-${ number }`;\n\t}\n\n\treturn settingId;\n}\n\n/**\n * Transform a block to a customizable widget.\n *\n * @param {WPBlock} block The block to be transformed from.\n * @param {Object} existingWidget The widget to be extended from.\n * @return {Object} The transformed widget.\n */\nexport function blockToWidget( block, existingWidget = null ) {\n\tlet widget;\n\n\tconst isValidLegacyWidgetBlock =\n\t\tblock.name === 'core/legacy-widget' &&\n\t\t( block.attributes.id || block.attributes.instance );\n\n\tif ( isValidLegacyWidgetBlock ) {\n\t\tif ( block.attributes.id ) {\n\t\t\t// Widget that does not extend WP_Widget.\n\t\t\twidget = {\n\t\t\t\tid: block.attributes.id,\n\t\t\t};\n\t\t} else {\n\t\t\tconst { encoded, hash, raw, ...rest } = block.attributes.instance;\n\n\t\t\t// Widget that extends WP_Widget.\n\t\t\twidget = {\n\t\t\t\tidBase: block.attributes.idBase,\n\t\t\t\tinstance: {\n\t\t\t\t\t...existingWidget?.instance,\n\t\t\t\t\t// Required only for the customizer.\n\t\t\t\t\tis_widget_customizer_js_value: true,\n\t\t\t\t\tencoded_serialized_instance: encoded,\n\t\t\t\t\tinstance_hash_key: hash,\n\t\t\t\t\traw_instance: raw,\n\t\t\t\t\t...rest,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t} else {\n\t\tconst instance = {\n\t\t\tcontent: serialize( block ),\n\t\t};\n\t\twidget = {\n\t\t\tidBase: 'block',\n\t\t\twidgetClass: 'WP_Widget_Block',\n\t\t\tinstance: {\n\t\t\t\traw_instance: instance,\n\t\t\t},\n\t\t};\n\t}\n\n\tconst { form, rendered, ...restExistingWidget } = existingWidget || {};\n\n\treturn {\n\t\t...restExistingWidget,\n\t\t...widget,\n\t};\n}\n\n/**\n * Transform a widget to a block.\n *\n * @param {Object} widget The widget to be transformed from.\n * @param {string} widget.id The widget id.\n * @param {string} widget.idBase The id base of the widget.\n * @param {number} widget.number The number/index of the widget.\n * @param {Object} widget.instance The instance of the widget.\n * @return {WPBlock} The transformed block.\n */\nexport function widgetToBlock( { id, idBase, number, instance } ) {\n\tlet block;\n\n\tconst {\n\t\tencoded_serialized_instance: encoded,\n\t\tinstance_hash_key: hash,\n\t\traw_instance: raw,\n\t\t...rest\n\t} = instance;\n\n\tif ( idBase === 'block' ) {\n\t\tconst parsedBlocks = parse( raw.content ?? '', {\n\t\t\t__unstableSkipAutop: true,\n\t\t} );\n\t\tblock = parsedBlocks.length\n\t\t\t? parsedBlocks[ 0 ]\n\t\t\t: createBlock( 'core/paragraph', {} );\n\t} else if ( number ) {\n\t\t// Widget that extends WP_Widget.\n\t\tblock = createBlock( 'core/legacy-widget', {\n\t\t\tidBase,\n\t\t\tinstance: {\n\t\t\t\tencoded,\n\t\t\t\thash,\n\t\t\t\traw,\n\t\t\t\t...rest,\n\t\t\t},\n\t\t} );\n\t} else {\n\t\t// Widget that does not extend WP_Widget.\n\t\tblock = createBlock( 'core/legacy-widget', {\n\t\t\tid,\n\t\t} );\n\t}\n\n\treturn addWidgetIdToBlock( block, id );\n}\n"]}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a hex value into the rgb equivalent.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} hex - the hexadecimal value to convert
|
|
5
|
+
* @return {string} comma separated rgb values
|
|
6
|
+
*/
|
|
1
7
|
/**
|
|
2
8
|
* Colors
|
|
3
9
|
*/
|
|
@@ -11,6 +17,12 @@
|
|
|
11
17
|
* Don't add to this sheet unless you're pretty sure the value will be reused in many places.
|
|
12
18
|
* For example, don't add rules to this sheet that affect block visuals. It's purely for UI.
|
|
13
19
|
*/
|
|
20
|
+
/**
|
|
21
|
+
* Converts a hex value into the rgb equivalent.
|
|
22
|
+
*
|
|
23
|
+
* @param {string} hex - the hexadecimal value to convert
|
|
24
|
+
* @return {string} comma separated rgb values
|
|
25
|
+
*/
|
|
14
26
|
/**
|
|
15
27
|
* Colors
|
|
16
28
|
*/
|
|
@@ -46,15 +58,15 @@
|
|
|
46
58
|
* @param {string} hex - the hexadecimal value to convert
|
|
47
59
|
* @return {string} comma separated rgb values
|
|
48
60
|
*/
|
|
49
|
-
/**
|
|
50
|
-
* Breakpoint mixins
|
|
51
|
-
*/
|
|
52
61
|
/**
|
|
53
62
|
* Long content fade mixin
|
|
54
63
|
*
|
|
55
64
|
* Creates a fading overlay to signify that the content is longer
|
|
56
65
|
* than the space allows.
|
|
57
66
|
*/
|
|
67
|
+
/**
|
|
68
|
+
* Breakpoint mixins
|
|
69
|
+
*/
|
|
58
70
|
/**
|
|
59
71
|
* Focus styles.
|
|
60
72
|
*/
|
|
@@ -82,6 +94,8 @@
|
|
|
82
94
|
--wp-admin-theme-color-darker-20: #005a87;
|
|
83
95
|
--wp-admin-theme-color-darker-20--rgb: 0, 90, 135;
|
|
84
96
|
--wp-admin-border-width-focus: 2px;
|
|
97
|
+
--wp-block-synced-color: #7a00df;
|
|
98
|
+
--wp-block-synced-color--rgb: 122, 0, 223;
|
|
85
99
|
}
|
|
86
100
|
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
|
|
87
101
|
:root {
|
package/build-style/style.css
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a hex value into the rgb equivalent.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} hex - the hexadecimal value to convert
|
|
5
|
+
* @return {string} comma separated rgb values
|
|
6
|
+
*/
|
|
1
7
|
/**
|
|
2
8
|
* Colors
|
|
3
9
|
*/
|
|
@@ -11,6 +17,12 @@
|
|
|
11
17
|
* Don't add to this sheet unless you're pretty sure the value will be reused in many places.
|
|
12
18
|
* For example, don't add rules to this sheet that affect block visuals. It's purely for UI.
|
|
13
19
|
*/
|
|
20
|
+
/**
|
|
21
|
+
* Converts a hex value into the rgb equivalent.
|
|
22
|
+
*
|
|
23
|
+
* @param {string} hex - the hexadecimal value to convert
|
|
24
|
+
* @return {string} comma separated rgb values
|
|
25
|
+
*/
|
|
14
26
|
/**
|
|
15
27
|
* Colors
|
|
16
28
|
*/
|
|
@@ -46,15 +58,15 @@
|
|
|
46
58
|
* @param {string} hex - the hexadecimal value to convert
|
|
47
59
|
* @return {string} comma separated rgb values
|
|
48
60
|
*/
|
|
49
|
-
/**
|
|
50
|
-
* Breakpoint mixins
|
|
51
|
-
*/
|
|
52
61
|
/**
|
|
53
62
|
* Long content fade mixin
|
|
54
63
|
*
|
|
55
64
|
* Creates a fading overlay to signify that the content is longer
|
|
56
65
|
* than the space allows.
|
|
57
66
|
*/
|
|
67
|
+
/**
|
|
68
|
+
* Breakpoint mixins
|
|
69
|
+
*/
|
|
58
70
|
/**
|
|
59
71
|
* Focus styles.
|
|
60
72
|
*/
|
|
@@ -82,6 +94,8 @@
|
|
|
82
94
|
--wp-admin-theme-color-darker-20: #005a87;
|
|
83
95
|
--wp-admin-theme-color-darker-20--rgb: 0, 90, 135;
|
|
84
96
|
--wp-admin-border-width-focus: 2px;
|
|
97
|
+
--wp-block-synced-color: #7a00df;
|
|
98
|
+
--wp-block-synced-color--rgb: 122, 0, 223;
|
|
85
99
|
}
|
|
86
100
|
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
|
|
87
101
|
:root {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/customize-widgets",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.1.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,34 +24,34 @@
|
|
|
24
24
|
"react-native": "src/index",
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@babel/runtime": "^7.16.0",
|
|
27
|
-
"@wordpress/block-editor": "^
|
|
28
|
-
"@wordpress/block-library": "^
|
|
29
|
-
"@wordpress/blocks": "^
|
|
30
|
-
"@wordpress/components": "^
|
|
31
|
-
"@wordpress/compose": "^
|
|
32
|
-
"@wordpress/core-data": "^
|
|
33
|
-
"@wordpress/data": "^
|
|
34
|
-
"@wordpress/dom": "^3.
|
|
35
|
-
"@wordpress/element": "^
|
|
36
|
-
"@wordpress/hooks": "^3.
|
|
37
|
-
"@wordpress/i18n": "^4.
|
|
38
|
-
"@wordpress/icons": "^9.
|
|
39
|
-
"@wordpress/interface": "^
|
|
40
|
-
"@wordpress/is-shallow-equal": "^4.
|
|
41
|
-
"@wordpress/keyboard-shortcuts": "^
|
|
42
|
-
"@wordpress/keycodes": "^3.
|
|
43
|
-
"@wordpress/media-utils": "^4.
|
|
44
|
-
"@wordpress/preferences": "^
|
|
45
|
-
"@wordpress/widgets": "^
|
|
27
|
+
"@wordpress/block-editor": "^11.1.0",
|
|
28
|
+
"@wordpress/block-library": "^8.1.0",
|
|
29
|
+
"@wordpress/blocks": "^12.1.0",
|
|
30
|
+
"@wordpress/components": "^23.1.0",
|
|
31
|
+
"@wordpress/compose": "^6.1.0",
|
|
32
|
+
"@wordpress/core-data": "^6.1.0",
|
|
33
|
+
"@wordpress/data": "^8.1.0",
|
|
34
|
+
"@wordpress/dom": "^3.24.0",
|
|
35
|
+
"@wordpress/element": "^5.1.0",
|
|
36
|
+
"@wordpress/hooks": "^3.24.0",
|
|
37
|
+
"@wordpress/i18n": "^4.24.0",
|
|
38
|
+
"@wordpress/icons": "^9.15.0",
|
|
39
|
+
"@wordpress/interface": "^5.1.0",
|
|
40
|
+
"@wordpress/is-shallow-equal": "^4.24.0",
|
|
41
|
+
"@wordpress/keyboard-shortcuts": "^4.1.0",
|
|
42
|
+
"@wordpress/keycodes": "^3.24.0",
|
|
43
|
+
"@wordpress/media-utils": "^4.15.0",
|
|
44
|
+
"@wordpress/preferences": "^3.1.0",
|
|
45
|
+
"@wordpress/widgets": "^3.1.0",
|
|
46
46
|
"classnames": "^2.3.1",
|
|
47
|
-
"
|
|
47
|
+
"fast-deep-equal": "^3.1.3"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"react": "^
|
|
51
|
-
"react-dom": "^
|
|
50
|
+
"react": "^18.0.0",
|
|
51
|
+
"react-dom": "^18.0.0"
|
|
52
52
|
},
|
|
53
53
|
"publishConfig": {
|
|
54
54
|
"access": "public"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "200bee7b06b15f6fa655e25b6ab69cbd6b49a357"
|
|
57
57
|
}
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
useShortcut,
|
|
7
7
|
store as keyboardShortcutsStore,
|
|
8
8
|
} from '@wordpress/keyboard-shortcuts';
|
|
9
|
+
import { isAppleOS } from '@wordpress/keycodes';
|
|
9
10
|
import { useDispatch } from '@wordpress/data';
|
|
10
11
|
import { __ } from '@wordpress/i18n';
|
|
11
12
|
|
|
@@ -52,6 +53,18 @@ function KeyboardShortcutsRegister() {
|
|
|
52
53
|
modifier: 'primaryShift',
|
|
53
54
|
character: 'z',
|
|
54
55
|
},
|
|
56
|
+
// Disable on Apple OS because it conflicts with the browser's
|
|
57
|
+
// history shortcut. It's a fine alias for both Windows and Linux.
|
|
58
|
+
// Since there's no conflict for Ctrl+Shift+Z on both Windows and
|
|
59
|
+
// Linux, we keep it as the default for consistency.
|
|
60
|
+
aliases: isAppleOS()
|
|
61
|
+
? []
|
|
62
|
+
: [
|
|
63
|
+
{
|
|
64
|
+
modifier: 'primary',
|
|
65
|
+
character: 'y',
|
|
66
|
+
},
|
|
67
|
+
],
|
|
55
68
|
} );
|
|
56
69
|
|
|
57
70
|
registerShortcut( {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import fastDeepEqual from 'fast-deep-equal/es6';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -82,7 +82,10 @@ export default function useSidebarBlockEditor( sidebar ) {
|
|
|
82
82
|
|
|
83
83
|
// Bail out updates by returning the previous widgets.
|
|
84
84
|
// Deep equality is necessary until the block editor's internals changes.
|
|
85
|
-
if (
|
|
85
|
+
if (
|
|
86
|
+
fastDeepEqual( nextBlock, prevBlock ) &&
|
|
87
|
+
prevWidget
|
|
88
|
+
) {
|
|
86
89
|
return prevWidget;
|
|
87
90
|
}
|
|
88
91
|
|
package/src/utils.js
CHANGED
|
@@ -103,7 +103,7 @@ export function widgetToBlock( { id, idBase, number, instance } ) {
|
|
|
103
103
|
} = instance;
|
|
104
104
|
|
|
105
105
|
if ( idBase === 'block' ) {
|
|
106
|
-
const parsedBlocks = parse( raw.content, {
|
|
106
|
+
const parsedBlocks = parse( raw.content ?? '', {
|
|
107
107
|
__unstableSkipAutop: true,
|
|
108
108
|
} );
|
|
109
109
|
block = parsedBlocks.length
|