@wordpress/block-editor 14.21.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/background-image-control/index.js +0 -4
- package/build/components/background-image-control/index.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.native.js +1 -1
- package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
- 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-lock/modal.js +1 -0
- package/build/components/block-lock/modal.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/image-size-control/index.js +1 -1
- package/build/components/image-size-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/components/use-paste-styles/index.js +2 -2
- package/build/components/use-paste-styles/index.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/utils/use-notify-copy.js +2 -2
- package/build/utils/use-notify-copy.js.map +1 -1
- package/build-module/components/background-image-control/index.js +0 -4
- package/build-module/components/background-image-control/index.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.native.js +1 -1
- package/build-module/components/block-list/block-invalid-warning.native.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-lock/modal.js +1 -0
- package/build-module/components/block-lock/modal.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/image-size-control/index.js +1 -1
- package/build-module/components/image-size-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/components/use-paste-styles/index.js +2 -2
- package/build-module/components/use-paste-styles/index.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-module/utils/use-notify-copy.js +2 -2
- package/build-module/utils/use-notify-copy.js.map +1 -1
- package/build-style/style-rtl.css +48 -19
- package/build-style/style.css +48 -19
- package/package.json +34 -34
- package/src/components/background-image-control/index.js +1 -8
- package/src/components/background-image-control/style.scss +3 -7
- package/src/components/block-list/block-invalid-warning.native.js +1 -1
- 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/modal.js +1 -0
- package/src/components/block-lock/style.scss +9 -5
- 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/image-size-control/index.js +1 -1
- 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/components/use-paste-styles/index.js +2 -2
- 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
- package/src/utils/use-notify-copy.js +2 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -37,11 +37,11 @@ function useNotifyCopy() {
|
|
|
37
37
|
const title = getBlockType(getBlockName(clientId))?.title;
|
|
38
38
|
if (eventType === 'copy') {
|
|
39
39
|
notice = (0, _i18n.sprintf)(
|
|
40
|
-
// Translators: Name of the block being copied, e.g. "Paragraph".
|
|
40
|
+
// Translators: %s: Name of the block being copied, e.g. "Paragraph".
|
|
41
41
|
(0, _i18n.__)('Copied "%s" to clipboard.'), title);
|
|
42
42
|
} else {
|
|
43
43
|
notice = (0, _i18n.sprintf)(
|
|
44
|
-
// Translators: Name of the block being cut, e.g. "Paragraph".
|
|
44
|
+
// Translators: %s: Name of the block being cut, e.g. "Paragraph".
|
|
45
45
|
(0, _i18n.__)('Moved "%s" to clipboard.'), title);
|
|
46
46
|
}
|
|
47
47
|
} else if (eventType === 'copy') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_blocks","_data","_i18n","_notices","_store","useNotifyCopy","getBlockName","useSelect","blockEditorStore","getBlockType","blocksStore","createSuccessNotice","useDispatch","noticesStore","useCallback","eventType","selectedBlockClientIds","notice","__","length","clientId","title","sprintf","_n","type"],"sources":["@wordpress/block-editor/src/utils/use-notify-copy.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\n\nexport function useNotifyCopy() {\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\treturn useCallback(\n\t\t( eventType, selectedBlockClientIds ) => {\n\t\t\tlet notice = '';\n\n\t\t\tif ( eventType === 'copyStyles' ) {\n\t\t\t\tnotice = __( 'Styles copied to clipboard.' );\n\t\t\t} else if ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\tconst clientId = selectedBlockClientIds[ 0 ];\n\t\t\t\tconst title = getBlockType( getBlockName( clientId ) )?.title;\n\n\t\t\t\tif ( eventType === 'copy' ) {\n\t\t\t\t\tnotice = sprintf(\n\t\t\t\t\t\t// Translators: Name of the block being copied, e.g. \"Paragraph\".\n\t\t\t\t\t\t__( 'Copied \"%s\" to clipboard.' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tnotice = sprintf(\n\t\t\t\t\t\t// Translators: Name of the block being cut, e.g. \"Paragraph\".\n\t\t\t\t\t\t__( 'Moved \"%s\" to clipboard.' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if ( eventType === 'copy' ) {\n\t\t\t\tnotice = sprintf(\n\t\t\t\t\t// Translators: %d: Number of blocks being copied.\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'Copied %d block to clipboard.',\n\t\t\t\t\t\t'Copied %d blocks to clipboard.',\n\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t),\n\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tnotice = sprintf(\n\t\t\t\t\t// Translators: %d: Number of blocks being moved.\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'Moved %d block to clipboard.',\n\t\t\t\t\t\t'Moved %d blocks to clipboard.',\n\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t),\n\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcreateSuccessNotice( notice, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t},\n\t\t[ createSuccessNotice, getBlockName, getBlockType ]\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAKA,IAAAK,MAAA,GAAAL,OAAA;AAZA;AACA;AACA;;AAOA;AACA;AACA;;AAGO,SAASM,aAAaA,CAAA,EAAG;EAC/B,MAAM;IAAEC;EAAa,CAAC,GAAG,IAAAC,eAAS,EAAEC,YAAiB,CAAC;EACtD,MAAM;IAAEC;EAAa,CAAC,GAAG,IAAAF,eAAS,EAAEG,aAAY,CAAC;EACjD,MAAM;IAAEC;EAAoB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,cAAa,CAAC;EAE3D,OAAO,IAAAC,oBAAW,EACjB,CAAEC,SAAS,EAAEC,sBAAsB,KAAM;IACxC,IAAIC,MAAM,GAAG,EAAE;IAEf,IAAKF,SAAS,KAAK,YAAY,EAAG;MACjCE,MAAM,GAAG,IAAAC,QAAE,EAAE,6BAA8B,CAAC;IAC7C,CAAC,MAAM,IAAKF,sBAAsB,CAACG,MAAM,KAAK,CAAC,EAAG;MACjD,MAAMC,QAAQ,GAAGJ,sBAAsB,CAAE,CAAC,CAAE;MAC5C,MAAMK,KAAK,GAAGZ,YAAY,CAAEH,YAAY,CAAEc,QAAS,CAAE,CAAC,EAAEC,KAAK;MAE7D,IAAKN,SAAS,KAAK,MAAM,EAAG;QAC3BE,MAAM,GAAG,IAAAK,aAAO;QACf;QACA,IAAAJ,QAAE,EAAE,2BAA4B,CAAC,EACjCG,KACD,CAAC;MACF,CAAC,MAAM;QACNJ,MAAM,GAAG,IAAAK,aAAO;QACf;QACA,IAAAJ,QAAE,EAAE,0BAA2B,CAAC,EAChCG,KACD,CAAC;MACF;IACD,CAAC,MAAM,IAAKN,SAAS,KAAK,MAAM,EAAG;MAClCE,MAAM,GAAG,IAAAK,aAAO;MACf;MACA,IAAAC,QAAE,EACD,+BAA+B,EAC/B,gCAAgC,EAChCP,sBAAsB,CAACG,MACxB,CAAC,EACDH,sBAAsB,CAACG,MACxB,CAAC;IACF,CAAC,MAAM;MACNF,MAAM,GAAG,IAAAK,aAAO;MACf;MACA,IAAAC,QAAE,EACD,8BAA8B,EAC9B,+BAA+B,EAC/BP,sBAAsB,CAACG,MACxB,CAAC,EACDH,sBAAsB,CAACG,MACxB,CAAC;IACF;IAEAR,mBAAmB,CAAEM,MAAM,EAAE;MAC5BO,IAAI,EAAE;IACP,CAAE,CAAC;EACJ,CAAC,EACD,CAAEb,mBAAmB,EAAEL,YAAY,EAAEG,YAAY,CAClD,CAAC;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_element","require","_blocks","_data","_i18n","_notices","_store","useNotifyCopy","getBlockName","useSelect","blockEditorStore","getBlockType","blocksStore","createSuccessNotice","useDispatch","noticesStore","useCallback","eventType","selectedBlockClientIds","notice","__","length","clientId","title","sprintf","_n","type"],"sources":["@wordpress/block-editor/src/utils/use-notify-copy.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\n\nexport function useNotifyCopy() {\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\treturn useCallback(\n\t\t( eventType, selectedBlockClientIds ) => {\n\t\t\tlet notice = '';\n\n\t\t\tif ( eventType === 'copyStyles' ) {\n\t\t\t\tnotice = __( 'Styles copied to clipboard.' );\n\t\t\t} else if ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\tconst clientId = selectedBlockClientIds[ 0 ];\n\t\t\t\tconst title = getBlockType( getBlockName( clientId ) )?.title;\n\n\t\t\t\tif ( eventType === 'copy' ) {\n\t\t\t\t\tnotice = sprintf(\n\t\t\t\t\t\t// Translators: %s: Name of the block being copied, e.g. \"Paragraph\".\n\t\t\t\t\t\t__( 'Copied \"%s\" to clipboard.' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tnotice = sprintf(\n\t\t\t\t\t\t// Translators: %s: Name of the block being cut, e.g. \"Paragraph\".\n\t\t\t\t\t\t__( 'Moved \"%s\" to clipboard.' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if ( eventType === 'copy' ) {\n\t\t\t\tnotice = sprintf(\n\t\t\t\t\t// Translators: %d: Number of blocks being copied.\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'Copied %d block to clipboard.',\n\t\t\t\t\t\t'Copied %d blocks to clipboard.',\n\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t),\n\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tnotice = sprintf(\n\t\t\t\t\t// Translators: %d: Number of blocks being moved.\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'Moved %d block to clipboard.',\n\t\t\t\t\t\t'Moved %d blocks to clipboard.',\n\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t),\n\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcreateSuccessNotice( notice, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t},\n\t\t[ createSuccessNotice, getBlockName, getBlockType ]\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAKA,IAAAK,MAAA,GAAAL,OAAA;AAZA;AACA;AACA;;AAOA;AACA;AACA;;AAGO,SAASM,aAAaA,CAAA,EAAG;EAC/B,MAAM;IAAEC;EAAa,CAAC,GAAG,IAAAC,eAAS,EAAEC,YAAiB,CAAC;EACtD,MAAM;IAAEC;EAAa,CAAC,GAAG,IAAAF,eAAS,EAAEG,aAAY,CAAC;EACjD,MAAM;IAAEC;EAAoB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,cAAa,CAAC;EAE3D,OAAO,IAAAC,oBAAW,EACjB,CAAEC,SAAS,EAAEC,sBAAsB,KAAM;IACxC,IAAIC,MAAM,GAAG,EAAE;IAEf,IAAKF,SAAS,KAAK,YAAY,EAAG;MACjCE,MAAM,GAAG,IAAAC,QAAE,EAAE,6BAA8B,CAAC;IAC7C,CAAC,MAAM,IAAKF,sBAAsB,CAACG,MAAM,KAAK,CAAC,EAAG;MACjD,MAAMC,QAAQ,GAAGJ,sBAAsB,CAAE,CAAC,CAAE;MAC5C,MAAMK,KAAK,GAAGZ,YAAY,CAAEH,YAAY,CAAEc,QAAS,CAAE,CAAC,EAAEC,KAAK;MAE7D,IAAKN,SAAS,KAAK,MAAM,EAAG;QAC3BE,MAAM,GAAG,IAAAK,aAAO;QACf;QACA,IAAAJ,QAAE,EAAE,2BAA4B,CAAC,EACjCG,KACD,CAAC;MACF,CAAC,MAAM;QACNJ,MAAM,GAAG,IAAAK,aAAO;QACf;QACA,IAAAJ,QAAE,EAAE,0BAA2B,CAAC,EAChCG,KACD,CAAC;MACF;IACD,CAAC,MAAM,IAAKN,SAAS,KAAK,MAAM,EAAG;MAClCE,MAAM,GAAG,IAAAK,aAAO;MACf;MACA,IAAAC,QAAE,EACD,+BAA+B,EAC/B,gCAAgC,EAChCP,sBAAsB,CAACG,MACxB,CAAC,EACDH,sBAAsB,CAACG,MACxB,CAAC;IACF,CAAC,MAAM;MACNF,MAAM,GAAG,IAAAK,aAAO;MACf;MACA,IAAAC,QAAE,EACD,8BAA8B,EAC9B,+BAA+B,EAC/BP,sBAAsB,CAACG,MACxB,CAAC,EACDH,sBAAsB,CAACG,MACxB,CAAC;IACF;IAEAR,mBAAmB,CAAEM,MAAM,EAAE;MAC5BO,IAAI,EAAE;IACP,CAAE,CAAC;EACJ,CAAC,EACD,CAAEb,mBAAmB,EAAEL,YAAY,EAAEG,YAAY,CAClD,CAAC;AACF","ignoreList":[]}
|
|
@@ -93,7 +93,6 @@ function InspectorImagePreviewItem({
|
|
|
93
93
|
toggleProps = {},
|
|
94
94
|
filename,
|
|
95
95
|
label,
|
|
96
|
-
className,
|
|
97
96
|
onToggleCallback = noop
|
|
98
97
|
}) {
|
|
99
98
|
const {
|
|
@@ -138,9 +137,7 @@ function InspectorImagePreviewItem({
|
|
|
138
137
|
};
|
|
139
138
|
return as === 'button' ? /*#__PURE__*/_jsx(Button, {
|
|
140
139
|
__next40pxDefaultSize: true,
|
|
141
|
-
className: className,
|
|
142
140
|
...restToggleProps,
|
|
143
|
-
"aria-expanded": isOpen,
|
|
144
141
|
children: renderPreviewContent()
|
|
145
142
|
}) : renderPreviewContent();
|
|
146
143
|
}
|
|
@@ -308,7 +305,6 @@ function BackgroundImageControls({
|
|
|
308
305
|
})
|
|
309
306
|
},
|
|
310
307
|
name: /*#__PURE__*/_jsx(InspectorImagePreviewItem, {
|
|
311
|
-
className: "block-editor-global-styles-background-panel__image-preview",
|
|
312
308
|
imgUrl: url,
|
|
313
309
|
filename: title,
|
|
314
310
|
label: imgLabel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalVStack","VStack","DropZone","FlexItem","FocalPointPicker","MenuItem","VisuallyHidden","__experimentalHStack","HStack","__experimentalTruncate","Truncate","Dropdown","Placeholder","Spinner","__experimentalDropdownContentWrapper","DropdownContentWrapper","Button","__","_x","sprintf","store","noticesStore","getFilename","useRef","useState","useEffect","useMemo","useDispatch","useSelect","focus","isBlobURL","getResolvedValue","hasBackgroundImageValue","setImmutably","MediaReplaceFlow","blockEditorStore","globalStylesDataKey","globalStylesLinksDataKey","jsx","_jsx","jsxs","_jsxs","IMAGE_BACKGROUND_TYPE","BACKGROUND_POPOVER_PROPS","placement","offset","shift","className","noop","backgroundSizeHelpText","value","undefined","coordsToBackgroundPosition","isNaN","x","y","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreviewItem","as","imgUrl","toggleProps","filename","label","onToggleCallback","isOpen","restToggleProps","renderPreviewContent","justify","children","style","backgroundImage","flexGrow","numberOfLines","__next40pxDefaultSize","BackgroundControlsPanel","url","onToggle","hasImageValue","imgLabel","popoverProps","renderToggle","onClick","renderContent","paddingSize","LoadingSpinner","BackgroundImageControls","onChange","inheritedValue","onRemoveImage","onResetImage","displayInPanel","defaultValues","containerRef","isUploading","setIsUploading","getSettings","id","title","background","createErrorNotice","onUploadError","message","type","resetBackgroundImage","onSelectMedia","media","media_type","sizeValue","backgroundSize","positionValue","backgroundPosition","source","closeAndFocus","onFilesDrop","filesList","mediaUpload","allowedTypes","onFileChange","image","onError","multiple","hasValue","window","requestAnimationFrame","toggleButton","tabbable","find","current","onRemove","canRemove","mediaId","mediaURL","accept","onSelect","name","props","onReset","BackgroundSizeControls","repeatValue","backgroundRepeat","imageValue","isUploadedImage","attachmentValue","backgroundAttachment","currentValueForToggle","includes","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","toggleScrollWithPage","backgroundPositionValue","spacing","__nextHasNoMarginBottom","checked","size","isBlock","help","__unstableInputWidth","min","placeholder","disabled","BackgroundImagePanel","settings","globalStyles","_links","select","_settings","resolvedInheritedValue","resolvedValues","Object","entries","forEach","key","backgroundValue","styles","resetBackground","shouldShowBackgroundImageControls","isDropDownOpen","setIsDropDownOpen","ref"],"sources":["@wordpress/block-editor/src/components/background-image-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tDropdown,\n\tPlaceholder,\n\tSpinner,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useRef, useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { getResolvedValue } from '../global-styles/utils';\nimport { hasBackgroundImageValue } from '../global-styles/background-panel';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\n\nimport {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n} from '../../store/private-keys';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\n\nconst BACKGROUND_POPOVER_PROPS = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-global-styles-background-panel__popover',\n};\nconst noop = () => {};\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Image has a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreviewItem( {\n\tas = 'span',\n\timgUrl,\n\ttoggleProps = {},\n\tfilename,\n\tlabel,\n\tclassName,\n\tonToggleCallback = noop,\n} ) {\n\tconst { isOpen, ...restToggleProps } = toggleProps;\n\n\tuseEffect( () => {\n\t\tif ( typeof isOpen !== 'undefined' ) {\n\t\t\tonToggleCallback( isOpen );\n\t\t}\n\t}, [ isOpen, onToggleCallback ] );\n\n\tconst renderPreviewContent = () => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tas=\"span\"\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-preview-inner\"\n\t\t\t>\n\t\t\t\t{ imgUrl && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator-wrapper\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<FlexItem as=\"span\" style={ imgUrl ? {} : { flexGrow: 1 } }>\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ imgUrl\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Background image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename || label\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No background image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t);\n\t};\n\n\treturn as === 'button' ? (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName={ className }\n\t\t\t{ ...restToggleProps }\n\t\t\taria-expanded={ isOpen }\n\t\t>\n\t\t\t{ renderPreviewContent() }\n\t\t</Button>\n\t) : (\n\t\trenderPreviewContent()\n\t);\n}\n\nfunction BackgroundControlsPanel( {\n\tlabel,\n\tfilename,\n\turl: imgUrl,\n\tchildren,\n\tonToggle: onToggleCallback = noop,\n\thasImageValue,\n} ) {\n\tif ( ! hasImageValue ) {\n\t\treturn;\n\t}\n\n\tconst imgLabel =\n\t\tlabel || getFilename( imgUrl ) || __( 'Add background image' );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ BACKGROUND_POPOVER_PROPS }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName:\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__dropdown-toggle',\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t'aria-label': __(\n\t\t\t\t\t\t'Background size, position and repeat options.'\n\t\t\t\t\t),\n\t\t\t\t\tisOpen,\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\timgUrl={ imgUrl }\n\t\t\t\t\t\tfilename={ filename }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t\tas=\"button\"\n\t\t\t\t\t\tonToggleCallback={ onToggleCallback }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__dropdown-content-wrapper\"\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction LoadingSpinner() {\n\treturn (\n\t\t<Placeholder className=\"block-editor-global-styles-background-panel__loading\">\n\t\t\t<Spinner />\n\t\t</Placeholder>\n\t);\n}\n\nfunction BackgroundImageControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tonRemoveImage = noop,\n\tonResetImage = noop,\n\tdisplayInPanel,\n\tdefaultValues,\n\tcontainerRef,\n} ) {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetIsUploading( false );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\tsetIsUploading( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetIsUploading( true );\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst sizeValue =\n\t\t\tstyle?.background?.backgroundSize || defaultValues?.backgroundSize;\n\t\tconst positionValue = style?.background?.backgroundPosition;\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t\tbackgroundPosition:\n\t\t\t\t\t/*\n\t\t\t\t\t * A background image uploaded and set in the editor receives a default background position of '50% 0',\n\t\t\t\t\t * when the background image size is the equivalent of \"Tile\".\n\t\t\t\t\t * This is to increase the chance that the image's focus point is visible.\n\t\t\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t\t\t */\n\t\t\t\t\t! positionValue && ( 'auto' === sizeValue || ! sizeValue )\n\t\t\t\t\t\t? '50% 0'\n\t\t\t\t\t\t: positionValue,\n\t\t\t\tbackgroundSize: sizeValue,\n\t\t\t} )\n\t\t);\n\t\tsetIsUploading( false );\n\t\t// Close the dropdown and focus the toggle button.\n\t\tcloseAndFocus();\n\t};\n\n\t// Drag and drop callback, restricting image to one.\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: [ IMAGE_BACKGROUND_TYPE ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\tconst closeAndFocus = () => {\n\t\t// Use requestAnimationFrame to ensure DOM updates are complete\n\t\twindow.requestAnimationFrame( () => {\n\t\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\t\tcontainerRef?.current\n\t\t\t);\n\t\t\tif ( ! toggleButton ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Focus the toggle button and close the dropdown menu.\n\t\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\t\ttoggleButton.focus();\n\t\t} );\n\t};\n\n\tconst onRemove = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\tbackgroundImage: 'none',\n\t\t\t} )\n\t\t);\n\tconst canRemove = ! hasValue && hasBackgroundImageValue( inheritedValue );\n\tconst imgLabel =\n\t\ttitle || getFilename( url ) || __( 'Add background image' );\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles-background-panel__image-tools-panel-item\">\n\t\t\t{ isUploading && <LoadingSpinner /> }\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ id }\n\t\t\t\tmediaURL={ url }\n\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tclassName: clsx( {\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__media-replace-popover':\n\t\t\t\t\t\t\tdisplayInPanel,\n\t\t\t\t\t} ),\n\t\t\t\t} }\n\t\t\t\tname={\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__image-preview\"\n\t\t\t\t\t\timgUrl={ url }\n\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\trenderToggle={ ( props ) => (\n\t\t\t\t\t<Button { ...props } __next40pxDefaultSize />\n\t\t\t\t) }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tonReset={ () => {\n\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\tonResetImage();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ canRemove && (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t) }\n\t\t\t</MediaReplaceFlow>\n\t\t\t<DropZone\n\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BackgroundSizeControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst isUploadedImage = style?.background?.backgroundImage?.id;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\tconst attachmentValue =\n\t\tstyle?.background?.backgroundAttachment ||\n\t\tinheritedValue?.background?.backgroundAttachment;\n\n\t/*\n\t * Set default values for uploaded images.\n\t * The default values are passed by the consumer.\n\t * Block-level controls may have different defaults to root-level controls.\n\t * A falsy value is treated by default as `auto` (Tile).\n\t */\n\tlet currentValueForToggle =\n\t\t! sizeValue && isUploadedImage\n\t\t\t? defaultValues?.backgroundSize\n\t\t\t: sizeValue || 'auto';\n\t/*\n\t * The incoming value could be a value + unit, e.g. '20px'.\n\t * In this case set the value to 'tile'.\n\t */\n\tcurrentValueForToggle = ! [ 'cover', 'contain', 'auto' ].includes(\n\t\tcurrentValueForToggle\n\t)\n\t\t? 'auto'\n\t\t: currentValueForToggle;\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\t\tlet nextPosition = positionValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t\t/*\n\t\t\t * A background image uploaded and set in the editor (an image with a record id),\n\t\t\t * receives a default background position of '50% 0',\n\t\t\t * when the toggle switches to \"Tile\". This is to increase the chance that\n\t\t\t * the image's focus point is visible.\n\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t */\n\t\t\tif ( !! style?.background?.backgroundImage?.id ) {\n\t\t\t\tnextPosition = '50% 0';\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Next will be null when the input is cleared,\n\t\t * in which case the value should be 'auto'.\n\t\t */\n\t\tif ( ! next && currentValueForToggle === 'auto' ) {\n\t\t\tnext = 'auto';\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: nextPosition,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : 'repeat'\n\t\t\t)\n\t\t);\n\n\tconst toggleScrollWithPage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundAttachment' ],\n\t\t\t\tattachmentValue === 'fixed' ? 'scroll' : 'fixed'\n\t\t\t)\n\t\t);\n\n\t// Set a default background position for non-site-wide, uploaded images with a size of 'contain'.\n\tconst backgroundPositionValue =\n\t\t! positionValue && isUploadedImage && 'contain' === sizeValue\n\t\t\t? defaultValues?.backgroundPosition\n\t\t\t: positionValue;\n\n\treturn (\n\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t<FocalPointPicker\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\turl={ imageValue }\n\t\t\t\tvalue={ backgroundPositionToCoords( backgroundPositionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\tchecked={ attachmentValue === 'fixed' }\n\t\t\t\tonChange={ toggleScrollWithPage }\n\t\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={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText(\n\t\t\t\t\tsizeValue || defaultValues?.backgroundSize\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"cover\"\n\t\t\t\t\tvalue=\"cover\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Cover',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"contain\"\n\t\t\t\t\tvalue=\"contain\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Contain',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"tile\"\n\t\t\t\t\tvalue=\"auto\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Tile',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<HStack justify=\"flex-start\" spacing={ 2 } as=\"span\">\n\t\t\t\t<UnitControl\n\t\t\t\t\taria-label={ __( 'Background image width' ) }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t__unstableInputWidth=\"100px\"\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tplaceholder={ __( 'Auto' ) }\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tcurrentValueForToggle !== 'auto' ||\n\t\t\t\t\t\tcurrentValueForToggle === undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\tdisabled={ currentValueForToggle === 'cover' }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function BackgroundImagePanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tdefaultValues = {},\n} ) {\n\t/*\n\t * Resolve any inherited \"ref\" pointers.\n\t * Should the block editor need resolved, inherited values\n\t * across all controls, this could be abstracted into a hook,\n\t * e.g., useResolveGlobalStyle\n\t */\n\tconst { globalStyles, _links } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst _settings = getSettings();\n\t\treturn {\n\t\t\tglobalStyles: _settings[ globalStylesDataKey ],\n\t\t\t_links: _settings[ globalStylesLinksDataKey ],\n\t\t};\n\t}, [] );\n\tconst resolvedInheritedValue = useMemo( () => {\n\t\tconst resolvedValues = {\n\t\t\tbackground: {},\n\t\t};\n\n\t\tif ( ! inheritedValue?.background ) {\n\t\t\treturn inheritedValue;\n\t\t}\n\n\t\tObject.entries( inheritedValue?.background ).forEach(\n\t\t\t( [ key, backgroundValue ] ) => {\n\t\t\t\tresolvedValues.background[ key ] = getResolvedValue(\n\t\t\t\t\tbackgroundValue,\n\t\t\t\t\t{\n\t\t\t\t\t\tstyles: globalStyles,\n\t\t\t\t\t\t_links,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\t\treturn resolvedValues;\n\t}, [ globalStyles, _links, inheritedValue ] );\n\n\tconst resetBackground = () =>\n\t\tonChange( setImmutably( value, [ 'background' ], {} ) );\n\n\tconst { title, url } = value?.background?.backgroundImage || {\n\t\t...resolvedInheritedValue?.background?.backgroundImage,\n\t};\n\tconst hasImageValue =\n\t\thasBackgroundImageValue( value ) ||\n\t\thasBackgroundImageValue( resolvedInheritedValue );\n\n\tconst imageValue =\n\t\tvalue?.background?.backgroundImage ||\n\t\tinheritedValue?.background?.backgroundImage;\n\n\tconst shouldShowBackgroundImageControls =\n\t\thasImageValue &&\n\t\t'none' !== imageValue &&\n\t\t( settings?.background?.backgroundSize ||\n\t\t\tsettings?.background?.backgroundPosition ||\n\t\t\tsettings?.background?.backgroundRepeat );\n\n\tconst [ isDropDownOpen, setIsDropDownOpen ] = useState( false );\n\tconst containerRef = useRef();\n\n\treturn (\n\t\t<div\n\t\t\tref={ containerRef }\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-global-styles-background-panel__inspector-media-replace-container',\n\t\t\t\t{\n\t\t\t\t\t'is-open': isDropDownOpen,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ shouldShowBackgroundImageControls ? (\n\t\t\t\t<BackgroundControlsPanel\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tfilename={ title }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tonToggle={ setIsDropDownOpen }\n\t\t\t\t\thasImageValue={ hasImageValue }\n\t\t\t\t>\n\t\t\t\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t\t\t\t<BackgroundImageControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t\tdisplayInPanel\n\t\t\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BackgroundSizeControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</BackgroundControlsPanel>\n\t\t\t) : (\n\t\t\t\t<BackgroundImageControls\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t} }\n\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalVStack","VStack","DropZone","FlexItem","FocalPointPicker","MenuItem","VisuallyHidden","__experimentalHStack","HStack","__experimentalTruncate","Truncate","Dropdown","Placeholder","Spinner","__experimentalDropdownContentWrapper","DropdownContentWrapper","Button","__","_x","sprintf","store","noticesStore","getFilename","useRef","useState","useEffect","useMemo","useDispatch","useSelect","focus","isBlobURL","getResolvedValue","hasBackgroundImageValue","setImmutably","MediaReplaceFlow","blockEditorStore","globalStylesDataKey","globalStylesLinksDataKey","jsx","_jsx","jsxs","_jsxs","IMAGE_BACKGROUND_TYPE","BACKGROUND_POPOVER_PROPS","placement","offset","shift","className","noop","backgroundSizeHelpText","value","undefined","coordsToBackgroundPosition","isNaN","x","y","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreviewItem","as","imgUrl","toggleProps","filename","label","onToggleCallback","isOpen","restToggleProps","renderPreviewContent","justify","children","style","backgroundImage","flexGrow","numberOfLines","__next40pxDefaultSize","BackgroundControlsPanel","url","onToggle","hasImageValue","imgLabel","popoverProps","renderToggle","onClick","renderContent","paddingSize","LoadingSpinner","BackgroundImageControls","onChange","inheritedValue","onRemoveImage","onResetImage","displayInPanel","defaultValues","containerRef","isUploading","setIsUploading","getSettings","id","title","background","createErrorNotice","onUploadError","message","type","resetBackgroundImage","onSelectMedia","media","media_type","sizeValue","backgroundSize","positionValue","backgroundPosition","source","closeAndFocus","onFilesDrop","filesList","mediaUpload","allowedTypes","onFileChange","image","onError","multiple","hasValue","window","requestAnimationFrame","toggleButton","tabbable","find","current","onRemove","canRemove","mediaId","mediaURL","accept","onSelect","name","props","onReset","BackgroundSizeControls","repeatValue","backgroundRepeat","imageValue","isUploadedImage","attachmentValue","backgroundAttachment","currentValueForToggle","includes","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","toggleScrollWithPage","backgroundPositionValue","spacing","__nextHasNoMarginBottom","checked","size","isBlock","help","__unstableInputWidth","min","placeholder","disabled","BackgroundImagePanel","settings","globalStyles","_links","select","_settings","resolvedInheritedValue","resolvedValues","Object","entries","forEach","key","backgroundValue","styles","resetBackground","shouldShowBackgroundImageControls","isDropDownOpen","setIsDropDownOpen","ref"],"sources":["@wordpress/block-editor/src/components/background-image-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tDropdown,\n\tPlaceholder,\n\tSpinner,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useRef, useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { getResolvedValue } from '../global-styles/utils';\nimport { hasBackgroundImageValue } from '../global-styles/background-panel';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\n\nimport {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n} from '../../store/private-keys';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\n\nconst BACKGROUND_POPOVER_PROPS = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-global-styles-background-panel__popover',\n};\nconst noop = () => {};\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Image has a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreviewItem( {\n\tas = 'span',\n\timgUrl,\n\ttoggleProps = {},\n\tfilename,\n\tlabel,\n\tonToggleCallback = noop,\n} ) {\n\tconst { isOpen, ...restToggleProps } = toggleProps;\n\n\tuseEffect( () => {\n\t\tif ( typeof isOpen !== 'undefined' ) {\n\t\t\tonToggleCallback( isOpen );\n\t\t}\n\t}, [ isOpen, onToggleCallback ] );\n\n\tconst renderPreviewContent = () => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tas=\"span\"\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-preview-inner\"\n\t\t\t>\n\t\t\t\t{ imgUrl && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator-wrapper\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<FlexItem as=\"span\" style={ imgUrl ? {} : { flexGrow: 1 } }>\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ imgUrl\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Background image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename || label\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No background image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t);\n\t};\n\n\treturn as === 'button' ? (\n\t\t<Button __next40pxDefaultSize { ...restToggleProps }>\n\t\t\t{ renderPreviewContent() }\n\t\t</Button>\n\t) : (\n\t\trenderPreviewContent()\n\t);\n}\n\nfunction BackgroundControlsPanel( {\n\tlabel,\n\tfilename,\n\turl: imgUrl,\n\tchildren,\n\tonToggle: onToggleCallback = noop,\n\thasImageValue,\n} ) {\n\tif ( ! hasImageValue ) {\n\t\treturn;\n\t}\n\n\tconst imgLabel =\n\t\tlabel || getFilename( imgUrl ) || __( 'Add background image' );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ BACKGROUND_POPOVER_PROPS }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName:\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__dropdown-toggle',\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t'aria-label': __(\n\t\t\t\t\t\t'Background size, position and repeat options.'\n\t\t\t\t\t),\n\t\t\t\t\tisOpen,\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\timgUrl={ imgUrl }\n\t\t\t\t\t\tfilename={ filename }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t\tas=\"button\"\n\t\t\t\t\t\tonToggleCallback={ onToggleCallback }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__dropdown-content-wrapper\"\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction LoadingSpinner() {\n\treturn (\n\t\t<Placeholder className=\"block-editor-global-styles-background-panel__loading\">\n\t\t\t<Spinner />\n\t\t</Placeholder>\n\t);\n}\n\nfunction BackgroundImageControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tonRemoveImage = noop,\n\tonResetImage = noop,\n\tdisplayInPanel,\n\tdefaultValues,\n\tcontainerRef,\n} ) {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetIsUploading( false );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\tsetIsUploading( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetIsUploading( true );\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst sizeValue =\n\t\t\tstyle?.background?.backgroundSize || defaultValues?.backgroundSize;\n\t\tconst positionValue = style?.background?.backgroundPosition;\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t\tbackgroundPosition:\n\t\t\t\t\t/*\n\t\t\t\t\t * A background image uploaded and set in the editor receives a default background position of '50% 0',\n\t\t\t\t\t * when the background image size is the equivalent of \"Tile\".\n\t\t\t\t\t * This is to increase the chance that the image's focus point is visible.\n\t\t\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t\t\t */\n\t\t\t\t\t! positionValue && ( 'auto' === sizeValue || ! sizeValue )\n\t\t\t\t\t\t? '50% 0'\n\t\t\t\t\t\t: positionValue,\n\t\t\t\tbackgroundSize: sizeValue,\n\t\t\t} )\n\t\t);\n\t\tsetIsUploading( false );\n\t\t// Close the dropdown and focus the toggle button.\n\t\tcloseAndFocus();\n\t};\n\n\t// Drag and drop callback, restricting image to one.\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: [ IMAGE_BACKGROUND_TYPE ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\tconst closeAndFocus = () => {\n\t\t// Use requestAnimationFrame to ensure DOM updates are complete\n\t\twindow.requestAnimationFrame( () => {\n\t\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\t\tcontainerRef?.current\n\t\t\t);\n\t\t\tif ( ! toggleButton ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Focus the toggle button and close the dropdown menu.\n\t\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\t\ttoggleButton.focus();\n\t\t} );\n\t};\n\n\tconst onRemove = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\tbackgroundImage: 'none',\n\t\t\t} )\n\t\t);\n\tconst canRemove = ! hasValue && hasBackgroundImageValue( inheritedValue );\n\tconst imgLabel =\n\t\ttitle || getFilename( url ) || __( 'Add background image' );\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles-background-panel__image-tools-panel-item\">\n\t\t\t{ isUploading && <LoadingSpinner /> }\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ id }\n\t\t\t\tmediaURL={ url }\n\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tclassName: clsx( {\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__media-replace-popover':\n\t\t\t\t\t\t\tdisplayInPanel,\n\t\t\t\t\t} ),\n\t\t\t\t} }\n\t\t\t\tname={\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\timgUrl={ url }\n\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\trenderToggle={ ( props ) => (\n\t\t\t\t\t<Button { ...props } __next40pxDefaultSize />\n\t\t\t\t) }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tonReset={ () => {\n\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\tonResetImage();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ canRemove && (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t) }\n\t\t\t</MediaReplaceFlow>\n\t\t\t<DropZone\n\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BackgroundSizeControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst isUploadedImage = style?.background?.backgroundImage?.id;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\tconst attachmentValue =\n\t\tstyle?.background?.backgroundAttachment ||\n\t\tinheritedValue?.background?.backgroundAttachment;\n\n\t/*\n\t * Set default values for uploaded images.\n\t * The default values are passed by the consumer.\n\t * Block-level controls may have different defaults to root-level controls.\n\t * A falsy value is treated by default as `auto` (Tile).\n\t */\n\tlet currentValueForToggle =\n\t\t! sizeValue && isUploadedImage\n\t\t\t? defaultValues?.backgroundSize\n\t\t\t: sizeValue || 'auto';\n\t/*\n\t * The incoming value could be a value + unit, e.g. '20px'.\n\t * In this case set the value to 'tile'.\n\t */\n\tcurrentValueForToggle = ! [ 'cover', 'contain', 'auto' ].includes(\n\t\tcurrentValueForToggle\n\t)\n\t\t? 'auto'\n\t\t: currentValueForToggle;\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\t\tlet nextPosition = positionValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t\t/*\n\t\t\t * A background image uploaded and set in the editor (an image with a record id),\n\t\t\t * receives a default background position of '50% 0',\n\t\t\t * when the toggle switches to \"Tile\". This is to increase the chance that\n\t\t\t * the image's focus point is visible.\n\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t */\n\t\t\tif ( !! style?.background?.backgroundImage?.id ) {\n\t\t\t\tnextPosition = '50% 0';\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Next will be null when the input is cleared,\n\t\t * in which case the value should be 'auto'.\n\t\t */\n\t\tif ( ! next && currentValueForToggle === 'auto' ) {\n\t\t\tnext = 'auto';\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: nextPosition,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : 'repeat'\n\t\t\t)\n\t\t);\n\n\tconst toggleScrollWithPage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundAttachment' ],\n\t\t\t\tattachmentValue === 'fixed' ? 'scroll' : 'fixed'\n\t\t\t)\n\t\t);\n\n\t// Set a default background position for non-site-wide, uploaded images with a size of 'contain'.\n\tconst backgroundPositionValue =\n\t\t! positionValue && isUploadedImage && 'contain' === sizeValue\n\t\t\t? defaultValues?.backgroundPosition\n\t\t\t: positionValue;\n\n\treturn (\n\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t<FocalPointPicker\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\turl={ imageValue }\n\t\t\t\tvalue={ backgroundPositionToCoords( backgroundPositionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\tchecked={ attachmentValue === 'fixed' }\n\t\t\t\tonChange={ toggleScrollWithPage }\n\t\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={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText(\n\t\t\t\t\tsizeValue || defaultValues?.backgroundSize\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"cover\"\n\t\t\t\t\tvalue=\"cover\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Cover',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"contain\"\n\t\t\t\t\tvalue=\"contain\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Contain',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"tile\"\n\t\t\t\t\tvalue=\"auto\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Tile',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<HStack justify=\"flex-start\" spacing={ 2 } as=\"span\">\n\t\t\t\t<UnitControl\n\t\t\t\t\taria-label={ __( 'Background image width' ) }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t__unstableInputWidth=\"100px\"\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tplaceholder={ __( 'Auto' ) }\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tcurrentValueForToggle !== 'auto' ||\n\t\t\t\t\t\tcurrentValueForToggle === undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\tdisabled={ currentValueForToggle === 'cover' }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function BackgroundImagePanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tdefaultValues = {},\n} ) {\n\t/*\n\t * Resolve any inherited \"ref\" pointers.\n\t * Should the block editor need resolved, inherited values\n\t * across all controls, this could be abstracted into a hook,\n\t * e.g., useResolveGlobalStyle\n\t */\n\tconst { globalStyles, _links } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst _settings = getSettings();\n\t\treturn {\n\t\t\tglobalStyles: _settings[ globalStylesDataKey ],\n\t\t\t_links: _settings[ globalStylesLinksDataKey ],\n\t\t};\n\t}, [] );\n\tconst resolvedInheritedValue = useMemo( () => {\n\t\tconst resolvedValues = {\n\t\t\tbackground: {},\n\t\t};\n\n\t\tif ( ! inheritedValue?.background ) {\n\t\t\treturn inheritedValue;\n\t\t}\n\n\t\tObject.entries( inheritedValue?.background ).forEach(\n\t\t\t( [ key, backgroundValue ] ) => {\n\t\t\t\tresolvedValues.background[ key ] = getResolvedValue(\n\t\t\t\t\tbackgroundValue,\n\t\t\t\t\t{\n\t\t\t\t\t\tstyles: globalStyles,\n\t\t\t\t\t\t_links,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\t\treturn resolvedValues;\n\t}, [ globalStyles, _links, inheritedValue ] );\n\n\tconst resetBackground = () =>\n\t\tonChange( setImmutably( value, [ 'background' ], {} ) );\n\n\tconst { title, url } = value?.background?.backgroundImage || {\n\t\t...resolvedInheritedValue?.background?.backgroundImage,\n\t};\n\tconst hasImageValue =\n\t\thasBackgroundImageValue( value ) ||\n\t\thasBackgroundImageValue( resolvedInheritedValue );\n\n\tconst imageValue =\n\t\tvalue?.background?.backgroundImage ||\n\t\tinheritedValue?.background?.backgroundImage;\n\n\tconst shouldShowBackgroundImageControls =\n\t\thasImageValue &&\n\t\t'none' !== imageValue &&\n\t\t( settings?.background?.backgroundSize ||\n\t\t\tsettings?.background?.backgroundPosition ||\n\t\t\tsettings?.background?.backgroundRepeat );\n\n\tconst [ isDropDownOpen, setIsDropDownOpen ] = useState( false );\n\tconst containerRef = useRef();\n\n\treturn (\n\t\t<div\n\t\t\tref={ containerRef }\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-global-styles-background-panel__inspector-media-replace-container',\n\t\t\t\t{\n\t\t\t\t\t'is-open': isDropDownOpen,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ shouldShowBackgroundImageControls ? (\n\t\t\t\t<BackgroundControlsPanel\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tfilename={ title }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tonToggle={ setIsDropDownOpen }\n\t\t\t\t\thasImageValue={ hasImageValue }\n\t\t\t\t>\n\t\t\t\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t\t\t\t<BackgroundImageControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t\tdisplayInPanel\n\t\t\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BackgroundSizeControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</BackgroundControlsPanel>\n\t\t\t) : (\n\t\t\t\t<BackgroundImageControls\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t} }\n\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -41,7 +41,7 @@ export default function BlockInvalidWarning({
|
|
|
41
41
|
blockTitle,
|
|
42
42
|
icon
|
|
43
43
|
} = useSelect(selector, [clientId]);
|
|
44
|
-
const accessibilityLabel = sprintf(/* translators: accessibility text for blocks with invalid content. %
|
|
44
|
+
const accessibilityLabel = sprintf(/* translators: accessibility text for blocks with invalid content. %s: localized block title */
|
|
45
45
|
__('%s block. This block has invalid content'), blockTitle);
|
|
46
46
|
const {
|
|
47
47
|
replaceBlock
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TouchableWithoutFeedback","__","sprintf","useSelect","useDispatch","createBlock","getBlockType","Warning","store","blockEditorStore","jsx","_jsx","BlockInvalidWarning","clientId","selector","select","getBlock","block","name","blockType","title","blockIcon","icon","blockTitle","accessibilityLabel","replaceBlock","recoverBlock","attributes","innerBlocks","attemptBlockRecovery","onPress","accessible","accessibilityRole","children","message"],"sources":["@wordpress/block-editor/src/components/block-list/block-invalid-warning.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Warning from '../warning';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockInvalidWarning( { clientId } ) {\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst blockIcon = blockType?.icon;\n\n\t\treturn {\n\t\t\tblock,\n\t\t\tblockTitle: title,\n\t\t\ticon: blockIcon,\n\t\t};\n\t};\n\n\tconst { block, blockTitle, icon } = useSelect( selector, [ clientId ] );\n\n\tconst accessibilityLabel = sprintf(\n\t\t/* translators: accessibility text for blocks with invalid content. %
|
|
1
|
+
{"version":3,"names":["TouchableWithoutFeedback","__","sprintf","useSelect","useDispatch","createBlock","getBlockType","Warning","store","blockEditorStore","jsx","_jsx","BlockInvalidWarning","clientId","selector","select","getBlock","block","name","blockType","title","blockIcon","icon","blockTitle","accessibilityLabel","replaceBlock","recoverBlock","attributes","innerBlocks","attemptBlockRecovery","onPress","accessible","accessibilityRole","children","message"],"sources":["@wordpress/block-editor/src/components/block-list/block-invalid-warning.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Warning from '../warning';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockInvalidWarning( { clientId } ) {\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst blockIcon = blockType?.icon;\n\n\t\treturn {\n\t\t\tblock,\n\t\t\tblockTitle: title,\n\t\t\ticon: blockIcon,\n\t\t};\n\t};\n\n\tconst { block, blockTitle, icon } = useSelect( selector, [ clientId ] );\n\n\tconst accessibilityLabel = sprintf(\n\t\t/* translators: accessibility text for blocks with invalid content. %s: localized block title */\n\t\t__( '%s block. This block has invalid content' ),\n\t\tblockTitle\n\t);\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst recoverBlock = ( { name, attributes, innerBlocks } ) =>\n\t\tcreateBlock( name, attributes, innerBlocks );\n\n\tconst attemptBlockRecovery = () => {\n\t\treplaceBlock( block.clientId, recoverBlock( block ) );\n\t};\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ attemptBlockRecovery }\n\t\t\taccessible\n\t\t\taccessibilityRole=\"button\"\n\t\t>\n\t\t\t<Warning\n\t\t\t\ttitle={ blockTitle }\n\t\t\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\t\t\tmessage={ __(\n\t\t\t\t\t'Problem displaying block. \\nTap to attempt block recovery.'\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t/>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,wBAAwB,QAAQ,cAAc;;AAEvD;AACA;AACA;AACA,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,WAAW,EAAEC,YAAY,QAAQ,mBAAmB;;AAE7D;AACA;AACA;AACA,OAAOC,OAAO,MAAM,YAAY;AAChC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,eAAe,SAASC,mBAAmBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC3D,MAAMC,QAAQ,GAAKC,MAAM,IAAM;IAC9B,MAAM;MAAEC;IAAS,CAAC,GAAGD,MAAM,CAAEN,gBAAiB,CAAC;IAC/C,MAAMQ,KAAK,GAAGD,QAAQ,CAAEH,QAAS,CAAC;IAClC,MAAM;MAAEK;IAAK,CAAC,GAAGD,KAAK,IAAI,CAAC,CAAC;IAE5B,MAAME,SAAS,GAAGb,YAAY,CAAEY,IAAI,IAAI,cAAe,CAAC;IACxD,MAAME,KAAK,GAAGD,SAAS,EAAEC,KAAK;IAC9B,MAAMC,SAAS,GAAGF,SAAS,EAAEG,IAAI;IAEjC,OAAO;MACNL,KAAK;MACLM,UAAU,EAAEH,KAAK;MACjBE,IAAI,EAAED;IACP,CAAC;EACF,CAAC;EAED,MAAM;IAAEJ,KAAK;IAAEM,UAAU;IAAED;EAAK,CAAC,GAAGnB,SAAS,CAAEW,QAAQ,EAAE,CAAED,QAAQ,CAAG,CAAC;EAEvE,MAAMW,kBAAkB,GAAGtB,OAAO,CACjC;EACAD,EAAE,CAAE,0CAA2C,CAAC,EAChDsB,UACD,CAAC;EAED,MAAM;IAAEE;EAAa,CAAC,GAAGrB,WAAW,CAAEK,gBAAiB,CAAC;EAExD,MAAMiB,YAAY,GAAGA,CAAE;IAAER,IAAI;IAAES,UAAU;IAAEC;EAAY,CAAC,KACvDvB,WAAW,CAAEa,IAAI,EAAES,UAAU,EAAEC,WAAY,CAAC;EAE7C,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;IAClCJ,YAAY,CAAER,KAAK,CAACJ,QAAQ,EAAEa,YAAY,CAAET,KAAM,CAAE,CAAC;EACtD,CAAC;EAED,oBACCN,IAAA,CAACX,wBAAwB;IACxB8B,OAAO,EAAGD,oBAAsB;IAChCE,UAAU;IACVC,iBAAiB,EAAC,QAAQ;IAAAC,QAAA,eAE1BtB,IAAA,CAACJ,OAAO;MACPa,KAAK,EAAGG;MACR;MAAA;MACAW,OAAO,EAAGjC,EAAE,CACX,4DACD,CAAG;MACHqB,IAAI,EAAGA,IAAM;MACbE,kBAAkB,EAAGA;IAAoB,CACzC;EAAC,CACuB,CAAC;AAE7B","ignoreList":[]}
|
|
@@ -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":"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","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,6 +81,7 @@ export default function BlockLockModal({
|
|
|
81
81
|
__('Lock %s'), blockInformation.title),
|
|
82
82
|
overlayClassName: "block-editor-block-lock-modal",
|
|
83
83
|
onRequestClose: onClose,
|
|
84
|
+
size: "small",
|
|
84
85
|
children: /*#__PURE__*/_jsxs("form", {
|
|
85
86
|
onSubmit: event => {
|
|
86
87
|
event.preventDefault();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","sprintf","useEffect","useState","Button","CheckboxControl","Flex","FlexItem","Icon","Modal","ToggleControl","lock","lockIcon","unlock","unlockIcon","useDispatch","useSelect","getBlockType","useBlockLock","useBlockDisplayInformation","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","ALLOWS_EDIT_LOCKING","getTemplateLockValue","remove","move","BlockLockModal","clientId","onClose","setLock","canEdit","canMove","canRemove","allowsEditLocking","templateLock","hasTemplateLock","select","getBlockName","getBlockAttributes","blockName","blockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","blockInformation","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","title","overlayClassName","onRequestClose","children","onSubmit","event","preventDefault","undefined","className","role","__nextHasNoMarginBottom","label","checked","indeterminate","onChange","newValue","prevLock","icon","disabled","justify","expanded","variant","onClick","__next40pxDefaultSize","type"],"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useEffect, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tIcon,\n\tModal,\n\tToggleControl,\n} from '@wordpress/components';\nimport { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\n// Entity based blocks which allow edit locking\nconst ALLOWS_EDIT_LOCKING = [ 'core/navigation' ];\n\nfunction getTemplateLockValue( lock ) {\n\t// Prevents all operations.\n\tif ( lock.remove && lock.move ) {\n\t\treturn 'all';\n\t}\n\n\t// Prevents inserting or removing blocks, but allows moving existing blocks.\n\tif ( lock.remove && ! lock.move ) {\n\t\treturn 'insert';\n\t}\n\n\treturn false;\n}\n\nexport default function BlockLockModal( { clientId, onClose } ) {\n\tconst [ lock, setLock ] = useState( { move: false, remove: false } );\n\tconst { canEdit, canMove, canRemove } = useBlockLock( clientId );\n\tconst { allowsEditLocking, templateLock, hasTemplateLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\treturn {\n\t\t\t\tallowsEditLocking: ALLOWS_EDIT_LOCKING.includes( blockName ),\n\t\t\t\ttemplateLock: getBlockAttributes( clientId )?.templateLock,\n\t\t\t\thasTemplateLock: !! blockType?.attributes?.templateLock,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst [ applyTemplateLock, setApplyTemplateLock ] = useState(\n\t\t!! templateLock\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\tuseEffect( () => {\n\t\tsetLock( {\n\t\t\tmove: ! canMove,\n\t\t\tremove: ! canRemove,\n\t\t\t...( allowsEditLocking ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, allowsEditLocking ] );\n\n\tconst isAllChecked = Object.values( lock ).every( Boolean );\n\tconst isMixed = Object.values( lock ).some( Boolean ) && ! isAllChecked;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ sprintf(\n\t\t\t\t/* translators: %s: Name of the block. */\n\t\t\t\t__( 'Lock %s' ),\n\t\t\t\tblockInformation.title\n\t\t\t) }\n\t\t\toverlayClassName=\"block-editor-block-lock-modal\"\n\t\t\tonRequestClose={ onClose }\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\t\t\t\tlock,\n\t\t\t\t\t\ttemplateLock: applyTemplateLock\n\t\t\t\t\t\t\t? getTemplateLockValue( lock )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<fieldset className=\"block-editor-block-lock-modal__options\">\n\t\t\t\t\t<legend>\n\t\t\t\t\t\t{ __( 'Select the features you want to lock' ) }\n\t\t\t\t\t</legend>\n\t\t\t\t\t{ /*\n\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t */\n\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t<ul\n\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options-all\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Lock all' ) }\n\t\t\t\t\t\t\t\tchecked={ isAllChecked }\n\t\t\t\t\t\t\t\tindeterminate={ isMixed }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\t\t\tsetLock( {\n\t\t\t\t\t\t\t\t\t\tmove: newValue,\n\t\t\t\t\t\t\t\t\t\tremove: newValue,\n\t\t\t\t\t\t\t\t\t\t...( allowsEditLocking\n\t\t\t\t\t\t\t\t\t\t\t? { edit: newValue }\n\t\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}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ allowsEditLocking && (\n\t\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock editing' ) }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ !! lock.edit }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( edit ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\t\tedit,\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/>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.edit\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock movement' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.move }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( move ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tmove,\n\t\t\t\t\t\t\t\t\t\t\t} ) )\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<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.move ? lockIcon : unlockIcon\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</li>\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock removal' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.remove }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( remove ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tremove,\n\t\t\t\t\t\t\t\t\t\t\t} ) )\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<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.remove ? lockIcon : unlockIcon\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</li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t{ hasTemplateLock && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__template-lock\"\n\t\t\t\t\t\t\tlabel={ __( 'Apply to all blocks inside' ) }\n\t\t\t\t\t\t\tchecked={ applyTemplateLock }\n\t\t\t\t\t\t\tdisabled={ lock.move && ! lock.remove }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetApplyTemplateLock( ! applyTemplateLock )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</fieldset>\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","sprintf","useEffect","useState","Button","CheckboxControl","Flex","FlexItem","Icon","Modal","ToggleControl","lock","lockIcon","unlock","unlockIcon","useDispatch","useSelect","getBlockType","useBlockLock","useBlockDisplayInformation","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","ALLOWS_EDIT_LOCKING","getTemplateLockValue","remove","move","BlockLockModal","clientId","onClose","setLock","canEdit","canMove","canRemove","allowsEditLocking","templateLock","hasTemplateLock","select","getBlockName","getBlockAttributes","blockName","blockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","blockInformation","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","title","overlayClassName","onRequestClose","size","children","onSubmit","event","preventDefault","undefined","className","role","__nextHasNoMarginBottom","label","checked","indeterminate","onChange","newValue","prevLock","icon","disabled","justify","expanded","variant","onClick","__next40pxDefaultSize","type"],"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useEffect, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tIcon,\n\tModal,\n\tToggleControl,\n} from '@wordpress/components';\nimport { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\n// Entity based blocks which allow edit locking\nconst ALLOWS_EDIT_LOCKING = [ 'core/navigation' ];\n\nfunction getTemplateLockValue( lock ) {\n\t// Prevents all operations.\n\tif ( lock.remove && lock.move ) {\n\t\treturn 'all';\n\t}\n\n\t// Prevents inserting or removing blocks, but allows moving existing blocks.\n\tif ( lock.remove && ! lock.move ) {\n\t\treturn 'insert';\n\t}\n\n\treturn false;\n}\n\nexport default function BlockLockModal( { clientId, onClose } ) {\n\tconst [ lock, setLock ] = useState( { move: false, remove: false } );\n\tconst { canEdit, canMove, canRemove } = useBlockLock( clientId );\n\tconst { allowsEditLocking, templateLock, hasTemplateLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\treturn {\n\t\t\t\tallowsEditLocking: ALLOWS_EDIT_LOCKING.includes( blockName ),\n\t\t\t\ttemplateLock: getBlockAttributes( clientId )?.templateLock,\n\t\t\t\thasTemplateLock: !! blockType?.attributes?.templateLock,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst [ applyTemplateLock, setApplyTemplateLock ] = useState(\n\t\t!! templateLock\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\tuseEffect( () => {\n\t\tsetLock( {\n\t\t\tmove: ! canMove,\n\t\t\tremove: ! canRemove,\n\t\t\t...( allowsEditLocking ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, allowsEditLocking ] );\n\n\tconst isAllChecked = Object.values( lock ).every( Boolean );\n\tconst isMixed = Object.values( lock ).some( Boolean ) && ! isAllChecked;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ sprintf(\n\t\t\t\t/* translators: %s: Name of the block. */\n\t\t\t\t__( 'Lock %s' ),\n\t\t\t\tblockInformation.title\n\t\t\t) }\n\t\t\toverlayClassName=\"block-editor-block-lock-modal\"\n\t\t\tonRequestClose={ onClose }\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\t\t\t\tlock,\n\t\t\t\t\t\ttemplateLock: applyTemplateLock\n\t\t\t\t\t\t\t? getTemplateLockValue( lock )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<fieldset className=\"block-editor-block-lock-modal__options\">\n\t\t\t\t\t<legend>\n\t\t\t\t\t\t{ __( 'Select the features you want to lock' ) }\n\t\t\t\t\t</legend>\n\t\t\t\t\t{ /*\n\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t */\n\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t<ul\n\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options-all\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Lock all' ) }\n\t\t\t\t\t\t\t\tchecked={ isAllChecked }\n\t\t\t\t\t\t\t\tindeterminate={ isMixed }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\t\t\tsetLock( {\n\t\t\t\t\t\t\t\t\t\tmove: newValue,\n\t\t\t\t\t\t\t\t\t\tremove: newValue,\n\t\t\t\t\t\t\t\t\t\t...( allowsEditLocking\n\t\t\t\t\t\t\t\t\t\t\t? { edit: newValue }\n\t\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}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ allowsEditLocking && (\n\t\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock editing' ) }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ !! lock.edit }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( edit ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\t\tedit,\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/>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.edit\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock movement' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.move }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( move ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tmove,\n\t\t\t\t\t\t\t\t\t\t\t} ) )\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<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.move ? lockIcon : unlockIcon\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</li>\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock removal' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.remove }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( remove ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tremove,\n\t\t\t\t\t\t\t\t\t\t\t} ) )\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<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.remove ? lockIcon : unlockIcon\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</li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t{ hasTemplateLock && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__template-lock\"\n\t\t\t\t\t\t\tlabel={ __( 'Apply to all blocks inside' ) }\n\t\t\t\t\t\t\tchecked={ applyTemplateLock }\n\t\t\t\t\t\t\tdisabled={ lock.move && ! lock.remove }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetApplyTemplateLock( ! applyTemplateLock )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</fieldset>\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","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,
|