{
  "version": 3,
  "sources": ["../../../src/components/save-panel/index.jsx"],
  "sourcesContent": ["import clsx from 'clsx';\nimport { NavigableRegion } from '@wordpress/admin-ui';\nimport { Button, Modal } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tstore as coreStore,\n\tprivateApis as coreDataPrivateApis,\n} from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useEffect } from '@wordpress/element';\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useActivateTheme } from '../../utils/use-activate-theme';\nimport { useActualCurrentTheme } from '../../utils/use-actual-current-theme';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\n\nconst { useLocation } = unlock( routerPrivateApis );\nconst {\n\tEntitiesSavedStatesExtensible,\n\tEntitiesSavedStates,\n\tuseEntitiesSavedStatesIsDirty,\n} = unlock( coreDataPrivateApis );\n\nconst EntitiesSavedStatesForPreview = ( {\n\tonClose,\n\trenderDialog,\n\tvariant,\n} ) => {\n\tconst isDirtyProps = useEntitiesSavedStatesIsDirty();\n\tlet activateSaveLabel, successNoticeContent;\n\tif ( isDirtyProps.isDirty ) {\n\t\tactivateSaveLabel = __( 'Activate & Save' );\n\t\tsuccessNoticeContent = __( 'Theme activated and site updated.' );\n\t} else {\n\t\tactivateSaveLabel = __( 'Activate' );\n\t\tsuccessNoticeContent = __( 'Theme activated.' );\n\t}\n\n\tconst currentTheme = useActualCurrentTheme();\n\n\tconst previewingTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme(),\n\t\t[]\n\t);\n\n\tconst additionalPrompt = (\n\t\t<p>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: 1: The name of active theme, 2: The name of theme to be activated. */\n\t\t\t\t__(\n\t\t\t\t\t'Saving your changes will change your active theme from %1$s to %2$s.'\n\t\t\t\t),\n\t\t\t\tcurrentTheme?.name?.rendered ?? '...',\n\t\t\t\tpreviewingTheme?.name?.rendered ?? '...'\n\t\t\t) }\n\t\t</p>\n\t);\n\n\tconst activateTheme = useActivateTheme();\n\tconst onSave = async () => {\n\t\tawait activateTheme();\n\t};\n\n\treturn (\n\t\t<EntitiesSavedStatesExtensible\n\t\t\t{ ...{\n\t\t\t\t...isDirtyProps,\n\t\t\t\tadditionalPrompt,\n\t\t\t\tclose: onClose,\n\t\t\t\tonSave,\n\t\t\t\tsaveEnabled: true,\n\t\t\t\tsaveLabel: activateSaveLabel,\n\t\t\t\trenderDialog,\n\t\t\t\tvariant,\n\t\t\t\tsuccessNoticeContent,\n\t\t\t} }\n\t\t/>\n\t);\n};\n\nconst _EntitiesSavedStates = ( { onClose, renderDialog, variant } ) => {\n\tif ( isPreviewingTheme() ) {\n\t\treturn (\n\t\t\t<EntitiesSavedStatesForPreview\n\t\t\t\tonClose={ onClose }\n\t\t\t\trenderDialog={ renderDialog }\n\t\t\t\tvariant={ variant }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<EntitiesSavedStates\n\t\t\tclose={ onClose }\n\t\t\trenderDialog={ renderDialog }\n\t\t\tvariant={ variant }\n\t\t/>\n\t);\n};\n\nexport default function SavePanel() {\n\tconst { query } = useLocation();\n\tconst { canvas = 'view' } = query;\n\tconst { isSaveViewOpen, isDirty, isSaving } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\tisSavingEntityRecord,\n\t\t\tisResolving,\n\t\t} = select( coreStore );\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\tconst isActivatingTheme = isResolving( 'activateTheme' );\n\t\tconst { isSaveViewOpened } = unlock( select( editSiteStore ) );\n\n\t\t// The currently selected entity to display.\n\t\t// Typically template or template part in the site editor.\n\t\treturn {\n\t\t\tisSaveViewOpen: isSaveViewOpened(),\n\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\tisSaving:\n\t\t\t\tdirtyEntityRecords.some( ( record ) =>\n\t\t\t\t\tisSavingEntityRecord( record.kind, record.name, record.key )\n\t\t\t\t) || isActivatingTheme,\n\t\t};\n\t}, [] );\n\tconst { setIsSaveViewOpened } = useDispatch( editSiteStore );\n\tconst onClose = () => setIsSaveViewOpened( false );\n\tuseEffect( () => {\n\t\tsetIsSaveViewOpened( false );\n\t}, [ canvas, setIsSaveViewOpened ] );\n\n\tif ( canvas === 'view' ) {\n\t\treturn isSaveViewOpen ? (\n\t\t\t<Modal\n\t\t\t\tclassName=\"edit-site-save-panel__modal\"\n\t\t\t\tonRequestClose={ onClose }\n\t\t\t\ttitle={ __( 'Review changes' ) }\n\t\t\t\tsize=\"small\"\n\t\t\t>\n\t\t\t\t<_EntitiesSavedStates onClose={ onClose } variant=\"inline\" />\n\t\t\t</Modal>\n\t\t) : null;\n\t}\n\tconst activateSaveEnabled = isPreviewingTheme() || isDirty;\n\tconst disabled = isSaving || ! activateSaveEnabled;\n\treturn (\n\t\t<NavigableRegion\n\t\t\tclassName={ clsx( 'edit-site-layout__actions', {\n\t\t\t\t'is-entity-save-view-open': isSaveViewOpen,\n\t\t\t} ) }\n\t\t\tariaLabel={ __( 'Save panel' ) }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'edit-site-editor__toggle-save-panel', {\n\t\t\t\t\t'screen-reader-text': isSaveViewOpen,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName=\"edit-site-editor__toggle-save-panel-button\"\n\t\t\t\t\tonClick={ () => setIsSaveViewOpened( true ) }\n\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open save panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t\t{ isSaveViewOpen && (\n\t\t\t\t<_EntitiesSavedStates onClose={ onClose } renderDialog />\n\t\t\t) }\n\t\t</NavigableRegion>\n\t);\n}\n"],
  "mappings": "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",
  "names": []
}
