{
  "version": 3,
  "sources": ["../../../../src/blocks/legacy-widget/edit/index.js"],
  "sourcesContent": ["/**\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"],
  "mappings": "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",
  "names": ["clsx", "brushIcon", "WidgetTypeSelector", "ConvertToBlocksButton", "InspectorCard", "Form", "Preview", "NoPreview"]
}
