@wordpress/block-editor 7.0.3 → 7.0.4
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/build/components/block-actions/index.js +6 -5
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js +17 -4
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-inspector/index.js +1 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-html.js +5 -0
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block.native.js +2 -2
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list-appender/index.js +9 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +10 -3
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/block-styles-menu.js +1 -1
- package/build/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build/components/block-tools/index.js +4 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +96 -7
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/utils.js +17 -8
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/colors-gradients/control.js +17 -13
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/copy-handler/index.js +3 -3
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +2 -2
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +3 -5
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/index.js +0 -18
- package/build/components/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +11 -1
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-clipboard-block.native.js +5 -4
- package/build/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build/components/inserter/preview-panel.js +1 -1
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inspector-controls/block-support-slot-container.js +28 -0
- package/build/components/inspector-controls/block-support-slot-container.js.map +1 -0
- package/build/components/inspector-controls/block-support-tools-panel.js +7 -4
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.js +16 -1
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/slot.js +5 -2
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/list-view/block-contents.js +1 -20
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block.js +5 -36
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/list-item.js +3 -2
- package/build/components/list-view/list-item.js.map +1 -1
- package/build/components/media-placeholder/index.js +26 -17
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +3 -2
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +30 -1
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/rich-text/embed-handler-picker.native.js +65 -0
- package/build/components/rich-text/embed-handler-picker.native.js.map +1 -0
- package/build/components/rich-text/index.js +5 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +41 -2
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +28 -9
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/rich-text/utils.js +22 -0
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/hooks/align.js +10 -7
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +1 -1
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/font-family.js +93 -23
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/style.js +6 -3
- package/build/hooks/style.js.map +1 -1
- package/build/layouts/flow.js +4 -1
- package/build/layouts/flow.js.map +1 -1
- package/build/store/reducer.js +11 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +1 -3
- package/build/store/selectors.js.map +1 -1
- package/build/utils/transform-styles/transforms/wrap.js +16 -0
- package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-module/components/block-actions/index.js +6 -5
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +17 -4
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-inspector/index.js +1 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-html.js +5 -0
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -2
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +9 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +10 -3
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build-module/components/block-tools/index.js +4 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +96 -8
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +16 -9
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +18 -14
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/copy-handler/index.js +3 -3
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +2 -2
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +3 -5
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/index.js +0 -2
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +11 -1
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-clipboard-block.native.js +5 -4
- package/build-module/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +1 -1
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-slot-container.js +18 -0
- package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -0
- package/build-module/components/inspector-controls/block-support-tools-panel.js +7 -4
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +16 -2
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +4 -2
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +1 -18
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block.js +7 -37
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/list-item.js +3 -2
- package/build-module/components/list-view/list-item.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +26 -17
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +3 -2
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +29 -2
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/embed-handler-picker.native.js +53 -0
- package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -0
- package/build-module/components/rich-text/index.js +4 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +41 -3
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +28 -9
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/rich-text/utils.js +20 -0
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/hooks/align.js +10 -7
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +1 -1
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/font-family.js +91 -24
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/style.js +6 -3
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/layouts/flow.js +4 -1
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/reducer.js +11 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +2 -4
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/transform-styles/transforms/wrap.js +16 -0
- package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-style/style-rtl.css +52 -76
- package/build-style/style.css +52 -76
- package/package.json +14 -14
- package/src/components/block-actions/index.js +5 -5
- package/src/components/block-alignment-control/use-available-alignments.js +18 -3
- package/src/components/block-inspector/index.js +1 -1
- package/src/components/block-list/block-html.js +5 -0
- package/src/components/block-list/block.native.js +2 -2
- package/src/components/block-list-appender/index.js +8 -0
- package/src/components/block-preview/README.md +1 -1
- package/src/components/block-preview/style.scss +0 -17
- package/src/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/src/components/block-settings-menu-controls/index.js +9 -6
- package/src/components/block-switcher/block-styles-menu.js +1 -1
- package/src/components/block-tools/index.js +5 -2
- package/src/components/block-tools/insertion-point.js +97 -9
- package/src/components/block-tools/style.scss +4 -35
- package/src/components/border-radius-control/index.js +1 -0
- package/src/components/border-radius-control/test/utils.js +216 -0
- package/src/components/border-radius-control/utils.js +18 -10
- package/src/components/color-palette/test/__snapshots__/control.js.snap +103 -72
- package/src/components/colors-gradients/control.js +64 -61
- package/src/components/colors-gradients/style.scss +8 -5
- package/src/components/colors-gradients/test/control.js +43 -52
- package/src/components/copy-handler/index.js +1 -1
- package/src/components/default-block-appender/index.js +2 -2
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +3 -3
- package/src/components/font-appearance-control/index.js +12 -14
- package/src/components/font-appearance-control/style.scss +1 -1
- package/src/components/index.js +0 -2
- package/src/components/inserter/block-patterns-tab.js +11 -4
- package/src/components/inserter/hooks/use-clipboard-block.native.js +3 -2
- package/src/components/inserter/preview-panel.js +1 -1
- package/src/components/inserter/style.scss +1 -2
- package/src/components/inspector-controls/block-support-slot-container.js +10 -0
- package/src/components/inspector-controls/block-support-tools-panel.js +4 -2
- package/src/components/inspector-controls/fill.js +23 -2
- package/src/components/inspector-controls/slot.js +6 -1
- package/src/components/link-control/style.scss +9 -5
- package/src/components/list-view/block-contents.js +17 -38
- package/src/components/list-view/block.js +6 -51
- package/src/components/list-view/list-item.js +5 -4
- package/src/components/list-view/style.scss +56 -30
- package/src/components/media-placeholder/index.js +24 -17
- package/src/components/media-replace-flow/README.md +7 -0
- package/src/components/media-replace-flow/index.js +2 -0
- package/src/components/plain-text/index.native.js +26 -4
- package/src/components/rich-text/embed-handler-picker.native.js +67 -0
- package/src/components/rich-text/index.js +12 -8
- package/src/components/rich-text/index.native.js +35 -1
- package/src/components/rich-text/use-paste-handler.js +30 -12
- package/src/components/rich-text/utils.js +16 -0
- package/src/components/skip-to-selected-block/README.md +39 -0
- package/src/hooks/align.js +11 -7
- package/src/hooks/anchor.js +2 -2
- package/src/hooks/font-family.js +107 -27
- package/src/hooks/style.js +14 -8
- package/src/layouts/flow.js +4 -1
- package/src/store/reducer.js +17 -0
- package/src/store/selectors.js +2 -3
- package/src/store/test/reducer.js +22 -0
- package/src/utils/transform-styles/transforms/test/wrap.js +1 -1
- package/src/utils/transform-styles/transforms/wrap.js +16 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/list-view/block-slot.js +0 -121
- package/build/components/list-view/block-slot.js.map +0 -1
- package/build/components/list-view/editor.js +0 -35
- package/build/components/list-view/editor.js.map +0 -1
- package/build-module/components/list-view/block-slot.js +0 -96
- package/build-module/components/list-view/block-slot.js.map +0 -1
- package/build-module/components/list-view/editor.js +0 -25
- package/build-module/components/list-view/editor.js.map +0 -1
- package/src/components/list-view/block-slot.js +0 -120
- package/src/components/list-view/editor.js +0 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/utils/transform-styles/transforms/wrap.js"],"names":["IS_ROOT_TAG","wrap","namespace","ignore","node","updateSelector","selector","includes","trim","match","replace","type","selectors","map"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA,MAAMA,WAAW,GAAG,uBAApB;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/utils/transform-styles/transforms/wrap.js"],"names":["IS_ROOT_TAG","wrap","namespace","ignore","node","updateSelector","selector","includes","trim","match","replace","type","selectors","map"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA,MAAMA,WAAW,GAAG,uBAApB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,IAAI,GAAG,CAAEC,SAAF,EAAaC,MAAM,GAAG,EAAtB,KAAgCC,IAAF,IAAY;AACtD;AACD;AACA;AACA;AACA;AACA;AACA;AACC,QAAMC,cAAc,GAAKC,QAAF,IAAgB;AACtC,QAAKH,MAAM,CAACI,QAAP,CAAiBD,QAAQ,CAACE,IAAT,EAAjB,CAAL,EAA0C;AACzC,aAAOF,QAAP;AACA,KAHqC,CAKtC;;;AACA;AACC,UAAK,CAAEA,QAAQ,CAACG,KAAT,CAAgBT,WAAhB,CAAP,EAAuC;AACtC,eAAOE,SAAS,GAAG,GAAZ,GAAkBI,QAAzB;AACA;AACD,KAVqC,CAYtC;;AACA,WAAOA,QAAQ,CAACI,OAAT,CAAkB,oBAAlB,EAAwCR,SAAxC,CAAP;AACA,GAdD;;AAgBA,MAAKE,IAAI,CAACO,IAAL,KAAc,MAAnB,EAA4B;AAC3B,WAAO,EACN,GAAGP,IADG;AAENQ,MAAAA,SAAS,EAAER,IAAI,CAACQ,SAAL,CAAeC,GAAf,CAAoBR,cAApB;AAFL,KAAP;AAIA;;AAED,SAAOD,IAAP;AACA,CAhCD;;eAkCeH,I","sourcesContent":["/**\n * @constant string IS_ROOT_TAG Regex to check if the selector is a root tag selector.\n */\nconst IS_ROOT_TAG = /^(body|html|:root).*$/;\n\n/**\n * Creates a callback to modify selectors so they only apply within a certain\n * namespace.\n *\n * @param {string} namespace Namespace to prefix selectors with.\n * @param {string[]} ignore Selectors to not prefix.\n *\n * @return {(node: Object) => Object} Callback to wrap selectors.\n */\nconst wrap = ( namespace, ignore = [] ) => ( node ) => {\n\t/**\n\t * Updates selector if necessary.\n\t *\n\t * @param {string} selector Selector to modify.\n\t *\n\t * @return {string} Updated selector.\n\t */\n\tconst updateSelector = ( selector ) => {\n\t\tif ( ignore.includes( selector.trim() ) ) {\n\t\t\treturn selector;\n\t\t}\n\n\t\t// Anything other than a root tag is always prefixed.\n\t\t{\n\t\t\tif ( ! selector.match( IS_ROOT_TAG ) ) {\n\t\t\t\treturn namespace + ' ' + selector;\n\t\t\t}\n\t\t}\n\n\t\t// HTML and Body elements cannot be contained within our container so lets extract their styles.\n\t\treturn selector.replace( /^(body|html|:root)/, namespace );\n\t};\n\n\tif ( node.type === 'rule' ) {\n\t\treturn {\n\t\t\t...node,\n\t\t\tselectors: node.selectors.map( updateSelector ),\n\t\t};\n\t}\n\n\treturn node;\n};\n\nexport default wrap;\n"]}
|
|
@@ -23,19 +23,20 @@ export default function BlockActions({
|
|
|
23
23
|
canInsertBlockType,
|
|
24
24
|
getBlockRootClientId,
|
|
25
25
|
getBlocksByClientId,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
} = useSelect(
|
|
26
|
+
canMoveBlocks,
|
|
27
|
+
canRemoveBlocks
|
|
28
|
+
} = useSelect(blockEditorStore);
|
|
29
29
|
const {
|
|
30
30
|
getDefaultBlockName,
|
|
31
31
|
getGroupingBlockName
|
|
32
|
-
} = useSelect(
|
|
32
|
+
} = useSelect(blocksStore);
|
|
33
33
|
const blocks = getBlocksByClientId(clientIds);
|
|
34
34
|
const rootClientId = getBlockRootClientId(clientIds[0]);
|
|
35
35
|
const canDuplicate = every(blocks, block => {
|
|
36
36
|
return !!block && hasBlockSupport(block.name, 'multiple', true) && canInsertBlockType(block.name, rootClientId);
|
|
37
37
|
});
|
|
38
38
|
const canInsertDefaultBlock = canInsertBlockType(getDefaultBlockName(), rootClientId);
|
|
39
|
+
const canMove = canMoveBlocks(clientIds, rootClientId);
|
|
39
40
|
const canRemove = canRemoveBlocks(clientIds, rootClientId);
|
|
40
41
|
const {
|
|
41
42
|
removeBlocks,
|
|
@@ -52,8 +53,8 @@ export default function BlockActions({
|
|
|
52
53
|
return children({
|
|
53
54
|
canDuplicate,
|
|
54
55
|
canInsertDefaultBlock,
|
|
56
|
+
canMove,
|
|
55
57
|
canRemove,
|
|
56
|
-
isLocked: !!getTemplateLock(rootClientId),
|
|
57
58
|
rootClientId,
|
|
58
59
|
blocks,
|
|
59
60
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-actions/index.js"],"names":["castArray","first","last","every","useDispatch","useSelect","hasBlockSupport","switchToBlockType","store","blocksStore","useNotifyCopy","blockEditorStore","BlockActions","clientIds","children","__experimentalUpdateSelection","updateSelection","canInsertBlockType","getBlockRootClientId","getBlocksByClientId","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-actions/index.js"],"names":["castArray","first","last","every","useDispatch","useSelect","hasBlockSupport","switchToBlockType","store","blocksStore","useNotifyCopy","blockEditorStore","BlockActions","clientIds","children","__experimentalUpdateSelection","updateSelection","canInsertBlockType","getBlockRootClientId","getBlocksByClientId","canMoveBlocks","canRemoveBlocks","getDefaultBlockName","getGroupingBlockName","blocks","rootClientId","canDuplicate","block","name","canInsertDefaultBlock","canMove","canRemove","removeBlocks","replaceBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","flashBlock","setBlockMovingClientId","setNavigationMode","selectBlock","notifyCopy","onDuplicate","onRemove","onInsertBefore","onInsertAfter","onMoveTo","onGroup","length","groupingBlockName","newBlocks","onUngroup","innerBlocks","onCopy","selectedBlockClientIds","map","clientId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, first, last, every } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useNotifyCopy } from '../copy-handler';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockActions( {\n\tclientIds,\n\tchildren,\n\t__experimentalUpdateSelection: updateSelection,\n} ) {\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanMoveBlocks,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } = useSelect(\n\t\tblocksStore\n\t);\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canDuplicate = every( blocks, ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\n\tconst canMove = canMoveBlocks( clientIds, rootClientId );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tflashBlock,\n\t\tsetBlockMovingClientId,\n\t\tsetNavigationMode,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn children( {\n\t\tcanDuplicate,\n\t\tcanInsertDefaultBlock,\n\t\tcanMove,\n\t\tcanRemove,\n\t\trootClientId,\n\t\tblocks,\n\t\tonDuplicate() {\n\t\t\treturn duplicateBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonRemove() {\n\t\t\treturn removeBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonInsertBefore() {\n\t\t\tinsertBeforeBlock( first( castArray( clientIds ) ) );\n\t\t},\n\t\tonInsertAfter() {\n\t\t\tinsertAfterBlock( last( castArray( clientIds ) ) );\n\t\t},\n\t\tonMoveTo() {\n\t\t\tsetNavigationMode( true );\n\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t},\n\t\tonGroup() {\n\t\t\tif ( ! blocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t\t// Activate the `transform` on `core/group` which does the conversion\n\t\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\t\tif ( ! newBlocks ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t},\n\t\tonUngroup() {\n\t\t\tif ( ! blocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\t\tif ( ! innerBlocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treplaceBlocks( clientIds, innerBlocks );\n\t\t},\n\t\tonCopy() {\n\t\t\tconst selectedBlockClientIds = blocks.map(\n\t\t\t\t( { clientId } ) => clientId\n\t\t\t);\n\t\t\tif ( blocks.length === 1 ) {\n\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t}\n\t\t\tnotifyCopy( 'copy', selectedBlockClientIds );\n\t\t},\n\t} );\n}\n"]}
|
|
@@ -14,7 +14,7 @@ const WIDE_CONTROLS = ['wide', 'full'];
|
|
|
14
14
|
export default function useAvailableAlignments(controls = DEFAULT_CONTROLS) {
|
|
15
15
|
// Always add the `none` option if not exists.
|
|
16
16
|
if (!controls.includes('none')) {
|
|
17
|
-
controls
|
|
17
|
+
controls = ['none', ...controls];
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
const {
|
|
@@ -35,9 +35,16 @@ export default function useAvailableAlignments(controls = DEFAULT_CONTROLS) {
|
|
|
35
35
|
const layoutAlignments = layoutType.getAlignments(layout);
|
|
36
36
|
|
|
37
37
|
if (themeSupportsLayout) {
|
|
38
|
-
|
|
38
|
+
const alignments = layoutAlignments.filter(({
|
|
39
39
|
name: alignmentName
|
|
40
|
-
}) => controls.includes(alignmentName));
|
|
40
|
+
}) => controls.includes(alignmentName)); // While we treat `none` as an alignment, we shouldn't return it if no
|
|
41
|
+
// other alignments exist.
|
|
42
|
+
|
|
43
|
+
if (alignments.length === 1 && alignments[0].name === 'none') {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return alignments;
|
|
41
48
|
} // Starting here, it's the fallback for themes not supporting the layout config.
|
|
42
49
|
|
|
43
50
|
|
|
@@ -51,7 +58,13 @@ export default function useAvailableAlignments(controls = DEFAULT_CONTROLS) {
|
|
|
51
58
|
const enabledControls = controls.filter(control => (layout.alignments || // Ignore the global wideAlignment check if the layout explicitely defines alignments.
|
|
52
59
|
wideControlsEnabled || !WIDE_CONTROLS.includes(control)) && availableAlignments.includes(control)).map(enabledControl => ({
|
|
53
60
|
name: enabledControl
|
|
54
|
-
}));
|
|
61
|
+
})); // While we treat `none` as an alignment, we shouldn't return it if no
|
|
62
|
+
// other alignments exist.
|
|
63
|
+
|
|
64
|
+
if (enabledControls.length === 1 && enabledControls[0].name === 'none') {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
|
|
55
68
|
return enabledControls;
|
|
56
69
|
}
|
|
57
70
|
//# sourceMappingURL=use-available-alignments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-control/use-available-alignments.js"],"names":["useSelect","useLayout","store","blockEditorStore","getLayoutType","DEFAULT_CONTROLS","WIDE_CONTROLS","useAvailableAlignments","controls","includes","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-control/use-available-alignments.js"],"names":["useSelect","useLayout","store","blockEditorStore","getLayoutType","DEFAULT_CONTROLS","WIDE_CONTROLS","useAvailableAlignments","controls","includes","wideControlsEnabled","themeSupportsLayout","select","getSettings","settings","alignWide","supportsLayout","layout","layoutType","type","layoutAlignments","getAlignments","alignments","filter","name","alignmentName","length","availableAlignments","enabledControls","control","map","enabledControl"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,sBAA1B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,aAAT,QAA8B,eAA9B;AAEA,MAAMC,gBAAgB,GAAG,CAAE,MAAF,EAAU,MAAV,EAAkB,QAAlB,EAA4B,OAA5B,EAAqC,MAArC,EAA6C,MAA7C,CAAzB;AACA,MAAMC,aAAa,GAAG,CAAE,MAAF,EAAU,MAAV,CAAtB;AAEA,eAAe,SAASC,sBAAT,CAAiCC,QAAQ,GAAGH,gBAA5C,EAA+D;AAC7E;AACA,MAAK,CAAEG,QAAQ,CAACC,QAAT,CAAmB,MAAnB,CAAP,EAAqC;AACpCD,IAAAA,QAAQ,GAAG,CAAE,MAAF,EAAU,GAAGA,QAAb,CAAX;AACA;;AACD,QAAM;AAAEE,IAAAA,mBAAmB,GAAG,KAAxB;AAA+BC,IAAAA;AAA/B,MAAuDX,SAAS,CACnEY,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAET,gBAAF,CAA9B;AACA,UAAMW,QAAQ,GAAGD,WAAW,EAA5B;AACA,WAAO;AACNH,MAAAA,mBAAmB,EAAEI,QAAQ,CAACC,SADxB;AAENJ,MAAAA,mBAAmB,EAAEG,QAAQ,CAACE;AAFxB,KAAP;AAIA,GARoE,EASrE,EATqE,CAAtE;AAWA,QAAMC,MAAM,GAAGhB,SAAS,EAAxB;AACA,QAAMiB,UAAU,GAAGd,aAAa,CAAEa,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEE,IAAV,CAAhC;AACA,QAAMC,gBAAgB,GAAGF,UAAU,CAACG,aAAX,CAA0BJ,MAA1B,CAAzB;;AAEA,MAAKN,mBAAL,EAA2B;AAC1B,UAAMW,UAAU,GAAGF,gBAAgB,CAACG,MAAjB,CAClB,CAAE;AAAEC,MAAAA,IAAI,EAAEC;AAAR,KAAF,KAA+BjB,QAAQ,CAACC,QAAT,CAAmBgB,aAAnB,CADb,CAAnB,CAD0B,CAI1B;AACA;;AACA,QAAKH,UAAU,CAACI,MAAX,KAAsB,CAAtB,IAA2BJ,UAAU,CAAE,CAAF,CAAV,CAAgBE,IAAhB,KAAyB,MAAzD,EAAkE;AACjE,aAAO,EAAP;AACA;;AACD,WAAOF,UAAP;AACA,GA9B4E,CAgC7E;;;AACA,MAAKJ,UAAU,CAACM,IAAX,KAAoB,SAAzB,EAAqC;AACpC,WAAO,EAAP;AACA;;AACD,QAAM;AAAEF,IAAAA,UAAU,EAAEK,mBAAmB,GAAGtB;AAApC,MAAyDY,MAA/D;AACA,QAAMW,eAAe,GAAGpB,QAAQ,CAC9Be,MADsB,CAEpBM,OAAF,IACC,CAAEZ,MAAM,CAACK,UAAP,IAAqB;AACtBZ,EAAAA,mBADC,IAED,CAAEJ,aAAa,CAACG,QAAd,CAAwBoB,OAAxB,CAFH,KAGAF,mBAAmB,CAAClB,QAApB,CAA8BoB,OAA9B,CANqB,EAQtBC,GARsB,CAQfC,cAAF,KAAwB;AAAEP,IAAAA,IAAI,EAAEO;AAAR,GAAxB,CARiB,CAAxB,CArC6E,CA+C7E;AACA;;AACA,MACCH,eAAe,CAACF,MAAhB,KAA2B,CAA3B,IACAE,eAAe,CAAE,CAAF,CAAf,CAAqBJ,IAArB,KAA8B,MAF/B,EAGE;AACD,WAAO,EAAP;AACA;;AAED,SAAOI,eAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useLayout } from '../block-list/layout';\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\nconst DEFAULT_CONTROLS = [ 'none', 'left', 'center', 'right', 'wide', 'full' ];\nconst WIDE_CONTROLS = [ 'wide', 'full' ];\n\nexport default function useAvailableAlignments( controls = DEFAULT_CONTROLS ) {\n\t// Always add the `none` option if not exists.\n\tif ( ! controls.includes( 'none' ) ) {\n\t\tcontrols = [ 'none', ...controls ];\n\t}\n\tconst { wideControlsEnabled = false, themeSupportsLayout } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\treturn {\n\t\t\t\twideControlsEnabled: settings.alignWide,\n\t\t\t\tthemeSupportsLayout: settings.supportsLayout,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst layout = useLayout();\n\tconst layoutType = getLayoutType( layout?.type );\n\tconst layoutAlignments = layoutType.getAlignments( layout );\n\n\tif ( themeSupportsLayout ) {\n\t\tconst alignments = layoutAlignments.filter(\n\t\t\t( { name: alignmentName } ) => controls.includes( alignmentName )\n\t\t);\n\t\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t\t// other alignments exist.\n\t\tif ( alignments.length === 1 && alignments[ 0 ].name === 'none' ) {\n\t\t\treturn [];\n\t\t}\n\t\treturn alignments;\n\t}\n\n\t// Starting here, it's the fallback for themes not supporting the layout config.\n\tif ( layoutType.name !== 'default' ) {\n\t\treturn [];\n\t}\n\tconst { alignments: availableAlignments = DEFAULT_CONTROLS } = layout;\n\tconst enabledControls = controls\n\t\t.filter(\n\t\t\t( control ) =>\n\t\t\t\t( layout.alignments || // Ignore the global wideAlignment check if the layout explicitely defines alignments.\n\t\t\t\t\twideControlsEnabled ||\n\t\t\t\t\t! WIDE_CONTROLS.includes( control ) ) &&\n\t\t\t\tavailableAlignments.includes( control )\n\t\t)\n\t\t.map( ( enabledControl ) => ( { name: enabledControl } ) );\n\n\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t// other alignments exist.\n\tif (\n\t\tenabledControls.length === 1 &&\n\t\tenabledControls[ 0 ].name === 'none'\n\t) {\n\t\treturn [];\n\t}\n\n\treturn enabledControls;\n}\n"]}
|
|
@@ -111,7 +111,7 @@ const BlockInspectorSingleBlock = ({
|
|
|
111
111
|
bubblesVirtually: bubblesVirtually
|
|
112
112
|
}), createElement(InspectorControls.Slot, {
|
|
113
113
|
__experimentalGroup: "dimensions",
|
|
114
|
-
bubblesVirtually:
|
|
114
|
+
bubblesVirtually: bubblesVirtually,
|
|
115
115
|
label: __('Dimensions')
|
|
116
116
|
}), createElement("div", null, createElement(AdvancedControls, {
|
|
117
117
|
bubblesVirtually: bubblesVirtually
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","PanelBody","__experimentalUseSlot","useSlot","useSelect","SkipToSelectedBlock","BlockCard","default","InspectorControls","InspectorAdvancedControls","BlockStyles","MultiSelectionInspector","DefaultStylePicker","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockInspector","showNoBlockSelectedMessage","bubblesVirtually","count","hasBlockStyles","selectedBlockName","selectedBlockClientId","blockType","select","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","getBlockStyles","_selectedBlockClientId","_selectedBlockName","_blockType","blockStyles","length","isSelectedBlockUnregistered","name","BlockInspectorSingleBlock","clientId","blockName","blockInformation","AdvancedControls","slot","slotName","hasFills","Boolean","fills"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SACCC,YADD,EAECC,8BAFD,EAGCC,eAHD,EAICC,KAAK,IAAIC,WAJV,QAKO,mBALP;AAMA,SACCC,SADD,EAECC,qBAAqB,IAAIC,OAF1B,QAGO,uBAHP;AAIA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,mBAAP,MAAgC,2BAAhC;AACA,OAAOC,SAAP,MAAsB,eAAtB;AACA,SACCC,OAAO,IAAIC,iBADZ,EAECC,yBAFD,QAGO,uBAHP;AAIA,OAAOC,WAAP,MAAwB,iBAAxB;AACA,OAAOC,uBAAP,MAAoC,8BAApC;AACA,OAAOC,kBAAP,MAA+B,yBAA/B;AACA,OAAOC,wBAAP,MAAqC,+BAArC;AACA,OAAOC,0BAAP,MAAuC,kCAAvC;AACA,SAASf,KAAK,IAAIgB,gBAAlB,QAA0C,aAA1C;;AAEA,MAAMC,cAAc,GAAG,CAAE;AACxBC,EAAAA,0BAA0B,GAAG,IADL;AAExBC,EAAAA,gBAAgB,GAAG;AAFK,CAAF,KAGhB;AACN,QAAM;AACLC,IAAAA,KADK;AAELC,IAAAA,cAFK;AAGLC,IAAAA,iBAHK;AAILC,IAAAA,qBAJK;AAKLC,IAAAA;AALK,MAMFnB,SAAS,CAAIoB,MAAF,IAAc;AAC5B,UAAM;AACLC,MAAAA,wBADK;AAELC,MAAAA,qBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAET,gBAAF,CAJV;AAKA,UAAM;AAAEa,MAAAA;AAAF,QAAqBJ,MAAM,CAAExB,WAAF,CAAjC;;AAEA,UAAM6B,sBAAsB,GAAGJ,wBAAwB,EAAvD;;AACA,UAAMK,kBAAkB,GACvBD,sBAAsB,IAAIF,YAAY,CAAEE,sBAAF,CADvC;;AAEA,UAAME,UAAU,GACfD,kBAAkB,IAAIlC,YAAY,CAAEkC,kBAAF,CADnC;;AAEA,UAAME,WAAW,GAChBF,kBAAkB,IAAIF,cAAc,CAAEE,kBAAF,CADrC;;AAGA,WAAO;AACNX,MAAAA,KAAK,EAAEO,qBAAqB,EADtB;AAENJ,MAAAA,qBAAqB,EAAEO,sBAFjB;AAGNR,MAAAA,iBAAiB,EAAES,kBAHb;AAINP,MAAAA,SAAS,EAAEQ,UAJL;AAKNX,MAAAA,cAAc,EAAEY,WAAW,IAAIA,WAAW,CAACC,MAAZ,GAAqB;AAL9C,KAAP;AAOA,GAvBY,EAuBV,EAvBU,CANb;;AA+BA,MAAKd,KAAK,GAAG,CAAb,EAAiB;AAChB,WACC;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,cAAC,uBAAD,OADD,EAEC,cAAC,iBAAD,CAAmB,IAAnB;AAAwB,MAAA,gBAAgB,EAAGD;AAA3C,MAFD,CADD;AAMA;;AAED,QAAMgB,2BAA2B,GAChCb,iBAAiB,KAAKxB,8BAA8B,EADrD;AAGA;AACD;AACA;AACA;;AACC,MACC,CAAE0B,SAAF,IACA,CAAED,qBADF,IAEAY,2BAHD,EAIE;AACD,QAAKjB,0BAAL,EAAkC;AACjC,aACC;AAAM,QAAA,SAAS,EAAC;AAAhB,SACGtB,EAAE,CAAE,oBAAF,CADL,CADD;AAKA;;AACD,WAAO,IAAP;AACA;;AACD,SACC,cAAC,yBAAD;AACC,IAAA,QAAQ,EAAG2B,qBADZ;AAEC,IAAA,SAAS,EAAGC,SAAS,CAACY,IAFvB;AAGC,IAAA,cAAc,EAAGf,cAHlB;AAIC,IAAA,gBAAgB,EAAGF;AAJpB,IADD;AAQA,CAzED;;AA2EA,MAAMkB,yBAAyB,GAAG,CAAE;AACnCC,EAAAA,QADmC;AAEnCC,EAAAA,SAFmC;AAGnClB,EAAAA,cAHmC;AAInCF,EAAAA;AAJmC,CAAF,KAK3B;AACN,QAAMqB,gBAAgB,GAAGzB,0BAA0B,CAAEuB,QAAF,CAAnD;AACA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,SAAD,EAAgBE,gBAAhB,CADD,EAEC,cAAC,wBAAD;AAA0B,IAAA,aAAa,EAAGF;AAA1C,IAFD,EAGGjB,cAAc,IACf,2BACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGzB,EAAE,CAAE,QAAF;AAArB,KACC,cAAC,WAAD;AAAa,IAAA,QAAQ,EAAG0C;AAAxB,IADD,EAEGvC,eAAe,CAChBwC,SADgB,EAEhB,oBAFgB,EAGhB,IAHgB,CAAf,IAIG,cAAC,kBAAD;AAAoB,IAAA,SAAS,EAAGA;AAAhC,IANN,CADD,CAJF,EAeC,cAAC,iBAAD,CAAmB,IAAnB;AAAwB,IAAA,gBAAgB,EAAGpB;AAA3C,IAfD,EAgBC,cAAC,iBAAD,CAAmB,IAAnB;AACC,IAAA,mBAAmB,EAAC,YADrB;AAEC,IAAA,gBAAgB,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","PanelBody","__experimentalUseSlot","useSlot","useSelect","SkipToSelectedBlock","BlockCard","default","InspectorControls","InspectorAdvancedControls","BlockStyles","MultiSelectionInspector","DefaultStylePicker","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockInspector","showNoBlockSelectedMessage","bubblesVirtually","count","hasBlockStyles","selectedBlockName","selectedBlockClientId","blockType","select","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","getBlockStyles","_selectedBlockClientId","_selectedBlockName","_blockType","blockStyles","length","isSelectedBlockUnregistered","name","BlockInspectorSingleBlock","clientId","blockName","blockInformation","AdvancedControls","slot","slotName","hasFills","Boolean","fills"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\t__experimentalUseSlot as useSlot,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from '../inspector-controls';\nimport BlockStyles from '../block-styles';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport DefaultStylePicker from '../default-style-picker';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\nconst BlockInspector = ( {\n\tshowNoBlockSelectedMessage = true,\n\tbubblesVirtually = true,\n} ) => {\n\tconst {\n\t\tcount,\n\t\thasBlockStyles,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockStyles } = select( blocksStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\t\tconst blockStyles =\n\t\t\t_selectedBlockName && getBlockStyles( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\thasBlockStyles: blockStyles && blockStyles.length > 0,\n\t\t};\n\t}, [] );\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t<InspectorControls.Slot bubblesVirtually={ bubblesVirtually } />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\treturn (\n\t\t<BlockInspectorSingleBlock\n\t\t\tclientId={ selectedBlockClientId }\n\t\t\tblockName={ blockType.name }\n\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\tbubblesVirtually={ bubblesVirtually }\n\t\t/>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\tclientId,\n\tblockName,\n\thasBlockStyles,\n\tbubblesVirtually,\n} ) => {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) && <DefaultStylePicker blockName={ blockName } /> }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot bubblesVirtually={ bubblesVirtually } />\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\tbubblesVirtually={ bubblesVirtually }\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<div>\n\t\t\t\t<AdvancedControls bubblesVirtually={ bubblesVirtually } />\n\t\t\t</div>\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\nconst AdvancedControls = ( { bubblesVirtually } ) => {\n\tconst slot = useSlot( InspectorAdvancedControls.slotName );\n\tconst hasFills = Boolean( slot.fills && slot.fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"block-editor-block-inspector__advanced\"\n\t\t\ttitle={ __( 'Advanced' ) }\n\t\t\tinitialOpen={ false }\n\t\t>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"advanced\"\n\t\t\t\tbubblesVirtually={ bubblesVirtually }\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n};\n\nexport default BlockInspector;\n"]}
|
|
@@ -28,6 +28,11 @@ function BlockHTML({
|
|
|
28
28
|
|
|
29
29
|
const onChange = () => {
|
|
30
30
|
const blockType = getBlockType(block.name);
|
|
31
|
+
|
|
32
|
+
if (!blockType) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
|
|
31
36
|
const attributes = getBlockAttributes(blockType, html, block.attributes); // If html is empty we reset the block to the default HTML and mark it as valid to avoid triggering an error
|
|
32
37
|
|
|
33
38
|
const content = html ? html : getSaveContent(blockType, attributes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-html.js"],"names":["TextareaAutosize","useEffect","useState","useSelect","useDispatch","getBlockAttributes","getBlockContent","getBlockType","isValidBlockContent","getSaveContent","store","blockEditorStore","BlockHTML","clientId","html","setHtml","block","select","getBlock","updateBlock","onChange","blockType","name","attributes","content","isValid","originalContent","event","target","value"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,gBAAP,MAA6B,yBAA7B;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,oBAApC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SACCC,kBADD,EAECC,eAFD,EAGCC,YAHD,EAICC,mBAJD,EAKCC,cALD,QAMO,mBANP;AAQA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,SAAT,CAAoB;AAAEC,EAAAA;AAAF,CAApB,EAAmC;AAClC,QAAM,CAAEC,IAAF,EAAQC,OAAR,IAAoBb,QAAQ,CAAE,EAAF,CAAlC;AACA,QAAMc,KAAK,GAAGb,SAAS,CACpBc,MAAF,IAAcA,MAAM,CAAEN,gBAAF,CAAN,CAA2BO,QAA3B,CAAqCL,QAArC,CADQ,EAEtB,CAAEA,QAAF,CAFsB,CAAvB;AAIA,QAAM;AAAEM,IAAAA;AAAF,MAAkBf,WAAW,CAAEO,gBAAF,CAAnC;;AACA,QAAMS,QAAQ,GAAG,MAAM;AACtB,UAAMC,SAAS,GAAGd,YAAY,CAAES,KAAK,CAACM,IAAR,CAA9B;AACA,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-html.js"],"names":["TextareaAutosize","useEffect","useState","useSelect","useDispatch","getBlockAttributes","getBlockContent","getBlockType","isValidBlockContent","getSaveContent","store","blockEditorStore","BlockHTML","clientId","html","setHtml","block","select","getBlock","updateBlock","onChange","blockType","name","attributes","content","isValid","originalContent","event","target","value"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,gBAAP,MAA6B,yBAA7B;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,oBAApC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SACCC,kBADD,EAECC,eAFD,EAGCC,YAHD,EAICC,mBAJD,EAKCC,cALD,QAMO,mBANP;AAQA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,SAAT,CAAoB;AAAEC,EAAAA;AAAF,CAApB,EAAmC;AAClC,QAAM,CAAEC,IAAF,EAAQC,OAAR,IAAoBb,QAAQ,CAAE,EAAF,CAAlC;AACA,QAAMc,KAAK,GAAGb,SAAS,CACpBc,MAAF,IAAcA,MAAM,CAAEN,gBAAF,CAAN,CAA2BO,QAA3B,CAAqCL,QAArC,CADQ,EAEtB,CAAEA,QAAF,CAFsB,CAAvB;AAIA,QAAM;AAAEM,IAAAA;AAAF,MAAkBf,WAAW,CAAEO,gBAAF,CAAnC;;AACA,QAAMS,QAAQ,GAAG,MAAM;AACtB,UAAMC,SAAS,GAAGd,YAAY,CAAES,KAAK,CAACM,IAAR,CAA9B;;AAEA,QAAK,CAAED,SAAP,EAAmB;AAClB;AACA;;AAED,UAAME,UAAU,GAAGlB,kBAAkB,CACpCgB,SADoC,EAEpCP,IAFoC,EAGpCE,KAAK,CAACO,UAH8B,CAArC,CAPsB,CAatB;;AACA,UAAMC,OAAO,GAAGV,IAAI,GAAGA,IAAH,GAAUL,cAAc,CAAEY,SAAF,EAAaE,UAAb,CAA5C;AACA,UAAME,OAAO,GAAGX,IAAI,GACjBN,mBAAmB,CAAEa,SAAF,EAAaE,UAAb,EAAyBC,OAAzB,CADF,GAEjB,IAFH;AAIAL,IAAAA,WAAW,CAAEN,QAAF,EAAY;AACtBU,MAAAA,UADsB;AAEtBG,MAAAA,eAAe,EAAEF,OAFK;AAGtBC,MAAAA;AAHsB,KAAZ,CAAX,CAnBsB,CAyBtB;;AACA,QAAK,CAAEX,IAAP,EAAc;AACbC,MAAAA,OAAO,CAAE;AAAES,QAAAA;AAAF,OAAF,CAAP;AACA;AACD,GA7BD;;AA+BAvB,EAAAA,SAAS,CAAE,MAAM;AAChBc,IAAAA,OAAO,CAAET,eAAe,CAAEU,KAAF,CAAjB,CAAP;AACA,GAFQ,EAEN,CAAEA,KAAF,CAFM,CAAT;AAIA,SACC,cAAC,gBAAD;AACC,IAAA,SAAS,EAAC,8CADX;AAEC,IAAA,KAAK,EAAGF,IAFT;AAGC,IAAA,MAAM,EAAGM,QAHV;AAIC,IAAA,QAAQ,EAAKO,KAAF,IAAaZ,OAAO,CAAEY,KAAK,CAACC,MAAN,CAAaC,KAAf;AAJhC,IADD;AAQA;;AAED,eAAejB,SAAf","sourcesContent":["/**\n * External dependencies\n */\nimport TextareaAutosize from 'react-autosize-textarea';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tgetBlockAttributes,\n\tgetBlockContent,\n\tgetBlockType,\n\tisValidBlockContent,\n\tgetSaveContent,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockHTML( { clientId } ) {\n\tconst [ html, setHtml ] = useState( '' );\n\tconst block = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { updateBlock } = useDispatch( blockEditorStore );\n\tconst onChange = () => {\n\t\tconst blockType = getBlockType( block.name );\n\n\t\tif ( ! blockType ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributes = getBlockAttributes(\n\t\t\tblockType,\n\t\t\thtml,\n\t\t\tblock.attributes\n\t\t);\n\n\t\t// If html is empty we reset the block to the default HTML and mark it as valid to avoid triggering an error\n\t\tconst content = html ? html : getSaveContent( blockType, attributes );\n\t\tconst isValid = html\n\t\t\t? isValidBlockContent( blockType, attributes, content )\n\t\t\t: true;\n\n\t\tupdateBlock( clientId, {\n\t\t\tattributes,\n\t\t\toriginalContent: content,\n\t\t\tisValid,\n\t\t} );\n\n\t\t// Ensure the state is updated if we reset so it displays the default content\n\t\tif ( ! html ) {\n\t\t\tsetHtml( { content } );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tsetHtml( getBlockContent( block ) );\n\t}, [ block ] );\n\n\treturn (\n\t\t<TextareaAutosize\n\t\t\tclassName=\"block-editor-block-list__block-html-textarea\"\n\t\t\tvalue={ html }\n\t\t\tonBlur={ onChange }\n\t\t\tonChange={ ( event ) => setHtml( event.target.value ) }\n\t\t/>\n\t);\n}\n\nexport default BlockHTML;\n"]}
|
|
@@ -279,8 +279,8 @@ export default compose([withSelect((select, {
|
|
|
279
279
|
isValid
|
|
280
280
|
} = block || {};
|
|
281
281
|
const blockType = getBlockType(name || 'core/missing');
|
|
282
|
-
const title = blockType.title;
|
|
283
|
-
const icon = blockType.icon;
|
|
282
|
+
const title = blockType === null || blockType === void 0 ? void 0 : blockType.title;
|
|
283
|
+
const icon = blockType === null || blockType === void 0 ? void 0 : blockType.icon;
|
|
284
284
|
const parents = getBlockParents(clientId, true);
|
|
285
285
|
const parentId = parents[0] || '';
|
|
286
286
|
const selectedBlockClientId = getSelectedBlockClientId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["View","Text","TouchableWithoutFeedback","Dimensions","pick","Component","createRef","useMemo","GlobalStylesContext","getMergedGlobalStyles","alignmentHelpers","useGlobalStyles","withDispatch","withSelect","compose","withPreferredColorScheme","getBlockType","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","useSetting","styles","BlockEdit","BlockInvalidWarning","BlockMobileToolbar","store","blockEditorStore","emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","mergeBlocks","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","fontSizes","globalStyle","mergedStyle","style","JSON","stringify","BLOCK_STYLE_ATTRIBUTES","BlockListBlock","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","align","accessibilityLabel","isFullWidth","isContainerRelated","accessible","screenWidth","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","rootClientId","getBlockIndex","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","includes","__experimentalGlobalStylesBaseStyles","getEditWrapperProps","dispatch","ownProps","insertBlocks","replaceBlocks","selectBlock","updateBlockAttributes","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","index","initialPosition","indexToSelect"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tmergeBlocks,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useSetting( 'color.palette' ) || emptyArray;\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\n\t\tJSON.stringify(\n\t\t\tpick( attributes, GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES )\n\t\t),\n\t] );\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ mergeBlocks }\n\t\t\t\t// Block level styles\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// inherited styles merged with block level styles\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// focus on the first block inserted\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isValid ? (\n\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\tgetBlock,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId, rootClientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType.title;\n\t\tconst icon = blockType.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor = getLowestCommonAncestorWithSelectedBlock(\n\t\t\tclientId\n\t\t);\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\t\t\t// set false as a default value to prevent re-render when it's changed from null to false\n\t\t\t( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected = selectedParents.includes(\n\t\t\tparentId\n\t\t);\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles = getSettings()\n\t\t\t?.__experimentalGlobalStylesBaseStyles;\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tmergeBlocks( forward ) {\n\t\t\t\tconst { clientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\t\tclientId\n\t\t\t\t\t);\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["View","Text","TouchableWithoutFeedback","Dimensions","pick","Component","createRef","useMemo","GlobalStylesContext","getMergedGlobalStyles","alignmentHelpers","useGlobalStyles","withDispatch","withSelect","compose","withPreferredColorScheme","getBlockType","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","useSetting","styles","BlockEdit","BlockInvalidWarning","BlockMobileToolbar","store","blockEditorStore","emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","mergeBlocks","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","fontSizes","globalStyle","mergedStyle","style","JSON","stringify","BLOCK_STYLE_ATTRIBUTES","BlockListBlock","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","align","accessibilityLabel","isFullWidth","isContainerRelated","accessible","screenWidth","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","rootClientId","getBlockIndex","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","includes","__experimentalGlobalStylesBaseStyles","getEditWrapperProps","dispatch","ownProps","insertBlocks","replaceBlocks","selectBlock","updateBlockAttributes","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","index","initialPosition","indexToSelect"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tmergeBlocks,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useSetting( 'color.palette' ) || emptyArray;\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\n\t\tJSON.stringify(\n\t\t\tpick( attributes, GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES )\n\t\t),\n\t] );\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ mergeBlocks }\n\t\t\t\t// Block level styles\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// inherited styles merged with block level styles\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// focus on the first block inserted\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isValid ? (\n\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\tgetBlock,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId, rootClientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst icon = blockType?.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor = getLowestCommonAncestorWithSelectedBlock(\n\t\t\tclientId\n\t\t);\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\t\t\t// set false as a default value to prevent re-render when it's changed from null to false\n\t\t\t( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected = selectedParents.includes(\n\t\t\tparentId\n\t\t);\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles = getSettings()\n\t\t\t?.__experimentalGlobalStylesBaseStyles;\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tmergeBlocks( forward ) {\n\t\t\t\tconst { clientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\t\tclientId\n\t\t\t\t\t);\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
|
|
@@ -74,7 +74,15 @@ function BlockListAppender({
|
|
|
74
74
|
// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
|
|
75
75
|
, {
|
|
76
76
|
tabIndex: -1,
|
|
77
|
-
className: classnames('block-list-appender wp-block', className)
|
|
77
|
+
className: classnames('block-list-appender wp-block', className) // The appender exists to let you add the first Paragraph before
|
|
78
|
+
// any is inserted. To that end, this appender should visually be
|
|
79
|
+
// presented as a block. That means theme CSS should style it as if
|
|
80
|
+
// it were an empty paragraph block. That means a `wp-block` class to
|
|
81
|
+
// ensure the width is correct, and a [data-block] attribute to ensure
|
|
82
|
+
// the correct margin is applied, especially for classic themes which
|
|
83
|
+
// have commonly targeted that attribute for margins.
|
|
84
|
+
,
|
|
85
|
+
"data-block": true
|
|
78
86
|
}, appender);
|
|
79
87
|
}
|
|
80
88
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["last","classnames","withSelect","getDefaultBlockName","DefaultBlockAppender","ButtonBlockAppender","store","blockEditorStore","BlockListAppender","blockClientIds","rootClientId","canInsertDefaultBlock","isLocked","renderAppender","CustomAppender","className","selectedBlockClientId","tagName","TagName","appender","isDocumentAppender","isParentSelected","isAnotherDefaultAppenderAlreadyDisplayed","includes","select","getBlockOrder","canInsertBlockType","getTemplateLock","getSelectedBlockClientId"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,QAArB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,mBAAT,QAAoC,mBAApC;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,2BAAjC;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,iBAAT,CAA4B;AAC3BC,EAAAA,cAD2B;AAE3BC,EAAAA,YAF2B;AAG3BC,EAAAA,qBAH2B;AAI3BC,EAAAA,QAJ2B;AAK3BC,EAAAA,cAAc,EAAEC,cALW;AAM3BC,EAAAA,SAN2B;AAO3BC,EAAAA,qBAP2B;AAQ3BC,EAAAA,OAAO,EAAEC,OAAO,GAAG;AARQ,CAA5B,EASI;AACH,MAAKN,QAAQ,IAAIE,cAAc,KAAK,KAApC,EAA4C;AAC3C,WAAO,IAAP;AACA;;AAED,MAAIK,QAAJ;;AACA,MAAKL,cAAL,EAAsB;AACrB;AACAK,IAAAA,QAAQ,GAAG,cAAC,cAAD,OAAX;AACA,GAHD,MAGO;AACN,UAAMC,kBAAkB,GAAG,CAAEV,YAA7B;AACA,UAAMW,gBAAgB,GAAGL,qBAAqB,KAAKN,YAAnD;AACA,UAAMY,wCAAwC,GAC7CN,qBAAqB,IACrB,CAAEP,cAAc,CAACc,QAAf,CAAyBP,qBAAzB,CAFH;;AAIA,QACC,CAAEI,kBAAF,IACA,CAAEC,gBADF,KAEE,CAAEL,qBAAF,IACDM,wCAHD,CADD,EAKE;AACD,aAAO,IAAP;AACA;;AAED,QAAKX,qBAAL,EAA6B;AAC5B;AACA;AACAQ,MAAAA,QAAQ,GACP,cAAC,oBAAD;AACC,QAAA,YAAY,EAAGT,YADhB;AAEC,QAAA,iBAAiB,EAAGV,IAAI,CAAES,cAAF;AAFzB,QADD;AAMA,KATD,MASO;AACN;AACA;AACAU,MAAAA,QAAQ,GACP,cAAC,mBAAD;AACC,QAAA,YAAY,EAAGT,YADhB;AAEC,QAAA,SAAS,EAAC;AAFX,QADD;AAMA;AACD;;AAED,SACC,cAAC,OAAD,CACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARD;AASC,IAAA,QAAQ,EAAG,CAAC,CATb;AAUC,IAAA,SAAS,EAAGT,UAAU,CACrB,8BADqB,EAErBc,SAFqB;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["last","classnames","withSelect","getDefaultBlockName","DefaultBlockAppender","ButtonBlockAppender","store","blockEditorStore","BlockListAppender","blockClientIds","rootClientId","canInsertDefaultBlock","isLocked","renderAppender","CustomAppender","className","selectedBlockClientId","tagName","TagName","appender","isDocumentAppender","isParentSelected","isAnotherDefaultAppenderAlreadyDisplayed","includes","select","getBlockOrder","canInsertBlockType","getTemplateLock","getSelectedBlockClientId"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,QAArB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,mBAAT,QAAoC,mBAApC;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,2BAAjC;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,iBAAT,CAA4B;AAC3BC,EAAAA,cAD2B;AAE3BC,EAAAA,YAF2B;AAG3BC,EAAAA,qBAH2B;AAI3BC,EAAAA,QAJ2B;AAK3BC,EAAAA,cAAc,EAAEC,cALW;AAM3BC,EAAAA,SAN2B;AAO3BC,EAAAA,qBAP2B;AAQ3BC,EAAAA,OAAO,EAAEC,OAAO,GAAG;AARQ,CAA5B,EASI;AACH,MAAKN,QAAQ,IAAIE,cAAc,KAAK,KAApC,EAA4C;AAC3C,WAAO,IAAP;AACA;;AAED,MAAIK,QAAJ;;AACA,MAAKL,cAAL,EAAsB;AACrB;AACAK,IAAAA,QAAQ,GAAG,cAAC,cAAD,OAAX;AACA,GAHD,MAGO;AACN,UAAMC,kBAAkB,GAAG,CAAEV,YAA7B;AACA,UAAMW,gBAAgB,GAAGL,qBAAqB,KAAKN,YAAnD;AACA,UAAMY,wCAAwC,GAC7CN,qBAAqB,IACrB,CAAEP,cAAc,CAACc,QAAf,CAAyBP,qBAAzB,CAFH;;AAIA,QACC,CAAEI,kBAAF,IACA,CAAEC,gBADF,KAEE,CAAEL,qBAAF,IACDM,wCAHD,CADD,EAKE;AACD,aAAO,IAAP;AACA;;AAED,QAAKX,qBAAL,EAA6B;AAC5B;AACA;AACAQ,MAAAA,QAAQ,GACP,cAAC,oBAAD;AACC,QAAA,YAAY,EAAGT,YADhB;AAEC,QAAA,iBAAiB,EAAGV,IAAI,CAAES,cAAF;AAFzB,QADD;AAMA,KATD,MASO;AACN;AACA;AACAU,MAAAA,QAAQ,GACP,cAAC,mBAAD;AACC,QAAA,YAAY,EAAGT,YADhB;AAEC,QAAA,SAAS,EAAC;AAFX,QADD;AAMA;AACD;;AAED,SACC,cAAC,OAAD,CACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARD;AASC,IAAA,QAAQ,EAAG,CAAC,CATb;AAUC,IAAA,SAAS,EAAGT,UAAU,CACrB,8BADqB,EAErBc,SAFqB,CAVvB,CAcC;AACA;AACA;AACA;AACA;AACA;AACA;AApBD;AAqBC;AArBD,KAuBGI,QAvBH,CADD;AA2BA;;AAED,eAAejB,UAAU,CAAE,CAAEsB,MAAF,EAAU;AAAEd,EAAAA;AAAF,CAAV,KAAgC;AAC1D,QAAM;AACLe,IAAAA,aADK;AAELC,IAAAA,kBAFK;AAGLC,IAAAA,eAHK;AAILC,IAAAA;AAJK,MAKFJ,MAAM,CAAEjB,gBAAF,CALV;AAOA,SAAO;AACNK,IAAAA,QAAQ,EAAE,CAAC,CAAEe,eAAe,CAAEjB,YAAF,CADtB;AAEND,IAAAA,cAAc,EAAEgB,aAAa,CAAEf,YAAF,CAFvB;AAGNC,IAAAA,qBAAqB,EAAEe,kBAAkB,CACxCvB,mBAAmB,EADqB,EAExCO,YAFwC,CAHnC;AAONM,IAAAA,qBAAqB,EAAEY,wBAAwB;AAPzC,GAAP;AASA,CAjBwB,CAAV,CAiBVpB,iBAjBU,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { last } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockListAppender( {\n\tblockClientIds,\n\trootClientId,\n\tcanInsertDefaultBlock,\n\tisLocked,\n\trenderAppender: CustomAppender,\n\tclassName,\n\tselectedBlockClientId,\n\ttagName: TagName = 'div',\n} ) {\n\tif ( isLocked || CustomAppender === false ) {\n\t\treturn null;\n\t}\n\n\tlet appender;\n\tif ( CustomAppender ) {\n\t\t// Prefer custom render prop if provided.\n\t\tappender = <CustomAppender />;\n\t} else {\n\t\tconst isDocumentAppender = ! rootClientId;\n\t\tconst isParentSelected = selectedBlockClientId === rootClientId;\n\t\tconst isAnotherDefaultAppenderAlreadyDisplayed =\n\t\t\tselectedBlockClientId &&\n\t\t\t! blockClientIds.includes( selectedBlockClientId );\n\n\t\tif (\n\t\t\t! isDocumentAppender &&\n\t\t\t! isParentSelected &&\n\t\t\t( ! selectedBlockClientId ||\n\t\t\t\tisAnotherDefaultAppenderAlreadyDisplayed )\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( canInsertDefaultBlock ) {\n\t\t\t// Render the default block appender when renderAppender has not been\n\t\t\t// provided and the context supports use of the default appender.\n\t\t\tappender = (\n\t\t\t\t<DefaultBlockAppender\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tlastBlockClientId={ last( blockClientIds ) }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else {\n\t\t\t// Fallback in the case no renderAppender has been provided and the\n\t\t\t// default block can't be inserted.\n\t\t\tappender = (\n\t\t\t\t<ButtonBlockAppender\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclassName=\"block-list-appender__toggle\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t}\n\n\treturn (\n\t\t<TagName\n\t\t\t// A `tabIndex` is used on the wrapping `div` element in order to\n\t\t\t// force a focus event to occur when an appender `button` element\n\t\t\t// is clicked. In some browsers (Firefox, Safari), button clicks do\n\t\t\t// not emit a focus event, which could cause this event to propagate\n\t\t\t// unexpectedly. The `tabIndex` ensures that the interaction is\n\t\t\t// captured as a focus, without also adding an extra tab stop.\n\t\t\t//\n\t\t\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\t\t\ttabIndex={ -1 }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-list-appender wp-block',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t// The appender exists to let you add the first Paragraph before\n\t\t\t// any is inserted. To that end, this appender should visually be\n\t\t\t// presented as a block. That means theme CSS should style it as if\n\t\t\t// it were an empty paragraph block. That means a `wp-block` class to\n\t\t\t// ensure the width is correct, and a [data-block] attribute to ensure\n\t\t\t// the correct margin is applied, especially for classic themes which\n\t\t\t// have commonly targeted that attribute for margins.\n\t\t\tdata-block\n\t\t>\n\t\t\t{ appender }\n\t\t</TagName>\n\t);\n}\n\nexport default withSelect( ( select, { rootClientId } ) => {\n\tconst {\n\t\tgetBlockOrder,\n\t\tcanInsertBlockType,\n\t\tgetTemplateLock,\n\t\tgetSelectedBlockClientId,\n\t} = select( blockEditorStore );\n\n\treturn {\n\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\tblockClientIds: getBlockOrder( rootClientId ),\n\t\tcanInsertDefaultBlock: canInsertBlockType(\n\t\t\tgetDefaultBlockName(),\n\t\t\trootClientId\n\t\t),\n\t\tselectedBlockClientId: getSelectedBlockClientId(),\n\t};\n} )( BlockListAppender );\n"]}
|
|
@@ -78,11 +78,11 @@ export function BlockSettingsDropdown({
|
|
|
78
78
|
}, ({
|
|
79
79
|
canDuplicate,
|
|
80
80
|
canInsertDefaultBlock,
|
|
81
|
+
canMove,
|
|
81
82
|
canRemove,
|
|
82
83
|
onDuplicate,
|
|
83
84
|
onInsertAfter,
|
|
84
85
|
onInsertBefore,
|
|
85
|
-
isLocked,
|
|
86
86
|
onRemove,
|
|
87
87
|
onCopy,
|
|
88
88
|
onMoveTo,
|
|
@@ -113,7 +113,7 @@ export function BlockSettingsDropdown({
|
|
|
113
113
|
}, __('Insert before')), createElement(MenuItem, {
|
|
114
114
|
onClick: flow(onClose, onInsertAfter),
|
|
115
115
|
shortcut: shortcuts.insertAfter
|
|
116
|
-
}, __('Insert after'))),
|
|
116
|
+
}, __('Insert after'))), canMove && !onlyBlock && createElement(MenuItem, {
|
|
117
117
|
onClick: flow(onClose, onMoveTo)
|
|
118
118
|
}, __('Move to')), count === 1 && createElement(BlockModeToggle, {
|
|
119
119
|
clientId: firstBlockClientId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["castArray","flow","noop","__","DropdownMenu","MenuGroup","MenuItem","useSelect","moreVertical","Children","cloneElement","useCallback","serialize","store","keyboardShortcutsStore","useCopyToClipboard","BlockActions","BlockModeToggle","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","POPOVER_PROPS","className","position","isAlternate","CopyMenuItem","blocks","onCopy","ref","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","props","blockClientIds","count","length","firstBlockClientId","onlyBlock","select","getBlockCount","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","updateSelection","clientIdsPromise","ids","removeBlockLabel","canDuplicate","canInsertDefaultBlock","canRemove","onDuplicate","onInsertAfter","onInsertBefore","isLocked","onRemove","onMoveTo","onClose","map","child"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, flow, noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\n\nimport { Children, cloneElement, useCallback } from '@wordpress/element';\nimport { serialize } from '@wordpress/blocks';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockModeToggle from './block-mode-toggle';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tposition: 'bottom right',\n\tisAlternate: true,\n};\n\nfunction CopyMenuItem( { blocks, onCopy } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\treturn <MenuItem ref={ ref }>{ __( 'Copy' ) }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t...props\n} ) {\n\tconst blockClientIds = castArray( clientIds );\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst onlyBlock = useSelect(\n\t\t( select ) => 1 === select( blockEditorStore ).getBlockCount(),\n\t\t[]\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst updateSelection = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? async ( clientIdsPromise ) => {\n\t\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ] );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst removeBlockLabel =\n\t\tcount === 1 ? __( 'Remove block' ) : __( 'Remove blocks' );\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tisLocked,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelection\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! isLocked && ! onlyBlock && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow( onClose, onMoveTo ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\tonToggle={ onClose }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelection\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["castArray","flow","noop","__","DropdownMenu","MenuGroup","MenuItem","useSelect","moreVertical","Children","cloneElement","useCallback","serialize","store","keyboardShortcutsStore","useCopyToClipboard","BlockActions","BlockModeToggle","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","POPOVER_PROPS","className","position","isAlternate","CopyMenuItem","blocks","onCopy","ref","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","props","blockClientIds","count","length","firstBlockClientId","onlyBlock","select","getBlockCount","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","updateSelection","clientIdsPromise","ids","removeBlockLabel","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onMoveTo","onClose","map","child"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, flow, noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\n\nimport { Children, cloneElement, useCallback } from '@wordpress/element';\nimport { serialize } from '@wordpress/blocks';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockModeToggle from './block-mode-toggle';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tposition: 'bottom right',\n\tisAlternate: true,\n};\n\nfunction CopyMenuItem( { blocks, onCopy } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\treturn <MenuItem ref={ ref }>{ __( 'Copy' ) }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t...props\n} ) {\n\tconst blockClientIds = castArray( clientIds );\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst onlyBlock = useSelect(\n\t\t( select ) => 1 === select( blockEditorStore ).getBlockCount(),\n\t\t[]\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst updateSelection = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? async ( clientIdsPromise ) => {\n\t\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ] );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst removeBlockLabel =\n\t\tcount === 1 ? __( 'Remove block' ) : __( 'Remove blocks' );\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelection\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canMove && ! onlyBlock && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow( onClose, onMoveTo ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\tonToggle={ onClose }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelection\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"]}
|
|
@@ -26,13 +26,19 @@ const BlockSettingsMenuControlsSlot = ({
|
|
|
26
26
|
fillProps,
|
|
27
27
|
clientIds = null
|
|
28
28
|
}) => {
|
|
29
|
-
const
|
|
29
|
+
const {
|
|
30
|
+
selectedBlocks,
|
|
31
|
+
selectedClientIds
|
|
32
|
+
} = useSelect(select => {
|
|
30
33
|
const {
|
|
31
34
|
getBlocksByClientId,
|
|
32
35
|
getSelectedBlockClientIds
|
|
33
36
|
} = select(blockEditorStore);
|
|
34
37
|
const ids = clientIds !== null ? clientIds : getSelectedBlockClientIds();
|
|
35
|
-
return
|
|
38
|
+
return {
|
|
39
|
+
selectedBlocks: map(compact(getBlocksByClientId(ids)), block => block.name),
|
|
40
|
+
selectedClientIds: ids
|
|
41
|
+
};
|
|
36
42
|
}, [clientIds]); // Check if current selection of blocks is Groupable or Ungroupable
|
|
37
43
|
// and pass this props down to ConvertToGroupButton.
|
|
38
44
|
|
|
@@ -44,7 +50,8 @@ const BlockSettingsMenuControlsSlot = ({
|
|
|
44
50
|
const showConvertToGroupButton = isGroupable || isUngroupable;
|
|
45
51
|
return createElement(Slot, {
|
|
46
52
|
fillProps: { ...fillProps,
|
|
47
|
-
selectedBlocks
|
|
53
|
+
selectedBlocks,
|
|
54
|
+
selectedClientIds
|
|
48
55
|
}
|
|
49
56
|
}, fills => {
|
|
50
57
|
if ((fills === null || fills === void 0 ? void 0 : fills.length) > 0 || showConvertToGroupButton) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"names":["compact","map","createSlotFill","MenuGroup","__experimentalStyleProvider","StyleProvider","useSelect","useConvertToGroupButtonProps","ConvertToGroupButton","store","blockEditorStore","Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","selectedBlocks","select","getBlocksByClientId","getSelectedBlockClientIds","ids","block","name","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","fills","length","onClose","BlockSettingsMenuControls","props","document"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,OAAT,EAAkBC,GAAlB,QAA6B,QAA7B;AAEA;AACA;AACA;;AACA,SACCC,cADD,EAECC,SAFD,EAGCC,2BAA2B,IAAIC,aAHhC,QAIO,uBAJP;AAKA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SACCC,4BADD,EAECC,oBAFD,QAGO,6BAHP;AAIA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,MAAM;AAAEC,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IAAiBV,cAAc,CAAE,2BAAF,CAArC;;AAEA,MAAMW,6BAA6B,GAAG,CAAE;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,SAAS,GAAG;AAAzB,CAAF,KAAuC;AAC5E,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"names":["compact","map","createSlotFill","MenuGroup","__experimentalStyleProvider","StyleProvider","useSelect","useConvertToGroupButtonProps","ConvertToGroupButton","store","blockEditorStore","Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","selectedBlocks","selectedClientIds","select","getBlocksByClientId","getSelectedBlockClientIds","ids","block","name","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","fills","length","onClose","BlockSettingsMenuControls","props","document"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,OAAT,EAAkBC,GAAlB,QAA6B,QAA7B;AAEA;AACA;AACA;;AACA,SACCC,cADD,EAECC,SAFD,EAGCC,2BAA2B,IAAIC,aAHhC,QAIO,uBAJP;AAKA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SACCC,4BADD,EAECC,oBAFD,QAGO,6BAHP;AAIA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,MAAM;AAAEC,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IAAiBV,cAAc,CAAE,2BAAF,CAArC;;AAEA,MAAMW,6BAA6B,GAAG,CAAE;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,SAAS,GAAG;AAAzB,CAAF,KAAuC;AAC5E,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,MAAwCX,SAAS,CACpDY,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,mBAAF;AAAuBC,MAAAA;AAAvB,QAAqDF,MAAM,CAChER,gBADgE,CAAjE;AAGA,UAAMW,GAAG,GACRN,SAAS,KAAK,IAAd,GAAqBA,SAArB,GAAiCK,yBAAyB,EAD3D;AAEA,WAAO;AACNJ,MAAAA,cAAc,EAAEf,GAAG,CAClBD,OAAO,CAAEmB,mBAAmB,CAAEE,GAAF,CAArB,CADW,EAEhBC,KAAF,IAAaA,KAAK,CAACC,IAFD,CADb;AAKNN,MAAAA,iBAAiB,EAAEI;AALb,KAAP;AAOA,GAdqD,EAetD,CAAEN,SAAF,CAfsD,CAAvD,CAD4E,CAmB5E;AACA;;AACA,QAAMS,yBAAyB,GAAGjB,4BAA4B,EAA9D;AACA,QAAM;AAAEkB,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAiCF,yBAAvC;AACA,QAAMG,wBAAwB,GAAGF,WAAW,IAAIC,aAAhD;AACA,SACC,cAAC,IAAD;AAAM,IAAA,SAAS,EAAG,EAAE,GAAGZ,SAAL;AAAgBE,MAAAA,cAAhB;AAAgCC,MAAAA;AAAhC;AAAlB,KACKW,KAAF,IAAa;AACd,QAAK,CAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEC,MAAP,IAAgB,CAAhB,IAAqBF,wBAA1B,EAAqD;AACpD,aACC,cAAC,SAAD,QACGC,KADH,EAEC,cAAC,oBAAD,eACMJ,yBADN;AAEC,QAAA,OAAO,EAAGV,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEgB;AAFtB,SAFD,CADD;AASA;AACD,GAbF,CADD;AAiBA,CAzCD;AA2CA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,yBAAT,CAAoC,EAAE,GAAGC;AAAL,CAApC,EAAmD;AAClD,SACC,cAAC,aAAD;AAAe,IAAA,QAAQ,EAAGC;AAA1B,KACC,cAAC,IAAD,EAAWD,KAAX,CADD,CADD;AAKA;;AAEDD,yBAAyB,CAACnB,IAA1B,GAAiCC,6BAAjC;AAEA,eAAekB,yBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { compact, map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseConvertToGroupButtonProps,\n\tConvertToGroupButton,\n} from '../convert-to-group-buttons';\nimport { store as blockEditorStore } from '../../store';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {\n\tconst { selectedBlocks, selectedClientIds } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocksByClientId, getSelectedBlockClientIds } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: map(\n\t\t\t\t\tcompact( getBlocksByClientId( ids ) ),\n\t\t\t\t\t( block ) => block.name\n\t\t\t\t),\n\t\t\t\tselectedClientIds: ids,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\t// Check if current selection of blocks is Groupable or Ungroupable\n\t// and pass this props down to ConvertToGroupButton.\n\tconst convertToGroupButtonProps = useConvertToGroupButtonProps();\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton = isGroupable || isUngroupable;\n\treturn (\n\t\t<Slot fillProps={ { ...fillProps, selectedBlocks, selectedClientIds } }>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif ( fills?.length > 0 || showConvertToGroupButton ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t\t<ConvertToGroupButton\n\t\t\t\t\t\t\t\t{ ...convertToGroupButtonProps }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t</Slot>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md\n *\n * @param {Object} props Fill props.\n * @return {WPElement} Element.\n */\nfunction BlockSettingsMenuControls( { ...props } ) {\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill { ...props } />\n\t\t</StyleProvider>\n\t);\n}\n\nBlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot;\n\nexport default BlockSettingsMenuControls;\n"]}
|