| [ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 { 2 "version": 3, 3 "sources": ["package-external:@wordpress/blocks", "package-external:@wordpress/element", "package-external:@wordpress/primitives", "vendor-external:react/jsx-runtime", "package-external:@wordpress/block-editor", "package-external:@wordpress/components", "package-external:@wordpress/i18n", "package-external:@wordpress/core-data", "package-external:@wordpress/data", "package-external:@wordpress/notices", "package-external:@wordpress/compose", "package-external:@wordpress/api-fetch", "../../../packages/widgets/src/index.js", "../../../packages/icons/src/library/brush.tsx", "../../../packages/icons/src/library/group.tsx", "../../../packages/icons/src/library/move-to.tsx", "../../../packages/icons/src/library/widget.tsx", "../../../packages/widgets/build-module/blocks/legacy-widget/block.json", "../../../node_modules/clsx/dist/clsx.mjs", "../../../packages/widgets/src/blocks/legacy-widget/edit/index.js", "../../../packages/widgets/src/blocks/legacy-widget/edit/widget-type-selector.js", "../../../packages/widgets/src/blocks/legacy-widget/edit/inspector-card.js", "../../../packages/widgets/src/blocks/legacy-widget/edit/form.js", "../../../packages/widgets/src/blocks/legacy-widget/edit/control.js", "../../../packages/widgets/src/blocks/legacy-widget/edit/preview.js", "../../../packages/widgets/src/blocks/legacy-widget/edit/no-preview.js", "../../../packages/widgets/src/blocks/legacy-widget/edit/convert-to-blocks-button.js", "../../../packages/widgets/src/blocks/legacy-widget/transforms.js", "../../../packages/widgets/src/blocks/legacy-widget/index.js", "../../../packages/widgets/src/blocks/widget-group/index.js", "../../../packages/widgets/build-module/blocks/widget-group/block.json", "../../../packages/widgets/src/blocks/widget-group/edit.js", "../../../packages/widgets/src/blocks/widget-group/save.js", "../../../packages/widgets/src/blocks/widget-group/deprecated.js", "../../../packages/widgets/src/components/move-to-widget-area/index.js", "../../../packages/widgets/src/utils.js", "../../../packages/widgets/src/register-legacy-widget-variations.js"], 4 "sourcesContent": ["module.exports = window.wp.blocks;", "module.exports = window.wp.element;", "module.exports = window.wp.primitives;", "module.exports = window.ReactJSXRuntime;", "module.exports = window.wp.blockEditor;", "module.exports = window.wp.components;", "module.exports = window.wp.i18n;", "module.exports = window.wp.coreData;", "module.exports = window.wp.data;", "module.exports = window.wp.notices;", "module.exports = window.wp.compose;", "module.exports = window.wp.apiFetch;", "/**\n * WordPress dependencies\n */\nimport { registerBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport * as legacyWidget from './blocks/legacy-widget';\nimport * as widgetGroup from './blocks/widget-group';\n\nexport * from './components';\nexport * from './utils';\n\n/**\n * Registers the Legacy Widget block.\n *\n * Note that for the block to be useful, any scripts required by a widget must\n * be loaded into the page.\n *\n * @param {Object} supports Block support settings.\n * @see https://developer.wordpress.org/block-editor/how-to-guides/widgets/legacy-widget-block/\n */\nexport function registerLegacyWidgetBlock( supports = {} ) {\n\tconst { metadata, settings, name } = legacyWidget;\n\tregisterBlockType(\n\t\t{ name, ...metadata },\n\t\t{\n\t\t\t...settings,\n\t\t\tsupports: {\n\t\t\t\t...settings.supports,\n\t\t\t\t...supports,\n\t\t\t},\n\t\t}\n\t);\n}\n\n/**\n * Registers the Widget Group block.\n *\n * @param {Object} supports Block support settings.\n */\nexport function registerWidgetGroupBlock( supports = {} ) {\n\tconst { metadata, settings, name } = widgetGroup;\n\tregisterBlockType(\n\t\t{ name, ...metadata },\n\t\t{\n\t\t\t...settings,\n\t\t\tsupports: {\n\t\t\t\t...settings.supports,\n\t\t\t\t...supports,\n\t\t\t},\n\t\t}\n\t);\n}\n\nexport { default as registerLegacyWidgetVariations } from './register-legacy-widget-variations';\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M4 20h8v-1.5H4V20zM18.9 3.5c-.6-.6-1.5-.6-2.1 0l-7.2 7.2c-.4-.1-.7 0-1.1.1-.5.2-1.5.7-1.9 2.2-.4 1.7-.8 2.2-1.1 2.7-.1.1-.2.3-.3.4l-.6 1.1H6c2 0 3.4-.4 4.7-1.4.8-.6 1.2-1.4 1.3-2.3 0-.3 0-.5-.1-.7L19 5.7c.5-.6.5-1.6-.1-2.2zM9.7 14.7c-.7.5-1.5.8-2.4 1 .2-.5.5-1.2.8-2.3.2-.6.4-1 .8-1.1.5-.1 1 .1 1.3.3.2.2.3.5.2.8 0 .3-.1.9-.7 1.3z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M18 4h-7c-1.1 0-2 .9-2 2v3H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-3h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h3V13c0 1.1.9 2 2 2h2.5v3zm0-4.5H11c-.3 0-.5-.2-.5-.5v-2.5H13c.3 0 .5.2.5.5v2.5zm5-.5c0 .3-.2.5-.5.5h-3V11c0-1.1-.9-2-2-2h-2.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19.75 9c0-1.257-.565-2.197-1.39-2.858-.797-.64-1.827-1.017-2.815-1.247-1.802-.42-3.703-.403-4.383-.396L11 4.5V6l.177-.001c.696-.006 2.416-.02 4.028.356.887.207 1.67.518 2.216.957.52.416.829.945.829 1.688 0 .592-.167.966-.407 1.23-.255.281-.656.508-1.236.674-1.19.34-2.82.346-4.607.346h-.077c-1.692 0-3.527 0-4.942.404-.732.209-1.424.545-1.935 1.108-.526.579-.796 1.33-.796 2.238 0 1.257.565 2.197 1.39 2.858.797.64 1.827 1.017 2.815 1.247 1.802.42 3.703.403 4.383.396L13 19.5h.714V22L18 18.5 13.714 15v3H13l-.177.001c-.696.006-2.416.02-4.028-.356-.887-.207-1.67-.518-2.216-.957-.52-.416-.829-.945-.829-1.688 0-.592.167-.966.407-1.23.255-.281.656-.508 1.237-.674 1.189-.34 2.819-.346 4.606-.346h.077c1.692 0 3.527 0 4.941-.404.732-.209 1.425-.545 1.936-1.108.526-.579.796-1.33.796-2.238z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M6 3H8V5H16V3H18V5C19.1046 5 20 5.89543 20 7V19C20 20.1046 19.1046 21 18 21H6C4.89543 21 4 20.1046 4 19V7C4 5.89543 4.89543 5 6 5V3ZM18 6.5H6C5.72386 6.5 5.5 6.72386 5.5 7V8H18.5V7C18.5 6.72386 18.2761 6.5 18 6.5ZM18.5 9.5H5.5V19C5.5 19.2761 5.72386 19.5 6 19.5H18C18.2761 19.5 18.5 19.2761 18.5 19V9.5ZM11 11H13V13H11V11ZM7 11V13H9V11H7ZM15 13V11H17V13H15Z\" />\n\t</SVG>\n);\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/legacy-widget\",\n\t\"title\": \"Legacy Widget\",\n\t\"category\": \"widgets\",\n\t\"description\": \"Display a legacy widget.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"id\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": null\n\t\t},\n\t\t\"idBase\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": null\n\t\t},\n\t\t\"instance\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"default\": null\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"html\": false,\n\t\t\"customClassName\": false,\n\t\t\"reusable\": false\n\t},\n\t\"editorStyle\": \"wp-block-legacy-widget-editor\"\n}\n", "function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorControls,\n\tBlockIcon,\n} from '@wordpress/block-editor';\nimport { Flex, FlexBlock, Spinner, Placeholder } from '@wordpress/components';\nimport { brush as brushIcon } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useCallback } from '@wordpress/element';\nimport { useEntityRecord } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport WidgetTypeSelector from './widget-type-selector';\nimport InspectorCard from './inspector-card';\nimport Form from './form';\nimport Preview from './preview';\nimport NoPreview from './no-preview';\nimport ConvertToBlocksButton from './convert-to-blocks-button';\n\nexport default function Edit( props ) {\n\tconst { id, idBase } = props.attributes;\n\tconst { isWide = false } = props;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t'is-wide-widget': isWide,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ ! id && ! idBase ? (\n\t\t\t\t<Empty { ...props } />\n\t\t\t) : (\n\t\t\t\t<NotEmpty { ...props } />\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction Empty( { attributes: { id, idBase }, setAttributes } ) {\n\treturn (\n\t\t<Placeholder\n\t\t\ticon={ <BlockIcon icon={ brushIcon } /> }\n\t\t\tlabel={ __( 'Legacy Widget' ) }\n\t\t>\n\t\t\t<Flex>\n\t\t\t\t<FlexBlock>\n\t\t\t\t\t<WidgetTypeSelector\n\t\t\t\t\t\tselectedId={ id ?? idBase }\n\t\t\t\t\t\tonSelect={ ( { selectedId, isMulti } ) => {\n\t\t\t\t\t\t\tif ( ! selectedId ) {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tid: null,\n\t\t\t\t\t\t\t\t\tidBase: null,\n\t\t\t\t\t\t\t\t\tinstance: null,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else if ( isMulti ) {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tid: null,\n\t\t\t\t\t\t\t\t\tidBase: selectedId,\n\t\t\t\t\t\t\t\t\tinstance: {},\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tid: selectedId,\n\t\t\t\t\t\t\t\t\tidBase: null,\n\t\t\t\t\t\t\t\t\tinstance: null,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</FlexBlock>\n\t\t\t</Flex>\n\t\t</Placeholder>\n\t);\n}\n\nfunction NotEmpty( {\n\tattributes: { id, idBase, instance },\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tisWide = false,\n} ) {\n\tconst [ hasPreview, setHasPreview ] = useState( null );\n\n\tconst widgetTypeId = id ?? idBase;\n\tconst { record: widgetType, hasResolved: hasResolvedWidgetType } =\n\t\tuseEntityRecord( 'root', 'widgetType', widgetTypeId );\n\n\tconst setInstance = useCallback( ( nextInstance ) => {\n\t\tsetAttributes( { instance: nextInstance } );\n\t}, [] );\n\n\tif ( ! widgetType && hasResolvedWidgetType ) {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\ticon={ <BlockIcon icon={ brushIcon } /> }\n\t\t\t\tlabel={ __( 'Legacy Widget' ) }\n\t\t\t>\n\t\t\t\t{ __( 'Widget is missing.' ) }\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\tif ( ! hasResolvedWidgetType ) {\n\t\treturn (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\tconst mode = idBase && ! isSelected ? 'preview' : 'edit';\n\n\treturn (\n\t\t<>\n\t\t\t{ idBase === 'text' && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ConvertToBlocksButton\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\trawInstance={ instance.raw }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t<InspectorControls>\n\t\t\t\t<InspectorCard\n\t\t\t\t\tname={ widgetType.name }\n\t\t\t\t\tdescription={ widgetType.description }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\n\t\t\t<Form\n\t\t\t\ttitle={ widgetType.name }\n\t\t\t\tisVisible={ mode === 'edit' }\n\t\t\t\tid={ id }\n\t\t\t\tidBase={ idBase }\n\t\t\t\tinstance={ instance }\n\t\t\t\tisWide={ isWide }\n\t\t\t\tonChangeInstance={ setInstance }\n\t\t\t\tonChangeHasPreview={ setHasPreview }\n\t\t\t/>\n\n\t\t\t{ idBase && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasPreview === null && mode === 'preview' && (\n\t\t\t\t\t\t<Placeholder>\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</Placeholder>\n\t\t\t\t\t) }\n\t\t\t\t\t{ hasPreview === true && (\n\t\t\t\t\t\t<Preview\n\t\t\t\t\t\t\tidBase={ idBase }\n\t\t\t\t\t\t\tinstance={ instance }\n\t\t\t\t\t\t\tisVisible={ mode === 'preview' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ hasPreview === false && mode === 'preview' && (\n\t\t\t\t\t\t<NoPreview name={ widgetType.name } />\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { Spinner, SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nexport default function WidgetTypeSelector( { selectedId, onSelect } ) {\n\tconst widgetTypes = useSelect( ( select ) => {\n\t\tconst hiddenIds =\n\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t?.widgetTypesToHideFromLegacyWidgetBlock ?? [];\n\t\treturn select( coreStore )\n\t\t\t.getWidgetTypes( { per_page: -1 } )\n\t\t\t?.filter( ( widgetType ) => ! hiddenIds.includes( widgetType.id ) );\n\t}, [] );\n\n\tif ( ! widgetTypes ) {\n\t\treturn <Spinner />;\n\t}\n\n\tif ( widgetTypes.length === 0 ) {\n\t\treturn __( 'There are no widgets available.' );\n\t}\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Legacy widget' ) }\n\t\t\tvalue={ selectedId ?? '' }\n\t\t\toptions={ [\n\t\t\t\t{ value: '', label: __( 'Select widget' ) },\n\t\t\t\t...widgetTypes.map( ( widgetType ) => ( {\n\t\t\t\t\tvalue: widgetType.id,\n\t\t\t\t\tlabel: widgetType.name,\n\t\t\t\t} ) ),\n\t\t\t] }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\tif ( value ) {\n\t\t\t\t\tconst selected = widgetTypes.find(\n\t\t\t\t\t\t( widgetType ) => widgetType.id === value\n\t\t\t\t\t);\n\t\t\t\t\tonSelect( {\n\t\t\t\t\t\tselectedId: selected.id,\n\t\t\t\t\t\tisMulti: selected.is_multi,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tonSelect( { selectedId: null } );\n\t\t\t\t}\n\t\t\t} }\n\t\t/>\n\t);\n}\n", "export default function InspectorCard( { name, description } ) {\n\treturn (\n\t\t<div className=\"wp-block-legacy-widget-inspector-card\">\n\t\t\t<h3 className=\"wp-block-legacy-widget-inspector-card__name\">\n\t\t\t\t{ name }\n\t\t\t</h3>\n\t\t\t<span>{ description }</span>\n\t\t</div>\n\t);\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Popover } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\n/**\n * Internal dependencies\n */\nimport Control from './control';\n\nexport default function Form( {\n\ttitle,\n\tisVisible,\n\tid,\n\tidBase,\n\tinstance,\n\tisWide,\n\tonChangeInstance,\n\tonChangeHasPreview,\n} ) {\n\tconst ref = useRef();\n\n\tconst isMediumLargeViewport = useViewportMatch( 'small' );\n\n\t// We only want to remount the control when the instance changes\n\t// *externally*. For example, if the user performs an undo. To do this, we\n\t// keep track of changes made to instance by the control itself and then\n\t// ignore those.\n\tconst outgoingInstances = useRef( new Set() );\n\tconst incomingInstances = useRef( new Set() );\n\n\tconst { createNotice } = useDispatch( noticesStore );\n\n\tuseEffect( () => {\n\t\tif ( incomingInstances.current.has( instance ) ) {\n\t\t\tincomingInstances.current.delete( instance );\n\t\t\treturn;\n\t\t}\n\n\t\tconst control = new Control( {\n\t\t\tid,\n\t\t\tidBase,\n\t\t\tinstance,\n\t\t\tonChangeInstance( nextInstance ) {\n\t\t\t\toutgoingInstances.current.add( instance );\n\t\t\t\tincomingInstances.current.add( nextInstance );\n\t\t\t\tonChangeInstance( nextInstance );\n\t\t\t},\n\t\t\tonChangeHasPreview,\n\t\t\tonError( error ) {\n\t\t\t\twindow.console.error( error );\n\t\t\t\tcreateNotice(\n\t\t\t\t\t'error',\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: the name of the affected block. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'The \"%s\" block was affected by errors and may not function properly. Check the developer tools for more details.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tidBase || id\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t} );\n\n\t\tref.current.appendChild( control.element );\n\n\t\treturn () => {\n\t\t\tif ( outgoingInstances.current.has( instance ) ) {\n\t\t\t\toutgoingInstances.current.delete( instance );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcontrol.destroy();\n\t\t};\n\t}, [\n\t\tid,\n\t\tidBase,\n\t\tinstance,\n\t\tonChangeInstance,\n\t\tonChangeHasPreview,\n\t\tisMediumLargeViewport,\n\t] );\n\n\tif ( isWide && isMediumLargeViewport ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t'wp-block-legacy-widget__container': isVisible,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ isVisible && (\n\t\t\t\t\t<h3 className=\"wp-block-legacy-widget__edit-form-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</h3>\n\t\t\t\t) }\n\t\t\t\t<Popover\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tplacement=\"right\"\n\t\t\t\t\toffset={ 32 }\n\t\t\t\t\tresize={ false }\n\t\t\t\t\tflip={ false }\n\t\t\t\t\tshift\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tclassName=\"wp-block-legacy-widget__edit-form\"\n\t\t\t\t\t\thidden={ ! isVisible }\n\t\t\t\t\t></div>\n\t\t\t\t</Popover>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName=\"wp-block-legacy-widget__edit-form\"\n\t\t\thidden={ ! isVisible }\n\t\t>\n\t\t\t<h3 className=\"wp-block-legacy-widget__edit-form-title\">\n\t\t\t\t{ title }\n\t\t\t</h3>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { debounce } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * An API for creating and loading a widget control (a <div class=\"widget\">\n * element) that is compatible with most third party widget scripts. By not\n * using React for this, we ensure that we have complete control over the DOM\n * and do not accidentally remove any elements that a third party widget script\n * has attached an event listener to.\n *\n * @property {Element} element The control's DOM element.\n */\nexport default class Control {\n\t/**\n\t * Creates and loads a new control.\n\t *\n\t * @access public\n\t * @param {Object} params\n\t * @param {string} params.id\n\t * @param {string} params.idBase\n\t * @param {Object} params.instance\n\t * @param {Function} params.onChangeInstance\n\t * @param {Function} params.onChangeHasPreview\n\t * @param {Function} params.onError\n\t */\n\tconstructor( {\n\t\tid,\n\t\tidBase,\n\t\tinstance,\n\t\tonChangeInstance,\n\t\tonChangeHasPreview,\n\t\tonError,\n\t} ) {\n\t\tthis.id = id;\n\t\tthis.idBase = idBase;\n\t\tthis._instance = instance;\n\t\tthis._hasPreview = null;\n\t\tthis.onChangeInstance = onChangeInstance;\n\t\tthis.onChangeHasPreview = onChangeHasPreview;\n\t\tthis.onError = onError;\n\n\t\t// We can't use the real widget number as this is calculated by the\n\t\t// server and we may not ever *actually* save this widget. Instead, use\n\t\t// a fake but unique number.\n\t\tthis.number = ++lastNumber;\n\n\t\tthis.handleFormChange = debounce(\n\t\t\tthis.handleFormChange.bind( this ),\n\t\t\t200\n\t\t);\n\t\tthis.handleFormSubmit = this.handleFormSubmit.bind( this );\n\n\t\tthis.initDOM();\n\t\tthis.bindEvents();\n\t\tthis.loadContent();\n\t}\n\n\t/**\n\t * Clean up the control so that it can be garbage collected.\n\t *\n\t * @access public\n\t */\n\tdestroy() {\n\t\tthis.unbindEvents();\n\t\tthis.element.remove();\n\t\t// TODO: How do we make third party widget scripts remove their event\n\t\t// listeners?\n\t}\n\n\t/**\n\t * Creates the control's DOM structure.\n\t *\n\t * @access private\n\t */\n\tinitDOM() {\n\t\tthis.element = el( 'div', { class: 'widget open' }, [\n\t\t\tel( 'div', { class: 'widget-inside' }, [\n\t\t\t\t( this.form = el( 'form', { class: 'form', method: 'post' }, [\n\t\t\t\t\t// These hidden form inputs are what most widgets' scripts\n\t\t\t\t\t// use to access data about the widget.\n\t\t\t\t\tel( 'input', {\n\t\t\t\t\t\tclass: 'widget-id',\n\t\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\t\tname: 'widget-id',\n\t\t\t\t\t\tvalue: this.id ?? `${ this.idBase }-${ this.number }`,\n\t\t\t\t\t} ),\n\t\t\t\t\tel( 'input', {\n\t\t\t\t\t\tclass: 'id_base',\n\t\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\t\tname: 'id_base',\n\t\t\t\t\t\tvalue: this.idBase ?? this.id,\n\t\t\t\t\t} ),\n\t\t\t\t\tel( 'input', {\n\t\t\t\t\t\tclass: 'widget-width',\n\t\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\t\tname: 'widget-width',\n\t\t\t\t\t\tvalue: '250',\n\t\t\t\t\t} ),\n\t\t\t\t\tel( 'input', {\n\t\t\t\t\t\tclass: 'widget-height',\n\t\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\t\tname: 'widget-height',\n\t\t\t\t\t\tvalue: '200',\n\t\t\t\t\t} ),\n\t\t\t\t\tel( 'input', {\n\t\t\t\t\t\tclass: 'widget_number',\n\t\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\t\tname: 'widget_number',\n\t\t\t\t\t\tvalue: this.idBase ? this.number.toString() : '',\n\t\t\t\t\t} ),\n\t\t\t\t\t( this.content = el( 'div', { class: 'widget-content' } ) ),\n\t\t\t\t\t// Non-multi widgets can be saved via a Save button.\n\t\t\t\t\tthis.id &&\n\t\t\t\t\t\tel(\n\t\t\t\t\t\t\t'button',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tclass: 'button is-primary',\n\t\t\t\t\t\t\t\ttype: 'submit',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t__( 'Save' )\n\t\t\t\t\t\t),\n\t\t\t\t] ) ),\n\t\t\t] ),\n\t\t] );\n\t}\n\n\t/**\n\t * Adds the control's event listeners.\n\t *\n\t * @access private\n\t */\n\tbindEvents() {\n\t\t// Prefer jQuery 'change' event instead of the native 'change' event\n\t\t// because many widgets use jQuery's event bus to trigger an update.\n\t\tif ( window.jQuery ) {\n\t\t\tconst { jQuery: $ } = window;\n\t\t\t$( this.form ).on( 'change', null, this.handleFormChange );\n\t\t\t$( this.form ).on( 'input', null, this.handleFormChange );\n\t\t\t$( this.form ).on( 'submit', this.handleFormSubmit );\n\t\t} else {\n\t\t\tthis.form.addEventListener( 'change', this.handleFormChange );\n\t\t\tthis.form.addEventListener( 'input', this.handleFormChange );\n\t\t\tthis.form.addEventListener( 'submit', this.handleFormSubmit );\n\t\t}\n\t}\n\n\t/**\n\t * Removes the control's event listeners.\n\t *\n\t * @access private\n\t */\n\tunbindEvents() {\n\t\tif ( window.jQuery ) {\n\t\t\tconst { jQuery: $ } = window;\n\t\t\t$( this.form ).off( 'change', null, this.handleFormChange );\n\t\t\t$( this.form ).off( 'input', null, this.handleFormChange );\n\t\t\t$( this.form ).off( 'submit', this.handleFormSubmit );\n\t\t} else {\n\t\t\tthis.form.removeEventListener( 'change', this.handleFormChange );\n\t\t\tthis.form.removeEventListener( 'input', this.handleFormChange );\n\t\t\tthis.form.removeEventListener( 'submit', this.handleFormSubmit );\n\t\t}\n\t}\n\n\t/**\n\t * Fetches the widget's form HTML from the REST API and loads it into the\n\t * control's form.\n\t *\n\t * @access private\n\t */\n\tasync loadContent() {\n\t\ttry {\n\t\t\tif ( this.id ) {\n\t\t\t\tconst { form } = await saveWidget( this.id );\n\t\t\t\tthis.content.innerHTML = form;\n\t\t\t} else if ( this.idBase ) {\n\t\t\t\tconst { form, preview } = await encodeWidget( {\n\t\t\t\t\tidBase: this.idBase,\n\t\t\t\t\tinstance: this.instance,\n\t\t\t\t\tnumber: this.number,\n\t\t\t\t} );\n\t\t\t\tthis.content.innerHTML = form;\n\t\t\t\tthis.hasPreview = ! isEmptyHTML( preview );\n\n\t\t\t\t// If we don't have an instance, perform a save right away. This\n\t\t\t\t// happens when creating a new Legacy Widget block.\n\t\t\t\tif ( ! this.instance.hash ) {\n\t\t\t\t\tconst { instance } = await encodeWidget( {\n\t\t\t\t\t\tidBase: this.idBase,\n\t\t\t\t\t\tinstance: this.instance,\n\t\t\t\t\t\tnumber: this.number,\n\t\t\t\t\t\tformData: serializeForm( this.form ),\n\t\t\t\t\t} );\n\t\t\t\t\tthis.instance = instance;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Trigger 'widget-added' when widget is ready. This event is what\n\t\t\t// widgets' scripts use to initialize, attach events, etc. The event\n\t\t\t// must be fired using jQuery's event bus as this is what widget\n\t\t\t// scripts expect. If jQuery is not loaded, do nothing - some\n\t\t\t// widgets will still work regardless.\n\t\t\tif ( window.jQuery ) {\n\t\t\t\tconst { jQuery: $ } = window;\n\t\t\t\t$( document ).trigger( 'widget-added', [ $( this.element ) ] );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\tthis.onError( error );\n\t\t}\n\t}\n\n\t/**\n\t * Perform a save when a multi widget's form is changed. Non-multi widgets\n\t * are saved manually.\n\t *\n\t * @access private\n\t */\n\thandleFormChange() {\n\t\tif ( this.idBase ) {\n\t\t\tthis.saveForm();\n\t\t}\n\t}\n\n\t/**\n\t * Perform a save when the control's form is manually submitted.\n\t *\n\t * @access private\n\t * @param {Event} event\n\t */\n\thandleFormSubmit( event ) {\n\t\tevent.preventDefault();\n\t\tthis.saveForm();\n\t}\n\n\t/**\n\t * Serialize the control's form, send it to the REST API, and update the\n\t * instance with the encoded instance that the REST API returns.\n\t *\n\t * @access private\n\t */\n\tasync saveForm() {\n\t\tconst formData = serializeForm( this.form );\n\n\t\ttry {\n\t\t\tif ( this.id ) {\n\t\t\t\tconst { form } = await saveWidget( this.id, formData );\n\t\t\t\tthis.content.innerHTML = form;\n\n\t\t\t\tif ( window.jQuery ) {\n\t\t\t\t\tconst { jQuery: $ } = window;\n\t\t\t\t\t$( document ).trigger( 'widget-updated', [\n\t\t\t\t\t\t$( this.element ),\n\t\t\t\t\t] );\n\t\t\t\t}\n\t\t\t} else if ( this.idBase ) {\n\t\t\t\tconst { instance, preview } = await encodeWidget( {\n\t\t\t\t\tidBase: this.idBase,\n\t\t\t\t\tinstance: this.instance,\n\t\t\t\t\tnumber: this.number,\n\t\t\t\t\tformData,\n\t\t\t\t} );\n\t\t\t\tthis.instance = instance;\n\t\t\t\tthis.hasPreview = ! isEmptyHTML( preview );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\tthis.onError( error );\n\t\t}\n\t}\n\n\t/**\n\t * The widget's instance object.\n\t *\n\t * @access private\n\t */\n\tget instance() {\n\t\treturn this._instance;\n\t}\n\n\t/**\n\t * The widget's instance object.\n\t *\n\t * @access private\n\t */\n\tset instance( instance ) {\n\t\tif ( this._instance !== instance ) {\n\t\t\tthis._instance = instance;\n\t\t\tthis.onChangeInstance( instance );\n\t\t}\n\t}\n\n\t/**\n\t * Whether or not the widget can be previewed.\n\t *\n\t * @access public\n\t */\n\tget hasPreview() {\n\t\treturn this._hasPreview;\n\t}\n\n\t/**\n\t * Whether or not the widget can be previewed.\n\t *\n\t * @access private\n\t */\n\tset hasPreview( hasPreview ) {\n\t\tif ( this._hasPreview !== hasPreview ) {\n\t\t\tthis._hasPreview = hasPreview;\n\t\t\tthis.onChangeHasPreview( hasPreview );\n\t\t}\n\t}\n}\n\nlet lastNumber = 0;\n\nfunction el( tagName, attributes = {}, content = null ) {\n\tconst element = document.createElement( tagName );\n\tfor ( const [ attribute, value ] of Object.entries( attributes ) ) {\n\t\telement.setAttribute( attribute, value );\n\t}\n\tif ( Array.isArray( content ) ) {\n\t\tfor ( const child of content ) {\n\t\t\tif ( child ) {\n\t\t\t\telement.appendChild( child );\n\t\t\t}\n\t\t}\n\t} else if ( typeof content === 'string' ) {\n\t\telement.innerText = content;\n\t}\n\treturn element;\n}\n\nasync function saveWidget( id, formData = null ) {\n\tlet widget;\n\tif ( formData ) {\n\t\twidget = await apiFetch( {\n\t\t\tpath: `/wp/v2/widgets/${ id }?context=edit`,\n\t\t\tmethod: 'PUT',\n\t\t\tdata: {\n\t\t\t\tform_data: formData,\n\t\t\t},\n\t\t} );\n\t} else {\n\t\twidget = await apiFetch( {\n\t\t\tpath: `/wp/v2/widgets/${ id }?context=edit`,\n\t\t\tmethod: 'GET',\n\t\t} );\n\t}\n\treturn { form: widget.rendered_form };\n}\n\nasync function encodeWidget( { idBase, instance, number, formData = null } ) {\n\tconst response = await apiFetch( {\n\t\tpath: `/wp/v2/widget-types/${ idBase }/encode`,\n\t\tmethod: 'POST',\n\t\tdata: {\n\t\t\tinstance,\n\t\t\tnumber,\n\t\t\tform_data: formData,\n\t\t},\n\t} );\n\treturn {\n\t\tinstance: response.instance,\n\t\tform: response.form,\n\t\tpreview: response.preview,\n\t};\n}\n\nfunction isEmptyHTML( html ) {\n\tconst element = document.createElement( 'div' );\n\telement.innerHTML = html;\n\treturn isEmptyNode( element );\n}\n\nfunction isEmptyNode( node ) {\n\tswitch ( node.nodeType ) {\n\t\tcase node.TEXT_NODE:\n\t\t\t// Text nodes are empty if it's entirely whitespace.\n\t\t\treturn node.nodeValue.trim() === '';\n\t\tcase node.ELEMENT_NODE:\n\t\t\t// Elements that are \"embedded content\" are not empty.\n\t\t\t// https://dev.w3.org/html5/spec-LC/content-models.html#embedded-content-0\n\t\t\tif (\n\t\t\t\t[\n\t\t\t\t\t'AUDIO',\n\t\t\t\t\t'CANVAS',\n\t\t\t\t\t'EMBED',\n\t\t\t\t\t'IFRAME',\n\t\t\t\t\t'IMG',\n\t\t\t\t\t'MATH',\n\t\t\t\t\t'OBJECT',\n\t\t\t\t\t'SVG',\n\t\t\t\t\t'VIDEO',\n\t\t\t\t].includes( node.tagName )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Elements with no children are empty.\n\t\t\tif ( ! node.hasChildNodes() ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\t// Elements with children are empty if all their children are empty.\n\t\t\treturn Array.from( node.childNodes ).every( isEmptyNode );\n\t\tdefault:\n\t\t\treturn true;\n\t}\n}\n\nfunction serializeForm( form ) {\n\treturn new window.URLSearchParams(\n\t\tArray.from( new window.FormData( form ) )\n\t).toString();\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useEffect, useState } from '@wordpress/element';\nimport { Disabled, Placeholder, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\n\nexport default function Preview( { idBase, instance, isVisible } ) {\n\tconst [ isLoaded, setIsLoaded ] = useState( false );\n\tconst [ srcDoc, setSrcDoc ] = useState( '' );\n\n\tuseEffect( () => {\n\t\tconst abortController =\n\t\t\ttypeof window.AbortController === 'undefined'\n\t\t\t\t? undefined\n\t\t\t\t: new window.AbortController();\n\n\t\tasync function fetchPreviewHTML() {\n\t\t\tconst restRoute = `/wp/v2/widget-types/${ idBase }/render`;\n\t\t\treturn await apiFetch( {\n\t\t\t\tpath: restRoute,\n\t\t\t\tmethod: 'POST',\n\t\t\t\tsignal: abortController?.signal,\n\t\t\t\tdata: instance ? { instance } : {},\n\t\t\t} );\n\t\t}\n\n\t\tfetchPreviewHTML()\n\t\t\t.then( ( response ) => {\n\t\t\t\tsetSrcDoc( response.preview );\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tif ( 'AbortError' === error.name ) {\n\t\t\t\t\t// We don't want to log aborted requests.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t} );\n\n\t\treturn () => abortController?.abort();\n\t}, [ idBase, instance ] );\n\n\t// Resize the iframe on either the load event, or when the iframe becomes visible.\n\tconst ref = useRefEffect(\n\t\t( iframe ) => {\n\t\t\t// Only set height if the iframe is loaded,\n\t\t\t// or it will grow to an unexpected large height in Safari if it's hidden initially.\n\t\t\tif ( ! isLoaded ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// If the preview frame has another origin then this won't work.\n\t\t\t// One possible solution is to add custom script to call `postMessage` in the preview frame.\n\t\t\t// Or, better yet, we migrate away from iframe.\n\t\t\tfunction setHeight() {\n\t\t\t\t// Pick the maximum of these two values to account for margin collapsing.\n\t\t\t\tconst height = Math.max(\n\t\t\t\t\tiframe.contentDocument.documentElement?.offsetHeight ?? 0,\n\t\t\t\t\tiframe.contentDocument.body?.offsetHeight ?? 0\n\t\t\t\t);\n\n\t\t\t\t// Fallback to a height of 100px if the height cannot be determined.\n\t\t\t\t// This ensures the block is still selectable. 100px should hopefully\n\t\t\t\t// be not so big that it's annoying, and not so small that nothing\n\t\t\t\t// can be seen.\n\t\t\t\tiframe.style.height = `${ height !== 0 ? height : 100 }px`;\n\t\t\t}\n\n\t\t\tconst { IntersectionObserver } = iframe.ownerDocument.defaultView;\n\n\t\t\t// Observe for intersections that might cause a change in the height of\n\t\t\t// the iframe, e.g. a Widget Area becoming expanded.\n\t\t\tconst intersectionObserver = new IntersectionObserver(\n\t\t\t\t( [ entry ] ) => {\n\t\t\t\t\tif ( entry.isIntersecting ) {\n\t\t\t\t\t\tsetHeight();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tthreshold: 1,\n\t\t\t\t}\n\t\t\t);\n\t\t\tintersectionObserver.observe( iframe );\n\n\t\t\tiframe.addEventListener( 'load', setHeight );\n\n\t\t\treturn () => {\n\t\t\t\tintersectionObserver.disconnect();\n\t\t\t\tiframe.removeEventListener( 'load', setHeight );\n\t\t\t};\n\t\t},\n\t\t[ isLoaded ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ /*\n\t\t\tWhile the iframe contents are loading, we move the iframe off-screen\n\t\t\tand display a placeholder instead. This ensures that the user\n\t\t\tdoesn't see the iframe resize (which looks really janky). We have to\n\t\t\tmove the iframe off-screen instead of hiding it because web browsers\n\t\t\twill not trigger onLoad if the iframe is hidden.\n\t\t\t*/ }\n\t\t\t{ isVisible && ! isLoaded && (\n\t\t\t\t<Placeholder>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'wp-block-legacy-widget__edit-preview', {\n\t\t\t\t\t'is-offscreen': ! isVisible || ! isLoaded,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<Disabled>\n\t\t\t\t\t{ /*\n\t\t\t\t\tWe use an iframe so that the widget has an opportunity to\n\t\t\t\t\tload scripts and styles that it needs to run.\n\t\t\t\t\t*/ }\n\t\t\t\t\t<iframe\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tclassName=\"wp-block-legacy-widget__edit-preview-iframe\"\n\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\ttitle={ __( 'Legacy Widget Preview' ) }\n\t\t\t\t\t\tsrcDoc={ srcDoc }\n\t\t\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\t\t\t// To hide the scrollbars of the preview frame for some edge cases,\n\t\t\t\t\t\t\t// such as negative margins in the Gallery Legacy Widget.\n\t\t\t\t\t\t\t// It can't be scrolled anyway.\n\t\t\t\t\t\t\t// TODO: Ideally, this should be fixed in core.\n\t\t\t\t\t\t\tevent.target.contentDocument.body.style.overflow =\n\t\t\t\t\t\t\t\t'hidden';\n\n\t\t\t\t\t\t\tsetIsLoaded( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\theight={ 100 }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport default function NoPreview( { name } ) {\n\treturn (\n\t\t<div className=\"wp-block-legacy-widget__edit-no-preview\">\n\t\t\t{ name && <h3>{ name }</h3> }\n\t\t\t<p>{ __( 'No preview available.' ) }</p>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { createBlock, rawHandler } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\nexport default function ConvertToBlocksButton( { clientId, rawInstance } ) {\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<ToolbarButton\n\t\t\tonClick={ () => {\n\t\t\t\tif ( rawInstance.title ) {\n\t\t\t\t\treplaceBlocks( clientId, [\n\t\t\t\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\t\t\t\tcontent: rawInstance.title,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\t...rawHandler( { HTML: rawInstance.text } ),\n\t\t\t\t\t] );\n\t\t\t\t} else {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\trawHandler( { HTML: rawInstance.text } )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Convert to blocks' ) }\n\t\t</ToolbarButton>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst legacyWidgetTransforms = [\n\t{\n\t\tblock: 'core/calendar',\n\t\twidget: 'calendar',\n\t},\n\t{\n\t\tblock: 'core/search',\n\t\twidget: 'search',\n\t},\n\t{\n\t\tblock: 'core/html',\n\t\twidget: 'custom_html',\n\t\ttransform: ( { content } ) => ( {\n\t\t\tcontent,\n\t\t} ),\n\t},\n\t{\n\t\tblock: 'core/archives',\n\t\twidget: 'archives',\n\t\ttransform: ( { count, dropdown } ) => {\n\t\t\treturn {\n\t\t\t\tdisplayAsDropdown: !! dropdown,\n\t\t\t\tshowPostCounts: !! count,\n\t\t\t};\n\t\t},\n\t},\n\t{\n\t\tblock: 'core/latest-posts',\n\t\twidget: 'recent-posts',\n\t\ttransform: ( { show_date: displayPostDate, number } ) => {\n\t\t\treturn {\n\t\t\t\tdisplayPostDate: !! displayPostDate,\n\t\t\t\tpostsToShow: number,\n\t\t\t};\n\t\t},\n\t},\n\t{\n\t\tblock: 'core/latest-comments',\n\t\twidget: 'recent-comments',\n\t\ttransform: ( { number } ) => {\n\t\t\treturn {\n\t\t\t\tcommentsToShow: number,\n\t\t\t};\n\t\t},\n\t},\n\t{\n\t\tblock: 'core/tag-cloud',\n\t\twidget: 'tag_cloud',\n\t\ttransform: ( { taxonomy, count } ) => {\n\t\t\treturn {\n\t\t\t\tshowTagCounts: !! count,\n\t\t\t\ttaxonomy,\n\t\t\t};\n\t\t},\n\t},\n\t{\n\t\tblock: 'core/categories',\n\t\twidget: 'categories',\n\t\ttransform: ( { count, dropdown, hierarchical } ) => {\n\t\t\treturn {\n\t\t\t\tdisplayAsDropdown: !! dropdown,\n\t\t\t\tshowPostCounts: !! count,\n\t\t\t\tshowHierarchy: !! hierarchical,\n\t\t\t};\n\t\t},\n\t},\n\t{\n\t\tblock: 'core/audio',\n\t\twidget: 'media_audio',\n\t\ttransform: ( { url, preload, loop, attachment_id: id } ) => {\n\t\t\treturn {\n\t\t\t\tsrc: url,\n\t\t\t\tid,\n\t\t\t\tpreload,\n\t\t\t\tloop,\n\t\t\t};\n\t\t},\n\t},\n\t{\n\t\tblock: 'core/video',\n\t\twidget: 'media_video',\n\t\ttransform: ( { url, preload, loop, attachment_id: id } ) => {\n\t\t\treturn {\n\t\t\t\tsrc: url,\n\t\t\t\tid,\n\t\t\t\tpreload,\n\t\t\t\tloop,\n\t\t\t};\n\t\t},\n\t},\n\t{\n\t\tblock: 'core/image',\n\t\twidget: 'media_image',\n\t\ttransform: ( {\n\t\t\talt,\n\t\t\tattachment_id: id,\n\t\t\tcaption,\n\t\t\theight,\n\t\t\tlink_classes: linkClass,\n\t\t\tlink_rel: rel,\n\t\t\tlink_target_blank: targetBlack,\n\t\t\tlink_type: linkDestination,\n\t\t\tlink_url: link,\n\t\t\tsize: sizeSlug,\n\t\t\turl,\n\t\t\twidth,\n\t\t} ) => {\n\t\t\treturn {\n\t\t\t\talt,\n\t\t\t\tcaption,\n\t\t\t\theight,\n\t\t\t\tid,\n\t\t\t\tlink,\n\t\t\t\tlinkClass,\n\t\t\t\tlinkDestination,\n\t\t\t\tlinkTarget: targetBlack ? '_blank' : undefined,\n\t\t\t\trel,\n\t\t\t\tsizeSlug,\n\t\t\t\turl,\n\t\t\t\twidth,\n\t\t\t};\n\t\t},\n\t},\n\t{\n\t\tblock: 'core/gallery',\n\t\twidget: 'media_gallery',\n\t\ttransform: ( { ids, link_type: linkTo, size, number } ) => {\n\t\t\treturn {\n\t\t\t\tids,\n\t\t\t\tcolumns: number,\n\t\t\t\tlinkTo,\n\t\t\t\tsizeSlug: size,\n\t\t\t\timages: ids.map( ( id ) => ( {\n\t\t\t\t\tid,\n\t\t\t\t} ) ),\n\t\t\t};\n\t\t},\n\t},\n\t{\n\t\tblock: 'core/rss',\n\t\twidget: 'rss',\n\t\ttransform: ( {\n\t\t\turl,\n\t\t\tshow_author: displayAuthor,\n\t\t\tshow_date: displayDate,\n\t\t\tshow_summary: displayExcerpt,\n\t\t\titems,\n\t\t} ) => {\n\t\t\treturn {\n\t\t\t\tfeedURL: url,\n\t\t\t\tdisplayAuthor: !! displayAuthor,\n\t\t\t\tdisplayDate: !! displayDate,\n\t\t\t\tdisplayExcerpt: !! displayExcerpt,\n\t\t\t\titemsToShow: items,\n\t\t\t};\n\t\t},\n\t},\n].map( ( { block, widget, transform } ) => {\n\treturn {\n\t\ttype: 'block',\n\t\tblocks: [ block ],\n\t\tisMatch: ( { idBase, instance } ) => {\n\t\t\treturn idBase === widget && !! instance?.raw;\n\t\t},\n\t\ttransform: ( { instance } ) => {\n\t\t\tconst transformedBlock = createBlock(\n\t\t\t\tblock,\n\t\t\t\ttransform ? transform( instance.raw ) : undefined\n\t\t\t);\n\t\t\tif ( ! instance.raw?.title ) {\n\t\t\t\treturn transformedBlock;\n\t\t\t}\n\t\t\treturn [\n\t\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\t\tcontent: instance.raw.title,\n\t\t\t\t} ),\n\t\t\t\ttransformedBlock,\n\t\t\t];\n\t\t},\n\t};\n} );\n\nconst transforms = {\n\tto: legacyWidgetTransforms,\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { widget as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport transforms from './transforms';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\ttransforms,\n};\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport { group as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ttitle: __( 'Widget Group' ),\n\tdescription: __(\n\t\t'Create a classic widget layout with a title that\u2019s styled by your theme for your widget areas.'\n\t),\n\ticon,\n\t__experimentalLabel: ( { name: label } ) => label,\n\tedit,\n\tsave,\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tisMultiBlock: true,\n\t\t\t\tblocks: [ '*' ],\n\t\t\t\tisMatch( attributes, blocks ) {\n\t\t\t\t\t// Avoid transforming existing `widget-group` blocks.\n\t\t\t\t\treturn ! blocks.some(\n\t\t\t\t\t\t( block ) => block.name === 'core/widget-group'\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\t__experimentalConvert( blocks ) {\n\t\t\t\t\t// Put the selected blocks inside the new Widget Group's innerBlocks.\n\t\t\t\t\tlet innerBlocks = [\n\t\t\t\t\t\t...blocks.map( ( block ) => {\n\t\t\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\tblock.attributes,\n\t\t\t\t\t\t\t\tblock.innerBlocks\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ),\n\t\t\t\t\t];\n\n\t\t\t\t\t// If the first block is a heading then assume this is intended\n\t\t\t\t\t// to be the Widget's \"title\".\n\t\t\t\t\tconst firstHeadingBlock =\n\t\t\t\t\t\tinnerBlocks[ 0 ].name === 'core/heading'\n\t\t\t\t\t\t\t? innerBlocks[ 0 ]\n\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\t// Remove the first heading block as we're copying\n\t\t\t\t\t// it's content into the Widget Group's title attribute.\n\t\t\t\t\tinnerBlocks = innerBlocks.filter(\n\t\t\t\t\t\t( block ) => block !== firstHeadingBlock\n\t\t\t\t\t);\n\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/widget-group',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...( firstHeadingBlock && {\n\t\t\t\t\t\t\t\ttitle: firstHeadingBlock.attributes.content,\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tdeprecated,\n};\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/widget-group\",\n\t\"title\": \"Widget Group\",\n\t\"category\": \"widgets\",\n\t\"attributes\": {\n\t\t\"title\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"html\": false,\n\t\t\"inserter\": true,\n\t\t\"customClassName\": true,\n\t\t\"reusable\": false\n\t},\n\t\"editorStyle\": \"wp-block-widget-group-editor\",\n\t\"style\": \"wp-block-widget-group\"\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tBlockIcon,\n\tButtonBlockAppender,\n\tInnerBlocks,\n\tstore as blockEditorStore,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { Placeholder } from '@wordpress/components';\nimport { group as groupIcon } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\nexport default function Edit( props ) {\n\tconst { clientId } = props;\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlockCount( clientId ) > 0,\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<div { ...useBlockProps( { className: 'widget' } ) }>\n\t\t\t{ ! hasInnerBlocks ? (\n\t\t\t\t<PlaceholderContent { ...props } />\n\t\t\t) : (\n\t\t\t\t<PreviewContent { ...props } />\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction PlaceholderContent( { clientId } ) {\n\treturn (\n\t\t<>\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"wp-block-widget-group__placeholder\"\n\t\t\t\ticon={ <BlockIcon icon={ groupIcon } /> }\n\t\t\t\tlabel={ __( 'Widget Group' ) }\n\t\t\t>\n\t\t\t\t<ButtonBlockAppender rootClientId={ clientId } />\n\t\t\t</Placeholder>\n\t\t\t<InnerBlocks renderAppender={ false } />\n\t\t</>\n\t);\n}\n\nfunction PreviewContent( { attributes, setAttributes } ) {\n\treturn (\n\t\t<>\n\t\t\t<RichText\n\t\t\t\ttagName=\"h2\"\n\t\t\t\tidentifier=\"title\"\n\t\t\t\tclassName=\"widget-title\"\n\t\t\t\tallowedFormats={ [] }\n\t\t\t\tplaceholder={ __( 'Title' ) }\n\t\t\t\tvalue={ attributes.title ?? '' }\n\t\t\t\tonChange={ ( title ) => setAttributes( { title } ) }\n\t\t\t/>\n\t\t\t<InnerBlocks />\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks, RichText } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\treturn (\n\t\t<>\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"h2\"\n\t\t\t\tclassName=\"widget-title\"\n\t\t\t\tvalue={ attributes.title }\n\t\t\t/>\n\t\t\t<div className=\"wp-widget-group__inner-blocks\">\n\t\t\t\t<InnerBlocks.Content />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks, RichText } from '@wordpress/block-editor';\n\nconst v1 = {\n\tattributes: {\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t\tinserter: true,\n\t\tcustomClassName: true,\n\t\treusable: false,\n\t},\n\tsave( { attributes } ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"h2\"\n\t\t\t\t\tclassName=\"widget-title\"\n\t\t\t\t\tvalue={ attributes.title }\n\t\t\t\t/>\n\t\t\t\t<InnerBlocks.Content />\n\t\t\t</>\n\t\t);\n\t},\n};\n\nexport default [ v1 ];\n", "/**\n * WordPress dependencies\n */\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItemsChoice,\n\tToolbarGroup,\n\tToolbarItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { moveTo } from '@wordpress/icons';\n\nexport default function MoveToWidgetArea( {\n\tcurrentWidgetAreaId,\n\twidgetAreas,\n\tonSelect,\n} ) {\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moveTo }\n\t\t\t\t\t\tlabel={ __( 'Move to widget area' ) }\n\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup label={ __( 'Move to' ) }>\n\t\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\t\tchoices={ widgetAreas.map(\n\t\t\t\t\t\t\t\t\t\t( widgetArea ) => ( {\n\t\t\t\t\t\t\t\t\t\t\tvalue: widgetArea.id,\n\t\t\t\t\t\t\t\t\t\t\tlabel: widgetArea.name,\n\t\t\t\t\t\t\t\t\t\t\tinfo: widgetArea.description,\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\tvalue={ currentWidgetAreaId }\n\t\t\t\t\t\t\t\t\tonSelect={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tonSelect( value );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n}\n", "// @ts-check\n\n/**\n * Get the internal widget id from block.\n *\n * @typedef {Object} Attributes\n * @property {string} __internalWidgetId The internal widget id.\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n *\n * @param {Block} block The block.\n * @return {string} The internal widget id.\n */\nexport function getWidgetIdFromBlock( block ) {\n\treturn block.attributes.__internalWidgetId;\n}\n\n/**\n * Add internal widget id to block's attributes.\n *\n * @param {Block} block The block.\n * @param {string} widgetId The widget id.\n * @return {Block} The updated block.\n */\nexport function addWidgetIdToBlock( block, widgetId ) {\n\treturn {\n\t\t...block,\n\t\tattributes: {\n\t\t\t...( block.attributes || {} ),\n\t\t\t__internalWidgetId: widgetId,\n\t\t},\n\t};\n}\n", "/**\n * WordPress dependencies\n */\nimport { subscribe, select, dispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blocksStore } from '@wordpress/blocks';\n\nexport default function registerLegacyWidgetVariations( settings ) {\n\tconst unsubscribe = subscribe( () => {\n\t\tconst hiddenIds =\n\t\t\tsettings?.widgetTypesToHideFromLegacyWidgetBlock ?? [];\n\t\tconst widgetTypes = select( coreStore )\n\t\t\t.getWidgetTypes( { per_page: -1 } )\n\t\t\t?.filter( ( widgetType ) => ! hiddenIds.includes( widgetType.id ) );\n\t\tif ( widgetTypes ) {\n\t\t\tunsubscribe();\n\t\t\tdispatch( blocksStore ).addBlockVariations(\n\t\t\t\t'core/legacy-widget',\n\t\t\t\twidgetTypes.map( ( widgetType ) => ( {\n\t\t\t\t\tname: widgetType.id,\n\t\t\t\t\ttitle: widgetType.name,\n\t\t\t\t\tdescription: widgetType.description,\n\t\t\t\t\tattributes: widgetType.is_multi\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tidBase: widgetType.id,\n\t\t\t\t\t\t\t\tinstance: {},\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tid: widgetType.id,\n\t\t\t\t\t\t },\n\t\t\t\t} ) )\n\t\t\t);\n\t\t}\n\t} );\n}\n"], 5 "mappings": "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", 6 "names": ["require_blocks", "__commonJSMin", "exports", "module", "require_element", "__commonJSMin", "exports", "module", "require_primitives", "__commonJSMin", "exports", "module", "require_jsx_runtime", "__commonJSMin", "exports", "module", "require_block_editor", "__commonJSMin", "exports", "module", "require_components", "__commonJSMin", "exports", "module", "require_i18n", "__commonJSMin", "exports", "module", "require_core_data", "__commonJSMin", "exports", "module", "require_data", "__commonJSMin", "exports", "module", "require_notices", "__commonJSMin", "exports", "module", "require_compose", "__commonJSMin", "exports", "module", "require_api_fetch", "__commonJSMin", "exports", "module", "import_blocks", "import_primitives", "import_jsx_runtime", "brush_default", "import_primitives", "import_jsx_runtime", "group_default", "import_primitives", "import_jsx_runtime", "move_to_default", "import_primitives", "import_jsx_runtime", "widget_default", "block_default", "r", "e", "t", "f", "n", "o", "clsx", "clsx_default", "import_block_editor", "import_components", "import_i18n", "import_element", "import_core_data", "import_components", "import_i18n", "import_data", "import_core_data", "import_block_editor", "import_jsx_runtime", "WidgetTypeSelector", "selectedId", "onSelect", "widgetTypes", "select", "hiddenIds", "blockEditorStore", "coreStore", "widgetType", "value", "selected", "import_jsx_runtime", "InspectorCard", "name", "description", "import_element", "import_data", "import_notices", "import_i18n", "import_components", "import_compose", "import_api_fetch", "import_compose", "import_i18n", "Control", "id", "idBase", "instance", "onChangeInstance", "onChangeHasPreview", "onError", "lastNumber", "el", "$", "form", "saveWidget", "preview", "encodeWidget", "isEmptyHTML", "serializeForm", "error", "event", "formData", "hasPreview", "tagName", "attributes", "content", "element", "attribute", "value", "child", "widget", "apiFetch", "number", "response", "html", "isEmptyNode", "node", "import_jsx_runtime", "Form", "title", "isVisible", "id", "idBase", "instance", "isWide", "onChangeInstance", "onChangeHasPreview", "ref", "isMediumLargeViewport", "outgoingInstances", "incomingInstances", "createNotice", "noticesStore", "control", "Control", "nextInstance", "error", "clsx_default", "import_compose", "import_element", "import_components", "import_i18n", "import_api_fetch", "import_jsx_runtime", "Preview", "idBase", "instance", "isVisible", "isLoaded", "setIsLoaded", "srcDoc", "setSrcDoc", "abortController", "fetchPreviewHTML", "restRoute", "apiFetch", "response", "error", "ref", "iframe", "setHeight", "height", "IntersectionObserver", "intersectionObserver", "entry", "clsx_default", "event", "import_i18n", "import_jsx_runtime", "NoPreview", "name", "import_data", "import_block_editor", "import_components", "import_blocks", "import_i18n", "import_jsx_runtime", "ConvertToBlocksButton", "clientId", "rawInstance", "replaceBlocks", "blockEditorStore", "import_jsx_runtime", "Edit", "props", "id", "idBase", "isWide", "blockProps", "clsx_default", "Empty", "NotEmpty", "setAttributes", "brush_default", "WidgetTypeSelector", "selectedId", "isMulti", "instance", "clientId", "isSelected", "hasPreview", "setHasPreview", "widgetTypeId", "widgetType", "hasResolvedWidgetType", "setInstance", "nextInstance", "mode", "ConvertToBlocksButton", "InspectorCard", "Form", "Preview", "NoPreview", "import_blocks", "legacyWidgetTransforms", "content", "count", "dropdown", "displayPostDate", "number", "taxonomy", "hierarchical", "url", "preload", "loop", "id", "alt", "caption", "height", "linkClass", "rel", "targetBlack", "linkDestination", "link", "sizeSlug", "width", "ids", "linkTo", "size", "displayAuthor", "displayDate", "displayExcerpt", "items", "block", "widget", "transform", "idBase", "instance", "transformedBlock", "transforms", "transforms_default", "name", "block_default", "settings", "widget_default", "Edit", "transforms_default", "import_i18n", "import_blocks", "block_default", "import_block_editor", "import_components", "import_i18n", "import_data", "import_jsx_runtime", "Edit", "props", "clientId", "hasInnerBlocks", "select", "blockEditorStore", "PreviewContent", "PlaceholderContent", "group_default", "attributes", "setAttributes", "title", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_block_editor", "import_jsx_runtime", "v1", "attributes", "deprecated_default", "name", "block_default", "settings", "group_default", "label", "Edit", "save", "attributes", "blocks", "block", "innerBlocks", "firstHeadingBlock", "deprecated_default", "import_components", "import_i18n", "import_jsx_runtime", "MoveToWidgetArea", "currentWidgetAreaId", "widgetAreas", "onSelect", "toggleProps", "move_to_default", "onClose", "widgetArea", "value", "getWidgetIdFromBlock", "block", "addWidgetIdToBlock", "widgetId", "import_data", "import_core_data", "import_blocks", "registerLegacyWidgetVariations", "settings", "unsubscribe", "hiddenIds", "widgetTypes", "coreStore", "widgetType", "blocksStore", "registerLegacyWidgetBlock", "supports", "metadata", "settings", "name", "legacy_widget_exports", "registerWidgetGroupBlock", "widget_group_exports"] 7 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated : Thu Jan 15 08:20:04 2026 | Cross-referenced by PHPXref |