@wordpress/block-editor 14.10.1 → 14.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -1
- package/build/components/background-image-control/index.js +0 -1
- package/build/components/background-image-control/index.js.map +1 -1
- package/build/components/block-actions/index.js +0 -3
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -11
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js +1 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build/components/block-rename/modal.js +36 -11
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-rename/rename-control.js +2 -43
- package/build/components/block-rename/rename-control.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +12 -3
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-styles/preview.native.js +1 -1
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +7 -7
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/block-variation-transformations.js +2 -2
- package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build/components/block-switcher/index.js +1 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build/components/block-toolbar/index.native.js +2 -2
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/date-format-picker/index.js +1 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -2
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +2 -2
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +3 -3
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +11 -19
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/utils.js +6 -4
- package/build/components/grid/utils.js.map +1 -1
- package/build/components/iframe/get-compatibility-styles.js +1 -1
- package/build/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build/components/iframe/index.js +1 -1
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-size-control/index.js +2 -1
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/menu.js +13 -2
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inspector-controls-tabs/position-controls-panel.js +49 -21
- package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build/components/line-height-control/index.native.js +1 -1
- package/build/components/line-height-control/index.native.js.map +1 -1
- package/build/components/link-control/index.js +1 -1
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +1 -1
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block-select-button.js +5 -2
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/media-placeholder/index.js +1 -0
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/observe-typing/index.js +1 -1
- package/build/components/observe-typing/index.js.map +1 -1
- package/build/components/provider/index.js +0 -2
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +2 -2
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/event-listeners/input-rules.js +3 -3
- package/build/components/rich-text/event-listeners/input-rules.js.map +1 -1
- package/build/components/rich-text/native/use-format-types.js +1 -1
- package/build/components/rich-text/native/use-format-types.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +1 -1
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/spacing-sizes-control/index.js +44 -2
- package/build/components/spacing-sizes-control/index.js.map +1 -1
- package/build/components/spacing-sizes-control/linked-button.js +6 -9
- package/build/components/spacing-sizes-control/linked-button.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +0 -108
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/tabbed-sidebar/index.js +39 -0
- package/build/components/tabbed-sidebar/index.js.map +1 -1
- package/build/components/typewriter/index.js +1 -1
- package/build/components/typewriter/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +3 -3
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/use-block-commands/index.js +1 -1
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +1 -1
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/hooks/contrast-checker.js +41 -22
- package/build/hooks/contrast-checker.js.map +1 -1
- package/build/hooks/custom-class-name.js +2 -1
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/store/actions.js +1 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/selectors.js +18 -7
- package/build/store/selectors.js.map +1 -1
- package/build/utils/transform-styles/index.js +1 -1
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build/utils/use-notify-copy.js +19 -11
- package/build/utils/use-notify-copy.js.map +1 -1
- package/build-module/components/background-image-control/index.js +0 -1
- package/build-module/components/background-image-control/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +0 -3
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -11
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build-module/components/block-rename/modal.js +36 -11
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-rename/rename-control.js +2 -43
- package/build-module/components/block-rename/rename-control.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -3
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +1 -1
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +7 -7
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-variation-transformations.js +2 -2
- package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build-module/components/block-switcher/index.js +1 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js +2 -2
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +1 -1
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +2 -2
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +3 -3
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +11 -19
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/utils.js +6 -4
- package/build-module/components/grid/utils.js.map +1 -1
- package/build-module/components/iframe/get-compatibility-styles.js +1 -1
- package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build-module/components/iframe/index.js +1 -1
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-size-control/index.js +3 -2
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/menu.js +13 -2
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js +51 -23
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build-module/components/line-height-control/index.native.js +1 -1
- package/build-module/components/line-height-control/index.native.js.map +1 -1
- package/build-module/components/link-control/index.js +1 -1
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +1 -1
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +6 -3
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +1 -0
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/observe-typing/index.js +1 -1
- package/build-module/components/observe-typing/index.js.map +1 -1
- package/build-module/components/provider/index.js +0 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +2 -2
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/input-rules.js +3 -3
- package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
- package/build-module/components/rich-text/native/use-format-types.js +1 -1
- package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +1 -1
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/spacing-sizes-control/index.js +45 -1
- package/build-module/components/spacing-sizes-control/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/linked-button.js +7 -10
- package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +0 -104
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/tabbed-sidebar/index.js +39 -0
- package/build-module/components/tabbed-sidebar/index.js.map +1 -1
- package/build-module/components/typewriter/index.js +1 -1
- package/build-module/components/typewriter/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +3 -3
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +1 -1
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +1 -1
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/hooks/contrast-checker.js +42 -23
- package/build-module/hooks/contrast-checker.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +2 -1
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/store/actions.js +1 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/selectors.js +18 -7
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +1 -1
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-module/utils/use-notify-copy.js +19 -11
- package/build-module/utils/use-notify-copy.js.map +1 -1
- package/build-style/content-rtl.css +0 -9
- package/build-style/content.css +0 -9
- package/build-style/style-rtl.css +19 -21
- package/build-style/style.css +19 -21
- package/package.json +34 -33
- package/src/components/background-image-control/index.js +0 -1
- package/src/components/block-actions/index.js +0 -3
- package/src/components/block-icon/content.scss +1 -1
- package/src/components/{block-card → block-icon}/stories/index.story.js +16 -26
- package/src/components/block-icon/style.scss +1 -1
- package/src/components/block-inspector/index.js +7 -10
- package/src/components/block-list/use-block-props/use-focus-handler.js +1 -1
- package/src/components/block-preview/style.scss +1 -1
- package/src/components/block-rename/modal.js +40 -12
- package/src/components/block-rename/rename-control.js +1 -53
- package/src/components/block-settings-menu/block-settings-dropdown.js +16 -2
- package/src/components/block-styles/preview.native.js +1 -1
- package/src/components/block-switcher/block-transformations-menu.js +9 -9
- package/src/components/block-switcher/block-variation-transformations.js +2 -2
- package/src/components/block-switcher/index.js +1 -1
- package/src/components/block-switcher/use-transformed-patterns.js +1 -1
- package/src/components/block-toolbar/index.native.js +2 -2
- package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
- package/src/components/colors-gradients/style.scss +1 -0
- package/src/components/colors-gradients/test/control.js +2 -2
- package/src/components/date-format-picker/index.js +1 -1
- package/src/components/duotone-control/style.scss +2 -2
- package/src/components/global-styles/filters-panel.js +4 -2
- package/src/components/global-styles/image-settings-panel.js +2 -2
- package/src/components/global-styles/test/typography-utils.js +1 -1
- package/src/components/global-styles/use-global-styles-output.js +3 -3
- package/src/components/grid/grid-visualizer.js +10 -21
- package/src/components/grid/style.scss +1 -0
- package/src/components/grid/utils.js +6 -4
- package/src/components/iframe/get-compatibility-styles.js +1 -1
- package/src/components/iframe/index.js +1 -1
- package/src/components/image-size-control/index.js +6 -2
- package/src/components/inner-blocks/README.md +1 -1
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
- package/src/components/inserter/menu.js +11 -9
- package/src/components/inserter/reusable-blocks-tab.native.js +1 -1
- package/src/components/inspector-controls-tabs/position-controls-panel.js +62 -27
- package/src/components/line-height-control/index.native.js +1 -1
- package/src/components/link-control/README.md +2 -2
- package/src/components/link-control/index.js +1 -1
- package/src/components/link-control/test/index.js +3 -3
- package/src/components/link-control/use-search-handler.js +1 -1
- package/src/components/list-view/README.md +1 -1
- package/src/components/list-view/block-select-button.js +5 -5
- package/src/components/list-view/style.scss +3 -7
- package/src/components/media-placeholder/content.scss +0 -8
- package/src/components/media-placeholder/index.js +1 -0
- package/src/components/media-placeholder/style.scss +7 -0
- package/src/components/observe-typing/index.js +1 -1
- package/src/components/provider/index.js +0 -1
- package/src/components/provider/use-block-sync.js +2 -2
- package/src/components/resolution-tool/stories/index.story.js +52 -2
- package/src/components/rich-text/README.md +1 -1
- package/src/components/rich-text/event-listeners/input-rules.js +3 -3
- package/src/components/rich-text/native/use-format-types.js +1 -1
- package/src/components/rich-text/use-format-types.js +1 -1
- package/src/components/spacing-sizes-control/README.md +93 -0
- package/src/components/spacing-sizes-control/index.js +44 -1
- package/src/components/spacing-sizes-control/linked-button.js +8 -10
- package/src/components/spacing-sizes-control/test/utils.js +0 -151
- package/src/components/spacing-sizes-control/utils.js +0 -106
- package/src/components/tabbed-sidebar/README.md +24 -13
- package/src/components/tabbed-sidebar/index.js +38 -0
- package/src/components/tabbed-sidebar/stories/index.story.js +104 -0
- package/src/components/typewriter/index.js +1 -1
- package/src/components/unit-control/README.md +1 -1
- package/src/components/unit-control/stories/index.story.js +124 -0
- package/src/components/url-popover/image-url-input-ui.js +3 -3
- package/src/components/use-block-commands/index.js +1 -1
- package/src/components/use-moving-animation/index.js +1 -1
- package/src/components/use-settings/README.md +1 -1
- package/src/components/warning/content.scss +1 -1
- package/src/components/writing-flow/test/index.js +1 -1
- package/src/hooks/color.scss +0 -7
- package/src/hooks/contrast-checker.js +64 -30
- package/src/hooks/custom-class-name.js +2 -1
- package/src/store/actions.js +1 -1
- package/src/store/selectors.js +20 -12
- package/src/store/test/private-selectors.js +1 -1
- package/src/store/test/selectors.js +3 -3
- package/src/style.scss +1 -0
- package/src/utils/test/sorting.js +1 -1
- package/src/utils/transform-styles/index.js +1 -1
- package/src/utils/use-notify-copy.js +51 -43
- package/tsconfig.json +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_element","_a11y","_isEmptyString","_interopRequireDefault","_jsxRuntime","BlockRenameModal","blockName","
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_a11y","_data","_store","_","_isEmptyString","_interopRequireDefault","_jsxRuntime","BlockRenameModal","clientId","onClose","editedBlockName","setEditedBlockName","useState","blockInformation","useBlockDisplayInformation","metadata","useSelect","select","getBlockAttributes","blockEditorStore","updateBlockAttributes","useDispatch","blockName","name","originalBlockName","title","hasOverridesWarning","bindings","Object","values","some","binding","source","nameHasChanged","undefined","nameIsOriginal","nameIsEmpty","isEmptyString","isNameValid","autoSelectInputText","event","target","handleSubmit","newName","message","sprintf","__","speak","jsx","Modal","onRequestClose","overlayClassName","focusOnMount","size","children","onSubmit","e","preventDefault","jsxs","__experimentalVStack","spacing","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","value","label","help","placeholder","onChange","onFocus","__experimentalHStack","justify","Button","variant","onClick","accessibleWhenDisabled","disabled","type"],"sources":["@wordpress/block-editor/src/components/block-rename/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tTextControl,\n\tModal,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { speak } from '@wordpress/a11y';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockDisplayInformation } from '..';\nimport isEmptyString from './is-empty-string';\n\nexport default function BlockRenameModal( { clientId, onClose } ) {\n\tconst [ editedBlockName, setEditedBlockName ] = useState();\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst { metadata } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tmetadata: getBlockAttributes( clientId )?.metadata,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst blockName = metadata?.name || '';\n\tconst originalBlockName = blockInformation?.title;\n\t// Pattern Overrides is a WordPress-only feature but it also uses the Block Binding API.\n\t// Ideally this should not be inside the block editor package, but we keep it here for simplicity.\n\tconst hasOverridesWarning =\n\t\t!! blockName &&\n\t\t!! metadata?.bindings &&\n\t\tObject.values( metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t);\n\n\tconst nameHasChanged =\n\t\teditedBlockName !== undefined && editedBlockName !== blockName;\n\tconst nameIsOriginal = editedBlockName === originalBlockName;\n\tconst nameIsEmpty = isEmptyString( editedBlockName );\n\n\tconst isNameValid = nameHasChanged || nameIsOriginal;\n\n\tconst autoSelectInputText = ( event ) => event.target.select();\n\n\tconst handleSubmit = () => {\n\t\tconst newName =\n\t\t\tnameIsOriginal || nameIsEmpty ? undefined : editedBlockName;\n\t\tconst message =\n\t\t\tnameIsOriginal || nameIsEmpty\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name reset to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name changed to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t );\n\n\t\t// Must be assertive to immediately announce change.\n\t\tspeak( message, 'assertive' );\n\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\tmetadata: {\n\t\t\t\t...metadata,\n\t\t\t\tname: newName,\n\t\t\t},\n\t\t} );\n\n\t\t// Immediate close avoids ability to hit save multiple times.\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Rename' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\toverlayClassName=\"block-editor-block-rename-modal\"\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tif ( ! isNameValid ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\thandleSubmit();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing=\"3\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvalue={ editedBlockName ?? blockName }\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\thasOverridesWarning\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'This block allows overrides. Changing the name can cause problems with content entered into instances of this pattern.'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ originalBlockName }\n\t\t\t\t\t\tonChange={ setEditedBlockName }\n\t\t\t\t\t\tonFocus={ autoSelectInputText }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tdisabled={ ! isNameValid }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* wp:polyfill */
|
|
2
1
|
"use strict";
|
|
3
2
|
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
@@ -7,12 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
6
|
});
|
|
8
7
|
exports.default = BlockRenameControl;
|
|
9
8
|
var _components = require("@wordpress/components");
|
|
10
|
-
var _data = require("@wordpress/data");
|
|
11
9
|
var _i18n = require("@wordpress/i18n");
|
|
12
10
|
var _element = require("@wordpress/element");
|
|
13
|
-
var _store = require("../../store");
|
|
14
|
-
var _ = require("..");
|
|
15
|
-
var _isEmptyString = _interopRequireDefault(require("./is-empty-string"));
|
|
16
11
|
var _modal = _interopRequireDefault(require("./modal"));
|
|
17
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
13
|
/**
|
|
@@ -27,31 +22,6 @@ function BlockRenameControl({
|
|
|
27
22
|
clientId
|
|
28
23
|
}) {
|
|
29
24
|
const [renamingBlock, setRenamingBlock] = (0, _element.useState)(false);
|
|
30
|
-
const {
|
|
31
|
-
metadata
|
|
32
|
-
} = (0, _data.useSelect)(select => {
|
|
33
|
-
const {
|
|
34
|
-
getBlockAttributes
|
|
35
|
-
} = select(_store.store);
|
|
36
|
-
const _metadata = getBlockAttributes(clientId)?.metadata;
|
|
37
|
-
return {
|
|
38
|
-
metadata: _metadata
|
|
39
|
-
};
|
|
40
|
-
}, [clientId]);
|
|
41
|
-
const {
|
|
42
|
-
updateBlockAttributes
|
|
43
|
-
} = (0, _data.useDispatch)(_store.store);
|
|
44
|
-
const customName = metadata?.name;
|
|
45
|
-
const hasPatternOverrides = !!customName && !!metadata?.bindings && Object.values(metadata.bindings).some(binding => binding.source === 'core/pattern-overrides');
|
|
46
|
-
function onChange(newName) {
|
|
47
|
-
updateBlockAttributes([clientId], {
|
|
48
|
-
metadata: {
|
|
49
|
-
...metadata,
|
|
50
|
-
name: newName
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
const blockInformation = (0, _.useBlockDisplayInformation)(clientId);
|
|
55
25
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
56
26
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
|
|
57
27
|
onClick: () => {
|
|
@@ -61,19 +31,8 @@ function BlockRenameControl({
|
|
|
61
31
|
"aria-haspopup": "dialog",
|
|
62
32
|
children: (0, _i18n.__)('Rename')
|
|
63
33
|
}), renamingBlock && /*#__PURE__*/(0, _jsxRuntime.jsx)(_modal.default, {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
hasOverridesWarning: hasPatternOverrides,
|
|
67
|
-
onClose: () => setRenamingBlock(false),
|
|
68
|
-
onSave: newName => {
|
|
69
|
-
// If the new value is the block's original name (e.g. `Group`)
|
|
70
|
-
// or it is an empty string then assume the intent is to reset
|
|
71
|
-
// the value. Therefore reset the metadata.
|
|
72
|
-
if (newName === blockInformation?.title || (0, _isEmptyString.default)(newName)) {
|
|
73
|
-
newName = undefined;
|
|
74
|
-
}
|
|
75
|
-
onChange(newName);
|
|
76
|
-
}
|
|
34
|
+
clientId: clientId,
|
|
35
|
+
onClose: () => setRenamingBlock(false)
|
|
77
36
|
})]
|
|
78
37
|
});
|
|
79
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_modal","_interopRequireDefault","_jsxRuntime","BlockRenameControl","clientId","renamingBlock","setRenamingBlock","useState","jsxs","Fragment","children","jsx","MenuItem","onClick","__","default","onClose"],"sources":["@wordpress/block-editor/src/components/block-rename/rename-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockRenameModal from './modal';\n\nexport default function BlockRenameControl( { clientId } ) {\n\tconst [ renamingBlock, setRenamingBlock ] = useState( false );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetRenamingBlock( true );\n\t\t\t\t} }\n\t\t\t\taria-expanded={ renamingBlock }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ renamingBlock && (\n\t\t\t\t<BlockRenameModal\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tonClose={ () => setRenamingBlock( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAAuC,IAAAK,WAAA,GAAAL,OAAA;AAVvC;AACA;AACA;;AAKA;AACA;AACA;;AAGe,SAASM,kBAAkBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC1D,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAE7D,oBACC,IAAAL,WAAA,CAAAM,IAAA,EAAAN,WAAA,CAAAO,QAAA;IAAAC,QAAA,gBACC,IAAAR,WAAA,CAAAS,GAAA,EAACf,WAAA,CAAAgB,QAAQ;MACRC,OAAO,EAAGA,CAAA,KAAM;QACfP,gBAAgB,CAAE,IAAK,CAAC;MACzB,CAAG;MACH,iBAAgBD,aAAe;MAC/B,iBAAc,QAAQ;MAAAK,QAAA,EAEpB,IAAAI,QAAE,EAAE,QAAS;IAAC,CACP,CAAC,EACTT,aAAa,iBACd,IAAAH,WAAA,CAAAS,GAAA,EAACX,MAAA,CAAAe,OAAgB;MAChBX,QAAQ,EAAGA,QAAU;MACrBY,OAAO,EAAGA,CAAA,KAAMV,gBAAgB,CAAE,KAAM;IAAG,CAC3C,CACD;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
|
|
@@ -24,6 +24,7 @@ var _blockSettingsMenuControls = _interopRequireDefault(require("../block-settin
|
|
|
24
24
|
var _blockParentSelectorMenuItem = _interopRequireDefault(require("./block-parent-selector-menu-item"));
|
|
25
25
|
var _store = require("../../store");
|
|
26
26
|
var _lockUnlock = require("../../lock-unlock");
|
|
27
|
+
var _useNotifyCopy = require("../../utils/use-notify-copy");
|
|
27
28
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
28
29
|
/**
|
|
29
30
|
* WordPress dependencies
|
|
@@ -41,12 +42,19 @@ function CopyMenuItem({
|
|
|
41
42
|
clientIds,
|
|
42
43
|
onCopy,
|
|
43
44
|
label,
|
|
44
|
-
shortcut
|
|
45
|
+
shortcut,
|
|
46
|
+
eventType = 'copy'
|
|
45
47
|
}) {
|
|
46
48
|
const {
|
|
47
49
|
getBlocksByClientId
|
|
48
50
|
} = (0, _data.useSelect)(_store.store);
|
|
49
|
-
const
|
|
51
|
+
const notifyCopy = (0, _useNotifyCopy.useNotifyCopy)();
|
|
52
|
+
const ref = (0, _compose.useCopyToClipboard)(() => (0, _blocks.serialize)(getBlocksByClientId(clientIds)), () => {
|
|
53
|
+
if (onCopy && eventType === 'copy') {
|
|
54
|
+
onCopy();
|
|
55
|
+
}
|
|
56
|
+
notifyCopy(eventType, clientIds);
|
|
57
|
+
});
|
|
50
58
|
const copyMenuItemLabel = label ? label : (0, _i18n.__)('Copy');
|
|
51
59
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
|
|
52
60
|
ref: ref,
|
|
@@ -232,7 +240,8 @@ function BlockSettingsDropdown({
|
|
|
232
240
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CopyMenuItem, {
|
|
233
241
|
clientIds: clientIds,
|
|
234
242
|
onCopy: onCopy,
|
|
235
|
-
label: (0, _i18n.__)('Copy styles')
|
|
243
|
+
label: (0, _i18n.__)('Copy styles'),
|
|
244
|
+
eventType: "copyStyles"
|
|
236
245
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
|
|
237
246
|
onClick: onPasteStyles,
|
|
238
247
|
children: (0, _i18n.__)('Paste styles')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_components","_data","_icons","_element","_i18n","_keycodes","_keyboardShortcuts","_compose","_blockActions","_interopRequireDefault","_blockCommentIconSlot","_blockHtmlConvertButton","_blockSettingsMenuFirstItem","_blockSettingsMenuControls","_blockParentSelectorMenuItem","_store","_lockUnlock","_jsxRuntime","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","getBlocksByClientId","useSelect","blockEditorStore","ref","useCopyToClipboard","serialize","copyMenuItemLabel","__","jsx","MenuItem","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","select","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","unlock","getActiveBlockVariation","blocksStore","_firstParentClientId","parentBlockName","getBlockType","getBlockOrder","setOpenedBlockSettingsMenu","useDispatch","shortcuts","getShortcutRepresentation","keyboardShortcutsStore","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","shouldShowBlockParentMenuItem","default","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertBlock","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","isEmpty","DropdownMenu","icon","moreVertical","popoverProps","noIcons","onClose","jsxs","Fragment","MenuGroup","Slot","fillProps","parentClientId","displayShortcut","primary","onClick","pipe","Children","map","child","cloneElement","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport CommentIconSlotFill from '../../components/collab/block-comment-icon-slot';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { clientIds, onCopy, label, shortcut } ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\tonCopy\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\n\tconst {\n\t\tfirstParentClientId,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\topenedBlockSettingsMenu,\n\t\tisContentOnly,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetOpenedBlockSettingsMenu,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\topenedBlockSettingsMenu: getOpenedBlockSettingsMenu(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\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\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t}\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tfunction onToggle( localOpen ) {\n\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t} else if (\n\t\t\t! localOpen &&\n\t\t\topenedBlockSettingsMenu &&\n\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t) {\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t}\n\t}\n\n\tconst shouldShowBlockParentMenuItem =\n\t\t! parentBlockIsSelected && !! firstParentClientId;\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\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\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\tonPasteStyles,\n\t\t\t} ) => {\n\t\t\t\t// It is possible that some plugins register fills for this menu\n\t\t\t\t// even if Core doesn't render anything in the block settings menu.\n\t\t\t\t// in which case, we may want to render the menu anyway.\n\t\t\t\t// That said for now, we can start more conservative.\n\t\t\t\tconst isEmpty =\n\t\t\t\t\t! canRemove &&\n\t\t\t\t\t! canDuplicate &&\n\t\t\t\t\t! canInsertBlock &&\n\t\t\t\t\tisContentOnly;\n\n\t\t\t\tif ( isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t\topen={ open }\n\t\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ shouldShowBlockParentMenuItem && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary(\n\t\t\t\t\t\t\t\t\t\t\t'c'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\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\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\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.duplicate }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\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\t{ canInsertBlock && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<CommentIconSlotFill.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\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{ typeof children === 'function'\n\t\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\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\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\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.remove }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\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</DropdownMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_blocks","require","_components","_data","_icons","_element","_i18n","_keycodes","_keyboardShortcuts","_compose","_blockActions","_interopRequireDefault","_blockCommentIconSlot","_blockHtmlConvertButton","_blockSettingsMenuFirstItem","_blockSettingsMenuControls","_blockParentSelectorMenuItem","_store","_lockUnlock","_useNotifyCopy","_jsxRuntime","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","eventType","getBlocksByClientId","useSelect","blockEditorStore","notifyCopy","useNotifyCopy","ref","useCopyToClipboard","serialize","copyMenuItemLabel","__","jsx","MenuItem","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","select","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","unlock","getActiveBlockVariation","blocksStore","_firstParentClientId","parentBlockName","getBlockType","getBlockOrder","setOpenedBlockSettingsMenu","useDispatch","shortcuts","getShortcutRepresentation","keyboardShortcutsStore","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","shouldShowBlockParentMenuItem","default","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertBlock","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","isEmpty","DropdownMenu","icon","moreVertical","popoverProps","noIcons","onClose","jsxs","Fragment","MenuGroup","Slot","fillProps","parentClientId","displayShortcut","primary","onClick","pipe","Children","map","child","cloneElement","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport CommentIconSlotFill from '../../components/collab/block-comment-icon-slot';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( {\n\tclientIds,\n\tonCopy,\n\tlabel,\n\tshortcut,\n\teventType = 'copy',\n} ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t() => {\n\t\t\tif ( onCopy && eventType === 'copy' ) {\n\t\t\t\tonCopy();\n\t\t\t}\n\t\t\tnotifyCopy( eventType, clientIds );\n\t\t}\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\n\tconst {\n\t\tfirstParentClientId,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\topenedBlockSettingsMenu,\n\t\tisContentOnly,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetOpenedBlockSettingsMenu,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\topenedBlockSettingsMenu: getOpenedBlockSettingsMenu(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\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\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t}\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tfunction onToggle( localOpen ) {\n\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t} else if (\n\t\t\t! localOpen &&\n\t\t\topenedBlockSettingsMenu &&\n\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t) {\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t}\n\t}\n\n\tconst shouldShowBlockParentMenuItem =\n\t\t! parentBlockIsSelected && !! firstParentClientId;\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\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\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\tonPasteStyles,\n\t\t\t} ) => {\n\t\t\t\t// It is possible that some plugins register fills for this menu\n\t\t\t\t// even if Core doesn't render anything in the block settings menu.\n\t\t\t\t// in which case, we may want to render the menu anyway.\n\t\t\t\t// That said for now, we can start more conservative.\n\t\t\t\tconst isEmpty =\n\t\t\t\t\t! canRemove &&\n\t\t\t\t\t! canDuplicate &&\n\t\t\t\t\t! canInsertBlock &&\n\t\t\t\t\tisContentOnly;\n\n\t\t\t\tif ( isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t\topen={ open }\n\t\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ shouldShowBlockParentMenuItem && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary(\n\t\t\t\t\t\t\t\t\t\t\t'c'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\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\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\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.duplicate }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\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\t{ canInsertBlock && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<CommentIconSlotFill.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t\t\teventType=\"copyStyles\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\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{ typeof children === 'function'\n\t\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\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\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\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.remove }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\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</DropdownMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,7 +40,7 @@ function StylePreview({
|
|
|
40
40
|
const opacity = (0, _element.useRef)(new _reactNative.Animated.Value(1)).current;
|
|
41
41
|
function onLayout() {
|
|
42
42
|
const columnsNum =
|
|
43
|
-
// To indicate scroll
|
|
43
|
+
// To indicate scroll availability, there is a need to display additional half the column.
|
|
44
44
|
Math.floor(_components.BottomSheet.getWidth() / MAX_ITEM_WIDTH) + HALF_COLUMN;
|
|
45
45
|
setItemWidth(_components.BottomSheet.getWidth() / columnsNum);
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_components","_element","_compose","_style","_interopRequireDefault","_jsxRuntime","MAX_ITEM_WIDTH","HALF_COLUMN","StylePreview","onPress","isActive","style","url","itemWidth","setItemWidth","useState","label","name","opacity","useRef","Animated","Value","current","onLayout","columnsNum","Math","floor","BottomSheet","getWidth","useEffect","dimensionsChangeSubscription","Dimensions","addEventListener","remove","labelStyle","usePreferredColorSchemeStyle","styles","labelDark","animateOutline","setValue","timing","toValue","duration","useNativeDriver","easing","Easing","linear","start","innerOutlineStyle","innerOutline","innerOutlineDark","getOutline","outlineStyles","map","outlineStyle","index","jsx","View","TouchableWithoutFeedback","children","jsxs","container","width","imageWrapper","outline","Image","image","source","uri","Text","labelSelected","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/block-styles/preview.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tView,\n\tTouchableWithoutFeedback,\n\tText,\n\tDimensions,\n\tAnimated,\n\tEasing,\n\tImage,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { BottomSheet } from '@wordpress/components';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst MAX_ITEM_WIDTH = 120;\nconst HALF_COLUMN = 0.5;\n\nfunction StylePreview( { onPress, isActive, style, url } ) {\n\tconst [ itemWidth, setItemWidth ] = useState( MAX_ITEM_WIDTH );\n\tconst { label, name } = style;\n\tconst opacity = useRef( new Animated.Value( 1 ) ).current;\n\n\tfunction onLayout() {\n\t\tconst columnsNum =\n\t\t\t// To indicate scroll
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_components","_element","_compose","_style","_interopRequireDefault","_jsxRuntime","MAX_ITEM_WIDTH","HALF_COLUMN","StylePreview","onPress","isActive","style","url","itemWidth","setItemWidth","useState","label","name","opacity","useRef","Animated","Value","current","onLayout","columnsNum","Math","floor","BottomSheet","getWidth","useEffect","dimensionsChangeSubscription","Dimensions","addEventListener","remove","labelStyle","usePreferredColorSchemeStyle","styles","labelDark","animateOutline","setValue","timing","toValue","duration","useNativeDriver","easing","Easing","linear","start","innerOutlineStyle","innerOutline","innerOutlineDark","getOutline","outlineStyles","map","outlineStyle","index","jsx","View","TouchableWithoutFeedback","children","jsxs","container","width","imageWrapper","outline","Image","image","source","uri","Text","labelSelected","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/block-styles/preview.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tView,\n\tTouchableWithoutFeedback,\n\tText,\n\tDimensions,\n\tAnimated,\n\tEasing,\n\tImage,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { BottomSheet } from '@wordpress/components';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst MAX_ITEM_WIDTH = 120;\nconst HALF_COLUMN = 0.5;\n\nfunction StylePreview( { onPress, isActive, style, url } ) {\n\tconst [ itemWidth, setItemWidth ] = useState( MAX_ITEM_WIDTH );\n\tconst { label, name } = style;\n\tconst opacity = useRef( new Animated.Value( 1 ) ).current;\n\n\tfunction onLayout() {\n\t\tconst columnsNum =\n\t\t\t// To indicate scroll availability, there is a need to display additional half the column.\n\t\t\tMath.floor( BottomSheet.getWidth() / MAX_ITEM_WIDTH ) + HALF_COLUMN;\n\t\tsetItemWidth( BottomSheet.getWidth() / columnsNum );\n\t}\n\n\tuseEffect( () => {\n\t\tonLayout();\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonLayout\n\t\t);\n\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.remove();\n\t\t};\n\t}, [] );\n\n\tconst labelStyle = usePreferredColorSchemeStyle(\n\t\tstyles.label,\n\t\tstyles.labelDark\n\t);\n\n\tconst animateOutline = () => {\n\t\topacity.setValue( 0 );\n\t\tAnimated.timing( opacity, {\n\t\t\ttoValue: 1,\n\t\t\tduration: 100,\n\t\t\tuseNativeDriver: true,\n\t\t\teasing: Easing.linear,\n\t\t} ).start();\n\t};\n\n\tconst innerOutlineStyle = usePreferredColorSchemeStyle(\n\t\tstyles.innerOutline,\n\t\tstyles.innerOutlineDark\n\t);\n\n\tconst getOutline = ( outlineStyles ) =>\n\t\toutlineStyles.map( ( outlineStyle, index ) => {\n\t\t\treturn (\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [ outlineStyle, { opacity }, styles[ name ] ] }\n\t\t\t\t\tkey={ index }\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ () => {\n\t\t\t\tonPress();\n\t\t\t\tanimateOutline();\n\t\t\t} }\n\t\t>\n\t\t\t<View style={ [ styles.container, { width: itemWidth } ] }>\n\t\t\t\t<View style={ styles.imageWrapper }>\n\t\t\t\t\t{ isActive &&\n\t\t\t\t\t\tgetOutline( [ styles.outline, innerOutlineStyle ] ) }\n\t\t\t\t\t<Image\n\t\t\t\t\t\tstyle={ [ styles.image, styles[ name ] ] }\n\t\t\t\t\t\tsource={ { uri: url } }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t\t<Text\n\t\t\t\t\tstyle={ [ labelStyle, isActive && styles.labelSelected ] }\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</Text>\n\t\t\t</View>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n\nexport default StylePreview;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -32,19 +32,19 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
32
32
|
* @param {Object[]} possibleBlockTransformations The available block transformations.
|
|
33
33
|
* @return {Record<string, Object[]>} The grouped block transformations.
|
|
34
34
|
*/function useGroupedTransforms(possibleBlockTransformations) {
|
|
35
|
-
const
|
|
35
|
+
const priorityContentTransformationBlocks = {
|
|
36
36
|
'core/paragraph': 1,
|
|
37
37
|
'core/heading': 2,
|
|
38
38
|
'core/list': 3,
|
|
39
39
|
'core/quote': 4
|
|
40
40
|
};
|
|
41
41
|
const transformations = (0, _element.useMemo)(() => {
|
|
42
|
-
const
|
|
42
|
+
const priorityTextTransformsNames = Object.keys(priorityContentTransformationBlocks);
|
|
43
43
|
const groupedPossibleTransforms = possibleBlockTransformations.reduce((accumulator, item) => {
|
|
44
44
|
const {
|
|
45
45
|
name
|
|
46
46
|
} = item;
|
|
47
|
-
if (
|
|
47
|
+
if (priorityTextTransformsNames.includes(name)) {
|
|
48
48
|
accumulator.priorityTextTransformations.push(item);
|
|
49
49
|
} else {
|
|
50
50
|
accumulator.restTransformations.push(item);
|
|
@@ -73,7 +73,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
73
73
|
}, {
|
|
74
74
|
name: nextName
|
|
75
75
|
}) => {
|
|
76
|
-
return
|
|
76
|
+
return priorityContentTransformationBlocks[currentName] < priorityContentTransformationBlocks[nextName] ? -1 : 1;
|
|
77
77
|
});
|
|
78
78
|
return transformations;
|
|
79
79
|
}
|
|
@@ -108,7 +108,7 @@ const BlockTransformationsMenu = ({
|
|
|
108
108
|
transformations: possibleBlockVariationTransformations,
|
|
109
109
|
blocks: blocks,
|
|
110
110
|
onSelect: onSelectVariation
|
|
111
|
-
}), priorityTextTransformations.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
111
|
+
}), priorityTextTransformations.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockTransformationItem, {
|
|
112
112
|
item: item,
|
|
113
113
|
onSelect: onSelect,
|
|
114
114
|
setHoveredTransformItemName: setHoveredTransformItemName
|
|
@@ -124,13 +124,13 @@ function RestTransformationItems({
|
|
|
124
124
|
onSelect,
|
|
125
125
|
setHoveredTransformItemName
|
|
126
126
|
}) {
|
|
127
|
-
return restTransformations.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
127
|
+
return restTransformations.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockTransformationItem, {
|
|
128
128
|
item: item,
|
|
129
129
|
onSelect: onSelect,
|
|
130
130
|
setHoveredTransformItemName: setHoveredTransformItemName
|
|
131
131
|
}, item.name));
|
|
132
132
|
}
|
|
133
|
-
function
|
|
133
|
+
function BlockTransformationItem({
|
|
134
134
|
item,
|
|
135
135
|
onSelect,
|
|
136
136
|
setHoveredTransformItemName
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_components","_blocks","_element","_blockIcon","_interopRequireDefault","_previewBlockPopover","_blockVariationTransformations","_jsxRuntime","useGroupedTransforms","possibleBlockTransformations","priorityContentTranformationBlocks","transformations","useMemo","priorityTextTranformsNames","Object","keys","groupedPossibleTransforms","reduce","accumulator","item","name","includes","priorityTextTransformations","push","restTransformations","length","singleQuote","pop","sort","currentName","nextName","BlockTransformationsMenu","className","possibleBlockVariationTransformations","onSelect","onSelectVariation","blocks","hoveredTransformItemName","setHoveredTransformItemName","useState","hasBothContentTransformations","restTransformItems","jsx","RestTransformationItems","jsxs","Fragment","children","MenuGroup","label","__","default","switchToBlockType","map","BlockTranformationItem","icon","title","isDisabled","MenuItem","getBlockMenuDefaultClassName","onClick","event","preventDefault","disabled","onMouseLeave","onMouseEnter","showColors","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-switcher/block-transformations-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuGroup, MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\nimport BlockVariationTransformations from './block-variation-transformations';\n\n/**\n * Helper hook to group transformations to display them in a specific order in the UI.\n * For now we group only priority content driven transformations(ex. paragraph -> heading).\n *\n * Later on we could also group 'layout' transformations(ex. paragraph -> group) and\n * display them in different sections.\n *\n * @param {Object[]} possibleBlockTransformations The available block transformations.\n * @return {Record<string, Object[]>} The grouped block transformations.\n */\nfunction useGroupedTransforms( possibleBlockTransformations ) {\n\tconst priorityContentTranformationBlocks = {\n\t\t'core/paragraph': 1,\n\t\t'core/heading': 2,\n\t\t'core/list': 3,\n\t\t'core/quote': 4,\n\t};\n\tconst transformations = useMemo( () => {\n\t\tconst priorityTextTranformsNames = Object.keys(\n\t\t\tpriorityContentTranformationBlocks\n\t\t);\n\t\tconst groupedPossibleTransforms = possibleBlockTransformations.reduce(\n\t\t\t( accumulator, item ) => {\n\t\t\t\tconst { name } = item;\n\t\t\t\tif ( priorityTextTranformsNames.includes( name ) ) {\n\t\t\t\t\taccumulator.priorityTextTransformations.push( item );\n\t\t\t\t} else {\n\t\t\t\t\taccumulator.restTransformations.push( item );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{ priorityTextTransformations: [], restTransformations: [] }\n\t\t);\n\t\t/**\n\t\t * If there is only one priority text transformation and it's a Quote,\n\t\t * is should move to the rest transformations. This is because Quote can\n\t\t * be a container for any block type, so in multi-block selection it will\n\t\t * always be suggested, even for non-text blocks.\n\t\t */\n\t\tif (\n\t\t\tgroupedPossibleTransforms.priorityTextTransformations.length ===\n\t\t\t\t1 &&\n\t\t\tgroupedPossibleTransforms.priorityTextTransformations[ 0 ].name ===\n\t\t\t\t'core/quote'\n\t\t) {\n\t\t\tconst singleQuote =\n\t\t\t\tgroupedPossibleTransforms.priorityTextTransformations.pop();\n\t\t\tgroupedPossibleTransforms.restTransformations.push( singleQuote );\n\t\t}\n\t\treturn groupedPossibleTransforms;\n\t}, [ possibleBlockTransformations ] );\n\n\t// Order the priority text transformations.\n\ttransformations.priorityTextTransformations.sort(\n\t\t( { name: currentName }, { name: nextName } ) => {\n\t\t\treturn priorityContentTranformationBlocks[ currentName ] <\n\t\t\t\tpriorityContentTranformationBlocks[ nextName ]\n\t\t\t\t? -1\n\t\t\t\t: 1;\n\t\t}\n\t);\n\treturn transformations;\n}\n\nconst BlockTransformationsMenu = ( {\n\tclassName,\n\tpossibleBlockTransformations,\n\tpossibleBlockVariationTransformations,\n\tonSelect,\n\tonSelectVariation,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\n\tconst { priorityTextTransformations, restTransformations } =\n\t\tuseGroupedTransforms( possibleBlockTransformations );\n\t// We have to check if both content transformations(priority and rest) are set\n\t// in order to create a separate MenuGroup for them.\n\tconst hasBothContentTransformations =\n\t\tpriorityTextTransformations.length && restTransformations.length;\n\tconst restTransformItems = !! restTransformations.length && (\n\t\t<RestTransformationItems\n\t\t\trestTransformations={ restTransformations }\n\t\t\tonSelect={ onSelect }\n\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t/>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<MenuGroup label={ __( 'Transform to' ) } className={ className }>\n\t\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\t\tblocks={ switchToBlockType(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\thoveredTransformItemName\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! possibleBlockVariationTransformations?.length && (\n\t\t\t\t\t<BlockVariationTransformations\n\t\t\t\t\t\ttransformations={\n\t\t\t\t\t\t\tpossibleBlockVariationTransformations\n\t\t\t\t\t\t}\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ priorityTextTransformations.map( ( item ) => (\n\t\t\t\t\t<BlockTranformationItem\n\t\t\t\t\t\tkey={ item.name }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsetHoveredTransformItemName={\n\t\t\t\t\t\t\tsetHoveredTransformItemName\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t\t{ ! hasBothContentTransformations && restTransformItems }\n\t\t\t</MenuGroup>\n\t\t\t{ !! hasBothContentTransformations && (\n\t\t\t\t<MenuGroup className={ className }>\n\t\t\t\t\t{ restTransformItems }\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nfunction RestTransformationItems( {\n\trestTransformations,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\treturn restTransformations.map( ( item ) => (\n\t\t<BlockTranformationItem\n\t\t\tkey={ item.name }\n\t\t\titem={ item }\n\t\t\tonSelect={ onSelect }\n\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t/>\n\t) );\n}\n\nfunction BlockTranformationItem( {\n\titem,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\tconst { name, icon, title, isDisabled } = item;\n\treturn (\n\t\t<MenuItem\n\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonSelect( name );\n\t\t\t} }\n\t\t\tdisabled={ isDisabled }\n\t\t\tonMouseLeave={ () => setHoveredTransformItemName( null ) }\n\t\t\tonMouseEnter={ () => setHoveredTransformItemName( name ) }\n\t\t>\n\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t{ title }\n\t\t</MenuItem>\n\t);\n}\n\nexport default BlockTransformationsMenu;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_i18n","require","_components","_blocks","_element","_blockIcon","_interopRequireDefault","_previewBlockPopover","_blockVariationTransformations","_jsxRuntime","useGroupedTransforms","possibleBlockTransformations","priorityContentTransformationBlocks","transformations","useMemo","priorityTextTransformsNames","Object","keys","groupedPossibleTransforms","reduce","accumulator","item","name","includes","priorityTextTransformations","push","restTransformations","length","singleQuote","pop","sort","currentName","nextName","BlockTransformationsMenu","className","possibleBlockVariationTransformations","onSelect","onSelectVariation","blocks","hoveredTransformItemName","setHoveredTransformItemName","useState","hasBothContentTransformations","restTransformItems","jsx","RestTransformationItems","jsxs","Fragment","children","MenuGroup","label","__","default","switchToBlockType","map","BlockTransformationItem","icon","title","isDisabled","MenuItem","getBlockMenuDefaultClassName","onClick","event","preventDefault","disabled","onMouseLeave","onMouseEnter","showColors","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-switcher/block-transformations-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuGroup, MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\nimport BlockVariationTransformations from './block-variation-transformations';\n\n/**\n * Helper hook to group transformations to display them in a specific order in the UI.\n * For now we group only priority content driven transformations(ex. paragraph -> heading).\n *\n * Later on we could also group 'layout' transformations(ex. paragraph -> group) and\n * display them in different sections.\n *\n * @param {Object[]} possibleBlockTransformations The available block transformations.\n * @return {Record<string, Object[]>} The grouped block transformations.\n */\nfunction useGroupedTransforms( possibleBlockTransformations ) {\n\tconst priorityContentTransformationBlocks = {\n\t\t'core/paragraph': 1,\n\t\t'core/heading': 2,\n\t\t'core/list': 3,\n\t\t'core/quote': 4,\n\t};\n\tconst transformations = useMemo( () => {\n\t\tconst priorityTextTransformsNames = Object.keys(\n\t\t\tpriorityContentTransformationBlocks\n\t\t);\n\t\tconst groupedPossibleTransforms = possibleBlockTransformations.reduce(\n\t\t\t( accumulator, item ) => {\n\t\t\t\tconst { name } = item;\n\t\t\t\tif ( priorityTextTransformsNames.includes( name ) ) {\n\t\t\t\t\taccumulator.priorityTextTransformations.push( item );\n\t\t\t\t} else {\n\t\t\t\t\taccumulator.restTransformations.push( item );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{ priorityTextTransformations: [], restTransformations: [] }\n\t\t);\n\t\t/**\n\t\t * If there is only one priority text transformation and it's a Quote,\n\t\t * is should move to the rest transformations. This is because Quote can\n\t\t * be a container for any block type, so in multi-block selection it will\n\t\t * always be suggested, even for non-text blocks.\n\t\t */\n\t\tif (\n\t\t\tgroupedPossibleTransforms.priorityTextTransformations.length ===\n\t\t\t\t1 &&\n\t\t\tgroupedPossibleTransforms.priorityTextTransformations[ 0 ].name ===\n\t\t\t\t'core/quote'\n\t\t) {\n\t\t\tconst singleQuote =\n\t\t\t\tgroupedPossibleTransforms.priorityTextTransformations.pop();\n\t\t\tgroupedPossibleTransforms.restTransformations.push( singleQuote );\n\t\t}\n\t\treturn groupedPossibleTransforms;\n\t}, [ possibleBlockTransformations ] );\n\n\t// Order the priority text transformations.\n\ttransformations.priorityTextTransformations.sort(\n\t\t( { name: currentName }, { name: nextName } ) => {\n\t\t\treturn priorityContentTransformationBlocks[ currentName ] <\n\t\t\t\tpriorityContentTransformationBlocks[ nextName ]\n\t\t\t\t? -1\n\t\t\t\t: 1;\n\t\t}\n\t);\n\treturn transformations;\n}\n\nconst BlockTransformationsMenu = ( {\n\tclassName,\n\tpossibleBlockTransformations,\n\tpossibleBlockVariationTransformations,\n\tonSelect,\n\tonSelectVariation,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\n\tconst { priorityTextTransformations, restTransformations } =\n\t\tuseGroupedTransforms( possibleBlockTransformations );\n\t// We have to check if both content transformations(priority and rest) are set\n\t// in order to create a separate MenuGroup for them.\n\tconst hasBothContentTransformations =\n\t\tpriorityTextTransformations.length && restTransformations.length;\n\tconst restTransformItems = !! restTransformations.length && (\n\t\t<RestTransformationItems\n\t\t\trestTransformations={ restTransformations }\n\t\t\tonSelect={ onSelect }\n\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t/>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<MenuGroup label={ __( 'Transform to' ) } className={ className }>\n\t\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\t\tblocks={ switchToBlockType(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\thoveredTransformItemName\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! possibleBlockVariationTransformations?.length && (\n\t\t\t\t\t<BlockVariationTransformations\n\t\t\t\t\t\ttransformations={\n\t\t\t\t\t\t\tpossibleBlockVariationTransformations\n\t\t\t\t\t\t}\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ priorityTextTransformations.map( ( item ) => (\n\t\t\t\t\t<BlockTransformationItem\n\t\t\t\t\t\tkey={ item.name }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsetHoveredTransformItemName={\n\t\t\t\t\t\t\tsetHoveredTransformItemName\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t\t{ ! hasBothContentTransformations && restTransformItems }\n\t\t\t</MenuGroup>\n\t\t\t{ !! hasBothContentTransformations && (\n\t\t\t\t<MenuGroup className={ className }>\n\t\t\t\t\t{ restTransformItems }\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nfunction RestTransformationItems( {\n\trestTransformations,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\treturn restTransformations.map( ( item ) => (\n\t\t<BlockTransformationItem\n\t\t\tkey={ item.name }\n\t\t\titem={ item }\n\t\t\tonSelect={ onSelect }\n\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t/>\n\t) );\n}\n\nfunction BlockTransformationItem( {\n\titem,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\tconst { name, icon, title, isDisabled } = item;\n\treturn (\n\t\t<MenuItem\n\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonSelect( name );\n\t\t\t} }\n\t\t\tdisabled={ isDisabled }\n\t\t\tonMouseLeave={ () => setHoveredTransformItemName( null ) }\n\t\t\tonMouseEnter={ () => setHoveredTransformItemName( name ) }\n\t\t>\n\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t{ title }\n\t\t</MenuItem>\n\t);\n}\n\nexport default BlockTransformationsMenu;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -69,14 +69,14 @@ const BlockVariationTransformations = ({
|
|
|
69
69
|
blocks: (0, _blocks.cloneBlock)(blocks[0], transformations.find(({
|
|
70
70
|
name
|
|
71
71
|
}) => name === hoveredTransformItemName).attributes)
|
|
72
|
-
}), transformations?.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
72
|
+
}), transformations?.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockVariationTransformationItem, {
|
|
73
73
|
item: item,
|
|
74
74
|
onSelect: onSelect,
|
|
75
75
|
setHoveredTransformItemName: setHoveredTransformItemName
|
|
76
76
|
}, item.name))]
|
|
77
77
|
});
|
|
78
78
|
};
|
|
79
|
-
function
|
|
79
|
+
function BlockVariationTransformationItem({
|
|
80
80
|
item,
|
|
81
81
|
onSelect,
|
|
82
82
|
setHoveredTransformItemName
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_blocks","_data","_element","_store","_blockIcon","_interopRequireDefault","_previewBlockPopover","_jsxRuntime","EMPTY_OBJECT","useBlockVariationTransforms","clientIds","blocks","activeBlockVariation","blockVariationTransformations","useSelect","select","getBlockAttributes","canRemoveBlocks","blockEditorStore","getActiveBlockVariation","getBlockVariations","blocksStore","canRemove","length","firstBlock","name","clientId","transformations","useMemo","filter","BlockVariationTransformations","onSelect","hoveredTransformItemName","setHoveredTransformItemName","useState","jsxs","Fragment","children","jsx","default","cloneBlock","find","attributes","map","item","
|
|
1
|
+
{"version":3,"names":["_components","require","_blocks","_data","_element","_store","_blockIcon","_interopRequireDefault","_previewBlockPopover","_jsxRuntime","EMPTY_OBJECT","useBlockVariationTransforms","clientIds","blocks","activeBlockVariation","blockVariationTransformations","useSelect","select","getBlockAttributes","canRemoveBlocks","blockEditorStore","getActiveBlockVariation","getBlockVariations","blocksStore","canRemove","length","firstBlock","name","clientId","transformations","useMemo","filter","BlockVariationTransformations","onSelect","hoveredTransformItemName","setHoveredTransformItemName","useState","jsxs","Fragment","children","jsx","default","cloneBlock","find","attributes","map","item","BlockVariationTransformationItem","icon","title","MenuItem","className","getBlockMenuDefaultClassName","onClick","event","preventDefault","onMouseLeave","onMouseEnter","showColors","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-switcher/block-variation-transformations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tcloneBlock,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\n\nconst EMPTY_OBJECT = {};\n\nexport function useBlockVariationTransforms( { clientIds, blocks } ) {\n\tconst { activeBlockVariation, blockVariationTransformations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, canRemoveBlocks } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\tconst canRemove = canRemoveBlocks( clientIds );\n\t\t\t// Only handle single selected blocks for now.\n\t\t\tif ( blocks.length !== 1 || ! canRemove ) {\n\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t}\n\t\t\tconst [ firstBlock ] = blocks;\n\t\t\treturn {\n\t\t\t\tblockVariationTransformations: getBlockVariations(\n\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\t'transform'\n\t\t\t\t),\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\tgetBlockAttributes( firstBlock.clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, blocks ]\n\t);\n\tconst transformations = useMemo( () => {\n\t\treturn blockVariationTransformations?.filter(\n\t\t\t( { name } ) => name !== activeBlockVariation?.name\n\t\t);\n\t}, [ blockVariationTransformations, activeBlockVariation ] );\n\treturn transformations;\n}\n\nconst BlockVariationTransformations = ( {\n\ttransformations,\n\tonSelect,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\treturn (\n\t\t<>\n\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\tblocks={ cloneBlock(\n\t\t\t\t\t\tblocks[ 0 ],\n\t\t\t\t\t\ttransformations.find(\n\t\t\t\t\t\t\t( { name } ) => name === hoveredTransformItemName\n\t\t\t\t\t\t).attributes\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ transformations?.map( ( item ) => (\n\t\t\t\t<BlockVariationTransformationItem\n\t\t\t\t\tkey={ item.name }\n\t\t\t\t\titem={ item }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</>\n\t);\n};\n\nfunction BlockVariationTransformationItem( {\n\titem,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\tconst { name, icon, title } = item;\n\treturn (\n\t\t<MenuItem\n\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonSelect( name );\n\t\t\t} }\n\t\t\tonMouseLeave={ () => setHoveredTransformItemName( null ) }\n\t\t\tonMouseEnter={ () => setHoveredTransformItemName( name ) }\n\t\t>\n\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t{ title }\n\t\t</MenuItem>\n\t);\n}\n\nexport default BlockVariationTransformations;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -70,7 +70,7 @@ function BlockSwitcherDropdownMenuContents({
|
|
|
70
70
|
multiSelect(insertedBlocks[0].clientId, insertedBlocks[insertedBlocks.length - 1].clientId);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
// Simple block
|
|
73
|
+
// Simple block transformation based on the `Block Transforms` API.
|
|
74
74
|
function onBlockTransform(name) {
|
|
75
75
|
const newBlocks = (0, _blocks2.switchToBlockType)(blocks, name);
|
|
76
76
|
replaceBlocks(clientIds, newBlocks);
|