@wordpress/block-editor 14.21.1-next.719a03cbe.0 → 15.0.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 +6 -0
- package/build/components/block-list/use-block-props/index.js +1 -3
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +8 -25
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +7 -4
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/child-layout-control/index.js +53 -34
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/link-control/search-input.js +4 -2
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/list-view/block.js +5 -4
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/use-list-view-images.js +62 -30
- package/build/components/list-view/use-list-view-images.js.map +1 -1
- package/build/layouts/grid.js +2 -0
- package/build/layouts/grid.js.map +1 -1
- package/build/store/actions.js +7 -6
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +0 -18
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +13 -9
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -3
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +8 -26
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -4
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +54 -35
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/link-control/search-input.js +4 -2
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/list-view/block.js +6 -5
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/use-list-view-images.js +62 -30
- package/build-module/components/list-view/use-list-view-images.js.map +1 -1
- package/build-module/layouts/grid.js +2 -0
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/store/actions.js +7 -6
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +0 -17
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +12 -9
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +46 -8
- package/build-style/style.css +46 -8
- package/package.json +34 -34
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-block-props/use-is-hovered.js +12 -26
- package/src/components/block-lock/style.scss +10 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
- package/src/components/block-variation-transforms/style.scss +7 -0
- package/src/components/border-radius-control/style.scss +5 -0
- package/src/components/child-layout-control/index.js +66 -42
- package/src/components/colors-gradients/style.scss +5 -0
- package/src/components/inserter-list-item/style.scss +9 -6
- package/src/components/link-control/search-input.js +9 -2
- package/src/components/link-control/style.scss +7 -0
- package/src/components/link-control/test/index.js +44 -44
- package/src/components/list-view/block.js +9 -5
- package/src/components/list-view/use-list-view-images.js +57 -36
- package/src/components/media-replace-flow/test/index.js +1 -1
- package/src/components/spacing-sizes-control/style.scss +5 -0
- package/src/hooks/layout.scss +8 -0
- package/src/layouts/grid.js +2 -2
- package/src/store/actions.js +7 -6
- package/src/store/reducer.js +0 -18
- package/src/store/selectors.js +29 -31
|
@@ -113,9 +113,7 @@ export function useBlockProps(props = {}, {
|
|
|
113
113
|
}), useBlockRefProvider(clientId), useFocusHandler(clientId), useEventHandlers({
|
|
114
114
|
clientId,
|
|
115
115
|
isSelected
|
|
116
|
-
}), useIsHovered({
|
|
117
|
-
clientId
|
|
118
|
-
}), useIntersectionObserver(), useMovingAnimation({
|
|
116
|
+
}), useIsHovered(), useIntersectionObserver(), useMovingAnimation({
|
|
119
117
|
triggerAnimationOnChange: index,
|
|
120
118
|
clientId
|
|
121
119
|
}), useDisabled({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useContext","__","sprintf","__unstableGetBlockProps","getBlockProps","useMergeRefs","useDisabled","warning","useMovingAnimation","PrivateBlockContext","useFocusFirstElement","useIsHovered","blockBindingsKey","useBlockEditContext","useFocusHandler","useEventHandlers","useBlockRefProvider","useIntersectionObserver","useScrollIntoView","useFlashEditableBlocks","canBindBlock","useFirefoxDraggableCompatibility","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","index","mode","name","blockApiVersion","blockTitle","isSelected","isSubtreeDisabled","hasOverlay","initialPosition","blockEditingMode","isHighlighted","isMultiSelected","isPartiallySelected","isReusable","isDragging","hasChildSelected","isEditingDisabled","hasEditableOutline","isTemporarilyEditingAsBlocks","defaultClassName","isSectionBlock","canMove","blockLabel","htmlSuffix","ffDragRef","mergedRefs","ref","triggerAnimationOnChange","isDisabled","isEnabled","undefined","blockEditContext","hasBlockBindings","bindingsStyle","globalThis","SCRIPT_DEBUG","hasNegativeMargin","style","marginTop","charAt","marginBottom","marginLeft","marginRight","tabIndex","draggable","id","role","inert","save"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __unstableGetBlockProps as getBlockProps } from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { PrivateBlockContext } from '../private-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport {\n\tblockBindingsKey,\n\tuseBlockEditContext,\n} from '../../block-edit/context';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { useScrollIntoView } from './use-scroll-into-view';\nimport { useFlashEditableBlocks } from '../../use-flash-editable-blocks';\nimport { canBindBlock } from '../../../utils/block-bindings';\nimport { useFirefoxDraggableCompatibility } from './use-firefox-draggable-compatibility';\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * Use of this hook on the outermost element of a block is required if using API >= v2.\n *\n * @example\n * ```js\n * import { useBlockProps } from '@wordpress/block-editor';\n *\n * export default function Edit() {\n *\n * const blockProps = useBlockProps( {\n * className: 'my-custom-class',\n * style: {\n * color: '#222222',\n * backgroundColor: '#eeeeee'\n * }\n * } )\n *\n * return (\n *\t <div { ...blockProps }>\n *\n * </div>\n * )\n * }\n *\n * ```\n *\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tisSectionBlock,\n\t\tcanMove,\n\t} = useContext( PrivateBlockContext );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst ffDragRef = useFirefoxDraggableCompatibility();\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( { clientId, initialPosition } ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( { clientId, isSelected } ),\n\t\tuseIsHovered( { clientId } ),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( { triggerAnimationOnChange: index, clientId } ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t\tuseFlashEditableBlocks( {\n\t\t\tclientId,\n\t\t\tisEnabled: isSectionBlock,\n\t\t} ),\n\t\tuseScrollIntoView( { isSelected } ),\n\t\tcanMove ? ffDragRef : undefined,\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\tconst hasBlockBindings = !! blockEditContext[ blockBindingsKey ];\n\tconst bindingsStyle =\n\t\thasBlockBindings && canBindBlock( name )\n\t\t\t? {\n\t\t\t\t\t'--wp-admin-theme-color': 'var(--wp-block-synced-color)',\n\t\t\t\t\t'--wp-admin-theme-color--rgb':\n\t\t\t\t\t\t'var(--wp-block-synced-color--rgb)',\n\t\t\t }\n\t\t\t: {};\n\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\tlet hasNegativeMargin = false;\n\tif (\n\t\twrapperProps?.style?.marginTop?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginBottom?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginLeft?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginRight?.charAt( 0 ) === '-'\n\t) {\n\t\thasNegativeMargin = true;\n\t}\n\n\treturn {\n\t\ttabIndex: blockEditingMode === 'disabled' ? -1 : 0,\n\t\tdraggable: canMove && ! hasChildSelected ? true : undefined,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tinert: isSubtreeDisabled ? 'true' : undefined,\n\t\tclassName: clsx(\n\t\t\t'block-editor-block-list__block',\n\t\t\t{\n\t\t\t\t// The wp-block className is important for editor styles.\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-highlighted': isHighlighted,\n\t\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t\t'is-partially-selected': isPartiallySelected,\n\t\t\t\t'is-reusable': isReusable,\n\t\t\t\t'is-dragging': isDragging,\n\t\t\t\t'has-child-selected': hasChildSelected,\n\t\t\t\t'is-editing-disabled': isEditingDisabled,\n\t\t\t\t'has-editable-outline': hasEditableOutline,\n\t\t\t\t'has-negative-margin': hasNegativeMargin,\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t},\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tdefaultClassName\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style, ...bindingsStyle },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,uBAAuB,IAAIC,aAAa,QAAQ,mBAAmB;AAC5E,SAASC,YAAY,EAAEC,WAAW,QAAQ,oBAAoB;AAC9D,OAAOC,OAAO,MAAM,oBAAoB;;AAExC;AACA;AACA;AACA,OAAOC,kBAAkB,MAAM,4BAA4B;AAC3D,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SACCC,gBAAgB,EAChBC,mBAAmB,QACb,0BAA0B;AACjC,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,gBAAgB,QAAQ,qCAAqC;AACtE,SAASC,mBAAmB,QAAQ,kBAAkB;AACtD,SAASC,uBAAuB,QAAQ,6BAA6B;AACrE,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SAASC,sBAAsB,QAAQ,iCAAiC;AACxE,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,gCAAgC,QAAQ,uCAAuC;;AAExF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAEC,KAAK,GAAG,CAAC,CAAC,EAAE;EAAEC;AAAiB,CAAC,GAAG,CAAC,CAAC,EAAG;EACtE,MAAM;IACLC,QAAQ;IACRC,SAAS;IACTC,YAAY,GAAG,CAAC,CAAC;IACjBC,SAAS;IACTC,KAAK;IACLC,IAAI;IACJC,IAAI;IACJC,eAAe;IACfC,UAAU;IACVC,UAAU;IACVC,iBAAiB;IACjBC,UAAU;IACVC,eAAe;IACfC,gBAAgB;IAChBC,aAAa;IACbC,eAAe;IACfC,mBAAmB;IACnBC,UAAU;IACVC,UAAU;IACVC,gBAAgB;IAChBC,iBAAiB;IACjBC,kBAAkB;IAClBC,4BAA4B;IAC5BC,gBAAgB;IAChBC,cAAc;IACdC;EACD,CAAC,GAAGlD,UAAU,CAAES,mBAAoB,CAAC;;EAErC;EACA,MAAM0C,UAAU,GAAGjD,OAAO,CAAED,EAAE,CAAE,WAAY,CAAC,EAAEgC,UAAW,CAAC;EAC3D,MAAMmB,UAAU,GAAGtB,IAAI,KAAK,MAAM,IAAI,CAAEN,gBAAgB,GAAG,SAAS,GAAG,EAAE;EACzE,MAAM6B,SAAS,GAAGhC,gCAAgC,CAAC,CAAC;EACpD,MAAMiC,UAAU,GAAGjD,YAAY,CAAE,CAChCkB,KAAK,CAACgC,GAAG,EACT7C,oBAAoB,CAAE;IAAEe,QAAQ;IAAEY;EAAgB,CAAE,CAAC,EACrDrB,mBAAmB,CAAES,QAAS,CAAC,EAC/BX,eAAe,CAAEW,QAAS,CAAC,EAC3BV,gBAAgB,CAAE;IAAEU,QAAQ;IAAES;EAAW,CAAE,CAAC,EAC5CvB,YAAY,CAAE;IAAEc;EAAS,CAAE,CAAC,EAC5BR,uBAAuB,CAAC,CAAC,EACzBT,kBAAkB,CAAE;IAAEgD,wBAAwB,EAAE3B,KAAK;IAAEJ;EAAS,CAAE,CAAC,EACnEnB,WAAW,CAAE;IAAEmD,UAAU,EAAE,CAAErB;EAAW,CAAE,CAAC,EAC3CjB,sBAAsB,CAAE;IACvBM,QAAQ;IACRiC,SAAS,EAAET;EACZ,CAAE,CAAC,EACH/B,iBAAiB,CAAE;IAAEgB;EAAW,CAAE,CAAC,EACnCgB,OAAO,GAAGG,SAAS,GAAGM,SAAS,CAC9B,CAAC;EAEH,MAAMC,gBAAgB,GAAG/C,mBAAmB,CAAC,CAAC;EAC9C,MAAMgD,gBAAgB,GAAG,CAAC,CAAED,gBAAgB,CAAEhD,gBAAgB,CAAE;EAChE,MAAMkD,aAAa,GAClBD,gBAAgB,IAAIzC,YAAY,CAAEW,IAAK,CAAC,GACrC;IACA,wBAAwB,EAAE,8BAA8B;IACxD,6BAA6B,EAC5B;EACD,CAAC,GACD,CAAC,CAAC;;EAEN;EACA,IAAKC,eAAe,GAAG,CAAC,IAAIP,QAAQ,KAAKmC,gBAAgB,CAACnC,QAAQ,EAAG;IACpEsC,UAAA,CAAAC,YAAA,YAAAzD,OAAO,CACN,eAAgBwB,IAAI,uFACrB,CAAC;EACF;EAEA,IAAIkC,iBAAiB,GAAG,KAAK;EAC7B,IACCtC,YAAY,EAAEuC,KAAK,EAAEC,SAAS,EAAEC,MAAM,CAAE,CAAE,CAAC,KAAK,GAAG,IACnDzC,YAAY,EAAEuC,KAAK,EAAEG,YAAY,EAAED,MAAM,CAAE,CAAE,CAAC,KAAK,GAAG,IACtDzC,YAAY,EAAEuC,KAAK,EAAEI,UAAU,EAAEF,MAAM,CAAE,CAAE,CAAC,KAAK,GAAG,IACpDzC,YAAY,EAAEuC,KAAK,EAAEK,WAAW,EAAEH,MAAM,CAAE,CAAE,CAAC,KAAK,GAAG,EACpD;IACDH,iBAAiB,GAAG,IAAI;EACzB;EAEA,OAAO;IACNO,QAAQ,EAAElC,gBAAgB,KAAK,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;IAClDmC,SAAS,EAAEvB,OAAO,IAAI,CAAEN,gBAAgB,GAAG,IAAI,GAAGe,SAAS;IAC3D,GAAGhC,YAAY;IACf,GAAGJ,KAAK;IACRgC,GAAG,EAAED,UAAU;IACfoB,EAAE,EAAE,SAAUjD,QAAQ,GAAK2B,UAAU,EAAG;IACxCuB,IAAI,EAAE,UAAU;IAChB,YAAY,EAAExB,UAAU;IACxB,YAAY,EAAE1B,QAAQ;IACtB,WAAW,EAAEM,IAAI;IACjB,YAAY,EAAEE,UAAU;IACxB2C,KAAK,EAAEzC,iBAAiB,GAAG,MAAM,GAAGwB,SAAS;IAC7CjC,SAAS,EAAE3B,IAAI,CACd,gCAAgC,EAChC;MACC;MACA,UAAU,EAAE,CAAE6B,SAAS;MACvB,mBAAmB,EAAEQ,UAAU;MAC/B,aAAa,EAAEF,UAAU;MACzB,gBAAgB,EAAEK,aAAa;MAC/B,mBAAmB,EAAEC,eAAe;MACpC,uBAAuB,EAAEC,mBAAmB;MAC5C,aAAa,EAAEC,UAAU;MACzB,aAAa,EAAEC,UAAU;MACzB,oBAAoB,EAAEC,gBAAgB;MACtC,qBAAqB,EAAEC,iBAAiB;MACxC,sBAAsB,EAAEC,kBAAkB;MAC1C,qBAAqB,EAAEmB,iBAAiB;MACxC,iDAAiD,EAChDlB;IACF,CAAC,EACDrB,SAAS,EACTH,KAAK,CAACG,SAAS,EACfC,YAAY,CAACD,SAAS,EACtBsB,gBACD,CAAC;IACDkB,KAAK,EAAE;MAAE,GAAGvC,YAAY,CAACuC,KAAK;MAAE,GAAG3C,KAAK,CAAC2C,KAAK;MAAE,GAAGJ;IAAc;EAClE,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACAxC,aAAa,CAACuD,IAAI,GAAGzE,aAAa","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","useContext","__","sprintf","__unstableGetBlockProps","getBlockProps","useMergeRefs","useDisabled","warning","useMovingAnimation","PrivateBlockContext","useFocusFirstElement","useIsHovered","blockBindingsKey","useBlockEditContext","useFocusHandler","useEventHandlers","useBlockRefProvider","useIntersectionObserver","useScrollIntoView","useFlashEditableBlocks","canBindBlock","useFirefoxDraggableCompatibility","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","index","mode","name","blockApiVersion","blockTitle","isSelected","isSubtreeDisabled","hasOverlay","initialPosition","blockEditingMode","isHighlighted","isMultiSelected","isPartiallySelected","isReusable","isDragging","hasChildSelected","isEditingDisabled","hasEditableOutline","isTemporarilyEditingAsBlocks","defaultClassName","isSectionBlock","canMove","blockLabel","htmlSuffix","ffDragRef","mergedRefs","ref","triggerAnimationOnChange","isDisabled","isEnabled","undefined","blockEditContext","hasBlockBindings","bindingsStyle","globalThis","SCRIPT_DEBUG","hasNegativeMargin","style","marginTop","charAt","marginBottom","marginLeft","marginRight","tabIndex","draggable","id","role","inert","save"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __unstableGetBlockProps as getBlockProps } from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { PrivateBlockContext } from '../private-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport {\n\tblockBindingsKey,\n\tuseBlockEditContext,\n} from '../../block-edit/context';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { useScrollIntoView } from './use-scroll-into-view';\nimport { useFlashEditableBlocks } from '../../use-flash-editable-blocks';\nimport { canBindBlock } from '../../../utils/block-bindings';\nimport { useFirefoxDraggableCompatibility } from './use-firefox-draggable-compatibility';\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * Use of this hook on the outermost element of a block is required if using API >= v2.\n *\n * @example\n * ```js\n * import { useBlockProps } from '@wordpress/block-editor';\n *\n * export default function Edit() {\n *\n * const blockProps = useBlockProps( {\n * className: 'my-custom-class',\n * style: {\n * color: '#222222',\n * backgroundColor: '#eeeeee'\n * }\n * } )\n *\n * return (\n *\t <div { ...blockProps }>\n *\n * </div>\n * )\n * }\n *\n * ```\n *\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tisSectionBlock,\n\t\tcanMove,\n\t} = useContext( PrivateBlockContext );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst ffDragRef = useFirefoxDraggableCompatibility();\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( { clientId, initialPosition } ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( { clientId, isSelected } ),\n\t\tuseIsHovered(),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( { triggerAnimationOnChange: index, clientId } ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t\tuseFlashEditableBlocks( {\n\t\t\tclientId,\n\t\t\tisEnabled: isSectionBlock,\n\t\t} ),\n\t\tuseScrollIntoView( { isSelected } ),\n\t\tcanMove ? ffDragRef : undefined,\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\tconst hasBlockBindings = !! blockEditContext[ blockBindingsKey ];\n\tconst bindingsStyle =\n\t\thasBlockBindings && canBindBlock( name )\n\t\t\t? {\n\t\t\t\t\t'--wp-admin-theme-color': 'var(--wp-block-synced-color)',\n\t\t\t\t\t'--wp-admin-theme-color--rgb':\n\t\t\t\t\t\t'var(--wp-block-synced-color--rgb)',\n\t\t\t }\n\t\t\t: {};\n\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\tlet hasNegativeMargin = false;\n\tif (\n\t\twrapperProps?.style?.marginTop?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginBottom?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginLeft?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginRight?.charAt( 0 ) === '-'\n\t) {\n\t\thasNegativeMargin = true;\n\t}\n\n\treturn {\n\t\ttabIndex: blockEditingMode === 'disabled' ? -1 : 0,\n\t\tdraggable: canMove && ! hasChildSelected ? true : undefined,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tinert: isSubtreeDisabled ? 'true' : undefined,\n\t\tclassName: clsx(\n\t\t\t'block-editor-block-list__block',\n\t\t\t{\n\t\t\t\t// The wp-block className is important for editor styles.\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-highlighted': isHighlighted,\n\t\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t\t'is-partially-selected': isPartiallySelected,\n\t\t\t\t'is-reusable': isReusable,\n\t\t\t\t'is-dragging': isDragging,\n\t\t\t\t'has-child-selected': hasChildSelected,\n\t\t\t\t'is-editing-disabled': isEditingDisabled,\n\t\t\t\t'has-editable-outline': hasEditableOutline,\n\t\t\t\t'has-negative-margin': hasNegativeMargin,\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t},\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tdefaultClassName\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style, ...bindingsStyle },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,36 +2,19 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { useRefEffect } from '@wordpress/compose';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
function listener(event) {
|
|
6
|
+
if (event.defaultPrevented) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
event.preventDefault();
|
|
10
|
+
event.currentTarget.classList.toggle('is-hovered', event.type === 'mouseover');
|
|
11
|
+
}
|
|
11
12
|
|
|
12
13
|
/*
|
|
13
14
|
* Adds `is-hovered` class when the block is hovered and in navigation or
|
|
14
15
|
* outline mode.
|
|
15
16
|
*/
|
|
16
|
-
export function useIsHovered({
|
|
17
|
-
clientId
|
|
18
|
-
}) {
|
|
19
|
-
const {
|
|
20
|
-
hoverBlock
|
|
21
|
-
} = useDispatch(blockEditorStore);
|
|
22
|
-
function listener(event) {
|
|
23
|
-
if (event.defaultPrevented) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
const action = event.type === 'mouseover' ? 'add' : 'remove';
|
|
27
|
-
event.preventDefault();
|
|
28
|
-
event.currentTarget.classList[action]('is-hovered');
|
|
29
|
-
if (action === 'add') {
|
|
30
|
-
hoverBlock(clientId);
|
|
31
|
-
} else {
|
|
32
|
-
hoverBlock(null);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
17
|
+
export function useIsHovered() {
|
|
35
18
|
return useRefEffect(node => {
|
|
36
19
|
node.addEventListener('mouseout', listener);
|
|
37
20
|
node.addEventListener('mouseover', listener);
|
|
@@ -41,7 +24,6 @@ export function useIsHovered({
|
|
|
41
24
|
|
|
42
25
|
// Remove class in case it lingers.
|
|
43
26
|
node.classList.remove('is-hovered');
|
|
44
|
-
hoverBlock(null);
|
|
45
27
|
};
|
|
46
28
|
}, []);
|
|
47
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRefEffect","
|
|
1
|
+
{"version":3,"names":["useRefEffect","listener","event","defaultPrevented","preventDefault","currentTarget","classList","toggle","type","useIsHovered","node","addEventListener","removeEventListener","remove"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-is-hovered.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\n\nfunction listener( event ) {\n\tif ( event.defaultPrevented ) {\n\t\treturn;\n\t}\n\n\tevent.preventDefault();\n\tevent.currentTarget.classList.toggle(\n\t\t'is-hovered',\n\t\tevent.type === 'mouseover'\n\t);\n}\n\n/*\n * Adds `is-hovered` class when the block is hovered and in navigation or\n * outline mode.\n */\nexport function useIsHovered() {\n\treturn useRefEffect( ( node ) => {\n\t\tnode.addEventListener( 'mouseout', listener );\n\t\tnode.addEventListener( 'mouseover', listener );\n\n\t\treturn () => {\n\t\t\tnode.removeEventListener( 'mouseout', listener );\n\t\t\tnode.removeEventListener( 'mouseover', listener );\n\n\t\t\t// Remove class in case it lingers.\n\t\t\tnode.classList.remove( 'is-hovered' );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,oBAAoB;AAEjD,SAASC,QAAQA,CAAEC,KAAK,EAAG;EAC1B,IAAKA,KAAK,CAACC,gBAAgB,EAAG;IAC7B;EACD;EAEAD,KAAK,CAACE,cAAc,CAAC,CAAC;EACtBF,KAAK,CAACG,aAAa,CAACC,SAAS,CAACC,MAAM,CACnC,YAAY,EACZL,KAAK,CAACM,IAAI,KAAK,WAChB,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAAA,EAAG;EAC9B,OAAOT,YAAY,CAAIU,IAAI,IAAM;IAChCA,IAAI,CAACC,gBAAgB,CAAE,UAAU,EAAEV,QAAS,CAAC;IAC7CS,IAAI,CAACC,gBAAgB,CAAE,WAAW,EAAEV,QAAS,CAAC;IAE9C,OAAO,MAAM;MACZS,IAAI,CAACE,mBAAmB,CAAE,UAAU,EAAEX,QAAS,CAAC;MAChDS,IAAI,CAACE,mBAAmB,CAAE,WAAW,EAAEX,QAAS,CAAC;;MAEjD;MACAS,IAAI,CAACJ,SAAS,CAACO,MAAM,CAAE,YAAa,CAAC;IACtC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;AACR","ignoreList":[]}
|
|
@@ -81,7 +81,8 @@ export function BlockSettingsDropdown({
|
|
|
81
81
|
previousBlockClientId,
|
|
82
82
|
selectedBlockClientIds,
|
|
83
83
|
openedBlockSettingsMenu,
|
|
84
|
-
isContentOnly
|
|
84
|
+
isContentOnly,
|
|
85
|
+
isZoomOut
|
|
85
86
|
} = useSelect(select => {
|
|
86
87
|
const {
|
|
87
88
|
getBlockName,
|
|
@@ -90,7 +91,8 @@ export function BlockSettingsDropdown({
|
|
|
90
91
|
getSelectedBlockClientIds,
|
|
91
92
|
getBlockAttributes,
|
|
92
93
|
getOpenedBlockSettingsMenu,
|
|
93
|
-
getBlockEditingMode
|
|
94
|
+
getBlockEditingMode,
|
|
95
|
+
isZoomOut: _isZoomOut
|
|
94
96
|
} = unlock(select(blockEditorStore));
|
|
95
97
|
const {
|
|
96
98
|
getActiveBlockVariation
|
|
@@ -103,7 +105,8 @@ export function BlockSettingsDropdown({
|
|
|
103
105
|
previousBlockClientId: getPreviousBlockClientId(firstBlockClientId),
|
|
104
106
|
selectedBlockClientIds: getSelectedBlockClientIds(),
|
|
105
107
|
openedBlockSettingsMenu: getOpenedBlockSettingsMenu(),
|
|
106
|
-
isContentOnly: getBlockEditingMode(firstBlockClientId) === 'contentOnly'
|
|
108
|
+
isContentOnly: getBlockEditingMode(firstBlockClientId) === 'contentOnly',
|
|
109
|
+
isZoomOut: _isZoomOut()
|
|
107
110
|
};
|
|
108
111
|
}, [firstBlockClientId]);
|
|
109
112
|
const {
|
|
@@ -231,7 +234,7 @@ export function BlockSettingsDropdown({
|
|
|
231
234
|
onClick: pipe(onClose, onDuplicate, updateSelectionAfterDuplicate),
|
|
232
235
|
shortcut: shortcuts.duplicate,
|
|
233
236
|
children: __('Duplicate')
|
|
234
|
-
}), canInsertBlock && !
|
|
237
|
+
}), canInsertBlock && !isZoomOut && /*#__PURE__*/_jsxs(_Fragment, {
|
|
235
238
|
children: [/*#__PURE__*/_jsx(MenuItem, {
|
|
236
239
|
onClick: pipe(onClose, onInsertBefore),
|
|
237
240
|
shortcut: shortcuts.insertBefore,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","__","keyboardShortcutsStore","pipe","useCopyToClipboard","BlockActions","CommentIconSlotFill","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","BlockParentSelectorMenuItem","blockEditorStore","unlock","useNotifyCopy","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","eventType","__experimentalUpdateSelection","updateSelection","getBlocksByClientId","removeBlocks","notifyCopy","ref","copyMenuItemLabel","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","select","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","setOpenedBlockSettingsMenu","shortcuts","getShortcutRepresentation","copy","cut","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","shouldShowBlockParentMenuItem","canCopyStyles","canDuplicate","canInsertBlock","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","isEmpty","icon","popoverProps","noIcons","onClose","Slot","fillProps","parentClientId","onClick","map","child"],"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 { 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\t__experimentalUpdateSelection: updateSelection = false,\n} ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst { removeBlocks } = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t() => {\n\t\t\tswitch ( eventType ) {\n\t\t\t\tcase 'copy':\n\t\t\t\tcase 'copyStyles':\n\t\t\t\t\tonCopy();\n\t\t\t\t\tnotifyCopy( eventType, clientIds );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'cut':\n\t\t\t\t\tnotifyCopy( eventType, clientIds );\n\t\t\t\t\tremoveBlocks( clientIds, updateSelection );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\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\tcopy: getShortcutRepresentation( 'core/block-editor/copy' ),\n\t\t\tcut: getShortcutRepresentation( 'core/block-editor/cut' ),\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={ shortcuts.copy }\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\tlabel={ __( 'Cut' ) }\n\t\t\t\t\t\t\t\t\t\teventType=\"cut\"\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.cut }\n\t\t\t\t\t\t\t\t\t\t__experimentalUpdateSelection={\n\t\t\t\t\t\t\t\t\t\t\t! __experimentalSelectBlock\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":[]}
|
|
1
|
+
{"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","__","keyboardShortcutsStore","pipe","useCopyToClipboard","BlockActions","CommentIconSlotFill","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","BlockParentSelectorMenuItem","blockEditorStore","unlock","useNotifyCopy","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","eventType","__experimentalUpdateSelection","updateSelection","getBlocksByClientId","removeBlocks","notifyCopy","ref","copyMenuItemLabel","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","isZoomOut","select","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","_isZoomOut","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","setOpenedBlockSettingsMenu","shortcuts","getShortcutRepresentation","copy","cut","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","shouldShowBlockParentMenuItem","canCopyStyles","canDuplicate","canInsertBlock","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","isEmpty","icon","popoverProps","noIcons","onClose","Slot","fillProps","parentClientId","onClick","map","child"],"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 { 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\t__experimentalUpdateSelection: updateSelection = false,\n} ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst { removeBlocks } = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t() => {\n\t\t\tswitch ( eventType ) {\n\t\t\t\tcase 'copy':\n\t\t\t\tcase 'copyStyles':\n\t\t\t\t\tonCopy();\n\t\t\t\t\tnotifyCopy( eventType, clientIds );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'cut':\n\t\t\t\t\tnotifyCopy( eventType, clientIds );\n\t\t\t\t\tremoveBlocks( clientIds, updateSelection );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\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\tisZoomOut,\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\tisZoomOut: _isZoomOut,\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\tisZoomOut: _isZoomOut(),\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\tcopy: getShortcutRepresentation( 'core/block-editor/copy' ),\n\t\t\tcut: getShortcutRepresentation( 'core/block-editor/cut' ),\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={ shortcuts.copy }\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\tlabel={ __( 'Cut' ) }\n\t\t\t\t\t\t\t\t\t\teventType=\"cut\"\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.cut }\n\t\t\t\t\t\t\t\t\t\t__experimentalUpdateSelection={\n\t\t\t\t\t\t\t\t\t\t\t! __experimentalSelectBlock\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 && ! isZoomOut && (\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":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalUnitControl as UnitControl, __experimentalInputControl as InputControl,
|
|
4
|
+
import { __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalUnitControl as UnitControl, __experimentalInputControl as InputControl, __experimentalVStack as VStack, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalUseCustomUnits as useCustomUnits, Flex, FlexItem } from '@wordpress/components';
|
|
5
5
|
import { __, _x } from '@wordpress/i18n';
|
|
6
6
|
import { useEffect } from '@wordpress/element';
|
|
7
7
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
@@ -175,7 +175,7 @@ function GridControls({
|
|
|
175
175
|
rowSpan
|
|
176
176
|
} = childLayout;
|
|
177
177
|
const {
|
|
178
|
-
columnCount
|
|
178
|
+
columnCount,
|
|
179
179
|
rowCount
|
|
180
180
|
} = parentLayout !== null && parentLayout !== void 0 ? parentLayout : {};
|
|
181
181
|
const rootClientId = useSelect(select => select(blockEditorStore).getBlockRootClientId(panelId));
|
|
@@ -183,7 +183,7 @@ function GridControls({
|
|
|
183
183
|
moveBlocksToPosition,
|
|
184
184
|
__unstableMarkNextChangeAsNotPersistent
|
|
185
185
|
} = useDispatch(blockEditorStore);
|
|
186
|
-
const getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(rootClientId, columnCount);
|
|
186
|
+
const getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(rootClientId, columnCount || 3);
|
|
187
187
|
const hasStartValue = () => !!columnStart || !!rowStart;
|
|
188
188
|
const hasSpanValue = () => !!columnSpan || !!rowSpan;
|
|
189
189
|
const resetGridStarts = () => {
|
|
@@ -198,48 +198,67 @@ function GridControls({
|
|
|
198
198
|
rowSpan: undefined
|
|
199
199
|
});
|
|
200
200
|
};
|
|
201
|
+
|
|
202
|
+
// Calculate max column span based on current position and grid width
|
|
203
|
+
const maxColumnSpan = columnCount ? columnCount - (columnStart !== null && columnStart !== void 0 ? columnStart : 1) + 1 : undefined;
|
|
204
|
+
|
|
205
|
+
// Calculate max row span based on current position and grid height
|
|
206
|
+
const maxRowSpan = window.__experimentalEnableGridInteractivity && rowCount ? rowCount - (rowStart !== null && rowStart !== void 0 ? rowStart : 1) + 1 : undefined;
|
|
201
207
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
202
|
-
children: [/*#__PURE__*/_jsxs(
|
|
208
|
+
children: [/*#__PURE__*/_jsxs(Flex, {
|
|
203
209
|
as: ToolsPanelItem,
|
|
204
210
|
hasValue: hasSpanValue,
|
|
205
211
|
label: __('Grid span'),
|
|
206
212
|
onDeselect: resetGridSpans,
|
|
207
213
|
isShownByDefault: isShownByDefault,
|
|
208
214
|
panelId: panelId,
|
|
209
|
-
children: [/*#__PURE__*/_jsx(
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
type: "number",
|
|
213
|
-
onChange: value => {
|
|
214
|
-
// Don't allow unsetting.
|
|
215
|
-
const newColumnSpan = value === '' ? 1 : parseInt(value, 10);
|
|
216
|
-
onChange({
|
|
217
|
-
columnStart,
|
|
218
|
-
rowStart,
|
|
219
|
-
rowSpan,
|
|
220
|
-
columnSpan: newColumnSpan
|
|
221
|
-
});
|
|
215
|
+
children: [/*#__PURE__*/_jsx(FlexItem, {
|
|
216
|
+
style: {
|
|
217
|
+
width: '50%'
|
|
222
218
|
},
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}
|
|
219
|
+
children: /*#__PURE__*/_jsx(InputControl, {
|
|
220
|
+
size: "__unstable-large",
|
|
221
|
+
label: __('Column span'),
|
|
222
|
+
type: "number",
|
|
223
|
+
onChange: value => {
|
|
224
|
+
// Don't allow unsetting.
|
|
225
|
+
const newColumnSpan = value === '' ? 1 : parseInt(value, 10);
|
|
226
|
+
const constrainedValue = maxColumnSpan ? Math.min(newColumnSpan, maxColumnSpan) : newColumnSpan;
|
|
227
|
+
onChange({
|
|
228
|
+
columnStart,
|
|
229
|
+
rowStart,
|
|
230
|
+
rowSpan,
|
|
231
|
+
columnSpan: constrainedValue
|
|
232
|
+
});
|
|
233
|
+
},
|
|
234
|
+
value: columnSpan !== null && columnSpan !== void 0 ? columnSpan : 1,
|
|
235
|
+
min: 1,
|
|
236
|
+
max: maxColumnSpan
|
|
237
|
+
})
|
|
238
|
+
}), /*#__PURE__*/_jsx(FlexItem, {
|
|
239
|
+
style: {
|
|
240
|
+
width: '50%'
|
|
238
241
|
},
|
|
239
|
-
|
|
240
|
-
|
|
242
|
+
children: /*#__PURE__*/_jsx(InputControl, {
|
|
243
|
+
size: "__unstable-large",
|
|
244
|
+
label: __('Row span'),
|
|
245
|
+
type: "number",
|
|
246
|
+
onChange: value => {
|
|
247
|
+
const newRowSpan = value === '' ? 1 : parseInt(value, 10);
|
|
248
|
+
const constrainedValue = maxRowSpan ? Math.min(newRowSpan, maxRowSpan) : newRowSpan;
|
|
249
|
+
onChange({
|
|
250
|
+
columnStart,
|
|
251
|
+
rowStart,
|
|
252
|
+
columnSpan,
|
|
253
|
+
rowSpan: constrainedValue
|
|
254
|
+
});
|
|
255
|
+
},
|
|
256
|
+
value: rowSpan !== null && rowSpan !== void 0 ? rowSpan : 1,
|
|
257
|
+
min: 1,
|
|
258
|
+
max: maxRowSpan
|
|
259
|
+
})
|
|
241
260
|
})]
|
|
242
|
-
}), window.__experimentalEnableGridInteractivity &&
|
|
261
|
+
}), window.__experimentalEnableGridInteractivity &&
|
|
243
262
|
/*#__PURE__*/
|
|
244
263
|
// Use Flex with an explicit width on the FlexItem instead of HStack to
|
|
245
264
|
// work around an issue in webkit where inputs with a max attribute are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalInputControl","InputControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUseCustomUnits","useCustomUnits","Flex","FlexItem","__","_x","useEffect","useSelect","useDispatch","useGetNumberOfBlocksBeforeCell","store","blockEditorStore","useSettings","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","helpText","selfStretch","parentLayout","orientation","ChildLayoutControl","value","childLayout","onChange","isShownByDefault","panelId","type","parentType","default","defaultParentType","parentLayoutType","FlexControls","GridControls","flexSize","hasFlexValue","flexResetLabel","availableUnits","units","resetFlex","undefined","as","spacing","hasValue","label","onDeselect","children","__nextHasNoMarginBottom","size","childLayoutOrientation","help","newFlexSize","isBlock","min","hideLabelFromVision","columnStart","rowStart","columnSpan","rowSpan","columnCount","rowCount","rootClientId","select","getBlockRootClientId","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","getNumberOfBlocksBeforeCell","hasStartValue","hasSpanValue","resetGridStarts","resetGridSpans","newColumnSpan","parseInt","newRowSpan","window","__experimentalEnableGridInteractivity","style","width","newColumnStart","max","newRowStart"],"sources":["@wordpress/block-editor/src/components/child-layout-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalInputControl as InputControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useGetNumberOfBlocksBeforeCell } from '../grid/use-get-number-of-blocks-before-cell';\nimport { store as blockEditorStore } from '../../store';\nimport { useSettings } from '../use-settings';\n\nfunction helpText( selfStretch, parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\tif ( selfStretch === 'fill' ) {\n\t\treturn __( 'Stretch to fill available space.' );\n\t}\n\tif ( selfStretch === 'fixed' && orientation === 'horizontal' ) {\n\t\treturn __( 'Specify a fixed width.' );\n\t} else if ( selfStretch === 'fixed' ) {\n\t\treturn __( 'Specify a fixed height.' );\n\t}\n\treturn __( 'Fit contents.' );\n}\n\n/**\n * Form to edit the child layout value.\n *\n * @param {Object} props Props.\n * @param {Object} props.value The child layout value.\n * @param {Function} props.onChange Function to update the child layout value.\n * @param {Object} props.parentLayout The parent layout value.\n *\n * @param {boolean} props.isShownByDefault\n * @param {string} props.panelId\n * @return {Element} child layout edit element.\n */\nexport default function ChildLayoutControl( {\n\tvalue: childLayout = {},\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst {\n\t\ttype: parentType,\n\t\tdefault: { type: defaultParentType = 'default' } = {},\n\t} = parentLayout ?? {};\n\tconst parentLayoutType = parentType || defaultParentType;\n\n\tif ( parentLayoutType === 'flex' ) {\n\t\treturn (\n\t\t\t<FlexControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t} else if ( parentLayoutType === 'grid' ) {\n\t\treturn (\n\t\t\t<GridControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction FlexControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { selfStretch, flexSize } = childLayout;\n\tconst { orientation = 'horizontal' } = parentLayout ?? {};\n\tconst hasFlexValue = () => !! selfStretch;\n\tconst flexResetLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vh',\n\t\t\t'vw',\n\t\t],\n\t} );\n\tconst resetFlex = () => {\n\t\tonChange( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( selfStretch === 'fixed' && ! flexSize ) {\n\t\t\tonChange( {\n\t\t\t\t...childLayout,\n\t\t\t\tselfStretch: 'fit',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\thasValue={ hasFlexValue }\n\t\t\tlabel={ flexResetLabel }\n\t\t\tonDeselect={ resetFlex }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ childLayoutOrientation( parentLayout ) }\n\t\t\t\tvalue={ selfStretch || 'fit' }\n\t\t\t\thelp={ helpText( selfStretch, parentLayout ) }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst newFlexSize = value !== 'fixed' ? null : flexSize;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tselfStretch: value,\n\t\t\t\t\t\tflexSize: newFlexSize,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tisBlock\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fit\"\n\t\t\t\t\tvalue=\"fit\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fit',\n\t\t\t\t\t\t'Intrinsic block width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fill\"\n\t\t\t\t\tvalue=\"fill\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Grow',\n\t\t\t\t\t\t'Block with expanding width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fixed\"\n\t\t\t\t\tvalue=\"fixed\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fixed',\n\t\t\t\t\t\t'Block with fixed width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ selfStretch === 'fixed' && (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tselfStretch,\n\t\t\t\t\t\t\tflexSize: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ flexSize }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tlabel={ flexResetLabel }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport function childLayoutOrientation( parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\treturn orientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n}\n\nfunction GridControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { columnStart, rowStart, columnSpan, rowSpan } = childLayout;\n\tconst { columnCount = 3, rowCount } = parentLayout ?? {};\n\tconst rootClientId = useSelect( ( select ) =>\n\t\tselect( blockEditorStore ).getBlockRootClientId( panelId )\n\t);\n\tconst { moveBlocksToPosition, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\trootClientId,\n\t\tcolumnCount\n\t);\n\tconst hasStartValue = () => !! columnStart || !! rowStart;\n\tconst hasSpanValue = () => !! columnSpan || !! rowSpan;\n\tconst resetGridStarts = () => {\n\t\tonChange( {\n\t\t\tcolumnStart: undefined,\n\t\t\trowStart: undefined,\n\t\t} );\n\t};\n\tconst resetGridSpans = () => {\n\t\tonChange( {\n\t\t\tcolumnSpan: undefined,\n\t\t\trowSpan: undefined,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\thasValue={ hasSpanValue }\n\t\t\t\tlabel={ __( 'Grid span' ) }\n\t\t\t\tonDeselect={ resetGridSpans }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Column span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\tconst newColumnSpan =\n\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\tcolumnSpan: newColumnSpan,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ columnSpan ?? 1 }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Row span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\tconst newRowSpan =\n\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\trowSpan: newRowSpan,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ rowSpan ?? 1 }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t{ window.__experimentalEnableGridInteractivity && columnCount && (\n\t\t\t\t// Use Flex with an explicit width on the FlexItem instead of HStack to\n\t\t\t\t// work around an issue in webkit where inputs with a max attribute are\n\t\t\t\t// sized incorrectly.\n\t\t\t\t<Flex\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\thasValue={ hasStartValue }\n\t\t\t\t\tlabel={ __( 'Grid placement' ) }\n\t\t\t\t\tonDeselect={ resetGridStarts }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Column' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newColumnStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart: newColumnStart,\n\t\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tnewColumnStart,\n\t\t\t\t\t\t\t\t\t\trowStart\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\tvalue={ columnStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\tcolumnCount\n\t\t\t\t\t\t\t\t\t? columnCount - ( columnSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Row' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newRowStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart: newRowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\t\tnewRowStart\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\tvalue={ rowStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\trowCount\n\t\t\t\t\t\t\t\t\t? rowCount - ( rowSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalInputControl","InputControl","__experimentalVStack","VStack","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUseCustomUnits","useCustomUnits","Flex","FlexItem","__","_x","useEffect","useSelect","useDispatch","useGetNumberOfBlocksBeforeCell","store","blockEditorStore","useSettings","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","helpText","selfStretch","parentLayout","orientation","ChildLayoutControl","value","childLayout","onChange","isShownByDefault","panelId","type","parentType","default","defaultParentType","parentLayoutType","FlexControls","GridControls","flexSize","hasFlexValue","flexResetLabel","availableUnits","units","resetFlex","undefined","as","spacing","hasValue","label","onDeselect","children","__nextHasNoMarginBottom","size","childLayoutOrientation","help","newFlexSize","isBlock","min","hideLabelFromVision","columnStart","rowStart","columnSpan","rowSpan","columnCount","rowCount","rootClientId","select","getBlockRootClientId","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","getNumberOfBlocksBeforeCell","hasStartValue","hasSpanValue","resetGridStarts","resetGridSpans","maxColumnSpan","maxRowSpan","window","__experimentalEnableGridInteractivity","style","width","newColumnSpan","parseInt","constrainedValue","Math","max","newRowSpan","newColumnStart","newRowStart"],"sources":["@wordpress/block-editor/src/components/child-layout-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalInputControl as InputControl,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useGetNumberOfBlocksBeforeCell } from '../grid/use-get-number-of-blocks-before-cell';\nimport { store as blockEditorStore } from '../../store';\nimport { useSettings } from '../use-settings';\n\nfunction helpText( selfStretch, parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\tif ( selfStretch === 'fill' ) {\n\t\treturn __( 'Stretch to fill available space.' );\n\t}\n\tif ( selfStretch === 'fixed' && orientation === 'horizontal' ) {\n\t\treturn __( 'Specify a fixed width.' );\n\t} else if ( selfStretch === 'fixed' ) {\n\t\treturn __( 'Specify a fixed height.' );\n\t}\n\treturn __( 'Fit contents.' );\n}\n\n/**\n * Form to edit the child layout value.\n *\n * @param {Object} props Props.\n * @param {Object} props.value The child layout value.\n * @param {Function} props.onChange Function to update the child layout value.\n * @param {Object} props.parentLayout The parent layout value.\n *\n * @param {boolean} props.isShownByDefault\n * @param {string} props.panelId\n * @return {Element} child layout edit element.\n */\nexport default function ChildLayoutControl( {\n\tvalue: childLayout = {},\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst {\n\t\ttype: parentType,\n\t\tdefault: { type: defaultParentType = 'default' } = {},\n\t} = parentLayout ?? {};\n\tconst parentLayoutType = parentType || defaultParentType;\n\n\tif ( parentLayoutType === 'flex' ) {\n\t\treturn (\n\t\t\t<FlexControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t} else if ( parentLayoutType === 'grid' ) {\n\t\treturn (\n\t\t\t<GridControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction FlexControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { selfStretch, flexSize } = childLayout;\n\tconst { orientation = 'horizontal' } = parentLayout ?? {};\n\tconst hasFlexValue = () => !! selfStretch;\n\tconst flexResetLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vh',\n\t\t\t'vw',\n\t\t],\n\t} );\n\tconst resetFlex = () => {\n\t\tonChange( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( selfStretch === 'fixed' && ! flexSize ) {\n\t\t\tonChange( {\n\t\t\t\t...childLayout,\n\t\t\t\tselfStretch: 'fit',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\thasValue={ hasFlexValue }\n\t\t\tlabel={ flexResetLabel }\n\t\t\tonDeselect={ resetFlex }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ childLayoutOrientation( parentLayout ) }\n\t\t\t\tvalue={ selfStretch || 'fit' }\n\t\t\t\thelp={ helpText( selfStretch, parentLayout ) }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst newFlexSize = value !== 'fixed' ? null : flexSize;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tselfStretch: value,\n\t\t\t\t\t\tflexSize: newFlexSize,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tisBlock\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fit\"\n\t\t\t\t\tvalue=\"fit\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fit',\n\t\t\t\t\t\t'Intrinsic block width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fill\"\n\t\t\t\t\tvalue=\"fill\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Grow',\n\t\t\t\t\t\t'Block with expanding width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fixed\"\n\t\t\t\t\tvalue=\"fixed\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fixed',\n\t\t\t\t\t\t'Block with fixed width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ selfStretch === 'fixed' && (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tselfStretch,\n\t\t\t\t\t\t\tflexSize: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ flexSize }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tlabel={ flexResetLabel }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport function childLayoutOrientation( parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\treturn orientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n}\n\nfunction GridControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { columnStart, rowStart, columnSpan, rowSpan } = childLayout;\n\tconst { columnCount, rowCount } = parentLayout ?? {};\n\tconst rootClientId = useSelect( ( select ) =>\n\t\tselect( blockEditorStore ).getBlockRootClientId( panelId )\n\t);\n\tconst { moveBlocksToPosition, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\trootClientId,\n\t\tcolumnCount || 3\n\t);\n\tconst hasStartValue = () => !! columnStart || !! rowStart;\n\tconst hasSpanValue = () => !! columnSpan || !! rowSpan;\n\tconst resetGridStarts = () => {\n\t\tonChange( {\n\t\t\tcolumnStart: undefined,\n\t\t\trowStart: undefined,\n\t\t} );\n\t};\n\tconst resetGridSpans = () => {\n\t\tonChange( {\n\t\t\tcolumnSpan: undefined,\n\t\t\trowSpan: undefined,\n\t\t} );\n\t};\n\n\t// Calculate max column span based on current position and grid width\n\tconst maxColumnSpan = columnCount\n\t\t? columnCount - ( columnStart ?? 1 ) + 1\n\t\t: undefined;\n\n\t// Calculate max row span based on current position and grid height\n\tconst maxRowSpan =\n\t\twindow.__experimentalEnableGridInteractivity && rowCount\n\t\t\t? rowCount - ( rowStart ?? 1 ) + 1\n\t\t\t: undefined;\n\n\treturn (\n\t\t<>\n\t\t\t<Flex\n\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\thasValue={ hasSpanValue }\n\t\t\t\tlabel={ __( 'Grid span' ) }\n\t\t\t\tonDeselect={ resetGridSpans }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t>\n\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t<InputControl\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tlabel={ __( 'Column span' ) }\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\tconst newColumnSpan =\n\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\tconst constrainedValue = maxColumnSpan\n\t\t\t\t\t\t\t\t? Math.min( newColumnSpan, maxColumnSpan )\n\t\t\t\t\t\t\t\t: newColumnSpan;\n\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\tcolumnSpan: constrainedValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ columnSpan ?? 1 }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tmax={ maxColumnSpan }\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t<InputControl\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tlabel={ __( 'Row span' ) }\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tconst newRowSpan =\n\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\tconst constrainedValue = maxRowSpan\n\t\t\t\t\t\t\t\t? Math.min( newRowSpan, maxRowSpan )\n\t\t\t\t\t\t\t\t: newRowSpan;\n\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\trowSpan: constrainedValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ rowSpan ?? 1 }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tmax={ maxRowSpan }\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\n\t\t\t{ window.__experimentalEnableGridInteractivity && (\n\t\t\t\t// Use Flex with an explicit width on the FlexItem instead of HStack to\n\t\t\t\t// work around an issue in webkit where inputs with a max attribute are\n\t\t\t\t// sized incorrectly.\n\t\t\t\t<Flex\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\thasValue={ hasStartValue }\n\t\t\t\t\tlabel={ __( 'Grid placement' ) }\n\t\t\t\t\tonDeselect={ resetGridStarts }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Column' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newColumnStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart: newColumnStart,\n\t\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tnewColumnStart,\n\t\t\t\t\t\t\t\t\t\trowStart\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\tvalue={ columnStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\tcolumnCount\n\t\t\t\t\t\t\t\t\t? columnCount - ( columnSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Row' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newRowStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart: newRowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\t\tnewRowStart\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\tvalue={ rowStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\trowCount\n\t\t\t\t\t\t\t\t\t? rowCount - ( rowSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -95,16 +95,18 @@ const LinkControlSearchInput = forwardRef(({
|
|
|
95
95
|
}, suggestion);
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
|
+
const _placeholder = placeholder !== null && placeholder !== void 0 ? placeholder : __('Search or type URL');
|
|
99
|
+
const label = hideLabelFromVision && placeholder !== '' ? _placeholder : __('Link');
|
|
98
100
|
return /*#__PURE__*/_jsxs("div", {
|
|
99
101
|
className: "block-editor-link-control__search-input-container",
|
|
100
102
|
children: [/*#__PURE__*/_jsx(URLInput, {
|
|
101
103
|
disableSuggestions: currentLink?.url === value,
|
|
102
|
-
label:
|
|
104
|
+
label: label,
|
|
103
105
|
hideLabelFromVision: hideLabelFromVision,
|
|
104
106
|
className: className,
|
|
105
107
|
value: value,
|
|
106
108
|
onChange: onInputChange,
|
|
107
|
-
placeholder:
|
|
109
|
+
placeholder: _placeholder,
|
|
108
110
|
__experimentalRenderSuggestions: showSuggestions ? handleRenderSuggestions : null,
|
|
109
111
|
__experimentalFetchLinkSuggestions: searchHandler,
|
|
110
112
|
__experimentalHandleURLSuggestions: true,
|