@wordpress/editor 14.30.1-next.a730c9c8c.0 → 14.31.1-next.f56bd8138.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.
Files changed (55) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/collab-sidebar/comment-author-info.js +2 -2
  3. package/build/components/collab-sidebar/comment-author-info.js.map +1 -1
  4. package/build/components/collab-sidebar/comments.js +87 -25
  5. package/build/components/collab-sidebar/comments.js.map +1 -1
  6. package/build/components/collab-sidebar/index.js +4 -1
  7. package/build/components/collab-sidebar/index.js.map +1 -1
  8. package/build/components/post-excerpt/panel.js +5 -2
  9. package/build/components/post-excerpt/panel.js.map +1 -1
  10. package/build/components/post-template/hooks.js +20 -5
  11. package/build/components/post-template/hooks.js.map +1 -1
  12. package/build/components/post-type-support-check/index.js +12 -1
  13. package/build/components/post-type-support-check/index.js.map +1 -1
  14. package/build/components/provider/index.js +1 -1
  15. package/build/components/provider/index.js.map +1 -1
  16. package/build/dataviews/store/private-actions.js +1 -1
  17. package/build/dataviews/store/private-actions.js.map +1 -1
  18. package/build-module/components/collab-sidebar/comment-author-info.js +3 -3
  19. package/build-module/components/collab-sidebar/comment-author-info.js.map +1 -1
  20. package/build-module/components/collab-sidebar/comments.js +91 -30
  21. package/build-module/components/collab-sidebar/comments.js.map +1 -1
  22. package/build-module/components/collab-sidebar/index.js +4 -1
  23. package/build-module/components/collab-sidebar/index.js.map +1 -1
  24. package/build-module/components/post-excerpt/panel.js +5 -2
  25. package/build-module/components/post-excerpt/panel.js.map +1 -1
  26. package/build-module/components/post-template/hooks.js +20 -5
  27. package/build-module/components/post-template/hooks.js.map +1 -1
  28. package/build-module/components/post-type-support-check/index.js +11 -1
  29. package/build-module/components/post-type-support-check/index.js.map +1 -1
  30. package/build-module/components/provider/index.js +1 -1
  31. package/build-module/components/provider/index.js.map +1 -1
  32. package/build-module/dataviews/store/private-actions.js +1 -1
  33. package/build-module/dataviews/store/private-actions.js.map +1 -1
  34. package/build-style/style-rtl.css +13 -0
  35. package/build-style/style.css +13 -0
  36. package/build-types/components/collab-sidebar/comment-author-info.d.ts.map +1 -1
  37. package/build-types/components/collab-sidebar/comments.d.ts.map +1 -1
  38. package/build-types/components/collab-sidebar/index.d.ts.map +1 -1
  39. package/build-types/components/post-template/hooks.d.ts +1 -1
  40. package/build-types/components/post-template/hooks.d.ts.map +1 -1
  41. package/build-types/components/post-type-support-check/index.d.ts.map +1 -1
  42. package/build-types/components/provider/index.d.ts.map +1 -1
  43. package/package.json +37 -37
  44. package/src/components/collab-sidebar/comment-author-info.js +4 -1
  45. package/src/components/collab-sidebar/comments.js +97 -39
  46. package/src/components/collab-sidebar/index.js +3 -1
  47. package/src/components/collab-sidebar/style.scss +84 -84
  48. package/src/components/post-excerpt/panel.js +6 -1
  49. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +2 -2
  50. package/src/components/post-template/hooks.js +23 -7
  51. package/src/components/post-type-support-check/index.js +18 -1
  52. package/src/components/post-type-support-check/test/index.js +37 -0
  53. package/src/components/provider/index.js +4 -1
  54. package/src/dataviews/store/private-actions.ts +1 -1
  55. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_element","_coreData","_store","useEditedPostContext","useSelect","select","getCurrentPostId","getCurrentPostType","editorStore","postId","postType","useAllowSwitchingTemplates","canUser","getEntityRecord","getEntityRecords","coreStore","siteSettings","kind","name","undefined","isPostsPage","page_for_posts","isFrontPage","page_on_front","templates","per_page","hasFrontPage","some","slug","useTemplates","post_type","useAvailableTemplates","currentTemplateSlug","useCurrentTemplateSlug","allowSwitchingTemplate","useMemo","filter","template","is_custom","content","raw","entityTemplate","post","getEditedEntityRecord","find"],"sources":["@wordpress/editor/src/components/post-template/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function useEditedPostContext() {\n\treturn useSelect( ( select ) => {\n\t\tconst { getCurrentPostId, getCurrentPostType } = select( editorStore );\n\t\treturn {\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostType: getCurrentPostType(),\n\t\t};\n\t}, [] );\n}\nexport function useAllowSwitchingTemplates() {\n\tconst { postType, postId } = useEditedPostContext();\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser, getEntityRecord, getEntityRecords } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst siteSettings = canUser( 'read', {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t} )\n\t\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t\t: undefined;\n\n\t\t\tconst isPostsPage = +postId === siteSettings?.page_for_posts;\n\t\t\tconst isFrontPage =\n\t\t\t\tpostType === 'page' && +postId === siteSettings?.page_on_front;\n\t\t\t// If current page is set front page or posts page, we also need\n\t\t\t// to check if the current theme has a template for it. If not\n\t\t\tconst templates = isFrontPage\n\t\t\t\t? getEntityRecords( 'postType', 'wp_template', {\n\t\t\t\t\t\tper_page: -1,\n\t\t\t\t } )\n\t\t\t\t: [];\n\t\t\tconst hasFrontPage =\n\t\t\t\tisFrontPage &&\n\t\t\t\t!! templates?.some( ( { slug } ) => slug === 'front-page' );\n\t\t\treturn ! isPostsPage && ! hasFrontPage;\n\t\t},\n\t\t[ postId, postType ]\n\t);\n}\n\nfunction useTemplates( postType ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords( 'postType', 'wp_template', {\n\t\t\t\tper_page: -1,\n\t\t\t\tpost_type: postType,\n\t\t\t} ),\n\t\t[ postType ]\n\t);\n}\n\nexport function useAvailableTemplates( postType ) {\n\tconst currentTemplateSlug = useCurrentTemplateSlug();\n\tconst allowSwitchingTemplate = useAllowSwitchingTemplates();\n\tconst templates = useTemplates( postType );\n\treturn useMemo(\n\t\t() =>\n\t\t\tallowSwitchingTemplate &&\n\t\t\ttemplates?.filter(\n\t\t\t\t( template ) =>\n\t\t\t\t\ttemplate.is_custom &&\n\t\t\t\t\ttemplate.slug !== currentTemplateSlug &&\n\t\t\t\t\t!! template.content.raw // Skip empty templates.\n\t\t\t),\n\t\t[ templates, currentTemplateSlug, allowSwitchingTemplate ]\n\t);\n}\n\nexport function useCurrentTemplateSlug() {\n\tconst { postType, postId } = useEditedPostContext();\n\tconst templates = useTemplates( postType );\n\tconst entityTemplate = useSelect(\n\t\t( select ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\treturn post?.template;\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tif ( ! entityTemplate ) {\n\t\treturn;\n\t}\n\t// If a page has a `template` set and is not included in the list\n\t// of the theme's templates, do not return it, in order to resolve\n\t// to the current theme's default template.\n\treturn templates?.find( ( template ) => template.slug === entityTemplate )\n\t\t?.slug;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_element","_coreData","_store","useEditedPostContext","useSelect","select","getCurrentPostId","getCurrentPostType","editorStore","postId","postType","useAllowSwitchingTemplates","canUser","getEntityRecord","getEntityRecords","coreStore","siteSettings","kind","name","undefined","isPostsPage","page_for_posts","isFrontPage","page_on_front","templates","per_page","hasFrontPage","some","slug","useTemplates","staticTemplates","post_type","useMemo","useAvailableTemplates","currentTemplateSlug","useCurrentTemplateSlug","allowSwitchingTemplate","filter","template","is_custom","type","content","raw","entityTemplate","post","getEditedEntityRecord","find"],"sources":["@wordpress/editor/src/components/post-template/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function useEditedPostContext() {\n\treturn useSelect( ( select ) => {\n\t\tconst { getCurrentPostId, getCurrentPostType } = select( editorStore );\n\t\treturn {\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostType: getCurrentPostType(),\n\t\t};\n\t}, [] );\n}\nexport function useAllowSwitchingTemplates() {\n\tconst { postType, postId } = useEditedPostContext();\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser, getEntityRecord, getEntityRecords } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst siteSettings = canUser( 'read', {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t} )\n\t\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t\t: undefined;\n\n\t\t\tconst isPostsPage = +postId === siteSettings?.page_for_posts;\n\t\t\tconst isFrontPage =\n\t\t\t\tpostType === 'page' && +postId === siteSettings?.page_on_front;\n\t\t\t// If current page is set front page or posts page, we also need\n\t\t\t// to check if the current theme has a template for it. If not\n\t\t\tconst templates = isFrontPage\n\t\t\t\t? getEntityRecords( 'postType', 'wp_template', {\n\t\t\t\t\t\tper_page: -1,\n\t\t\t\t } )\n\t\t\t\t: [];\n\t\t\tconst hasFrontPage =\n\t\t\t\tisFrontPage &&\n\t\t\t\t!! templates?.some( ( { slug } ) => slug === 'front-page' );\n\t\t\treturn ! isPostsPage && ! hasFrontPage;\n\t\t},\n\t\t[ postId, postType ]\n\t);\n}\n\nfunction useTemplates( postType ) {\n\t// To do: create a new selector to checks if templates exist at all instead\n\t// of and unbound request. In the modal, the user templates should be\n\t// paginated and we should not make an unbound request.\n\tconst { staticTemplates, templates } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tstaticTemplates: select( coreStore ).getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_registered_template',\n\t\t\t\t\t{ per_page: -1, post_type: postType }\n\t\t\t\t),\n\t\t\t\ttemplates: select( coreStore ).getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\t{ per_page: -1, post_type: postType }\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn useMemo(\n\t\t() => [ ...( staticTemplates || [] ), ...( templates || [] ) ],\n\t\t[ staticTemplates, templates ]\n\t);\n}\n\nexport function useAvailableTemplates( postType ) {\n\tconst currentTemplateSlug = useCurrentTemplateSlug();\n\tconst allowSwitchingTemplate = useAllowSwitchingTemplates();\n\tconst templates = useTemplates( postType );\n\treturn useMemo(\n\t\t() =>\n\t\t\tallowSwitchingTemplate &&\n\t\t\ttemplates?.filter(\n\t\t\t\t( template ) =>\n\t\t\t\t\t( template.is_custom || template.type === 'wp_template' ) &&\n\t\t\t\t\ttemplate.slug !== currentTemplateSlug &&\n\t\t\t\t\t!! template.content.raw // Skip empty templates.\n\t\t\t),\n\t\t[ templates, currentTemplateSlug, allowSwitchingTemplate ]\n\t);\n}\n\nexport function useCurrentTemplateSlug() {\n\tconst { postType, postId } = useEditedPostContext();\n\tconst templates = useTemplates( postType );\n\tconst entityTemplate = useSelect(\n\t\t( select ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\treturn post?.template;\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tif ( ! entityTemplate ) {\n\t\treturn;\n\t}\n\t// If a page has a `template` set and is not included in the list\n\t// of the theme's templates, do not return it, in order to resolve\n\t// to the current theme's default template.\n\treturn templates?.find( ( template ) => template.slug === entityTemplate )\n\t\t?.slug;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -15,6 +15,17 @@ var _store = require("../../store");
15
15
  * Internal dependencies
16
16
  */
17
17
 
18
+ function checkSupport(supports = {}, key) {
19
+ // Check for top-level support keys.
20
+ if (supports[key] !== undefined) {
21
+ return !!supports[key];
22
+ }
23
+ const [topKey, subKey] = key.split('.');
24
+ // Try to unwrap sub-properties from the superfluous array.
25
+ const [subProperties] = Array.isArray(supports[topKey]) ? supports[topKey] : [];
26
+ return Array.isArray(subProperties) ? subProperties.includes(subKey) : !!subProperties?.[subKey];
27
+ }
28
+
18
29
  /**
19
30
  * A component which renders its own children only if the current editor post
20
31
  * type supports one of the given `supportKeys` prop.
@@ -42,7 +53,7 @@ function PostTypeSupportCheck({
42
53
  }, []);
43
54
  let isSupported = !!postType;
44
55
  if (postType) {
45
- isSupported = (Array.isArray(supportKeys) ? supportKeys : [supportKeys]).some(key => !!postType.supports[key]);
56
+ isSupported = (Array.isArray(supportKeys) ? supportKeys : [supportKeys]).some(key => checkSupport(postType.supports, key));
46
57
  }
47
58
  if (!isSupported) {
48
59
  return null;
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_coreData","_store","PostTypeSupportCheck","children","supportKeys","postType","useSelect","select","getEditedPostAttribute","editorStore","getPostType","coreStore","isSupported","Array","isArray","some","key","supports","_default","exports","default"],"sources":["@wordpress/editor/src/components/post-type-support-check/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * A component which renders its own children only if the current editor post\n * type supports one of the given `supportKeys` prop.\n *\n * @param {Object} props Props.\n * @param {React.ReactNode} props.children Children to be rendered if post\n * type supports.\n * @param {(string|string[])} props.supportKeys String or string array of keys\n * to test.\n *\n * @return {React.ReactNode} The component to be rendered.\n */\nfunction PostTypeSupportCheck( { children, supportKeys } ) {\n\tconst postType = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\treturn getPostType( getEditedPostAttribute( 'type' ) );\n\t}, [] );\n\tlet isSupported = !! postType;\n\tif ( postType ) {\n\t\tisSupported = (\n\t\t\tArray.isArray( supportKeys ) ? supportKeys : [ supportKeys ]\n\t\t).some( ( key ) => !! postType.supports[ key ] );\n\t}\n\n\tif ( ! isSupported ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default PostTypeSupportCheck;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,oBAAoBA,CAAE;EAAEC,QAAQ;EAAEC;AAAY,CAAC,EAAG;EAC1D,MAAMC,QAAQ,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACzC,MAAM;MAAEC;IAAuB,CAAC,GAAGD,MAAM,CAAEE,YAAY,CAAC;IACxD,MAAM;MAAEC;IAAY,CAAC,GAAGH,MAAM,CAAEI,eAAU,CAAC;IAC3C,OAAOD,WAAW,CAAEF,sBAAsB,CAAE,MAAO,CAAE,CAAC;EACvD,CAAC,EAAE,EAAG,CAAC;EACP,IAAII,WAAW,GAAG,CAAC,CAAEP,QAAQ;EAC7B,IAAKA,QAAQ,EAAG;IACfO,WAAW,GAAG,CACbC,KAAK,CAACC,OAAO,CAAEV,WAAY,CAAC,GAAGA,WAAW,GAAG,CAAEA,WAAW,CAAE,EAC3DW,IAAI,CAAIC,GAAG,IAAM,CAAC,CAAEX,QAAQ,CAACY,QAAQ,CAAED,GAAG,CAAG,CAAC;EACjD;EAEA,IAAK,CAAEJ,WAAW,EAAG;IACpB,OAAO,IAAI;EACZ;EAEA,OAAOT,QAAQ;AAChB;AAAC,IAAAe,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEclB,oBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_coreData","_store","checkSupport","supports","key","undefined","topKey","subKey","split","subProperties","Array","isArray","includes","PostTypeSupportCheck","children","supportKeys","postType","useSelect","select","getEditedPostAttribute","editorStore","getPostType","coreStore","isSupported","some","_default","exports","default"],"sources":["@wordpress/editor/src/components/post-type-support-check/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction checkSupport( supports = {}, key ) {\n\t// Check for top-level support keys.\n\tif ( supports[ key ] !== undefined ) {\n\t\treturn !! supports[ key ];\n\t}\n\n\tconst [ topKey, subKey ] = key.split( '.' );\n\t// Try to unwrap sub-properties from the superfluous array.\n\tconst [ subProperties ] = Array.isArray( supports[ topKey ] )\n\t\t? supports[ topKey ]\n\t\t: [];\n\n\treturn Array.isArray( subProperties )\n\t\t? subProperties.includes( subKey )\n\t\t: !! subProperties?.[ subKey ];\n}\n\n/**\n * A component which renders its own children only if the current editor post\n * type supports one of the given `supportKeys` prop.\n *\n * @param {Object} props Props.\n * @param {React.ReactNode} props.children Children to be rendered if post\n * type supports.\n * @param {(string|string[])} props.supportKeys String or string array of keys\n * to test.\n *\n * @return {React.ReactNode} The component to be rendered.\n */\nfunction PostTypeSupportCheck( { children, supportKeys } ) {\n\tconst postType = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\treturn getPostType( getEditedPostAttribute( 'type' ) );\n\t}, [] );\n\tlet isSupported = !! postType;\n\tif ( postType ) {\n\t\tisSupported = (\n\t\t\tArray.isArray( supportKeys ) ? supportKeys : [ supportKeys ]\n\t\t).some( ( key ) => checkSupport( postType.supports, key ) );\n\t}\n\n\tif ( ! isSupported ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default PostTypeSupportCheck;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,SAASG,YAAYA,CAAEC,QAAQ,GAAG,CAAC,CAAC,EAAEC,GAAG,EAAG;EAC3C;EACA,IAAKD,QAAQ,CAAEC,GAAG,CAAE,KAAKC,SAAS,EAAG;IACpC,OAAO,CAAC,CAAEF,QAAQ,CAAEC,GAAG,CAAE;EAC1B;EAEA,MAAM,CAAEE,MAAM,EAAEC,MAAM,CAAE,GAAGH,GAAG,CAACI,KAAK,CAAE,GAAI,CAAC;EAC3C;EACA,MAAM,CAAEC,aAAa,CAAE,GAAGC,KAAK,CAACC,OAAO,CAAER,QAAQ,CAAEG,MAAM,CAAG,CAAC,GAC1DH,QAAQ,CAAEG,MAAM,CAAE,GAClB,EAAE;EAEL,OAAOI,KAAK,CAACC,OAAO,CAAEF,aAAc,CAAC,GAClCA,aAAa,CAACG,QAAQ,CAAEL,MAAO,CAAC,GAChC,CAAC,CAAEE,aAAa,GAAIF,MAAM,CAAE;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASM,oBAAoBA,CAAE;EAAEC,QAAQ;EAAEC;AAAY,CAAC,EAAG;EAC1D,MAAMC,QAAQ,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACzC,MAAM;MAAEC;IAAuB,CAAC,GAAGD,MAAM,CAAEE,YAAY,CAAC;IACxD,MAAM;MAAEC;IAAY,CAAC,GAAGH,MAAM,CAAEI,eAAU,CAAC;IAC3C,OAAOD,WAAW,CAAEF,sBAAsB,CAAE,MAAO,CAAE,CAAC;EACvD,CAAC,EAAE,EAAG,CAAC;EACP,IAAII,WAAW,GAAG,CAAC,CAAEP,QAAQ;EAC7B,IAAKA,QAAQ,EAAG;IACfO,WAAW,GAAG,CACbb,KAAK,CAACC,OAAO,CAAEI,WAAY,CAAC,GAAGA,WAAW,GAAG,CAAEA,WAAW,CAAE,EAC3DS,IAAI,CAAIpB,GAAG,IAAMF,YAAY,CAAEc,QAAQ,CAACb,QAAQ,EAAEC,GAAI,CAAE,CAAC;EAC5D;EAEA,IAAK,CAAEmB,WAAW,EAAG;IACpB,OAAO,IAAI;EACZ;EAEA,OAAOT,QAAQ;AAChB;AAAC,IAAAW,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcd,oBAAoB","ignoreList":[]}
@@ -193,7 +193,7 @@ const ExperimentalEditorProvider = exports.ExperimentalEditorProvider = (0, _wit
193
193
  const defaultBlockContext = (0, _element.useMemo)(() => {
194
194
  const postContext = {};
195
195
  // If it is a template, try to inherit the post type from the name.
196
- if (post.type === 'wp_template') {
196
+ if (post.type === 'wp_template' || post.type === 'wp_registered_template') {
197
197
  if (post.slug === 'page') {
198
198
  postContext.postType = 'page';
199
199
  } else if (post.slug === 'single') {
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_i18n","_coreData","_blockEditor","_notices","_patterns","_blocks","_withRegistryProvider","_interopRequireDefault","_store","_useBlockEditorSettings","_lockUnlock","_disableNonPageContentBlocks","_navigationBlockEditingMode","_useHideBlocksFromInserter","_commands","_blockRemovalWarnings","_startPageOptions","_keyboardShortcutHelpModal","_contentOnlySettingsMenu","_startTemplateOptions","_globalKeyboardShortcuts","_patternRenameModal","_patternDuplicateModal","_templatePartMenuItems","_jsxRuntime","ExperimentalBlockEditorProvider","unlock","blockEditorPrivateApis","PatternsMenuItems","editPatternsPrivateApis","noop","NON_CONTEXTUAL_POST_TYPES","useBlockEditorProps","post","template","mode","rootLevelPost","postBlocks","onInput","onChange","useEntityBlockEditor","type","id","templateBlocks","onInputTemplate","onChangeTemplate","maybeNavigationBlocks","useMemo","createBlock","ref","templateLock","blocks","disableRootLevelChanges","ExperimentalEditorProvider","exports","withRegistryProvider","settings","recovery","initialEdits","children","BlockEditorProviderComponent","__unstableTemplate","hasTemplate","editorSettings","selection","isReady","defaultMode","postTypeEntities","useSelect","select","getEditorSettings","getEditorSelection","getRenderingMode","__unstableIsEditorReady","getDefaultRenderingMode","editorStore","getEntitiesConfig","coreStore","_mode","_defaultMode","hasResolvedDefaultMode","undefined","isRenderingModeReady","shouldRenderTemplate","defaultBlockContext","postContext","slug","postType","split","postTypeNames","map","entity","name","match","join","includes","postId","templateSlug","blockEditorSettings","useBlockEditorSettings","updatePostLock","setupEditor","updateEditorSettings","setCurrentTemplateId","setEditedPost","setRenderingMode","useDispatch","createWarningNotice","noticesStore","useLayoutEffect","postLock","autosave","__","actions","label","url","editLink","useEffect","useHideBlocksFromInserter","useCommands","jsx","EntityProvider","kind","BlockContextProvider","value","jsxs","useSubRegistry","isPreviewMode","Fragment","default","EditorProvider","props","BlockEditorProvider","_default"],"sources":["@wordpress/editor/src/components/provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tEntityProvider,\n\tuseEntityBlockEditor,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\tBlockContextProvider,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport { store as editorStore } from '../../store';\nimport useBlockEditorSettings from './use-block-editor-settings';\nimport { unlock } from '../../lock-unlock';\nimport DisableNonPageContentBlocks from './disable-non-page-content-blocks';\nimport NavigationBlockEditingMode from './navigation-block-editing-mode';\nimport { useHideBlocksFromInserter } from './use-hide-blocks-from-inserter';\nimport useCommands from '../commands';\nimport BlockRemovalWarnings from '../block-removal-warnings';\nimport StartPageOptions from '../start-page-options';\nimport KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';\nimport ContentOnlySettingsMenu from '../block-settings-menu/content-only-settings-menu';\nimport StartTemplateOptions from '../start-template-options';\nimport EditorKeyboardShortcuts from '../global-keyboard-shortcuts';\nimport PatternRenameModal from '../pattern-rename-modal';\nimport PatternDuplicateModal from '../pattern-duplicate-modal';\nimport TemplatePartMenuItems from '../template-part-menu-items';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\n\nconst noop = () => {};\n\n/**\n * These are global entities that are only there to split blocks into logical units\n * They don't provide a \"context\" for the current post/page being rendered.\n * So we should not use their ids as post context. This is important to allow post blocks\n * (post content, post title) to be used within them without issues.\n */\nconst NON_CONTEXTUAL_POST_TYPES = [\n\t'wp_block',\n\t'wp_navigation',\n\t'wp_template_part',\n];\n\n/**\n * Depending on the post, template and template mode,\n * returns the appropriate blocks and change handlers for the block editor provider.\n *\n * @param {Array} post Block list.\n * @param {boolean} template Whether the page content has focus (and the surrounding template is inert). If `true` return page content blocks. Default `false`.\n * @param {string} mode Rendering mode.\n *\n * @example\n * ```jsx\n * const [ blocks, onInput, onChange ] = useBlockEditorProps( post, template, mode );\n * ```\n *\n * @return {Array} Block editor props.\n */\nfunction useBlockEditorProps( post, template, mode ) {\n\tconst rootLevelPost = mode === 'template-locked' ? 'template' : 'post';\n\tconst [ postBlocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpost.type,\n\t\t{ id: post.id }\n\t);\n\tconst [ templateBlocks, onInputTemplate, onChangeTemplate ] =\n\t\tuseEntityBlockEditor( 'postType', template?.type, {\n\t\t\tid: template?.id,\n\t\t} );\n\tconst maybeNavigationBlocks = useMemo( () => {\n\t\tif ( post.type === 'wp_navigation' ) {\n\t\t\treturn [\n\t\t\t\tcreateBlock( 'core/navigation', {\n\t\t\t\t\tref: post.id,\n\t\t\t\t\t// As the parent editor is locked with `templateLock`, the template locking\n\t\t\t\t\t// must be explicitly \"unset\" on the block itself to allow the user to modify\n\t\t\t\t\t// the block's content.\n\t\t\t\t\ttemplateLock: false,\n\t\t\t\t} ),\n\t\t\t];\n\t\t}\n\t}, [ post.type, post.id ] );\n\n\t// It is important that we don't create a new instance of blocks on every change\n\t// We should only create a new instance if the blocks them selves change, not a dependency of them.\n\tconst blocks = useMemo( () => {\n\t\tif ( maybeNavigationBlocks ) {\n\t\t\treturn maybeNavigationBlocks;\n\t\t}\n\n\t\tif ( rootLevelPost === 'template' ) {\n\t\t\treturn templateBlocks;\n\t\t}\n\n\t\treturn postBlocks;\n\t}, [ maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks ] );\n\n\t// Handle fallback to postBlocks outside of the above useMemo, to ensure\n\t// that constructed block templates that call `createBlock` are not generated\n\t// too frequently. This ensures that clientIds are stable.\n\tconst disableRootLevelChanges =\n\t\t( !! template && mode === 'template-locked' ) ||\n\t\tpost.type === 'wp_navigation';\n\tif ( disableRootLevelChanges ) {\n\t\treturn [ blocks, noop, noop ];\n\t}\n\n\treturn [\n\t\tblocks,\n\t\trootLevelPost === 'post' ? onInput : onInputTemplate,\n\t\trootLevelPost === 'post' ? onChange : onChangeTemplate,\n\t];\n}\n\n/**\n * This component provides the editor context and manages the state of the block editor.\n *\n * @param {Object} props The component props.\n * @param {Object} props.post The post object.\n * @param {Object} props.settings The editor settings.\n * @param {boolean} props.recovery Indicates if the editor is in recovery mode.\n * @param {Array} props.initialEdits The initial edits for the editor.\n * @param {Object} props.children The child components.\n * @param {Object} [props.BlockEditorProviderComponent] The block editor provider component to use. Defaults to ExperimentalBlockEditorProvider.\n * @param {Object} [props.__unstableTemplate] The template object.\n *\n * @example\n * ```jsx\n * <ExperimentalEditorProvider\n * post={ post }\n * settings={ settings }\n * recovery={ recovery }\n * initialEdits={ initialEdits }\n * __unstableTemplate={ template }\n * >\n * { children }\n * </ExperimentalEditorProvider>\n *\n * @return {Object} The rendered ExperimentalEditorProvider component.\n */\nexport const ExperimentalEditorProvider = withRegistryProvider(\n\t( {\n\t\tpost,\n\t\tsettings,\n\t\trecovery,\n\t\tinitialEdits,\n\t\tchildren,\n\t\tBlockEditorProviderComponent = ExperimentalBlockEditorProvider,\n\t\t__unstableTemplate: template,\n\t} ) => {\n\t\tconst hasTemplate = !! template;\n\t\tconst {\n\t\t\teditorSettings,\n\t\t\tselection,\n\t\t\tisReady,\n\t\t\tmode,\n\t\t\tdefaultMode,\n\t\t\tpostTypeEntities,\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEditorSettings,\n\t\t\t\t\tgetEditorSelection,\n\t\t\t\t\tgetRenderingMode,\n\t\t\t\t\t__unstableIsEditorReady,\n\t\t\t\t\tgetDefaultRenderingMode,\n\t\t\t\t} = unlock( select( editorStore ) );\n\t\t\t\tconst { getEntitiesConfig } = select( coreStore );\n\n\t\t\t\tconst _mode = getRenderingMode();\n\t\t\t\tconst _defaultMode = getDefaultRenderingMode( post.type );\n\t\t\t\t/**\n\t\t\t\t * To avoid content \"flash\", wait until rendering mode has been resolved.\n\t\t\t\t * This is important for the initial render of the editor.\n\t\t\t\t *\n\t\t\t\t * - Wait for template to be resolved if the default mode is 'template-locked'.\n\t\t\t\t * - Wait for default mode to be resolved otherwise.\n\t\t\t\t */\n\t\t\t\tconst hasResolvedDefaultMode =\n\t\t\t\t\t_defaultMode === 'template-locked'\n\t\t\t\t\t\t? hasTemplate\n\t\t\t\t\t\t: _defaultMode !== undefined;\n\t\t\t\t// Wait until the default mode is retrieved and start rendering canvas.\n\t\t\t\tconst isRenderingModeReady = _defaultMode !== undefined;\n\n\t\t\t\treturn {\n\t\t\t\t\teditorSettings: getEditorSettings(),\n\t\t\t\t\tisReady: __unstableIsEditorReady(),\n\t\t\t\t\tmode: isRenderingModeReady ? _mode : undefined,\n\t\t\t\t\tdefaultMode: hasResolvedDefaultMode\n\t\t\t\t\t\t? _defaultMode\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tselection: getEditorSelection(),\n\t\t\t\t\tpostTypeEntities:\n\t\t\t\t\t\tpost.type === 'wp_template'\n\t\t\t\t\t\t\t? getEntitiesConfig( 'postType' )\n\t\t\t\t\t\t\t: null,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ post.type, hasTemplate ]\n\t\t);\n\n\t\tconst shouldRenderTemplate = hasTemplate && mode !== 'post-only';\n\t\tconst rootLevelPost = shouldRenderTemplate ? template : post;\n\t\tconst defaultBlockContext = useMemo( () => {\n\t\t\tconst postContext = {};\n\t\t\t// If it is a template, try to inherit the post type from the name.\n\t\t\tif ( post.type === 'wp_template' ) {\n\t\t\t\tif ( post.slug === 'page' ) {\n\t\t\t\t\tpostContext.postType = 'page';\n\t\t\t\t} else if ( post.slug === 'single' ) {\n\t\t\t\t\tpostContext.postType = 'post';\n\t\t\t\t} else if ( post.slug.split( '-' )[ 0 ] === 'single' ) {\n\t\t\t\t\t// If the slug is single-{postType}, infer the post type from the name.\n\t\t\t\t\tconst postTypeNames =\n\t\t\t\t\t\tpostTypeEntities?.map( ( entity ) => entity.name ) ||\n\t\t\t\t\t\t[];\n\t\t\t\t\tconst match = post.slug.match(\n\t\t\t\t\t\t`^single-(${ postTypeNames.join( '|' ) })(?:-.+)?$`\n\t\t\t\t\t);\n\t\t\t\t\tif ( match ) {\n\t\t\t\t\t\tpostContext.postType = match[ 1 ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\t! NON_CONTEXTUAL_POST_TYPES.includes( rootLevelPost.type ) ||\n\t\t\t\tshouldRenderTemplate\n\t\t\t) {\n\t\t\t\tpostContext.postId = post.id;\n\t\t\t\tpostContext.postType = post.type;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...postContext,\n\t\t\t\ttemplateSlug:\n\t\t\t\t\trootLevelPost.type === 'wp_template'\n\t\t\t\t\t\t? rootLevelPost.slug\n\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t}, [\n\t\t\tshouldRenderTemplate,\n\t\t\tpost.id,\n\t\t\tpost.type,\n\t\t\tpost.slug,\n\t\t\trootLevelPost.type,\n\t\t\trootLevelPost.slug,\n\t\t\tpostTypeEntities,\n\t\t] );\n\t\tconst { id, type } = rootLevelPost;\n\t\tconst blockEditorSettings = useBlockEditorSettings(\n\t\t\teditorSettings,\n\t\t\ttype,\n\t\t\tid,\n\t\t\tmode\n\t\t);\n\t\tconst [ blocks, onInput, onChange ] = useBlockEditorProps(\n\t\t\tpost,\n\t\t\ttemplate,\n\t\t\tmode\n\t\t);\n\n\t\tconst {\n\t\t\tupdatePostLock,\n\t\t\tsetupEditor,\n\t\t\tupdateEditorSettings,\n\t\t\tsetCurrentTemplateId,\n\t\t\tsetEditedPost,\n\t\t\tsetRenderingMode,\n\t\t} = unlock( useDispatch( editorStore ) );\n\t\tconst { createWarningNotice } = useDispatch( noticesStore );\n\n\t\t// Ideally this should be synced on each change and not just something you do once.\n\t\tuseLayoutEffect( () => {\n\t\t\t// Assume that we don't need to initialize in the case of an error recovery.\n\t\t\tif ( recovery ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdatePostLock( settings.postLock );\n\t\t\tsetupEditor( post, initialEdits, settings.template );\n\t\t\tif ( settings.autosave ) {\n\t\t\t\tcreateWarningNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'There is an autosave of this post that is more recent than the version below.'\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'autosave-exists',\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View the autosave' ),\n\t\t\t\t\t\t\t\turl: settings.autosave.editLink,\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);\n\t\t\t}\n\n\t\t\t// The dependencies of the hook are omitted deliberately\n\t\t\t// We only want to run setupEditor (with initialEdits) only once per post.\n\t\t\t// A better solution in the future would be to split this effect into multiple ones.\n\t\t}, [] );\n\n\t\t// Synchronizes the active post with the state\n\t\tuseEffect( () => {\n\t\t\tsetEditedPost( post.type, post.id );\n\t\t}, [ post.type, post.id, setEditedPost ] );\n\n\t\t// Synchronize the editor settings as they change.\n\t\tuseEffect( () => {\n\t\t\tupdateEditorSettings( settings );\n\t\t}, [ settings, updateEditorSettings ] );\n\n\t\t// Synchronizes the active template with the state.\n\t\tuseEffect( () => {\n\t\t\tsetCurrentTemplateId( template?.id );\n\t\t}, [ template?.id, setCurrentTemplateId ] );\n\n\t\t// Sets the right rendering mode when loading the editor.\n\t\tuseEffect( () => {\n\t\t\tif ( defaultMode ) {\n\t\t\t\tsetRenderingMode( defaultMode );\n\t\t\t}\n\t\t}, [ defaultMode, setRenderingMode ] );\n\n\t\tuseHideBlocksFromInserter( post.type, mode );\n\n\t\t// Register the editor commands.\n\t\tuseCommands();\n\n\t\tif ( ! isReady || ! mode ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t<EntityProvider\n\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\ttype={ post.type }\n\t\t\t\t\tid={ post.id }\n\t\t\t\t>\n\t\t\t\t\t<BlockContextProvider value={ defaultBlockContext }>\n\t\t\t\t\t\t<BlockEditorProviderComponent\n\t\t\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tsettings={ blockEditorSettings }\n\t\t\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t{ ! settings.isPreviewMode && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<PatternsMenuItems />\n\t\t\t\t\t\t\t\t\t<TemplatePartMenuItems />\n\t\t\t\t\t\t\t\t\t<ContentOnlySettingsMenu />\n\t\t\t\t\t\t\t\t\t{ mode === 'template-locked' && (\n\t\t\t\t\t\t\t\t\t\t<DisableNonPageContentBlocks />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ type === 'wp_navigation' && (\n\t\t\t\t\t\t\t\t\t\t<NavigationBlockEditingMode />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<EditorKeyboardShortcuts />\n\t\t\t\t\t\t\t\t\t<KeyboardShortcutHelpModal />\n\t\t\t\t\t\t\t\t\t<BlockRemovalWarnings />\n\t\t\t\t\t\t\t\t\t<StartPageOptions />\n\t\t\t\t\t\t\t\t\t<StartTemplateOptions />\n\t\t\t\t\t\t\t\t\t<PatternRenameModal />\n\t\t\t\t\t\t\t\t\t<PatternDuplicateModal />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockEditorProviderComponent>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</EntityProvider>\n\t\t);\n\t}\n);\n\n/**\n * This component establishes a new post editing context, and serves as the entry point for a new post editor (or post with template editor).\n *\n * It supports a large number of post types, including post, page, templates,\n * custom post types, patterns, template parts.\n *\n * All modification and changes are performed to the `@wordpress/core-data` store.\n *\n * @param {Object} props The component props.\n * @param {Object} [props.post] The post object to edit. This is required.\n * @param {Object} [props.__unstableTemplate] The template object wrapper the edited post.\n * This is optional and can only be used when the post type supports templates (like posts and pages).\n * @param {Object} [props.settings] The settings object to use for the editor.\n * This is optional and can be used to override the default settings.\n * @param {React.ReactNode} [props.children] Children elements for which the BlockEditorProvider context should apply.\n * This is optional.\n *\n * @example\n * ```jsx\n * <EditorProvider\n * post={ post }\n * settings={ settings }\n * __unstableTemplate={ template }\n * >\n * { children }\n * </EditorProvider>\n * ```\n *\n * @return {React.ReactNode} The rendered EditorProvider component.\n */\nexport function EditorProvider( props ) {\n\treturn (\n\t\t<ExperimentalEditorProvider\n\t\t\t{ ...props }\n\t\t\tBlockEditorProviderComponent={ BlockEditorProvider }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalEditorProvider>\n\t);\n}\n\nexport default EditorProvider;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_data","_i18n","_coreData","_blockEditor","_notices","_patterns","_blocks","_withRegistryProvider","_interopRequireDefault","_store","_useBlockEditorSettings","_lockUnlock","_disableNonPageContentBlocks","_navigationBlockEditingMode","_useHideBlocksFromInserter","_commands","_blockRemovalWarnings","_startPageOptions","_keyboardShortcutHelpModal","_contentOnlySettingsMenu","_startTemplateOptions","_globalKeyboardShortcuts","_patternRenameModal","_patternDuplicateModal","_templatePartMenuItems","_jsxRuntime","ExperimentalBlockEditorProvider","unlock","blockEditorPrivateApis","PatternsMenuItems","editPatternsPrivateApis","noop","NON_CONTEXTUAL_POST_TYPES","useBlockEditorProps","post","template","mode","rootLevelPost","postBlocks","onInput","onChange","useEntityBlockEditor","type","id","templateBlocks","onInputTemplate","onChangeTemplate","maybeNavigationBlocks","useMemo","createBlock","ref","templateLock","blocks","disableRootLevelChanges","ExperimentalEditorProvider","exports","withRegistryProvider","settings","recovery","initialEdits","children","BlockEditorProviderComponent","__unstableTemplate","hasTemplate","editorSettings","selection","isReady","defaultMode","postTypeEntities","useSelect","select","getEditorSettings","getEditorSelection","getRenderingMode","__unstableIsEditorReady","getDefaultRenderingMode","editorStore","getEntitiesConfig","coreStore","_mode","_defaultMode","hasResolvedDefaultMode","undefined","isRenderingModeReady","shouldRenderTemplate","defaultBlockContext","postContext","slug","postType","split","postTypeNames","map","entity","name","match","join","includes","postId","templateSlug","blockEditorSettings","useBlockEditorSettings","updatePostLock","setupEditor","updateEditorSettings","setCurrentTemplateId","setEditedPost","setRenderingMode","useDispatch","createWarningNotice","noticesStore","useLayoutEffect","postLock","autosave","__","actions","label","url","editLink","useEffect","useHideBlocksFromInserter","useCommands","jsx","EntityProvider","kind","BlockContextProvider","value","jsxs","useSubRegistry","isPreviewMode","Fragment","default","EditorProvider","props","BlockEditorProvider","_default"],"sources":["@wordpress/editor/src/components/provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tEntityProvider,\n\tuseEntityBlockEditor,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\tBlockContextProvider,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport { store as editorStore } from '../../store';\nimport useBlockEditorSettings from './use-block-editor-settings';\nimport { unlock } from '../../lock-unlock';\nimport DisableNonPageContentBlocks from './disable-non-page-content-blocks';\nimport NavigationBlockEditingMode from './navigation-block-editing-mode';\nimport { useHideBlocksFromInserter } from './use-hide-blocks-from-inserter';\nimport useCommands from '../commands';\nimport BlockRemovalWarnings from '../block-removal-warnings';\nimport StartPageOptions from '../start-page-options';\nimport KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';\nimport ContentOnlySettingsMenu from '../block-settings-menu/content-only-settings-menu';\nimport StartTemplateOptions from '../start-template-options';\nimport EditorKeyboardShortcuts from '../global-keyboard-shortcuts';\nimport PatternRenameModal from '../pattern-rename-modal';\nimport PatternDuplicateModal from '../pattern-duplicate-modal';\nimport TemplatePartMenuItems from '../template-part-menu-items';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\n\nconst noop = () => {};\n\n/**\n * These are global entities that are only there to split blocks into logical units\n * They don't provide a \"context\" for the current post/page being rendered.\n * So we should not use their ids as post context. This is important to allow post blocks\n * (post content, post title) to be used within them without issues.\n */\nconst NON_CONTEXTUAL_POST_TYPES = [\n\t'wp_block',\n\t'wp_navigation',\n\t'wp_template_part',\n];\n\n/**\n * Depending on the post, template and template mode,\n * returns the appropriate blocks and change handlers for the block editor provider.\n *\n * @param {Array} post Block list.\n * @param {boolean} template Whether the page content has focus (and the surrounding template is inert). If `true` return page content blocks. Default `false`.\n * @param {string} mode Rendering mode.\n *\n * @example\n * ```jsx\n * const [ blocks, onInput, onChange ] = useBlockEditorProps( post, template, mode );\n * ```\n *\n * @return {Array} Block editor props.\n */\nfunction useBlockEditorProps( post, template, mode ) {\n\tconst rootLevelPost = mode === 'template-locked' ? 'template' : 'post';\n\tconst [ postBlocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpost.type,\n\t\t{ id: post.id }\n\t);\n\tconst [ templateBlocks, onInputTemplate, onChangeTemplate ] =\n\t\tuseEntityBlockEditor( 'postType', template?.type, {\n\t\t\tid: template?.id,\n\t\t} );\n\tconst maybeNavigationBlocks = useMemo( () => {\n\t\tif ( post.type === 'wp_navigation' ) {\n\t\t\treturn [\n\t\t\t\tcreateBlock( 'core/navigation', {\n\t\t\t\t\tref: post.id,\n\t\t\t\t\t// As the parent editor is locked with `templateLock`, the template locking\n\t\t\t\t\t// must be explicitly \"unset\" on the block itself to allow the user to modify\n\t\t\t\t\t// the block's content.\n\t\t\t\t\ttemplateLock: false,\n\t\t\t\t} ),\n\t\t\t];\n\t\t}\n\t}, [ post.type, post.id ] );\n\n\t// It is important that we don't create a new instance of blocks on every change\n\t// We should only create a new instance if the blocks them selves change, not a dependency of them.\n\tconst blocks = useMemo( () => {\n\t\tif ( maybeNavigationBlocks ) {\n\t\t\treturn maybeNavigationBlocks;\n\t\t}\n\n\t\tif ( rootLevelPost === 'template' ) {\n\t\t\treturn templateBlocks;\n\t\t}\n\n\t\treturn postBlocks;\n\t}, [ maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks ] );\n\n\t// Handle fallback to postBlocks outside of the above useMemo, to ensure\n\t// that constructed block templates that call `createBlock` are not generated\n\t// too frequently. This ensures that clientIds are stable.\n\tconst disableRootLevelChanges =\n\t\t( !! template && mode === 'template-locked' ) ||\n\t\tpost.type === 'wp_navigation';\n\tif ( disableRootLevelChanges ) {\n\t\treturn [ blocks, noop, noop ];\n\t}\n\n\treturn [\n\t\tblocks,\n\t\trootLevelPost === 'post' ? onInput : onInputTemplate,\n\t\trootLevelPost === 'post' ? onChange : onChangeTemplate,\n\t];\n}\n\n/**\n * This component provides the editor context and manages the state of the block editor.\n *\n * @param {Object} props The component props.\n * @param {Object} props.post The post object.\n * @param {Object} props.settings The editor settings.\n * @param {boolean} props.recovery Indicates if the editor is in recovery mode.\n * @param {Array} props.initialEdits The initial edits for the editor.\n * @param {Object} props.children The child components.\n * @param {Object} [props.BlockEditorProviderComponent] The block editor provider component to use. Defaults to ExperimentalBlockEditorProvider.\n * @param {Object} [props.__unstableTemplate] The template object.\n *\n * @example\n * ```jsx\n * <ExperimentalEditorProvider\n * post={ post }\n * settings={ settings }\n * recovery={ recovery }\n * initialEdits={ initialEdits }\n * __unstableTemplate={ template }\n * >\n * { children }\n * </ExperimentalEditorProvider>\n *\n * @return {Object} The rendered ExperimentalEditorProvider component.\n */\nexport const ExperimentalEditorProvider = withRegistryProvider(\n\t( {\n\t\tpost,\n\t\tsettings,\n\t\trecovery,\n\t\tinitialEdits,\n\t\tchildren,\n\t\tBlockEditorProviderComponent = ExperimentalBlockEditorProvider,\n\t\t__unstableTemplate: template,\n\t} ) => {\n\t\tconst hasTemplate = !! template;\n\t\tconst {\n\t\t\teditorSettings,\n\t\t\tselection,\n\t\t\tisReady,\n\t\t\tmode,\n\t\t\tdefaultMode,\n\t\t\tpostTypeEntities,\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEditorSettings,\n\t\t\t\t\tgetEditorSelection,\n\t\t\t\t\tgetRenderingMode,\n\t\t\t\t\t__unstableIsEditorReady,\n\t\t\t\t\tgetDefaultRenderingMode,\n\t\t\t\t} = unlock( select( editorStore ) );\n\t\t\t\tconst { getEntitiesConfig } = select( coreStore );\n\n\t\t\t\tconst _mode = getRenderingMode();\n\t\t\t\tconst _defaultMode = getDefaultRenderingMode( post.type );\n\t\t\t\t/**\n\t\t\t\t * To avoid content \"flash\", wait until rendering mode has been resolved.\n\t\t\t\t * This is important for the initial render of the editor.\n\t\t\t\t *\n\t\t\t\t * - Wait for template to be resolved if the default mode is 'template-locked'.\n\t\t\t\t * - Wait for default mode to be resolved otherwise.\n\t\t\t\t */\n\t\t\t\tconst hasResolvedDefaultMode =\n\t\t\t\t\t_defaultMode === 'template-locked'\n\t\t\t\t\t\t? hasTemplate\n\t\t\t\t\t\t: _defaultMode !== undefined;\n\t\t\t\t// Wait until the default mode is retrieved and start rendering canvas.\n\t\t\t\tconst isRenderingModeReady = _defaultMode !== undefined;\n\n\t\t\t\treturn {\n\t\t\t\t\teditorSettings: getEditorSettings(),\n\t\t\t\t\tisReady: __unstableIsEditorReady(),\n\t\t\t\t\tmode: isRenderingModeReady ? _mode : undefined,\n\t\t\t\t\tdefaultMode: hasResolvedDefaultMode\n\t\t\t\t\t\t? _defaultMode\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tselection: getEditorSelection(),\n\t\t\t\t\tpostTypeEntities:\n\t\t\t\t\t\tpost.type === 'wp_template'\n\t\t\t\t\t\t\t? getEntitiesConfig( 'postType' )\n\t\t\t\t\t\t\t: null,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ post.type, hasTemplate ]\n\t\t);\n\n\t\tconst shouldRenderTemplate = hasTemplate && mode !== 'post-only';\n\t\tconst rootLevelPost = shouldRenderTemplate ? template : post;\n\t\tconst defaultBlockContext = useMemo( () => {\n\t\t\tconst postContext = {};\n\t\t\t// If it is a template, try to inherit the post type from the name.\n\t\t\tif (\n\t\t\t\tpost.type === 'wp_template' ||\n\t\t\t\tpost.type === 'wp_registered_template'\n\t\t\t) {\n\t\t\t\tif ( post.slug === 'page' ) {\n\t\t\t\t\tpostContext.postType = 'page';\n\t\t\t\t} else if ( post.slug === 'single' ) {\n\t\t\t\t\tpostContext.postType = 'post';\n\t\t\t\t} else if ( post.slug.split( '-' )[ 0 ] === 'single' ) {\n\t\t\t\t\t// If the slug is single-{postType}, infer the post type from the name.\n\t\t\t\t\tconst postTypeNames =\n\t\t\t\t\t\tpostTypeEntities?.map( ( entity ) => entity.name ) ||\n\t\t\t\t\t\t[];\n\t\t\t\t\tconst match = post.slug.match(\n\t\t\t\t\t\t`^single-(${ postTypeNames.join( '|' ) })(?:-.+)?$`\n\t\t\t\t\t);\n\t\t\t\t\tif ( match ) {\n\t\t\t\t\t\tpostContext.postType = match[ 1 ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\t! NON_CONTEXTUAL_POST_TYPES.includes( rootLevelPost.type ) ||\n\t\t\t\tshouldRenderTemplate\n\t\t\t) {\n\t\t\t\tpostContext.postId = post.id;\n\t\t\t\tpostContext.postType = post.type;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...postContext,\n\t\t\t\ttemplateSlug:\n\t\t\t\t\trootLevelPost.type === 'wp_template'\n\t\t\t\t\t\t? rootLevelPost.slug\n\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t}, [\n\t\t\tshouldRenderTemplate,\n\t\t\tpost.id,\n\t\t\tpost.type,\n\t\t\tpost.slug,\n\t\t\trootLevelPost.type,\n\t\t\trootLevelPost.slug,\n\t\t\tpostTypeEntities,\n\t\t] );\n\t\tconst { id, type } = rootLevelPost;\n\t\tconst blockEditorSettings = useBlockEditorSettings(\n\t\t\teditorSettings,\n\t\t\ttype,\n\t\t\tid,\n\t\t\tmode\n\t\t);\n\t\tconst [ blocks, onInput, onChange ] = useBlockEditorProps(\n\t\t\tpost,\n\t\t\ttemplate,\n\t\t\tmode\n\t\t);\n\n\t\tconst {\n\t\t\tupdatePostLock,\n\t\t\tsetupEditor,\n\t\t\tupdateEditorSettings,\n\t\t\tsetCurrentTemplateId,\n\t\t\tsetEditedPost,\n\t\t\tsetRenderingMode,\n\t\t} = unlock( useDispatch( editorStore ) );\n\t\tconst { createWarningNotice } = useDispatch( noticesStore );\n\n\t\t// Ideally this should be synced on each change and not just something you do once.\n\t\tuseLayoutEffect( () => {\n\t\t\t// Assume that we don't need to initialize in the case of an error recovery.\n\t\t\tif ( recovery ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdatePostLock( settings.postLock );\n\t\t\tsetupEditor( post, initialEdits, settings.template );\n\t\t\tif ( settings.autosave ) {\n\t\t\t\tcreateWarningNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'There is an autosave of this post that is more recent than the version below.'\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'autosave-exists',\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View the autosave' ),\n\t\t\t\t\t\t\t\turl: settings.autosave.editLink,\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);\n\t\t\t}\n\n\t\t\t// The dependencies of the hook are omitted deliberately\n\t\t\t// We only want to run setupEditor (with initialEdits) only once per post.\n\t\t\t// A better solution in the future would be to split this effect into multiple ones.\n\t\t}, [] );\n\n\t\t// Synchronizes the active post with the state\n\t\tuseEffect( () => {\n\t\t\tsetEditedPost( post.type, post.id );\n\t\t}, [ post.type, post.id, setEditedPost ] );\n\n\t\t// Synchronize the editor settings as they change.\n\t\tuseEffect( () => {\n\t\t\tupdateEditorSettings( settings );\n\t\t}, [ settings, updateEditorSettings ] );\n\n\t\t// Synchronizes the active template with the state.\n\t\tuseEffect( () => {\n\t\t\tsetCurrentTemplateId( template?.id );\n\t\t}, [ template?.id, setCurrentTemplateId ] );\n\n\t\t// Sets the right rendering mode when loading the editor.\n\t\tuseEffect( () => {\n\t\t\tif ( defaultMode ) {\n\t\t\t\tsetRenderingMode( defaultMode );\n\t\t\t}\n\t\t}, [ defaultMode, setRenderingMode ] );\n\n\t\tuseHideBlocksFromInserter( post.type, mode );\n\n\t\t// Register the editor commands.\n\t\tuseCommands();\n\n\t\tif ( ! isReady || ! mode ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t<EntityProvider\n\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\ttype={ post.type }\n\t\t\t\t\tid={ post.id }\n\t\t\t\t>\n\t\t\t\t\t<BlockContextProvider value={ defaultBlockContext }>\n\t\t\t\t\t\t<BlockEditorProviderComponent\n\t\t\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tsettings={ blockEditorSettings }\n\t\t\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t{ ! settings.isPreviewMode && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<PatternsMenuItems />\n\t\t\t\t\t\t\t\t\t<TemplatePartMenuItems />\n\t\t\t\t\t\t\t\t\t<ContentOnlySettingsMenu />\n\t\t\t\t\t\t\t\t\t{ mode === 'template-locked' && (\n\t\t\t\t\t\t\t\t\t\t<DisableNonPageContentBlocks />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ type === 'wp_navigation' && (\n\t\t\t\t\t\t\t\t\t\t<NavigationBlockEditingMode />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<EditorKeyboardShortcuts />\n\t\t\t\t\t\t\t\t\t<KeyboardShortcutHelpModal />\n\t\t\t\t\t\t\t\t\t<BlockRemovalWarnings />\n\t\t\t\t\t\t\t\t\t<StartPageOptions />\n\t\t\t\t\t\t\t\t\t<StartTemplateOptions />\n\t\t\t\t\t\t\t\t\t<PatternRenameModal />\n\t\t\t\t\t\t\t\t\t<PatternDuplicateModal />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockEditorProviderComponent>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</EntityProvider>\n\t\t);\n\t}\n);\n\n/**\n * This component establishes a new post editing context, and serves as the entry point for a new post editor (or post with template editor).\n *\n * It supports a large number of post types, including post, page, templates,\n * custom post types, patterns, template parts.\n *\n * All modification and changes are performed to the `@wordpress/core-data` store.\n *\n * @param {Object} props The component props.\n * @param {Object} [props.post] The post object to edit. This is required.\n * @param {Object} [props.__unstableTemplate] The template object wrapper the edited post.\n * This is optional and can only be used when the post type supports templates (like posts and pages).\n * @param {Object} [props.settings] The settings object to use for the editor.\n * This is optional and can be used to override the default settings.\n * @param {React.ReactNode} [props.children] Children elements for which the BlockEditorProvider context should apply.\n * This is optional.\n *\n * @example\n * ```jsx\n * <EditorProvider\n * post={ post }\n * settings={ settings }\n * __unstableTemplate={ template }\n * >\n * { children }\n * </EditorProvider>\n * ```\n *\n * @return {React.ReactNode} The rendered EditorProvider component.\n */\nexport function EditorProvider( props ) {\n\treturn (\n\t\t<ExperimentalEditorProvider\n\t\t\t{ ...props }\n\t\t\tBlockEditorProviderComponent={ BlockEditorProvider }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalEditorProvider>\n\t);\n}\n\nexport default EditorProvider;\n"],"mappings":"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","ignoreList":[]}
@@ -79,7 +79,7 @@ const registerPostTypeSchema = postType => async ({
79
79
  const currentTheme = await registry.resolveSelect(_coreData.store).getCurrentTheme();
80
80
  const actions = [postTypeConfig.viewable ? _fields.viewPost : undefined, !!postTypeConfig.supports?.revisions ? _fields.viewPostRevisions : undefined,
81
81
  // @ts-ignore
82
- globalThis.IS_GUTENBERG_PLUGIN ? !['wp_template', 'wp_block', 'wp_template_part'].includes(postTypeConfig.slug) && canCreate && _fields.duplicatePost : undefined, postTypeConfig.slug === 'wp_template_part' && canCreate && currentTheme?.is_block_theme ? _fields.duplicateTemplatePart : undefined, canCreate && postTypeConfig.slug === 'wp_block' ? _fields.duplicatePattern : undefined, postTypeConfig.supports?.title ? _fields.renamePost : undefined, postTypeConfig.supports?.['page-attributes'] ? _fields.reorderPage : undefined, postTypeConfig.slug === 'wp_block' ? _fields.exportPattern : undefined, _fields.restorePost, _fields.resetPost, _fields.deletePost, _fields.trashPost, _fields.permanentlyDeletePost].filter(Boolean);
82
+ globalThis.IS_GUTENBERG_PLUGIN ? !['wp_block', 'wp_template_part'].includes(postTypeConfig.slug) && canCreate && _fields.duplicatePost : undefined, postTypeConfig.slug === 'wp_template_part' && canCreate && currentTheme?.is_block_theme ? _fields.duplicateTemplatePart : undefined, canCreate && postTypeConfig.slug === 'wp_block' ? _fields.duplicatePattern : undefined, postTypeConfig.supports?.title ? _fields.renamePost : undefined, postTypeConfig.supports?.['page-attributes'] ? _fields.reorderPage : undefined, postTypeConfig.slug === 'wp_block' ? _fields.exportPattern : undefined, _fields.restorePost, _fields.resetPost, _fields.deletePost, _fields.trashPost, _fields.permanentlyDeletePost].filter(Boolean);
83
83
  const fields = [postTypeConfig.supports?.thumbnail && currentTheme?.theme_supports?.['post-thumbnails'] && _fields.featuredImageField, postTypeConfig.supports?.author && _fields.authorField, _fields.statusField, _fields.dateField, _fields.slugField, postTypeConfig.supports?.['page-attributes'] && _fields.parentField, postTypeConfig.supports?.comments && _fields.commentStatusField, _fields.templateField, _fields.passwordField, postTypeConfig.supports?.editor && postTypeConfig.viewable && _contentPreview.default].filter(Boolean);
84
84
  if (postTypeConfig.supports?.title) {
85
85
  let _titleField;
@@ -1 +1 @@
1
- {"version":3,"names":["_coreData","require","_hooks","_fields","_store","_contentPreview","_interopRequireDefault","_lockUnlock","registerEntityAction","kind","name","config","type","unregisterEntityAction","actionId","registerEntityField","unregisterEntityField","fieldId","setIsReady","registerPostTypeSchema","postType","registry","isReady","unlock","select","editorStore","isEntityReady","dispatch","postTypeConfig","resolveSelect","coreStore","getPostType","canCreate","canUser","currentTheme","getCurrentTheme","actions","viewable","viewPost","undefined","supports","revisions","viewPostRevisions","globalThis","IS_GUTENBERG_PLUGIN","includes","slug","duplicatePost","is_block_theme","duplicateTemplatePart","duplicatePattern","title","renamePost","reorderPage","exportPattern","restorePost","resetPost","deletePost","trashPost","permanentlyDeletePost","filter","Boolean","fields","thumbnail","theme_supports","featuredImageField","author","authorField","statusField","dateField","slugField","parentField","comments","commentStatusField","templateField","passwordField","editor","postPreviewField","_titleField","pageTitleField","templateTitleField","patternTitleField","titleField","push","batch","forEach","action","field","doAction","exports"],"sources":["@wordpress/editor/src/dataviews/store/private-actions.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport type { Action, Field } from '@wordpress/dataviews';\nimport { doAction } from '@wordpress/hooks';\nimport type { PostType } from '@wordpress/fields';\nimport {\n\tviewPost,\n\tviewPostRevisions,\n\tduplicatePost,\n\tduplicatePattern,\n\treorderPage,\n\texportPattern,\n\tpermanentlyDeletePost,\n\trestorePost,\n\ttrashPost,\n\trenamePost,\n\tresetPost,\n\tdeletePost,\n\tduplicateTemplatePart,\n\tfeaturedImageField,\n\tdateField,\n\tparentField,\n\tpasswordField,\n\tcommentStatusField,\n\tslugField,\n\tstatusField,\n\tauthorField,\n\ttitleField,\n\ttemplateField,\n\ttemplateTitleField,\n\tpageTitleField,\n\tpatternTitleField,\n} from '@wordpress/fields';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport postPreviewField from '../fields/content-preview';\nimport { unlock } from '../../lock-unlock';\n\nexport function registerEntityAction< Item >(\n\tkind: string,\n\tname: string,\n\tconfig: Action< Item >\n) {\n\treturn {\n\t\ttype: 'REGISTER_ENTITY_ACTION' as const,\n\t\tkind,\n\t\tname,\n\t\tconfig,\n\t};\n}\n\nexport function unregisterEntityAction(\n\tkind: string,\n\tname: string,\n\tactionId: string\n) {\n\treturn {\n\t\ttype: 'UNREGISTER_ENTITY_ACTION' as const,\n\t\tkind,\n\t\tname,\n\t\tactionId,\n\t};\n}\n\nexport function registerEntityField< Item >(\n\tkind: string,\n\tname: string,\n\tconfig: Field< Item >\n) {\n\treturn {\n\t\ttype: 'REGISTER_ENTITY_FIELD' as const,\n\t\tkind,\n\t\tname,\n\t\tconfig,\n\t};\n}\n\nexport function unregisterEntityField(\n\tkind: string,\n\tname: string,\n\tfieldId: string\n) {\n\treturn {\n\t\ttype: 'UNREGISTER_ENTITY_FIELD' as const,\n\t\tkind,\n\t\tname,\n\t\tfieldId,\n\t};\n}\n\nexport function setIsReady( kind: string, name: string ) {\n\treturn {\n\t\ttype: 'SET_IS_READY' as const,\n\t\tkind,\n\t\tname,\n\t};\n}\n\nexport const registerPostTypeSchema =\n\t( postType: string ) =>\n\tasync ( { registry }: { registry: any } ) => {\n\t\tconst isReady = unlock( registry.select( editorStore ) ).isEntityReady(\n\t\t\t'postType',\n\t\t\tpostType\n\t\t);\n\t\tif ( isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\tunlock( registry.dispatch( editorStore ) ).setIsReady(\n\t\t\t'postType',\n\t\t\tpostType\n\t\t);\n\n\t\tconst postTypeConfig = ( await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.getPostType( postType ) ) as PostType;\n\n\t\tconst canCreate = await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: postType,\n\t\t\t} );\n\t\tconst currentTheme = await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.getCurrentTheme();\n\n\t\tconst actions = [\n\t\t\tpostTypeConfig.viewable ? viewPost : undefined,\n\t\t\t!! postTypeConfig.supports?.revisions\n\t\t\t\t? viewPostRevisions\n\t\t\t\t: undefined,\n\t\t\t// @ts-ignore\n\t\t\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t\t\t? ! [ 'wp_template', 'wp_block', 'wp_template_part' ].includes(\n\t\t\t\t\t\tpostTypeConfig.slug\n\t\t\t\t ) &&\n\t\t\t\t canCreate &&\n\t\t\t\t duplicatePost\n\t\t\t\t: undefined,\n\t\t\tpostTypeConfig.slug === 'wp_template_part' &&\n\t\t\tcanCreate &&\n\t\t\tcurrentTheme?.is_block_theme\n\t\t\t\t? duplicateTemplatePart\n\t\t\t\t: undefined,\n\t\t\tcanCreate && postTypeConfig.slug === 'wp_block'\n\t\t\t\t? duplicatePattern\n\t\t\t\t: undefined,\n\t\t\tpostTypeConfig.supports?.title ? renamePost : undefined,\n\t\t\tpostTypeConfig.supports?.[ 'page-attributes' ]\n\t\t\t\t? reorderPage\n\t\t\t\t: undefined,\n\t\t\tpostTypeConfig.slug === 'wp_block' ? exportPattern : undefined,\n\t\t\trestorePost,\n\t\t\tresetPost,\n\t\t\tdeletePost,\n\t\t\ttrashPost,\n\t\t\tpermanentlyDeletePost,\n\t\t].filter( Boolean );\n\n\t\tconst fields = [\n\t\t\tpostTypeConfig.supports?.thumbnail &&\n\t\t\t\tcurrentTheme?.theme_supports?.[ 'post-thumbnails' ] &&\n\t\t\t\tfeaturedImageField,\n\t\t\tpostTypeConfig.supports?.author && authorField,\n\t\t\tstatusField,\n\t\t\tdateField,\n\t\t\tslugField,\n\t\t\tpostTypeConfig.supports?.[ 'page-attributes' ] && parentField,\n\t\t\tpostTypeConfig.supports?.comments && commentStatusField,\n\t\t\ttemplateField,\n\t\t\tpasswordField,\n\t\t\tpostTypeConfig.supports?.editor &&\n\t\t\t\tpostTypeConfig.viewable &&\n\t\t\t\tpostPreviewField,\n\t\t].filter( Boolean );\n\t\tif ( postTypeConfig.supports?.title ) {\n\t\t\tlet _titleField;\n\t\t\tif ( postType === 'page' ) {\n\t\t\t\t_titleField = pageTitleField;\n\t\t\t} else if ( postType === 'wp_template' ) {\n\t\t\t\t_titleField = templateTitleField;\n\t\t\t} else if ( postType === 'wp_block' ) {\n\t\t\t\t_titleField = patternTitleField;\n\t\t\t} else {\n\t\t\t\t_titleField = titleField;\n\t\t\t}\n\t\t\tfields.push( _titleField );\n\t\t}\n\n\t\tregistry.batch( () => {\n\t\t\tactions.forEach( ( action ) => {\n\t\t\t\tunlock( registry.dispatch( editorStore ) ).registerEntityAction(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\taction\n\t\t\t\t);\n\t\t\t} );\n\t\t\tfields.forEach( ( field ) => {\n\t\t\t\tunlock( registry.dispatch( editorStore ) ).registerEntityField(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tfield\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\n\t\tdoAction( 'core.registerPostTypeSchema', postType );\n\t};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_coreData","require","_hooks","_fields","_store","_contentPreview","_interopRequireDefault","_lockUnlock","registerEntityAction","kind","name","config","type","unregisterEntityAction","actionId","registerEntityField","unregisterEntityField","fieldId","setIsReady","registerPostTypeSchema","postType","registry","isReady","unlock","select","editorStore","isEntityReady","dispatch","postTypeConfig","resolveSelect","coreStore","getPostType","canCreate","canUser","currentTheme","getCurrentTheme","actions","viewable","viewPost","undefined","supports","revisions","viewPostRevisions","globalThis","IS_GUTENBERG_PLUGIN","includes","slug","duplicatePost","is_block_theme","duplicateTemplatePart","duplicatePattern","title","renamePost","reorderPage","exportPattern","restorePost","resetPost","deletePost","trashPost","permanentlyDeletePost","filter","Boolean","fields","thumbnail","theme_supports","featuredImageField","author","authorField","statusField","dateField","slugField","parentField","comments","commentStatusField","templateField","passwordField","editor","postPreviewField","_titleField","pageTitleField","templateTitleField","patternTitleField","titleField","push","batch","forEach","action","field","doAction","exports"],"sources":["@wordpress/editor/src/dataviews/store/private-actions.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport type { Action, Field } from '@wordpress/dataviews';\nimport { doAction } from '@wordpress/hooks';\nimport type { PostType } from '@wordpress/fields';\nimport {\n\tviewPost,\n\tviewPostRevisions,\n\tduplicatePost,\n\tduplicatePattern,\n\treorderPage,\n\texportPattern,\n\tpermanentlyDeletePost,\n\trestorePost,\n\ttrashPost,\n\trenamePost,\n\tresetPost,\n\tdeletePost,\n\tduplicateTemplatePart,\n\tfeaturedImageField,\n\tdateField,\n\tparentField,\n\tpasswordField,\n\tcommentStatusField,\n\tslugField,\n\tstatusField,\n\tauthorField,\n\ttitleField,\n\ttemplateField,\n\ttemplateTitleField,\n\tpageTitleField,\n\tpatternTitleField,\n} from '@wordpress/fields';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport postPreviewField from '../fields/content-preview';\nimport { unlock } from '../../lock-unlock';\n\nexport function registerEntityAction< Item >(\n\tkind: string,\n\tname: string,\n\tconfig: Action< Item >\n) {\n\treturn {\n\t\ttype: 'REGISTER_ENTITY_ACTION' as const,\n\t\tkind,\n\t\tname,\n\t\tconfig,\n\t};\n}\n\nexport function unregisterEntityAction(\n\tkind: string,\n\tname: string,\n\tactionId: string\n) {\n\treturn {\n\t\ttype: 'UNREGISTER_ENTITY_ACTION' as const,\n\t\tkind,\n\t\tname,\n\t\tactionId,\n\t};\n}\n\nexport function registerEntityField< Item >(\n\tkind: string,\n\tname: string,\n\tconfig: Field< Item >\n) {\n\treturn {\n\t\ttype: 'REGISTER_ENTITY_FIELD' as const,\n\t\tkind,\n\t\tname,\n\t\tconfig,\n\t};\n}\n\nexport function unregisterEntityField(\n\tkind: string,\n\tname: string,\n\tfieldId: string\n) {\n\treturn {\n\t\ttype: 'UNREGISTER_ENTITY_FIELD' as const,\n\t\tkind,\n\t\tname,\n\t\tfieldId,\n\t};\n}\n\nexport function setIsReady( kind: string, name: string ) {\n\treturn {\n\t\ttype: 'SET_IS_READY' as const,\n\t\tkind,\n\t\tname,\n\t};\n}\n\nexport const registerPostTypeSchema =\n\t( postType: string ) =>\n\tasync ( { registry }: { registry: any } ) => {\n\t\tconst isReady = unlock( registry.select( editorStore ) ).isEntityReady(\n\t\t\t'postType',\n\t\t\tpostType\n\t\t);\n\t\tif ( isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\tunlock( registry.dispatch( editorStore ) ).setIsReady(\n\t\t\t'postType',\n\t\t\tpostType\n\t\t);\n\n\t\tconst postTypeConfig = ( await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.getPostType( postType ) ) as PostType;\n\n\t\tconst canCreate = await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: postType,\n\t\t\t} );\n\t\tconst currentTheme = await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.getCurrentTheme();\n\n\t\tconst actions = [\n\t\t\tpostTypeConfig.viewable ? viewPost : undefined,\n\t\t\t!! postTypeConfig.supports?.revisions\n\t\t\t\t? viewPostRevisions\n\t\t\t\t: undefined,\n\t\t\t// @ts-ignore\n\t\t\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t\t\t? ! [ 'wp_block', 'wp_template_part' ].includes(\n\t\t\t\t\t\tpostTypeConfig.slug\n\t\t\t\t ) &&\n\t\t\t\t canCreate &&\n\t\t\t\t duplicatePost\n\t\t\t\t: undefined,\n\t\t\tpostTypeConfig.slug === 'wp_template_part' &&\n\t\t\tcanCreate &&\n\t\t\tcurrentTheme?.is_block_theme\n\t\t\t\t? duplicateTemplatePart\n\t\t\t\t: undefined,\n\t\t\tcanCreate && postTypeConfig.slug === 'wp_block'\n\t\t\t\t? duplicatePattern\n\t\t\t\t: undefined,\n\t\t\tpostTypeConfig.supports?.title ? renamePost : undefined,\n\t\t\tpostTypeConfig.supports?.[ 'page-attributes' ]\n\t\t\t\t? reorderPage\n\t\t\t\t: undefined,\n\t\t\tpostTypeConfig.slug === 'wp_block' ? exportPattern : undefined,\n\t\t\trestorePost,\n\t\t\tresetPost,\n\t\t\tdeletePost,\n\t\t\ttrashPost,\n\t\t\tpermanentlyDeletePost,\n\t\t].filter( Boolean );\n\n\t\tconst fields = [\n\t\t\tpostTypeConfig.supports?.thumbnail &&\n\t\t\t\tcurrentTheme?.theme_supports?.[ 'post-thumbnails' ] &&\n\t\t\t\tfeaturedImageField,\n\t\t\tpostTypeConfig.supports?.author && authorField,\n\t\t\tstatusField,\n\t\t\tdateField,\n\t\t\tslugField,\n\t\t\tpostTypeConfig.supports?.[ 'page-attributes' ] && parentField,\n\t\t\tpostTypeConfig.supports?.comments && commentStatusField,\n\t\t\ttemplateField,\n\t\t\tpasswordField,\n\t\t\tpostTypeConfig.supports?.editor &&\n\t\t\t\tpostTypeConfig.viewable &&\n\t\t\t\tpostPreviewField,\n\t\t].filter( Boolean );\n\t\tif ( postTypeConfig.supports?.title ) {\n\t\t\tlet _titleField;\n\t\t\tif ( postType === 'page' ) {\n\t\t\t\t_titleField = pageTitleField;\n\t\t\t} else if ( postType === 'wp_template' ) {\n\t\t\t\t_titleField = templateTitleField;\n\t\t\t} else if ( postType === 'wp_block' ) {\n\t\t\t\t_titleField = patternTitleField;\n\t\t\t} else {\n\t\t\t\t_titleField = titleField;\n\t\t\t}\n\t\t\tfields.push( _titleField );\n\t\t}\n\n\t\tregistry.batch( () => {\n\t\t\tactions.forEach( ( action ) => {\n\t\t\t\tunlock( registry.dispatch( editorStore ) ).registerEntityAction(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\taction\n\t\t\t\t);\n\t\t\t} );\n\t\t\tfields.forEach( ( field ) => {\n\t\t\t\tunlock( registry.dispatch( editorStore ) ).registerEntityField(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tfield\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\n\t\tdoAction( 'core.registerPostTypeSchema', postType );\n\t};\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { __experimentalVStack as VStack } from '@wordpress/components';
5
5
  import { __ } from '@wordpress/i18n';
6
- import { dateI18n, getDate, getSettings as getDateSettings } from '@wordpress/date';
6
+ import { dateI18n, getSettings as getDateSettings, humanTimeDiff, getDate } from '@wordpress/date';
7
7
  import { useEntityProp, store as coreStore } from '@wordpress/core-data';
8
8
  import { useSelect } from '@wordpress/data';
9
9
  import { store as blockEditorStore } from '@wordpress/block-editor';
@@ -59,10 +59,10 @@ function CommentAuthorInfo({
59
59
  children: [/*#__PURE__*/_jsx("span", {
60
60
  className: "editor-collab-sidebar-panel__user-name",
61
61
  children: name !== null && name !== void 0 ? name : currentUserName
62
- }), /*#__PURE__*/_jsx("time", {
62
+ }), /*#__PURE__*/_jsxs("time", {
63
63
  dateTime: dateI18n('c', date ? getDate(date) : currentDate),
64
64
  className: "editor-collab-sidebar-panel__user-time",
65
- children: dateI18n(dateTimeFormat, date ? getDate(date) : currentDate)
65
+ children: [dateI18n(dateTimeFormat, date ? getDate(date) : currentDate), /*#__PURE__*/_jsx("br", {}), humanTimeDiff(date ? getDate(date) : currentDate)]
66
66
  })]
67
67
  })]
68
68
  });
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalVStack","VStack","__","dateI18n","getDate","getSettings","getDateSettings","useEntityProp","store","coreStore","useSelect","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","CommentAuthorInfo","avatar","name","date","dateSettings","dateTimeFormat","formats","time","currentUserAvatar","currentUserName","select","_userData$avatar_urls","userData","getCurrentUser","__experimentalDiscussionSettings","defaultAvatar","avatarURL","avatar_urls","currentDate","Date","children","src","className","alt","width","height","spacing","dateTime"],"sources":["@wordpress/editor/src/components/collab-sidebar/comment-author-info.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tdateI18n,\n\tgetDate,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Render author information for a comment.\n *\n * @param {Object} props - Component properties.\n * @param {string} props.avatar - URL of the author's avatar.\n * @param {string} props.name - Name of the author.\n * @param {string} props.date - Date of the comment.\n *\n * @return {React.ReactNode} The JSX element representing the author's information.\n */\nfunction CommentAuthorInfo( { avatar, name, date } ) {\n\tconst dateSettings = getDateSettings();\n\tconst [ dateTimeFormat = dateSettings.formats.time ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'time_format'\n\t);\n\n\tconst { currentUserAvatar, currentUserName } = useSelect( ( select ) => {\n\t\tconst userData = select( coreStore ).getCurrentUser();\n\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\tconst defaultAvatar = __experimentalDiscussionSettings?.avatarURL;\n\t\treturn {\n\t\t\tcurrentUserAvatar: userData?.avatar_urls?.[ 48 ] ?? defaultAvatar,\n\t\t\tcurrentUserName: userData?.name,\n\t\t};\n\t}, [] );\n\n\tconst currentDate = new Date();\n\n\treturn (\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ avatar ?? currentUserAvatar }\n\t\t\t\tclassName=\"editor-collab-sidebar-panel__user-avatar\"\n\t\t\t\t// translators: alt text for user avatar image\n\t\t\t\talt={ __( 'User avatar' ) }\n\t\t\t\twidth={ 32 }\n\t\t\t\theight={ 32 }\n\t\t\t/>\n\t\t\t<VStack spacing=\"0\">\n\t\t\t\t<span className=\"editor-collab-sidebar-panel__user-name\">\n\t\t\t\t\t{ name ?? currentUserName }\n\t\t\t\t</span>\n\t\t\t\t<time\n\t\t\t\t\tdateTime={ dateI18n(\n\t\t\t\t\t\t'c',\n\t\t\t\t\t\tdate ? getDate( date ) : currentDate\n\t\t\t\t\t) }\n\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__user-time\"\n\t\t\t\t>\n\t\t\t\t\t{ dateI18n(\n\t\t\t\t\t\tdateTimeFormat,\n\t\t\t\t\t\tdate ? getDate( date ) : currentDate\n\t\t\t\t\t) }\n\t\t\t\t</time>\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default CommentAuthorInfo;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AACtE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,QAAQ,EACRC,OAAO,EACPC,WAAW,IAAIC,eAAe,QACxB,iBAAiB;AACxB,SAASC,aAAa,EAAEC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACxE,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASF,KAAK,IAAIG,gBAAgB,QAAQ,yBAAyB;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAUA,SAASC,iBAAiBA,CAAE;EAAEC,MAAM;EAAEC,IAAI;EAAEC;AAAK,CAAC,EAAG;EACpD,MAAMC,YAAY,GAAGhB,eAAe,CAAC,CAAC;EACtC,MAAM,CAAEiB,cAAc,GAAGD,YAAY,CAACE,OAAO,CAACC,IAAI,CAAE,GAAGlB,aAAa,CACnE,MAAM,EACN,MAAM,EACN,aACD,CAAC;EAED,MAAM;IAAEmB,iBAAiB;IAAEC;EAAgB,CAAC,GAAGjB,SAAS,CAAIkB,MAAM,IAAM;IAAA,IAAAC,qBAAA;IACvE,MAAMC,QAAQ,GAAGF,MAAM,CAAEnB,SAAU,CAAC,CAACsB,cAAc,CAAC,CAAC;IAErD,MAAM;MAAE1B;IAAY,CAAC,GAAGuB,MAAM,CAAEjB,gBAAiB,CAAC;IAClD,MAAM;MAAEqB;IAAiC,CAAC,GAAG3B,WAAW,CAAC,CAAC;IAC1D,MAAM4B,aAAa,GAAGD,gCAAgC,EAAEE,SAAS;IACjE,OAAO;MACNR,iBAAiB,GAAAG,qBAAA,GAAEC,QAAQ,EAAEK,WAAW,GAAI,EAAE,CAAE,cAAAN,qBAAA,cAAAA,qBAAA,GAAII,aAAa;MACjEN,eAAe,EAAEG,QAAQ,EAAEV;IAC5B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMgB,WAAW,GAAG,IAAIC,IAAI,CAAC,CAAC;EAE9B,oBACCtB,KAAA,CAAAE,SAAA;IAAAqB,QAAA,gBACCzB,IAAA;MACC0B,GAAG,EAAGpB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIO,iBAAmB;MACnCc,SAAS,EAAC;MACV;MAAA;MACAC,GAAG,EAAGvC,EAAE,CAAE,aAAc,CAAG;MAC3BwC,KAAK,EAAG,EAAI;MACZC,MAAM,EAAG;IAAI,CACb,CAAC,eACF5B,KAAA,CAACd,MAAM;MAAC2C,OAAO,EAAC,GAAG;MAAAN,QAAA,gBAClBzB,IAAA;QAAM2B,SAAS,EAAC,wCAAwC;QAAAF,QAAA,EACrDlB,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAIO;MAAe,CACpB,CAAC,eACPd,IAAA;QACCgC,QAAQ,EAAG1C,QAAQ,CAClB,GAAG,EACHkB,IAAI,GAAGjB,OAAO,CAAEiB,IAAK,CAAC,GAAGe,WAC1B,CAAG;QACHI,SAAS,EAAC,wCAAwC;QAAAF,QAAA,EAEhDnC,QAAQ,CACToB,cAAc,EACdF,IAAI,GAAGjB,OAAO,CAAEiB,IAAK,CAAC,GAAGe,WAC1B;MAAC,CACI,CAAC;IAAA,CACA,CAAC;EAAA,CACR,CAAC;AAEL;AAEA,eAAelB,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["__experimentalVStack","VStack","__","dateI18n","getSettings","getDateSettings","humanTimeDiff","getDate","useEntityProp","store","coreStore","useSelect","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","CommentAuthorInfo","avatar","name","date","dateSettings","dateTimeFormat","formats","time","currentUserAvatar","currentUserName","select","_userData$avatar_urls","userData","getCurrentUser","__experimentalDiscussionSettings","defaultAvatar","avatarURL","avatar_urls","currentDate","Date","children","src","className","alt","width","height","spacing","dateTime"],"sources":["@wordpress/editor/src/components/collab-sidebar/comment-author-info.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tdateI18n,\n\tgetSettings as getDateSettings,\n\thumanTimeDiff,\n\tgetDate,\n} from '@wordpress/date';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Render author information for a comment.\n *\n * @param {Object} props - Component properties.\n * @param {string} props.avatar - URL of the author's avatar.\n * @param {string} props.name - Name of the author.\n * @param {string} props.date - Date of the comment.\n *\n * @return {React.ReactNode} The JSX element representing the author's information.\n */\nfunction CommentAuthorInfo( { avatar, name, date } ) {\n\tconst dateSettings = getDateSettings();\n\tconst [ dateTimeFormat = dateSettings.formats.time ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'time_format'\n\t);\n\n\tconst { currentUserAvatar, currentUserName } = useSelect( ( select ) => {\n\t\tconst userData = select( coreStore ).getCurrentUser();\n\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\tconst defaultAvatar = __experimentalDiscussionSettings?.avatarURL;\n\t\treturn {\n\t\t\tcurrentUserAvatar: userData?.avatar_urls?.[ 48 ] ?? defaultAvatar,\n\t\t\tcurrentUserName: userData?.name,\n\t\t};\n\t}, [] );\n\n\tconst currentDate = new Date();\n\n\treturn (\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ avatar ?? currentUserAvatar }\n\t\t\t\tclassName=\"editor-collab-sidebar-panel__user-avatar\"\n\t\t\t\t// translators: alt text for user avatar image\n\t\t\t\talt={ __( 'User avatar' ) }\n\t\t\t\twidth={ 32 }\n\t\t\t\theight={ 32 }\n\t\t\t/>\n\t\t\t<VStack spacing=\"0\">\n\t\t\t\t<span className=\"editor-collab-sidebar-panel__user-name\">\n\t\t\t\t\t{ name ?? currentUserName }\n\t\t\t\t</span>\n\t\t\t\t<time\n\t\t\t\t\tdateTime={ dateI18n(\n\t\t\t\t\t\t'c',\n\t\t\t\t\t\tdate ? getDate( date ) : currentDate\n\t\t\t\t\t) }\n\t\t\t\t\tclassName=\"editor-collab-sidebar-panel__user-time\"\n\t\t\t\t>\n\t\t\t\t\t{ dateI18n(\n\t\t\t\t\t\tdateTimeFormat,\n\t\t\t\t\t\tdate ? getDate( date ) : currentDate\n\t\t\t\t\t) }\n\t\t\t\t\t<br />\n\t\t\t\t\t{ humanTimeDiff( date ? getDate( date ) : currentDate ) }\n\t\t\t\t</time>\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default CommentAuthorInfo;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AACtE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,QAAQ,EACRC,WAAW,IAAIC,eAAe,EAC9BC,aAAa,EACbC,OAAO,QACD,iBAAiB;AACxB,SAASC,aAAa,EAAEC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACxE,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASF,KAAK,IAAIG,gBAAgB,QAAQ,yBAAyB;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAUA,SAASC,iBAAiBA,CAAE;EAAEC,MAAM;EAAEC,IAAI;EAAEC;AAAK,CAAC,EAAG;EACpD,MAAMC,YAAY,GAAGlB,eAAe,CAAC,CAAC;EACtC,MAAM,CAAEmB,cAAc,GAAGD,YAAY,CAACE,OAAO,CAACC,IAAI,CAAE,GAAGlB,aAAa,CACnE,MAAM,EACN,MAAM,EACN,aACD,CAAC;EAED,MAAM;IAAEmB,iBAAiB;IAAEC;EAAgB,CAAC,GAAGjB,SAAS,CAAIkB,MAAM,IAAM;IAAA,IAAAC,qBAAA;IACvE,MAAMC,QAAQ,GAAGF,MAAM,CAAEnB,SAAU,CAAC,CAACsB,cAAc,CAAC,CAAC;IAErD,MAAM;MAAE5B;IAAY,CAAC,GAAGyB,MAAM,CAAEjB,gBAAiB,CAAC;IAClD,MAAM;MAAEqB;IAAiC,CAAC,GAAG7B,WAAW,CAAC,CAAC;IAC1D,MAAM8B,aAAa,GAAGD,gCAAgC,EAAEE,SAAS;IACjE,OAAO;MACNR,iBAAiB,GAAAG,qBAAA,GAAEC,QAAQ,EAAEK,WAAW,GAAI,EAAE,CAAE,cAAAN,qBAAA,cAAAA,qBAAA,GAAII,aAAa;MACjEN,eAAe,EAAEG,QAAQ,EAAEV;IAC5B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMgB,WAAW,GAAG,IAAIC,IAAI,CAAC,CAAC;EAE9B,oBACCtB,KAAA,CAAAE,SAAA;IAAAqB,QAAA,gBACCzB,IAAA;MACC0B,GAAG,EAAGpB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIO,iBAAmB;MACnCc,SAAS,EAAC;MACV;MAAA;MACAC,GAAG,EAAGxC,EAAE,CAAE,aAAc,CAAG;MAC3ByC,KAAK,EAAG,EAAI;MACZC,MAAM,EAAG;IAAI,CACb,CAAC,eACF5B,KAAA,CAACf,MAAM;MAAC4C,OAAO,EAAC,GAAG;MAAAN,QAAA,gBAClBzB,IAAA;QAAM2B,SAAS,EAAC,wCAAwC;QAAAF,QAAA,EACrDlB,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAIO;MAAe,CACpB,CAAC,eACPZ,KAAA;QACC8B,QAAQ,EAAG3C,QAAQ,CAClB,GAAG,EACHmB,IAAI,GAAGf,OAAO,CAAEe,IAAK,CAAC,GAAGe,WAC1B,CAAG;QACHI,SAAS,EAAC,wCAAwC;QAAAF,QAAA,GAEhDpC,QAAQ,CACTqB,cAAc,EACdF,IAAI,GAAGf,OAAO,CAAEe,IAAK,CAAC,GAAGe,WAC1B,CAAC,eACDvB,IAAA,SAAK,CAAC,EACJR,aAAa,CAAEgB,IAAI,GAAGf,OAAO,CAAEe,IAAK,CAAC,GAAGe,WAAY,CAAC;MAAA,CAClD,CAAC;IAAA,CACA,CAAC;EAAA,CACR,CAAC;AAEL;AAEA,eAAelB,iBAAiB","ignoreList":[]}
@@ -6,18 +6,45 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { useState, RawHTML } from '@wordpress/element';
9
+ import { useState, RawHTML, useEffect, useMemo } from '@wordpress/element';
10
10
  import { __experimentalHStack as HStack, __experimentalVStack as VStack, __experimentalConfirmDialog as ConfirmDialog, Button, DropdownMenu } from '@wordpress/components';
11
11
  import { published, moreVertical } from '@wordpress/icons';
12
- import { __, _x, _n, sprintf } from '@wordpress/i18n';
13
- import { useSelect } from '@wordpress/data';
14
- import { store as blockEditorStore } from '@wordpress/block-editor';
12
+ import { __, _x, sprintf, _n } from '@wordpress/i18n';
13
+ import { useSelect, useDispatch } from '@wordpress/data';
14
+ import { store as blockEditorStore, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
15
15
 
16
16
  /**
17
17
  * Internal dependencies
18
18
  */
19
+ import { unlock } from '../../lock-unlock';
19
20
  import CommentAuthorInfo from './comment-author-info';
20
21
  import CommentForm from './comment-form';
22
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
23
+ const {
24
+ useBlockElement
25
+ } = unlock(blockEditorPrivateApis);
26
+
27
+ /**
28
+ * Finds the first block that has the specified comment ID.
29
+ *
30
+ * @param {string} commentId - The comment ID to search for.
31
+ * @param {Array} blockList - The list of blocks to search through.
32
+ * @return {string|null} The client ID of the found block, or null if not found.
33
+ */
34
+ const findBlockByCommentId = (commentId, blockList) => {
35
+ for (const block of blockList) {
36
+ if (block.attributes?.blockCommentId === commentId) {
37
+ return block.clientId;
38
+ }
39
+ if (block.innerBlocks) {
40
+ const found = findBlockByCommentId(commentId, block.innerBlocks);
41
+ if (found) {
42
+ return found;
43
+ }
44
+ }
45
+ }
46
+ return null;
47
+ };
21
48
 
22
49
  /**
23
50
  * Renders the Comments component.
@@ -33,7 +60,6 @@ import CommentForm from './comment-form';
33
60
  * @param {Function} props.setShowCommentBoard - The function to set the comment board visibility.
34
61
  * @return {React.ReactNode} The rendered Comments component.
35
62
  */
36
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
37
63
  export function Comments({
38
64
  threads,
39
65
  onEditComment,
@@ -45,22 +71,34 @@ export function Comments({
45
71
  setShowCommentBoard
46
72
  }) {
47
73
  const {
48
- blockCommentId
74
+ blockCommentId,
75
+ blocks
49
76
  } = useSelect(select => {
50
77
  const {
51
78
  getBlockAttributes,
52
- getSelectedBlockClientId
79
+ getSelectedBlockClientId,
80
+ getBlocks
53
81
  } = select(blockEditorStore);
54
82
  const _clientId = getSelectedBlockClientId();
55
83
  return {
56
- blockCommentId: _clientId ? getBlockAttributes(_clientId)?.blockCommentId : null
84
+ blockCommentId: _clientId ? getBlockAttributes(_clientId)?.blockCommentId : null,
85
+ blocks: getBlocks()
57
86
  };
58
87
  }, []);
59
- const [focusThread, setFocusThread] = useState(showCommentBoard && blockCommentId ? blockCommentId : null);
88
+ const {
89
+ flashBlock
90
+ } = useDispatch(blockEditorStore);
60
91
  const clearThreadFocus = () => {
61
92
  setFocusThread(null);
62
93
  setShowCommentBoard(false);
63
94
  };
95
+ const [focusThread, setFocusThread] = useState(showCommentBoard && blockCommentId ? blockCommentId : null);
96
+ useEffect(() => {
97
+ // Highlight comment when block is selected.
98
+ if (blockCommentId && !focusThread) {
99
+ setFocusThread(blockCommentId);
100
+ }
101
+ }, [blockCommentId, focusThread, blocks, setFocusThread]);
64
102
  return /*#__PURE__*/_jsxs(_Fragment, {
65
103
  children: [
66
104
  // If there are no comments, show a message indicating no comments are available.
@@ -72,25 +110,20 @@ export function Comments({
72
110
  children:
73
111
  // translators: message displayed when there are no comments available
74
112
  __('No comments available')
75
- }), Array.isArray(threads) && threads.length > 0 && threads.map(thread => /*#__PURE__*/_jsx(VStack, {
76
- className: clsx('editor-collab-sidebar-panel__thread', {
77
- 'editor-collab-sidebar-panel__active-thread': blockCommentId && blockCommentId === thread.id,
78
- 'editor-collab-sidebar-panel__focus-thread': focusThread && focusThread === thread.id
79
- }),
80
- id: thread.id,
81
- spacing: "3",
82
- onClick: () => setFocusThread(thread.id),
83
- children: /*#__PURE__*/_jsx(Thread, {
84
- thread: thread,
85
- onAddReply: onAddReply,
86
- onCommentDelete: onCommentDelete,
87
- onCommentResolve: onCommentResolve,
88
- onCommentReopen: onCommentReopen,
89
- onEditComment: onEditComment,
90
- isFocused: focusThread === thread.id,
91
- clearThreadFocus: clearThreadFocus,
92
- setFocusThread: setFocusThread
93
- })
113
+ }), Array.isArray(threads) && threads.length > 0 && threads.map(thread => /*#__PURE__*/_jsx(Thread, {
114
+ thread: thread,
115
+ onAddReply: onAddReply,
116
+ onCommentDelete: onCommentDelete,
117
+ onCommentResolve: onCommentResolve,
118
+ onCommentReopen: onCommentReopen,
119
+ onEditComment: onEditComment,
120
+ isFocused: focusThread === thread.id,
121
+ clearThreadFocus: clearThreadFocus,
122
+ setFocusThread: setFocusThread,
123
+ blockCommentId: blockCommentId,
124
+ blocks: blocks,
125
+ flashBlock: flashBlock,
126
+ setShowCommentBoard: setShowCommentBoard
94
127
  }, thread.id))]
95
128
  });
96
129
  }
@@ -103,9 +136,37 @@ function Thread({
103
136
  onCommentReopen,
104
137
  isFocused,
105
138
  clearThreadFocus,
106
- setFocusThread
139
+ setFocusThread,
140
+ blocks,
141
+ flashBlock,
142
+ setShowCommentBoard
107
143
  }) {
108
- return /*#__PURE__*/_jsxs(_Fragment, {
144
+ // Find first block that has this comment ID - run at component root level.
145
+ const relatedBlock = useMemo(() => {
146
+ if (!thread.id || !blocks) {
147
+ return null;
148
+ }
149
+ return findBlockByCommentId(thread.id, blocks);
150
+ }, [thread.id, blocks]);
151
+ const relatedBlockElement = useBlockElement(relatedBlock);
152
+ const handleCommentSelect = threadId => {
153
+ setShowCommentBoard(false);
154
+ setFocusThread(threadId);
155
+ if (relatedBlock && relatedBlockElement) {
156
+ relatedBlockElement.scrollIntoView({
157
+ behavior: 'instant',
158
+ block: 'center'
159
+ });
160
+ flashBlock(relatedBlock);
161
+ }
162
+ };
163
+ return /*#__PURE__*/_jsxs(VStack, {
164
+ className: clsx('editor-collab-sidebar-panel__thread', {
165
+ 'editor-collab-sidebar-panel__focus-thread': isFocused
166
+ }),
167
+ id: thread.id,
168
+ spacing: "3",
169
+ onClick: () => handleCommentSelect(thread.id),
109
170
  children: [/*#__PURE__*/_jsx(CommentBoard, {
110
171
  thread: thread,
111
172
  onResolve: onCommentResolve,