{
  "version": 3,
  "sources": ["../../../src/components/block-editor/use-navigate-to-entity-record.js"],
  "sourcesContent": ["import { useRegistry } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useCallback } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { unlock } from '../../lock-unlock';\nimport { isValidViewport } from './viewport';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\n/**\n * Hook to handle navigation to entity records.\n *\n * @return {Function} Function to navigate to an entity record.\n */\nexport default function useNavigateToEntityRecord() {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst { query, path } = location;\n\tconst registry = useRegistry();\n\n\tconst onNavigateToEntityRecord = useCallback(\n\t\t( params ) => {\n\t\t\t// Read entity selection (already has external IDs from onChangeSelection)\n\t\t\tconst currentPostType = registry\n\t\t\t\t.select( editorStore )\n\t\t\t\t.getCurrentPostType();\n\t\t\tconst currentPostId = registry\n\t\t\t\t.select( editorStore )\n\t\t\t\t.getCurrentPostId();\n\t\t\tconst entityEdits = registry\n\t\t\t\t.select( coreStore )\n\t\t\t\t.getEntityRecordEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\tcurrentPostType,\n\t\t\t\t\tcurrentPostId\n\t\t\t\t);\n\t\t\tconst externalClientId =\n\t\t\t\tentityEdits?.selection?.selectionStart?.clientId;\n\n\t\t\tconst urlUpdates = { ...query };\n\n\t\t\t// Store the selected block in the URL for restoration when navigating back.\n\t\t\tif ( externalClientId ) {\n\t\t\t\turlUpdates.selectedBlock = externalClientId;\n\t\t\t\thistory.navigate( addQueryArgs( path, urlUpdates ), {\n\t\t\t\t\treplace: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// The width an entity is asked to be edited at is where it opens,\n\t\t\t// not something the entity being left carries away: a width set from\n\t\t\t// the device preview is view state, and an entity that asks for none\n\t\t\t// opens at the default.\n\t\t\tconst requestedViewport =\n\t\t\t\ttypeof params.viewport === 'string'\n\t\t\t\t\t? params.viewport.toLowerCase()\n\t\t\t\t\t: undefined;\n\t\t\tconst isValidRequestedViewport =\n\t\t\t\tisValidViewport( requestedViewport );\n\n\t\t\t// Navigate to the new entity record\n\t\t\tconst queryArgs = {\n\t\t\t\tcanvas: 'edit',\n\t\t\t\tfocusMode: true,\n\t\t\t};\n\t\t\tif ( isValidRequestedViewport ) {\n\t\t\t\tqueryArgs.viewport = requestedViewport;\n\t\t\t}\n\t\t\tconst url = addQueryArgs(\n\t\t\t\t`/${ params.postType }/${ params.postId }`,\n\t\t\t\tqueryArgs\n\t\t\t);\n\n\t\t\thistory.navigate( url );\n\t\t},\n\t\t[ history, path, query, registry ]\n\t);\n\n\treturn onNavigateToEntityRecord;\n}\n"],
  "mappings": ";AAAA,SAAS,mBAAmB;AAC5B,SAAS,eAAe,yBAAyB;AACjD,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,SAAS,iBAAiB;AACnC,SAAS,SAAS,mBAAmB;AACrC,SAAS,cAAc;AACvB,SAAS,uBAAuB;AAEhC,IAAM,EAAE,YAAY,YAAY,IAAI,OAAQ,iBAAkB;AAO/C,SAAR,4BAA6C;AACnD,QAAM,UAAU,WAAW;AAC3B,QAAM,WAAW,YAAY;AAC7B,QAAM,EAAE,OAAO,KAAK,IAAI;AACxB,QAAM,WAAW,YAAY;AAE7B,QAAM,2BAA2B;AAAA,IAChC,CAAE,WAAY;AAEb,YAAM,kBAAkB,SACtB,OAAQ,WAAY,EACpB,mBAAmB;AACrB,YAAM,gBAAgB,SACpB,OAAQ,WAAY,EACpB,iBAAiB;AACnB,YAAM,cAAc,SAClB,OAAQ,SAAU,EAClB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACD,YAAM,mBACL,aAAa,WAAW,gBAAgB;AAEzC,YAAM,aAAa,EAAE,GAAG,MAAM;AAG9B,UAAK,kBAAmB;AACvB,mBAAW,gBAAgB;AAC3B,gBAAQ,SAAU,aAAc,MAAM,UAAW,GAAG;AAAA,UACnD,SAAS;AAAA,QACV,CAAE;AAAA,MACH;AAMA,YAAM,oBACL,OAAO,OAAO,aAAa,WACxB,OAAO,SAAS,YAAY,IAC5B;AACJ,YAAM,2BACL,gBAAiB,iBAAkB;AAGpC,YAAM,YAAY;AAAA,QACjB,QAAQ;AAAA,QACR,WAAW;AAAA,MACZ;AACA,UAAK,0BAA2B;AAC/B,kBAAU,WAAW;AAAA,MACtB;AACA,YAAM,MAAM;AAAA,QACX,IAAK,OAAO,QAAS,IAAK,OAAO,MAAO;AAAA,QACxC;AAAA,MACD;AAEA,cAAQ,SAAU,GAAI;AAAA,IACvB;AAAA,IACA,CAAE,SAAS,MAAM,OAAO,QAAS;AAAA,EAClC;AAEA,SAAO;AACR;",
  "names": []
}
