@wordpress/core-data 6.29.0 → 6.31.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 (51) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/actions.js +5 -5
  3. package/build/actions.js.map +1 -1
  4. package/build/entities.js +84 -44
  5. package/build/entities.js.map +1 -1
  6. package/build/hooks/use-query-select.js +15 -16
  7. package/build/hooks/use-query-select.js.map +1 -1
  8. package/build/index.js +16 -10
  9. package/build/index.js.map +1 -1
  10. package/build/queried-data/selectors.js +9 -0
  11. package/build/queried-data/selectors.js.map +1 -1
  12. package/build/resolvers.js +24 -8
  13. package/build/resolvers.js.map +1 -1
  14. package/build/selectors.js +5 -0
  15. package/build/selectors.js.map +1 -1
  16. package/build-module/actions.js +5 -5
  17. package/build-module/actions.js.map +1 -1
  18. package/build-module/entities.js +84 -44
  19. package/build-module/entities.js.map +1 -1
  20. package/build-module/hooks/use-query-select.js +15 -16
  21. package/build-module/hooks/use-query-select.js.map +1 -1
  22. package/build-module/index.js +17 -11
  23. package/build-module/index.js.map +1 -1
  24. package/build-module/queried-data/selectors.js +8 -0
  25. package/build-module/queried-data/selectors.js.map +1 -1
  26. package/build-module/resolvers.js +24 -8
  27. package/build-module/resolvers.js.map +1 -1
  28. package/build-module/selectors.js +6 -1
  29. package/build-module/selectors.js.map +1 -1
  30. package/build-types/entities.d.ts +26 -52
  31. package/build-types/entities.d.ts.map +1 -1
  32. package/build-types/index.d.ts.map +1 -1
  33. package/build-types/queried-data/selectors.d.ts +1 -0
  34. package/build-types/queried-data/selectors.d.ts.map +1 -1
  35. package/build-types/resolvers.d.ts +2 -1
  36. package/build-types/resolvers.d.ts.map +1 -1
  37. package/build-types/selectors.d.ts.map +1 -1
  38. package/package.json +17 -17
  39. package/src/actions.js +5 -5
  40. package/src/entities.js +84 -54
  41. package/src/hooks/test/use-entity-record.js +4 -1
  42. package/src/hooks/test/use-entity-records.js +2 -0
  43. package/src/hooks/test/use-query-select.js +3 -0
  44. package/src/hooks/use-query-select.ts +21 -16
  45. package/src/index.js +27 -13
  46. package/src/queried-data/selectors.js +6 -0
  47. package/src/resolvers.js +40 -7
  48. package/src/selectors.ts +10 -1
  49. package/src/test/entities.js +19 -10
  50. package/tsconfig.json +1 -0
  51. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_changeCase","require","_apiFetch","_interopRequireDefault","_i18n","_richText","_actions","_sync","DEFAULT_ENTITY_KEY","exports","POST_RAW_ATTRIBUTES","rootEntitiesConfig","label","__","kind","name","baseURL","baseURLParams","_fields","join","syncConfig","fetch","apiFetch","path","applyChangesToDoc","doc","changes","document","getMap","Object","entries","forEach","key","value","get","set","fromCRDTDoc","toJSON","syncObjectType","getSyncObjectId","getTitle","record","_record$title","title","context","id","plural","rawAttributes","supportsPagination","transientEdits","blocks","rendered","getRevisionsUrl","parentId","revisionId","additionalEntityConfigLoaders","loadEntities","loadPostTypeEntities","loadTaxonomyEntities","prePersistPostType","persistedRecord","edits","newEdits","status","serialisableBlocksCache","WeakMap","makeBlockAttributesSerializable","attributes","newAttributes","RichTextData","valueOf","makeBlocksSerializable","map","block","innerBlocks","rest","postTypes","postType","_postType$rest_namesp","isTemplate","includes","namespace","rest_namespace","rest_base","selection","mergedEdits","meta","_record$slug","capitalCase","slug","String","__unstablePrePersist","undefined","__unstable_rest_base","has","revisionKey","taxonomies","taxonomy","_taxonomy$rest_namesp","getMethodName","prefix","usePlural","entityConfig","find","config","kindPrefix","pascalCase","nameSuffix","suffix","registerSyncConfigs","configs","getSyncProvider","register","editSyncConfig","getOrLoadEntitiesConfig","select","dispatch","getEntitiesConfig","length","window","__experimentalEnableSync","process","env","IS_GUTENBERG_PLUGIN","loader","l","addEntities"],"sources":["@wordpress/core-data/src/entities.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { capitalCase, pascalCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { __ } from '@wordpress/i18n';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { addEntities } from './actions';\nimport { getSyncProvider } from './sync';\n\nexport const DEFAULT_ENTITY_KEY = 'id';\n\nconst POST_RAW_ATTRIBUTES = [ 'title', 'excerpt', 'content' ];\n\nexport const rootEntitiesConfig = [\n\t{\n\t\tlabel: __( 'Base' ),\n\t\tkind: 'root',\n\t\tname: '__unstableBase',\n\t\tbaseURL: '/',\n\t\tbaseURLParams: {\n\t\t\t_fields: [\n\t\t\t\t'description',\n\t\t\t\t'gmt_offset',\n\t\t\t\t'home',\n\t\t\t\t'name',\n\t\t\t\t'site_icon',\n\t\t\t\t'site_icon_url',\n\t\t\t\t'site_logo',\n\t\t\t\t'timezone_string',\n\t\t\t\t'url',\n\t\t\t].join( ',' ),\n\t\t},\n\t\tsyncConfig: {\n\t\t\tfetch: async () => {\n\t\t\t\treturn apiFetch( { path: '/' } );\n\t\t\t},\n\t\t\tapplyChangesToDoc: ( doc, changes ) => {\n\t\t\t\tconst document = doc.getMap( 'document' );\n\t\t\t\tObject.entries( changes ).forEach( ( [ key, value ] ) => {\n\t\t\t\t\tif ( document.get( key ) !== value ) {\n\t\t\t\t\t\tdocument.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tfromCRDTDoc: ( doc ) => {\n\t\t\t\treturn doc.getMap( 'document' ).toJSON();\n\t\t\t},\n\t\t},\n\t\tsyncObjectType: 'root/base',\n\t\tgetSyncObjectId: () => 'index',\n\t},\n\t{\n\t\tlabel: __( 'Site' ),\n\t\tname: 'site',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/settings',\n\t\tgetTitle: ( record ) => {\n\t\t\treturn record?.title ?? __( 'Site Title' );\n\t\t},\n\t\tsyncConfig: {\n\t\t\tfetch: async () => {\n\t\t\t\treturn apiFetch( { path: '/wp/v2/settings' } );\n\t\t\t},\n\t\t\tapplyChangesToDoc: ( doc, changes ) => {\n\t\t\t\tconst document = doc.getMap( 'document' );\n\t\t\t\tObject.entries( changes ).forEach( ( [ key, value ] ) => {\n\t\t\t\t\tif ( document.get( key ) !== value ) {\n\t\t\t\t\t\tdocument.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tfromCRDTDoc: ( doc ) => {\n\t\t\t\treturn doc.getMap( 'document' ).toJSON();\n\t\t\t},\n\t\t},\n\t\tsyncObjectType: 'root/site',\n\t\tgetSyncObjectId: () => 'index',\n\t},\n\t{\n\t\tlabel: __( 'Post Type' ),\n\t\tname: 'postType',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tsyncConfig: {\n\t\t\tfetch: async ( id ) => {\n\t\t\t\treturn apiFetch( {\n\t\t\t\t\tpath: `/wp/v2/types/${ id }?context=edit`,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tapplyChangesToDoc: ( doc, changes ) => {\n\t\t\t\tconst document = doc.getMap( 'document' );\n\t\t\t\tObject.entries( changes ).forEach( ( [ key, value ] ) => {\n\t\t\t\t\tif ( document.get( key ) !== value ) {\n\t\t\t\t\t\tdocument.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tfromCRDTDoc: ( doc ) => {\n\t\t\t\treturn doc.getMap( 'document' ).toJSON();\n\t\t\t},\n\t\t},\n\t\tsyncObjectType: 'root/postType',\n\t\tgetSyncObjectId: ( id ) => id,\n\t},\n\t{\n\t\tname: 'media',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/media',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'mediaItems',\n\t\tlabel: __( 'Media' ),\n\t\trawAttributes: [ 'caption', 'title', 'description' ],\n\t\tsupportsPagination: true,\n\t},\n\t{\n\t\tname: 'taxonomy',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/taxonomies',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'taxonomies',\n\t\tlabel: __( 'Taxonomy' ),\n\t},\n\t{\n\t\tname: 'sidebar',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/sidebars',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'sidebars',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widget areas' ),\n\t},\n\t{\n\t\tname: 'widget',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widgets',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgets',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widgets' ),\n\t},\n\t{\n\t\tname: 'widgetType',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widget-types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgetTypes',\n\t\tlabel: __( 'Widget types' ),\n\t},\n\t{\n\t\tlabel: __( 'User' ),\n\t\tname: 'user',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/users',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'users',\n\t},\n\t{\n\t\tname: 'comment',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/comments',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'comments',\n\t\tlabel: __( 'Comment' ),\n\t},\n\t{\n\t\tname: 'menu',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/menus',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menus',\n\t\tlabel: __( 'Menu' ),\n\t},\n\t{\n\t\tname: 'menuItem',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/menu-items',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuItems',\n\t\tlabel: __( 'Menu Item' ),\n\t\trawAttributes: [ 'title' ],\n\t},\n\t{\n\t\tname: 'menuLocation',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/menu-locations',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuLocations',\n\t\tlabel: __( 'Menu Location' ),\n\t\tkey: 'name',\n\t},\n\t{\n\t\tlabel: __( 'Global Styles' ),\n\t\tname: 'globalStyles',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/global-styles',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'globalStylesVariations', // Should be different from name.\n\t\tgetTitle: ( record ) => record?.title?.rendered || record?.title,\n\t\tgetRevisionsUrl: ( parentId, revisionId ) =>\n\t\t\t`/wp/v2/global-styles/${ parentId }/revisions${\n\t\t\t\trevisionId ? '/' + revisionId : ''\n\t\t\t}`,\n\t\tsupportsPagination: true,\n\t},\n\t{\n\t\tlabel: __( 'Themes' ),\n\t\tname: 'theme',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/themes',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tkey: 'stylesheet',\n\t},\n\t{\n\t\tlabel: __( 'Plugins' ),\n\t\tname: 'plugin',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/plugins',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tkey: 'plugin',\n\t},\n\t{\n\t\tlabel: __( 'Status' ),\n\t\tname: 'status',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/statuses',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'statuses',\n\t\tkey: 'slug',\n\t},\n];\n\nexport const additionalEntityConfigLoaders = [\n\t{ kind: 'postType', loadEntities: loadPostTypeEntities },\n\t{ kind: 'taxonomy', loadEntities: loadTaxonomyEntities },\n];\n\n/**\n * Returns a function to be used to retrieve extra edits to apply before persisting a post type.\n *\n * @param {Object} persistedRecord Already persisted Post\n * @param {Object} edits Edits.\n * @return {Object} Updated edits.\n */\nexport const prePersistPostType = ( persistedRecord, edits ) => {\n\tconst newEdits = {};\n\n\tif ( persistedRecord?.status === 'auto-draft' ) {\n\t\t// Saving an auto-draft should create a draft by default.\n\t\tif ( ! edits.status && ! newEdits.status ) {\n\t\t\tnewEdits.status = 'draft';\n\t\t}\n\n\t\t// Fix the auto-draft default title.\n\t\tif (\n\t\t\t( ! edits.title || edits.title === 'Auto Draft' ) &&\n\t\t\t! newEdits.title &&\n\t\t\t( ! persistedRecord?.title ||\n\t\t\t\tpersistedRecord?.title === 'Auto Draft' )\n\t\t) {\n\t\t\tnewEdits.title = '';\n\t\t}\n\t}\n\n\treturn newEdits;\n};\n\nconst serialisableBlocksCache = new WeakMap();\n\nfunction makeBlockAttributesSerializable( attributes ) {\n\tconst newAttributes = { ...attributes };\n\tfor ( const [ key, value ] of Object.entries( attributes ) ) {\n\t\tif ( value instanceof RichTextData ) {\n\t\t\tnewAttributes[ key ] = value.valueOf();\n\t\t}\n\t}\n\treturn newAttributes;\n}\n\nfunction makeBlocksSerializable( blocks ) {\n\treturn blocks.map( ( block ) => {\n\t\tconst { innerBlocks, attributes, ...rest } = block;\n\t\treturn {\n\t\t\t...rest,\n\t\t\tattributes: makeBlockAttributesSerializable( attributes ),\n\t\t\tinnerBlocks: makeBlocksSerializable( innerBlocks ),\n\t\t};\n\t} );\n}\n\n/**\n * Returns the list of post type entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadPostTypeEntities() {\n\tconst postTypes = await apiFetch( {\n\t\tpath: '/wp/v2/types?context=view',\n\t} );\n\treturn Object.entries( postTypes ?? {} ).map( ( [ name, postType ] ) => {\n\t\tconst isTemplate = [ 'wp_template', 'wp_template_part' ].includes(\n\t\t\tname\n\t\t);\n\t\tconst namespace = postType?.rest_namespace ?? 'wp/v2';\n\t\treturn {\n\t\t\tkind: 'postType',\n\t\t\tbaseURL: `/${ namespace }/${ postType.rest_base }`,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: postType.name,\n\t\t\ttransientEdits: {\n\t\t\t\tblocks: true,\n\t\t\t\tselection: true,\n\t\t\t},\n\t\t\tmergedEdits: { meta: true },\n\t\t\trawAttributes: POST_RAW_ATTRIBUTES,\n\t\t\tgetTitle: ( record ) =>\n\t\t\t\trecord?.title?.rendered ||\n\t\t\t\trecord?.title ||\n\t\t\t\t( isTemplate\n\t\t\t\t\t? capitalCase( record.slug ?? '' )\n\t\t\t\t\t: String( record.id ) ),\n\t\t\t__unstablePrePersist: isTemplate ? undefined : prePersistPostType,\n\t\t\t__unstable_rest_base: postType.rest_base,\n\t\t\tsyncConfig: {\n\t\t\t\tfetch: async ( id ) => {\n\t\t\t\t\treturn apiFetch( {\n\t\t\t\t\t\tpath: `/${ namespace }/${ postType.rest_base }/${ id }?context=edit`,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t\tapplyChangesToDoc: ( doc, changes ) => {\n\t\t\t\t\tconst document = doc.getMap( 'document' );\n\n\t\t\t\t\tObject.entries( changes ).forEach( ( [ key, value ] ) => {\n\t\t\t\t\t\tif ( typeof value !== 'function' ) {\n\t\t\t\t\t\t\tif ( key === 'blocks' ) {\n\t\t\t\t\t\t\t\tif ( ! serialisableBlocksCache.has( value ) ) {\n\t\t\t\t\t\t\t\t\tserialisableBlocksCache.set(\n\t\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t\t\tmakeBlocksSerializable( value )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvalue = serialisableBlocksCache.get( value );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( document.get( key ) !== value ) {\n\t\t\t\t\t\t\t\tdocument.set( key, value );\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\tfromCRDTDoc: ( doc ) => {\n\t\t\t\t\treturn doc.getMap( 'document' ).toJSON();\n\t\t\t\t},\n\t\t\t},\n\t\t\tsyncObjectType: 'postType/' + postType.name,\n\t\t\tgetSyncObjectId: ( id ) => id,\n\t\t\tsupportsPagination: true,\n\t\t\tgetRevisionsUrl: ( parentId, revisionId ) =>\n\t\t\t\t`/${ namespace }/${\n\t\t\t\t\tpostType.rest_base\n\t\t\t\t}/${ parentId }/revisions${\n\t\t\t\t\trevisionId ? '/' + revisionId : ''\n\t\t\t\t}`,\n\t\t\trevisionKey: isTemplate ? 'wp_id' : DEFAULT_ENTITY_KEY,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the list of the taxonomies entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadTaxonomyEntities() {\n\tconst taxonomies = await apiFetch( {\n\t\tpath: '/wp/v2/taxonomies?context=view',\n\t} );\n\treturn Object.entries( taxonomies ?? {} ).map( ( [ name, taxonomy ] ) => {\n\t\tconst namespace = taxonomy?.rest_namespace ?? 'wp/v2';\n\t\treturn {\n\t\t\tkind: 'taxonomy',\n\t\t\tbaseURL: `/${ namespace }/${ taxonomy.rest_base }`,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: taxonomy.name,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the entity's getter method name given its kind and name.\n *\n * @example\n * ```js\n * const nameSingular = getMethodName( 'root', 'theme', 'get' );\n * // nameSingular is getRootTheme\n *\n * const namePlural = getMethodName( 'root', 'theme', 'set' );\n * // namePlural is setRootThemes\n * ```\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} prefix Function prefix.\n * @param {boolean} usePlural Whether to use the plural form or not.\n *\n * @return {string} Method name\n */\nexport const getMethodName = (\n\tkind,\n\tname,\n\tprefix = 'get',\n\tusePlural = false\n) => {\n\tconst entityConfig = rootEntitiesConfig.find(\n\t\t( config ) => config.kind === kind && config.name === name\n\t);\n\tconst kindPrefix = kind === 'root' ? '' : pascalCase( kind );\n\tconst nameSuffix = pascalCase( name ) + ( usePlural ? 's' : '' );\n\tconst suffix =\n\t\tusePlural && 'plural' in entityConfig && entityConfig?.plural\n\t\t\t? pascalCase( entityConfig.plural )\n\t\t\t: nameSuffix;\n\treturn `${ prefix }${ kindPrefix }${ suffix }`;\n};\n\nfunction registerSyncConfigs( configs ) {\n\tconfigs.forEach( ( { syncObjectType, syncConfig } ) => {\n\t\tgetSyncProvider().register( syncObjectType, syncConfig );\n\t\tconst editSyncConfig = { ...syncConfig };\n\t\tdelete editSyncConfig.fetch;\n\t\tgetSyncProvider().register( syncObjectType + '--edit', editSyncConfig );\n\t} );\n}\n\n/**\n * Loads the kind entities into the store.\n *\n * @param {string} kind Kind\n *\n * @return {(thunkArgs: object) => Promise<Array>} Entities\n */\nexport const getOrLoadEntitiesConfig =\n\t( kind ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tlet configs = select.getEntitiesConfig( kind );\n\t\tif ( configs && configs.length !== 0 ) {\n\t\t\tif ( window.__experimentalEnableSync ) {\n\t\t\t\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t\t\t\tregisterSyncConfigs( configs );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn configs;\n\t\t}\n\n\t\tconst loader = additionalEntityConfigLoaders.find(\n\t\t\t( l ) => l.kind === kind\n\t\t);\n\t\tif ( ! loader ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconfigs = await loader.loadEntities();\n\t\tif ( window.__experimentalEnableSync ) {\n\t\t\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t\t\tregisterSyncConfigs( configs );\n\t\t\t}\n\t\t}\n\n\t\tdispatch( addEntities( configs ) );\n\n\t\treturn configs;\n\t};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_changeCase","require","_apiFetch","_interopRequireDefault","_i18n","_richText","_actions","_sync","DEFAULT_ENTITY_KEY","exports","POST_RAW_ATTRIBUTES","rootEntitiesConfig","label","__","kind","name","baseURL","baseURLParams","_fields","join","plural","syncConfig","fetch","apiFetch","path","applyChangesToDoc","doc","changes","document","getMap","Object","entries","forEach","key","value","get","set","fromCRDTDoc","toJSON","syncObjectType","getSyncObjectId","context","id","rawAttributes","supportsPagination","transientEdits","blocks","getTitle","record","title","rendered","getRevisionsUrl","parentId","revisionId","additionalEntityConfigLoaders","loadEntities","loadPostTypeEntities","loadTaxonomyEntities","loadSiteEntity","prePersistPostType","persistedRecord","edits","newEdits","status","serialisableBlocksCache","WeakMap","makeBlockAttributesSerializable","attributes","newAttributes","RichTextData","valueOf","makeBlocksSerializable","map","block","innerBlocks","rest","postTypes","postType","_postType$rest_namesp","isTemplate","includes","namespace","rest_namespace","rest_base","selection","mergedEdits","meta","_record$slug","capitalCase","slug","String","__unstablePrePersist","undefined","__unstable_rest_base","has","revisionKey","taxonomies","taxonomy","_taxonomy$rest_namesp","_site$schema$properti","entity","site","method","labels","schema","properties","getMethodName","prefix","kindPrefix","pascalCase","suffix","registerSyncConfigs","configs","getSyncProvider","register","editSyncConfig","getOrLoadEntitiesConfig","select","dispatch","getEntitiesConfig","hasConfig","getEntityConfig","length","window","__experimentalEnableSync","process","env","IS_GUTENBERG_PLUGIN","loader","find","l","addEntities"],"sources":["@wordpress/core-data/src/entities.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { capitalCase, pascalCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { __ } from '@wordpress/i18n';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { addEntities } from './actions';\nimport { getSyncProvider } from './sync';\n\nexport const DEFAULT_ENTITY_KEY = 'id';\n\nconst POST_RAW_ATTRIBUTES = [ 'title', 'excerpt', 'content' ];\n\nexport const rootEntitiesConfig = [\n\t{\n\t\tlabel: __( 'Base' ),\n\t\tkind: 'root',\n\t\tname: '__unstableBase',\n\t\tbaseURL: '/',\n\t\tbaseURLParams: {\n\t\t\t_fields: [\n\t\t\t\t'description',\n\t\t\t\t'gmt_offset',\n\t\t\t\t'home',\n\t\t\t\t'name',\n\t\t\t\t'site_icon',\n\t\t\t\t'site_icon_url',\n\t\t\t\t'site_logo',\n\t\t\t\t'timezone_string',\n\t\t\t\t'url',\n\t\t\t].join( ',' ),\n\t\t},\n\t\t// The entity doesn't support selecting multiple records.\n\t\t// The property is maintained for backward compatibility.\n\t\tplural: '__unstableBases',\n\t\tsyncConfig: {\n\t\t\tfetch: async () => {\n\t\t\t\treturn apiFetch( { path: '/' } );\n\t\t\t},\n\t\t\tapplyChangesToDoc: ( doc, changes ) => {\n\t\t\t\tconst document = doc.getMap( 'document' );\n\t\t\t\tObject.entries( changes ).forEach( ( [ key, value ] ) => {\n\t\t\t\t\tif ( document.get( key ) !== value ) {\n\t\t\t\t\t\tdocument.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tfromCRDTDoc: ( doc ) => {\n\t\t\t\treturn doc.getMap( 'document' ).toJSON();\n\t\t\t},\n\t\t},\n\t\tsyncObjectType: 'root/base',\n\t\tgetSyncObjectId: () => 'index',\n\t},\n\t{\n\t\tlabel: __( 'Post Type' ),\n\t\tname: 'postType',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'postTypes',\n\t\tsyncConfig: {\n\t\t\tfetch: async ( id ) => {\n\t\t\t\treturn apiFetch( {\n\t\t\t\t\tpath: `/wp/v2/types/${ id }?context=edit`,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tapplyChangesToDoc: ( doc, changes ) => {\n\t\t\t\tconst document = doc.getMap( 'document' );\n\t\t\t\tObject.entries( changes ).forEach( ( [ key, value ] ) => {\n\t\t\t\t\tif ( document.get( key ) !== value ) {\n\t\t\t\t\t\tdocument.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tfromCRDTDoc: ( doc ) => {\n\t\t\t\treturn doc.getMap( 'document' ).toJSON();\n\t\t\t},\n\t\t},\n\t\tsyncObjectType: 'root/postType',\n\t\tgetSyncObjectId: ( id ) => id,\n\t},\n\t{\n\t\tname: 'media',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/media',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'mediaItems',\n\t\tlabel: __( 'Media' ),\n\t\trawAttributes: [ 'caption', 'title', 'description' ],\n\t\tsupportsPagination: true,\n\t},\n\t{\n\t\tname: 'taxonomy',\n\t\tkind: 'root',\n\t\tkey: 'slug',\n\t\tbaseURL: '/wp/v2/taxonomies',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'taxonomies',\n\t\tlabel: __( 'Taxonomy' ),\n\t},\n\t{\n\t\tname: 'sidebar',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/sidebars',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'sidebars',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widget areas' ),\n\t},\n\t{\n\t\tname: 'widget',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widgets',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgets',\n\t\ttransientEdits: { blocks: true },\n\t\tlabel: __( 'Widgets' ),\n\t},\n\t{\n\t\tname: 'widgetType',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/widget-types',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'widgetTypes',\n\t\tlabel: __( 'Widget types' ),\n\t},\n\t{\n\t\tlabel: __( 'User' ),\n\t\tname: 'user',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/users',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'users',\n\t},\n\t{\n\t\tname: 'comment',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/comments',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'comments',\n\t\tlabel: __( 'Comment' ),\n\t},\n\t{\n\t\tname: 'menu',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/menus',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menus',\n\t\tlabel: __( 'Menu' ),\n\t},\n\t{\n\t\tname: 'menuItem',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/menu-items',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuItems',\n\t\tlabel: __( 'Menu Item' ),\n\t\trawAttributes: [ 'title' ],\n\t},\n\t{\n\t\tname: 'menuLocation',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/menu-locations',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'menuLocations',\n\t\tlabel: __( 'Menu Location' ),\n\t\tkey: 'name',\n\t},\n\t{\n\t\tlabel: __( 'Global Styles' ),\n\t\tname: 'globalStyles',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/global-styles',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'globalStylesVariations', // Should be different from name.\n\t\tgetTitle: ( record ) => record?.title?.rendered || record?.title,\n\t\tgetRevisionsUrl: ( parentId, revisionId ) =>\n\t\t\t`/wp/v2/global-styles/${ parentId }/revisions${\n\t\t\t\trevisionId ? '/' + revisionId : ''\n\t\t\t}`,\n\t\tsupportsPagination: true,\n\t},\n\t{\n\t\tlabel: __( 'Themes' ),\n\t\tname: 'theme',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/themes',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'themes',\n\t\tkey: 'stylesheet',\n\t},\n\t{\n\t\tlabel: __( 'Plugins' ),\n\t\tname: 'plugin',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/plugins',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'plugins',\n\t\tkey: 'plugin',\n\t},\n\t{\n\t\tlabel: __( 'Status' ),\n\t\tname: 'status',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/statuses',\n\t\tbaseURLParams: { context: 'edit' },\n\t\tplural: 'statuses',\n\t\tkey: 'slug',\n\t},\n];\n\nexport const additionalEntityConfigLoaders = [\n\t{ kind: 'postType', loadEntities: loadPostTypeEntities },\n\t{ kind: 'taxonomy', loadEntities: loadTaxonomyEntities },\n\t{\n\t\tkind: 'root',\n\t\tname: 'site',\n\t\tplural: 'sites',\n\t\tloadEntities: loadSiteEntity,\n\t},\n];\n\n/**\n * Returns a function to be used to retrieve extra edits to apply before persisting a post type.\n *\n * @param {Object} persistedRecord Already persisted Post\n * @param {Object} edits Edits.\n * @return {Object} Updated edits.\n */\nexport const prePersistPostType = ( persistedRecord, edits ) => {\n\tconst newEdits = {};\n\n\tif ( persistedRecord?.status === 'auto-draft' ) {\n\t\t// Saving an auto-draft should create a draft by default.\n\t\tif ( ! edits.status && ! newEdits.status ) {\n\t\t\tnewEdits.status = 'draft';\n\t\t}\n\n\t\t// Fix the auto-draft default title.\n\t\tif (\n\t\t\t( ! edits.title || edits.title === 'Auto Draft' ) &&\n\t\t\t! newEdits.title &&\n\t\t\t( ! persistedRecord?.title ||\n\t\t\t\tpersistedRecord?.title === 'Auto Draft' )\n\t\t) {\n\t\t\tnewEdits.title = '';\n\t\t}\n\t}\n\n\treturn newEdits;\n};\n\nconst serialisableBlocksCache = new WeakMap();\n\nfunction makeBlockAttributesSerializable( attributes ) {\n\tconst newAttributes = { ...attributes };\n\tfor ( const [ key, value ] of Object.entries( attributes ) ) {\n\t\tif ( value instanceof RichTextData ) {\n\t\t\tnewAttributes[ key ] = value.valueOf();\n\t\t}\n\t}\n\treturn newAttributes;\n}\n\nfunction makeBlocksSerializable( blocks ) {\n\treturn blocks.map( ( block ) => {\n\t\tconst { innerBlocks, attributes, ...rest } = block;\n\t\treturn {\n\t\t\t...rest,\n\t\t\tattributes: makeBlockAttributesSerializable( attributes ),\n\t\t\tinnerBlocks: makeBlocksSerializable( innerBlocks ),\n\t\t};\n\t} );\n}\n\n/**\n * Returns the list of post type entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadPostTypeEntities() {\n\tconst postTypes = await apiFetch( {\n\t\tpath: '/wp/v2/types?context=view',\n\t} );\n\treturn Object.entries( postTypes ?? {} ).map( ( [ name, postType ] ) => {\n\t\tconst isTemplate = [ 'wp_template', 'wp_template_part' ].includes(\n\t\t\tname\n\t\t);\n\t\tconst namespace = postType?.rest_namespace ?? 'wp/v2';\n\t\treturn {\n\t\t\tkind: 'postType',\n\t\t\tbaseURL: `/${ namespace }/${ postType.rest_base }`,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: postType.name,\n\t\t\ttransientEdits: {\n\t\t\t\tblocks: true,\n\t\t\t\tselection: true,\n\t\t\t},\n\t\t\tmergedEdits: { meta: true },\n\t\t\trawAttributes: POST_RAW_ATTRIBUTES,\n\t\t\tgetTitle: ( record ) =>\n\t\t\t\trecord?.title?.rendered ||\n\t\t\t\trecord?.title ||\n\t\t\t\t( isTemplate\n\t\t\t\t\t? capitalCase( record.slug ?? '' )\n\t\t\t\t\t: String( record.id ) ),\n\t\t\t__unstablePrePersist: isTemplate ? undefined : prePersistPostType,\n\t\t\t__unstable_rest_base: postType.rest_base,\n\t\t\tsyncConfig: {\n\t\t\t\tfetch: async ( id ) => {\n\t\t\t\t\treturn apiFetch( {\n\t\t\t\t\t\tpath: `/${ namespace }/${ postType.rest_base }/${ id }?context=edit`,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t\tapplyChangesToDoc: ( doc, changes ) => {\n\t\t\t\t\tconst document = doc.getMap( 'document' );\n\n\t\t\t\t\tObject.entries( changes ).forEach( ( [ key, value ] ) => {\n\t\t\t\t\t\tif ( typeof value !== 'function' ) {\n\t\t\t\t\t\t\tif ( key === 'blocks' ) {\n\t\t\t\t\t\t\t\tif ( ! serialisableBlocksCache.has( value ) ) {\n\t\t\t\t\t\t\t\t\tserialisableBlocksCache.set(\n\t\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t\t\tmakeBlocksSerializable( value )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvalue = serialisableBlocksCache.get( value );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( document.get( key ) !== value ) {\n\t\t\t\t\t\t\t\tdocument.set( key, value );\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\tfromCRDTDoc: ( doc ) => {\n\t\t\t\t\treturn doc.getMap( 'document' ).toJSON();\n\t\t\t\t},\n\t\t\t},\n\t\t\tsyncObjectType: 'postType/' + postType.name,\n\t\t\tgetSyncObjectId: ( id ) => id,\n\t\t\tsupportsPagination: true,\n\t\t\tgetRevisionsUrl: ( parentId, revisionId ) =>\n\t\t\t\t`/${ namespace }/${\n\t\t\t\t\tpostType.rest_base\n\t\t\t\t}/${ parentId }/revisions${\n\t\t\t\t\trevisionId ? '/' + revisionId : ''\n\t\t\t\t}`,\n\t\t\trevisionKey: isTemplate ? 'wp_id' : DEFAULT_ENTITY_KEY,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the list of the taxonomies entities.\n *\n * @return {Promise} Entities promise\n */\nasync function loadTaxonomyEntities() {\n\tconst taxonomies = await apiFetch( {\n\t\tpath: '/wp/v2/taxonomies?context=view',\n\t} );\n\treturn Object.entries( taxonomies ?? {} ).map( ( [ name, taxonomy ] ) => {\n\t\tconst namespace = taxonomy?.rest_namespace ?? 'wp/v2';\n\t\treturn {\n\t\t\tkind: 'taxonomy',\n\t\t\tbaseURL: `/${ namespace }/${ taxonomy.rest_base }`,\n\t\t\tbaseURLParams: { context: 'edit' },\n\t\t\tname,\n\t\t\tlabel: taxonomy.name,\n\t\t};\n\t} );\n}\n\n/**\n * Returns the Site entity.\n *\n * @return {Promise} Entity promise\n */\nasync function loadSiteEntity() {\n\tconst entity = {\n\t\tlabel: __( 'Site' ),\n\t\tname: 'site',\n\t\tkind: 'root',\n\t\tbaseURL: '/wp/v2/settings',\n\t\tsyncConfig: {\n\t\t\tfetch: async () => {\n\t\t\t\treturn apiFetch( { path: '/wp/v2/settings' } );\n\t\t\t},\n\t\t\tapplyChangesToDoc: ( doc, changes ) => {\n\t\t\t\tconst document = doc.getMap( 'document' );\n\t\t\t\tObject.entries( changes ).forEach( ( [ key, value ] ) => {\n\t\t\t\t\tif ( document.get( key ) !== value ) {\n\t\t\t\t\t\tdocument.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tfromCRDTDoc: ( doc ) => {\n\t\t\t\treturn doc.getMap( 'document' ).toJSON();\n\t\t\t},\n\t\t},\n\t\tsyncObjectType: 'root/site',\n\t\tgetSyncObjectId: () => 'index',\n\t\tmeta: {},\n\t};\n\n\tconst site = await apiFetch( {\n\t\tpath: entity.baseURL,\n\t\tmethod: 'OPTIONS',\n\t} );\n\n\tconst labels = {};\n\tObject.entries( site?.schema?.properties ?? {} ).forEach(\n\t\t( [ key, value ] ) => {\n\t\t\t// Ignore properties `title` and `type` keys.\n\t\t\tif ( typeof value === 'object' && value.title ) {\n\t\t\t\tlabels[ key ] = value.title;\n\t\t\t}\n\t\t}\n\t);\n\n\treturn [ { ...entity, meta: { labels } } ];\n}\n\n/**\n * Returns the entity's getter method name given its kind and name or plural name.\n *\n * @example\n * ```js\n * const nameSingular = getMethodName( 'root', 'theme', 'get' );\n * // nameSingular is getRootTheme\n *\n * const namePlural = getMethodName( 'root', 'themes', 'set' );\n * // namePlural is setRootThemes\n * ```\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name or plural name.\n * @param {string} prefix Function prefix.\n *\n * @return {string} Method name\n */\nexport const getMethodName = ( kind, name, prefix = 'get' ) => {\n\tconst kindPrefix = kind === 'root' ? '' : pascalCase( kind );\n\tconst suffix = pascalCase( name );\n\treturn `${ prefix }${ kindPrefix }${ suffix }`;\n};\n\nfunction registerSyncConfigs( configs ) {\n\tconfigs.forEach( ( { syncObjectType, syncConfig } ) => {\n\t\tgetSyncProvider().register( syncObjectType, syncConfig );\n\t\tconst editSyncConfig = { ...syncConfig };\n\t\tdelete editSyncConfig.fetch;\n\t\tgetSyncProvider().register( syncObjectType + '--edit', editSyncConfig );\n\t} );\n}\n\n/**\n * Loads the entities into the store.\n *\n * Note: The `name` argument is used for `root` entities requiring additional server data.\n *\n * @param {string} kind Kind\n * @param {string} name Name\n * @return {(thunkArgs: object) => Promise<Array>} Entities\n */\nexport const getOrLoadEntitiesConfig =\n\t( kind, name ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tlet configs = select.getEntitiesConfig( kind );\n\t\tconst hasConfig = !! select.getEntityConfig( kind, name );\n\n\t\tif ( configs?.length > 0 && hasConfig ) {\n\t\t\tif ( window.__experimentalEnableSync ) {\n\t\t\t\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t\t\t\tregisterSyncConfigs( configs );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn configs;\n\t\t}\n\n\t\tconst loader = additionalEntityConfigLoaders.find( ( l ) => {\n\t\t\tif ( ! name || ! l.name ) {\n\t\t\t\treturn l.kind === kind;\n\t\t\t}\n\n\t\t\treturn l.kind === kind && l.name === name;\n\t\t} );\n\t\tif ( ! loader ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconfigs = await loader.loadEntities();\n\t\tif ( window.__experimentalEnableSync ) {\n\t\t\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t\t\tregisterSyncConfigs( configs );\n\t\t\t}\n\t\t}\n\n\t\tdispatch( addEntities( configs ) );\n\n\t\treturn configs;\n\t};\n"],"mappings":"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"}
@@ -82,30 +82,29 @@ const enrichSelectors = (0, _memoize.default)(selectors => {
82
82
  }
83
83
  Object.defineProperty(resolvers, selectorName, {
84
84
  get: () => (...args) => {
85
- const {
86
- getIsResolving,
87
- hasFinishedResolution
88
- } = selectors;
89
- const isResolving = !!getIsResolving(selectorName, args);
90
- const hasResolved = !isResolving && hasFinishedResolution(selectorName, args);
91
85
  const data = selectors[selectorName](...args);
86
+ const resolutionStatus = selectors.getResolutionState(selectorName, args)?.status;
92
87
  let status;
93
- if (isResolving) {
94
- status = _constants.Status.Resolving;
95
- } else if (hasResolved) {
96
- if (data) {
88
+ switch (resolutionStatus) {
89
+ case 'resolving':
90
+ status = _constants.Status.Resolving;
91
+ break;
92
+ case 'finished':
97
93
  status = _constants.Status.Success;
98
- } else {
94
+ break;
95
+ case 'error':
99
96
  status = _constants.Status.Error;
100
- }
101
- } else {
102
- status = _constants.Status.Idle;
97
+ break;
98
+ case undefined:
99
+ status = _constants.Status.Idle;
100
+ break;
103
101
  }
104
102
  return {
105
103
  data,
106
104
  status,
107
- isResolving,
108
- hasResolved
105
+ isResolving: status === _constants.Status.Resolving,
106
+ hasStarted: status !== _constants.Status.Idle,
107
+ hasResolved: status === _constants.Status.Success || status === _constants.Status.Error
109
108
  };
110
109
  }
111
110
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_memoize","_interopRequireDefault","_constants","META_SELECTORS","exports","useQuerySelect","mapQuerySelect","deps","useSelect","select","registry","resolve","store","enrichSelectors","memoize","selectors","resolvers","selectorName","includes","Object","defineProperty","get","args","getIsResolving","hasFinishedResolution","isResolving","hasResolved","data","status","Status","Resolving","Success","Error","Idle"],"sources":["@wordpress/core-data/src/hooks/use-query-select.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport memoize from './memoize';\nimport { Status } from './constants';\n\nexport const META_SELECTORS = [\n\t'getIsResolving',\n\t'hasStartedResolution',\n\t'hasFinishedResolution',\n\t'isResolving',\n\t'getCachedResolvers',\n];\n\ninterface QuerySelectResponse< Data > {\n\t/** the requested selector return value */\n\tdata: Data;\n\n\t/** is the record still being resolved? Via the `getIsResolving` meta-selector */\n\tisResolving: boolean;\n\n\t/** was the resolution started? Via the `hasStartedResolution` meta-selector */\n\thasStarted: boolean;\n\n\t/** has the resolution finished? Via the `hasFinishedResolution` meta-selector. */\n\thasResolved: boolean;\n}\n\n/**\n * Like useSelect, but the selectors return objects containing\n * both the original data AND the resolution info.\n *\n * @since 6.1.0 Introduced in WordPress core.\n * @private\n *\n * @param {Function} mapQuerySelect see useSelect\n * @param {Array} deps see useSelect\n *\n * @example\n * ```js\n * import { useQuerySelect } from '@wordpress/data';\n * import { store as coreDataStore } from '@wordpress/core-data';\n *\n * function PageTitleDisplay( { id } ) {\n * const { data: page, isResolving } = useQuerySelect( ( query ) => {\n * return query( coreDataStore ).getEntityRecord( 'postType', 'page', id )\n * }, [ id ] );\n *\n * if ( isResolving ) {\n * return 'Loading...';\n * }\n *\n * return page.title;\n * }\n *\n * // Rendered in the application:\n * // <PageTitleDisplay id={ 10 } />\n * ```\n *\n * In the above example, when `PageTitleDisplay` is rendered into an\n * application, the page and the resolution details will be retrieved from\n * the store state using the `mapSelect` callback on `useQuerySelect`.\n *\n * If the id prop changes then any page in the state for that id is\n * retrieved. If the id prop doesn't change and other props are passed in\n * that do change, the title will not change because the dependency is just\n * the id.\n * @see useSelect\n *\n * @return {QuerySelectResponse} Queried data.\n */\nexport default function useQuerySelect( mapQuerySelect, deps ) {\n\treturn useSelect( ( select, registry ) => {\n\t\tconst resolve = ( store ) => enrichSelectors( select( store ) );\n\t\treturn mapQuerySelect( resolve, registry );\n\t}, deps );\n}\n\ninterface EnrichedSelectors {\n\t< Selectors extends Record< string, ( ...args: any[] ) => any > >(\n\t\tselectors: Selectors\n\t): {\n\t\t[ Selector in keyof Selectors ]: (\n\t\t\t...args: Parameters< Selectors[ Selector ] >\n\t\t) => QuerySelectResponse< ReturnType< Selectors[ Selector ] > >;\n\t};\n}\n\n/**\n * Transform simple selectors into ones that return an object with the\n * original return value AND the resolution info.\n *\n * @param {Object} selectors Selectors to enrich\n * @return {EnrichedSelectors} Enriched selectors\n */\nconst enrichSelectors = memoize( ( ( selectors ) => {\n\tconst resolvers = {};\n\tfor ( const selectorName in selectors ) {\n\t\tif ( META_SELECTORS.includes( selectorName ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tObject.defineProperty( resolvers, selectorName, {\n\t\t\tget:\n\t\t\t\t() =>\n\t\t\t\t( ...args: unknown[] ) => {\n\t\t\t\t\tconst { getIsResolving, hasFinishedResolution } = selectors;\n\t\t\t\t\tconst isResolving = !! getIsResolving( selectorName, args );\n\t\t\t\t\tconst hasResolved =\n\t\t\t\t\t\t! isResolving &&\n\t\t\t\t\t\thasFinishedResolution( selectorName, args );\n\t\t\t\t\tconst data = selectors[ selectorName ]( ...args );\n\n\t\t\t\t\tlet status;\n\t\t\t\t\tif ( isResolving ) {\n\t\t\t\t\t\tstatus = Status.Resolving;\n\t\t\t\t\t} else if ( hasResolved ) {\n\t\t\t\t\t\tif ( data ) {\n\t\t\t\t\t\t\tstatus = Status.Success;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tstatus = Status.Error;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstatus = Status.Idle;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t\tisResolving,\n\t\t\t\t\t\thasResolved,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t} );\n\t}\n\treturn resolvers;\n} ) as EnrichedSelectors );\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIO,MAAMI,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,CAC7B,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,CACpB;AAgBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASE,cAAcA,CAAEC,cAAc,EAAEC,IAAI,EAAG;EAC9D,OAAO,IAAAC,eAAS,EAAE,CAAEC,MAAM,EAAEC,QAAQ,KAAM;IACzC,MAAMC,OAAO,GAAKC,KAAK,IAAMC,eAAe,CAAEJ,MAAM,CAAEG,KAAM,CAAE,CAAC;IAC/D,OAAON,cAAc,CAAEK,OAAO,EAAED,QAAS,CAAC;EAC3C,CAAC,EAAEH,IAAK,CAAC;AACV;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,eAAe,GAAG,IAAAC,gBAAO,EAAMC,SAAS,IAAM;EACnD,MAAMC,SAAS,GAAG,CAAC,CAAC;EACpB,KAAM,MAAMC,YAAY,IAAIF,SAAS,EAAG;IACvC,IAAKZ,cAAc,CAACe,QAAQ,CAAED,YAAa,CAAC,EAAG;MAC9C;IACD;IACAE,MAAM,CAACC,cAAc,CAAEJ,SAAS,EAAEC,YAAY,EAAE;MAC/CI,GAAG,EACFA,CAAA,KACA,CAAE,GAAGC,IAAe,KAAM;QACzB,MAAM;UAAEC,cAAc;UAAEC;QAAsB,CAAC,GAAGT,SAAS;QAC3D,MAAMU,WAAW,GAAG,CAAC,CAAEF,cAAc,CAAEN,YAAY,EAAEK,IAAK,CAAC;QAC3D,MAAMI,WAAW,GAChB,CAAED,WAAW,IACbD,qBAAqB,CAAEP,YAAY,EAAEK,IAAK,CAAC;QAC5C,MAAMK,IAAI,GAAGZ,SAAS,CAAEE,YAAY,CAAE,CAAE,GAAGK,IAAK,CAAC;QAEjD,IAAIM,MAAM;QACV,IAAKH,WAAW,EAAG;UAClBG,MAAM,GAAGC,iBAAM,CAACC,SAAS;QAC1B,CAAC,MAAM,IAAKJ,WAAW,EAAG;UACzB,IAAKC,IAAI,EAAG;YACXC,MAAM,GAAGC,iBAAM,CAACE,OAAO;UACxB,CAAC,MAAM;YACNH,MAAM,GAAGC,iBAAM,CAACG,KAAK;UACtB;QACD,CAAC,MAAM;UACNJ,MAAM,GAAGC,iBAAM,CAACI,IAAI;QACrB;QAEA,OAAO;UACNN,IAAI;UACJC,MAAM;UACNH,WAAW;UACXC;QACD,CAAC;MACF;IACF,CAAE,CAAC;EACJ;EACA,OAAOV,SAAS;AACjB,CAAyB,CAAC"}
1
+ {"version":3,"names":["_data","require","_memoize","_interopRequireDefault","_constants","META_SELECTORS","exports","useQuerySelect","mapQuerySelect","deps","useSelect","select","registry","resolve","store","enrichSelectors","memoize","selectors","resolvers","selectorName","includes","Object","defineProperty","get","args","data","resolutionStatus","getResolutionState","status","Status","Resolving","Success","Error","undefined","Idle","isResolving","hasStarted","hasResolved"],"sources":["@wordpress/core-data/src/hooks/use-query-select.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport memoize from './memoize';\nimport { Status } from './constants';\n\nexport const META_SELECTORS = [\n\t'getIsResolving',\n\t'hasStartedResolution',\n\t'hasFinishedResolution',\n\t'isResolving',\n\t'getCachedResolvers',\n];\n\ninterface QuerySelectResponse< Data > {\n\t/** the requested selector return value */\n\tdata: Data;\n\n\t/** is the record still being resolved? Via the `isResolving` meta-selector */\n\tisResolving: boolean;\n\n\t/** was the resolution started? Via the `hasStartedResolution` meta-selector */\n\thasStarted: boolean;\n\n\t/** has the resolution finished? Via the `hasFinishedResolution` meta-selector. */\n\thasResolved: boolean;\n}\n\n/**\n * Like useSelect, but the selectors return objects containing\n * both the original data AND the resolution info.\n *\n * @since 6.1.0 Introduced in WordPress core.\n * @private\n *\n * @param {Function} mapQuerySelect see useSelect\n * @param {Array} deps see useSelect\n *\n * @example\n * ```js\n * import { useQuerySelect } from '@wordpress/data';\n * import { store as coreDataStore } from '@wordpress/core-data';\n *\n * function PageTitleDisplay( { id } ) {\n * const { data: page, isResolving } = useQuerySelect( ( query ) => {\n * return query( coreDataStore ).getEntityRecord( 'postType', 'page', id )\n * }, [ id ] );\n *\n * if ( isResolving ) {\n * return 'Loading...';\n * }\n *\n * return page.title;\n * }\n *\n * // Rendered in the application:\n * // <PageTitleDisplay id={ 10 } />\n * ```\n *\n * In the above example, when `PageTitleDisplay` is rendered into an\n * application, the page and the resolution details will be retrieved from\n * the store state using the `mapSelect` callback on `useQuerySelect`.\n *\n * If the id prop changes then any page in the state for that id is\n * retrieved. If the id prop doesn't change and other props are passed in\n * that do change, the title will not change because the dependency is just\n * the id.\n * @see useSelect\n *\n * @return {QuerySelectResponse} Queried data.\n */\nexport default function useQuerySelect( mapQuerySelect, deps ) {\n\treturn useSelect( ( select, registry ) => {\n\t\tconst resolve = ( store ) => enrichSelectors( select( store ) );\n\t\treturn mapQuerySelect( resolve, registry );\n\t}, deps );\n}\n\ninterface EnrichedSelectors {\n\t< Selectors extends Record< string, ( ...args: any[] ) => any > >(\n\t\tselectors: Selectors\n\t): {\n\t\t[ Selector in keyof Selectors ]: (\n\t\t\t...args: Parameters< Selectors[ Selector ] >\n\t\t) => QuerySelectResponse< ReturnType< Selectors[ Selector ] > >;\n\t};\n}\n\n/**\n * Transform simple selectors into ones that return an object with the\n * original return value AND the resolution info.\n *\n * @param {Object} selectors Selectors to enrich\n * @return {EnrichedSelectors} Enriched selectors\n */\nconst enrichSelectors = memoize( ( ( selectors ) => {\n\tconst resolvers = {};\n\tfor ( const selectorName in selectors ) {\n\t\tif ( META_SELECTORS.includes( selectorName ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tObject.defineProperty( resolvers, selectorName, {\n\t\t\tget:\n\t\t\t\t() =>\n\t\t\t\t( ...args: unknown[] ) => {\n\t\t\t\t\tconst data = selectors[ selectorName ]( ...args );\n\t\t\t\t\tconst resolutionStatus = selectors.getResolutionState(\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\targs\n\t\t\t\t\t)?.status;\n\n\t\t\t\t\tlet status;\n\t\t\t\t\tswitch ( resolutionStatus ) {\n\t\t\t\t\t\tcase 'resolving':\n\t\t\t\t\t\t\tstatus = Status.Resolving;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'finished':\n\t\t\t\t\t\t\tstatus = Status.Success;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'error':\n\t\t\t\t\t\t\tstatus = Status.Error;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase undefined:\n\t\t\t\t\t\t\tstatus = Status.Idle;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t\tisResolving: status === Status.Resolving,\n\t\t\t\t\t\thasStarted: status !== Status.Idle,\n\t\t\t\t\t\thasResolved:\n\t\t\t\t\t\t\tstatus === Status.Success ||\n\t\t\t\t\t\t\tstatus === Status.Error,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t} );\n\t}\n\treturn resolvers;\n} ) as EnrichedSelectors );\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIO,MAAMI,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,CAC7B,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,CACpB;AAgBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASE,cAAcA,CAAEC,cAAc,EAAEC,IAAI,EAAG;EAC9D,OAAO,IAAAC,eAAS,EAAE,CAAEC,MAAM,EAAEC,QAAQ,KAAM;IACzC,MAAMC,OAAO,GAAKC,KAAK,IAAMC,eAAe,CAAEJ,MAAM,CAAEG,KAAM,CAAE,CAAC;IAC/D,OAAON,cAAc,CAAEK,OAAO,EAAED,QAAS,CAAC;EAC3C,CAAC,EAAEH,IAAK,CAAC;AACV;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,eAAe,GAAG,IAAAC,gBAAO,EAAMC,SAAS,IAAM;EACnD,MAAMC,SAAS,GAAG,CAAC,CAAC;EACpB,KAAM,MAAMC,YAAY,IAAIF,SAAS,EAAG;IACvC,IAAKZ,cAAc,CAACe,QAAQ,CAAED,YAAa,CAAC,EAAG;MAC9C;IACD;IACAE,MAAM,CAACC,cAAc,CAAEJ,SAAS,EAAEC,YAAY,EAAE;MAC/CI,GAAG,EACFA,CAAA,KACA,CAAE,GAAGC,IAAe,KAAM;QACzB,MAAMC,IAAI,GAAGR,SAAS,CAAEE,YAAY,CAAE,CAAE,GAAGK,IAAK,CAAC;QACjD,MAAME,gBAAgB,GAAGT,SAAS,CAACU,kBAAkB,CACpDR,YAAY,EACZK,IACD,CAAC,EAAEI,MAAM;QAET,IAAIA,MAAM;QACV,QAASF,gBAAgB;UACxB,KAAK,WAAW;YACfE,MAAM,GAAGC,iBAAM,CAACC,SAAS;YACzB;UACD,KAAK,UAAU;YACdF,MAAM,GAAGC,iBAAM,CAACE,OAAO;YACvB;UACD,KAAK,OAAO;YACXH,MAAM,GAAGC,iBAAM,CAACG,KAAK;YACrB;UACD,KAAKC,SAAS;YACbL,MAAM,GAAGC,iBAAM,CAACK,IAAI;YACpB;QACF;QAEA,OAAO;UACNT,IAAI;UACJG,MAAM;UACNO,WAAW,EAAEP,MAAM,KAAKC,iBAAM,CAACC,SAAS;UACxCM,UAAU,EAAER,MAAM,KAAKC,iBAAM,CAACK,IAAI;UAClCG,WAAW,EACVT,MAAM,KAAKC,iBAAM,CAACE,OAAO,IACzBH,MAAM,KAAKC,iBAAM,CAACG;QACpB,CAAC;MACF;IACF,CAAE,CAAC;EACJ;EACA,OAAOd,SAAS;AACjB,CAAyB,CAAC"}
package/build/index.js CHANGED
@@ -87,28 +87,34 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
87
87
  // (getEntityRecord, getEntityRecords, updateEntityRecord, updateEntityRecords)
88
88
  // Instead of getEntityRecord, the consumer could use more user-friendly named selector: getPostType, getTaxonomy...
89
89
  // The "kind" and the "name" of the entity are combined to generate these shortcuts.
90
-
91
- const entitySelectors = _entities.rootEntitiesConfig.reduce((result, entity) => {
90
+ const entitiesConfig = [..._entities.rootEntitiesConfig, ..._entities.additionalEntityConfigLoaders.filter(config => !!config.name)];
91
+ const entitySelectors = entitiesConfig.reduce((result, entity) => {
92
92
  const {
93
93
  kind,
94
- name
94
+ name,
95
+ plural
95
96
  } = entity;
96
97
  result[(0, _entities.getMethodName)(kind, name)] = (state, key, query) => selectors.getEntityRecord(state, kind, name, key, query);
97
- result[(0, _entities.getMethodName)(kind, name, 'get', true)] = (state, query) => selectors.getEntityRecords(state, kind, name, query);
98
+ if (plural) {
99
+ result[(0, _entities.getMethodName)(kind, plural, 'get')] = (state, query) => selectors.getEntityRecords(state, kind, name, query);
100
+ }
98
101
  return result;
99
102
  }, {});
100
- const entityResolvers = _entities.rootEntitiesConfig.reduce((result, entity) => {
103
+ const entityResolvers = entitiesConfig.reduce((result, entity) => {
101
104
  const {
102
105
  kind,
103
- name
106
+ name,
107
+ plural
104
108
  } = entity;
105
109
  result[(0, _entities.getMethodName)(kind, name)] = (key, query) => resolvers.getEntityRecord(kind, name, key, query);
106
- const pluralMethodName = (0, _entities.getMethodName)(kind, name, 'get', true);
107
- result[pluralMethodName] = (...args) => resolvers.getEntityRecords(kind, name, ...args);
108
- result[pluralMethodName].shouldInvalidate = action => resolvers.getEntityRecords.shouldInvalidate(action, kind, name);
110
+ if (plural) {
111
+ const pluralMethodName = (0, _entities.getMethodName)(kind, plural, 'get');
112
+ result[pluralMethodName] = (...args) => resolvers.getEntityRecords(kind, name, ...args);
113
+ result[pluralMethodName].shouldInvalidate = action => resolvers.getEntityRecords.shouldInvalidate(action, kind, name);
114
+ }
109
115
  return result;
110
116
  }, {});
111
- const entityActions = _entities.rootEntitiesConfig.reduce((result, entity) => {
117
+ const entityActions = entitiesConfig.reduce((result, entity) => {
112
118
  const {
113
119
  kind,
114
120
  name
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_reducer","_interopRequireDefault","selectors","_interopRequireWildcard","privateSelectors","actions","resolvers","_actions2","_entities","_name","_privateApis","_entityProvider","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_entityTypes","_fetch","_hooks","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","entitySelectors","rootEntitiesConfig","reduce","result","entity","kind","name","getMethodName","state","query","getEntityRecord","getEntityRecords","entityResolvers","pluralMethodName","args","shouldInvalidate","action","entityActions","record","options","saveEntityRecord","deleteEntityRecord","storeConfig","reducer","createLocksActions","store","createReduxStore","STORE_NAME","unlock","registerPrivateSelectors","register"],"sources":["@wordpress/core-data/src/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as selectors from './selectors';\nimport * as privateSelectors from './private-selectors';\nimport * as actions from './actions';\nimport * as resolvers from './resolvers';\nimport createLocksActions from './locks/actions';\nimport { rootEntitiesConfig, getMethodName } from './entities';\nimport { STORE_NAME } from './name';\nimport { unlock } from './private-apis';\n\n// The entity selectors/resolvers and actions are shortcuts to their generic equivalents\n// (getEntityRecord, getEntityRecords, updateEntityRecord, updateEntityRecords)\n// Instead of getEntityRecord, the consumer could use more user-friendly named selector: getPostType, getTaxonomy...\n// The \"kind\" and the \"name\" of the entity are combined to generate these shortcuts.\n\nconst entitySelectors = rootEntitiesConfig.reduce( ( result, entity ) => {\n\tconst { kind, name } = entity;\n\tresult[ getMethodName( kind, name ) ] = ( state, key, query ) =>\n\t\tselectors.getEntityRecord( state, kind, name, key, query );\n\tresult[ getMethodName( kind, name, 'get', true ) ] = ( state, query ) =>\n\t\tselectors.getEntityRecords( state, kind, name, query );\n\treturn result;\n}, {} );\n\nconst entityResolvers = rootEntitiesConfig.reduce( ( result, entity ) => {\n\tconst { kind, name } = entity;\n\tresult[ getMethodName( kind, name ) ] = ( key, query ) =>\n\t\tresolvers.getEntityRecord( kind, name, key, query );\n\tconst pluralMethodName = getMethodName( kind, name, 'get', true );\n\tresult[ pluralMethodName ] = ( ...args ) =>\n\t\tresolvers.getEntityRecords( kind, name, ...args );\n\tresult[ pluralMethodName ].shouldInvalidate = ( action ) =>\n\t\tresolvers.getEntityRecords.shouldInvalidate( action, kind, name );\n\treturn result;\n}, {} );\n\nconst entityActions = rootEntitiesConfig.reduce( ( result, entity ) => {\n\tconst { kind, name } = entity;\n\tresult[ getMethodName( kind, name, 'save' ) ] = ( record, options ) =>\n\t\tactions.saveEntityRecord( kind, name, record, options );\n\tresult[ getMethodName( kind, name, 'delete' ) ] = ( key, query, options ) =>\n\t\tactions.deleteEntityRecord( kind, name, key, query, options );\n\treturn result;\n}, {} );\n\nconst storeConfig = () => ( {\n\treducer,\n\tactions: { ...actions, ...entityActions, ...createLocksActions() },\n\tselectors: { ...selectors, ...entitySelectors },\n\tresolvers: { ...resolvers, ...entityResolvers },\n} );\n\n/**\n * Store definition for the code data namespace.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore\n */\nexport const store = createReduxStore( STORE_NAME, storeConfig() );\nunlock( store ).registerPrivateSelectors( privateSelectors );\nregister( store ); // Register store after unlocking private selectors to allow resolvers to use them.\n\nexport { default as EntityProvider } from './entity-provider';\nexport * from './entity-provider';\nexport * from './entity-types';\nexport * from './fetch';\nexport * from './hooks';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_data","require","_reducer","_interopRequireDefault","selectors","_interopRequireWildcard","privateSelectors","actions","resolvers","_actions2","_entities","_name","_privateApis","_entityProvider","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_entityTypes","_fetch","_hooks","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","entitiesConfig","rootEntitiesConfig","additionalEntityConfigLoaders","filter","config","name","entitySelectors","reduce","result","entity","kind","plural","getMethodName","state","query","getEntityRecord","getEntityRecords","entityResolvers","pluralMethodName","args","shouldInvalidate","action","entityActions","record","options","saveEntityRecord","deleteEntityRecord","storeConfig","reducer","createLocksActions","store","createReduxStore","STORE_NAME","unlock","registerPrivateSelectors","register"],"sources":["@wordpress/core-data/src/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as selectors from './selectors';\nimport * as privateSelectors from './private-selectors';\nimport * as actions from './actions';\nimport * as resolvers from './resolvers';\nimport createLocksActions from './locks/actions';\nimport {\n\trootEntitiesConfig,\n\tadditionalEntityConfigLoaders,\n\tgetMethodName,\n} from './entities';\nimport { STORE_NAME } from './name';\nimport { unlock } from './private-apis';\n\n// The entity selectors/resolvers and actions are shortcuts to their generic equivalents\n// (getEntityRecord, getEntityRecords, updateEntityRecord, updateEntityRecords)\n// Instead of getEntityRecord, the consumer could use more user-friendly named selector: getPostType, getTaxonomy...\n// The \"kind\" and the \"name\" of the entity are combined to generate these shortcuts.\nconst entitiesConfig = [\n\t...rootEntitiesConfig,\n\t...additionalEntityConfigLoaders.filter( ( config ) => !! config.name ),\n];\n\nconst entitySelectors = entitiesConfig.reduce( ( result, entity ) => {\n\tconst { kind, name, plural } = entity;\n\tresult[ getMethodName( kind, name ) ] = ( state, key, query ) =>\n\t\tselectors.getEntityRecord( state, kind, name, key, query );\n\n\tif ( plural ) {\n\t\tresult[ getMethodName( kind, plural, 'get' ) ] = ( state, query ) =>\n\t\t\tselectors.getEntityRecords( state, kind, name, query );\n\t}\n\treturn result;\n}, {} );\n\nconst entityResolvers = entitiesConfig.reduce( ( result, entity ) => {\n\tconst { kind, name, plural } = entity;\n\tresult[ getMethodName( kind, name ) ] = ( key, query ) =>\n\t\tresolvers.getEntityRecord( kind, name, key, query );\n\n\tif ( plural ) {\n\t\tconst pluralMethodName = getMethodName( kind, plural, 'get' );\n\t\tresult[ pluralMethodName ] = ( ...args ) =>\n\t\t\tresolvers.getEntityRecords( kind, name, ...args );\n\t\tresult[ pluralMethodName ].shouldInvalidate = ( action ) =>\n\t\t\tresolvers.getEntityRecords.shouldInvalidate( action, kind, name );\n\t}\n\treturn result;\n}, {} );\n\nconst entityActions = entitiesConfig.reduce( ( result, entity ) => {\n\tconst { kind, name } = entity;\n\tresult[ getMethodName( kind, name, 'save' ) ] = ( record, options ) =>\n\t\tactions.saveEntityRecord( kind, name, record, options );\n\tresult[ getMethodName( kind, name, 'delete' ) ] = ( key, query, options ) =>\n\t\tactions.deleteEntityRecord( kind, name, key, query, options );\n\treturn result;\n}, {} );\n\nconst storeConfig = () => ( {\n\treducer,\n\tactions: { ...actions, ...entityActions, ...createLocksActions() },\n\tselectors: { ...selectors, ...entitySelectors },\n\tresolvers: { ...resolvers, ...entityResolvers },\n} );\n\n/**\n * Store definition for the code data namespace.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore\n */\nexport const store = createReduxStore( STORE_NAME, storeConfig() );\nunlock( store ).registerPrivateSelectors( privateSelectors );\nregister( store ); // Register store after unlocking private selectors to allow resolvers to use them.\n\nexport { default as EntityProvider } from './entity-provider';\nexport * from './entity-provider';\nexport * from './entity-types';\nexport * from './fetch';\nexport * from './hooks';\n"],"mappings":"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"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.getQueriedItems = void 0;
8
8
  exports.getQueriedTotalItems = getQueriedTotalItems;
9
+ exports.getQueriedTotalPages = getQueriedTotalPages;
9
10
  var _rememo = _interopRequireDefault(require("rememo"));
10
11
  var _equivalentKeyMap = _interopRequireDefault(require("equivalent-key-map"));
11
12
  var _getQueryParts = _interopRequireDefault(require("./get-query-parts"));
@@ -127,4 +128,12 @@ function getQueriedTotalItems(state, query = {}) {
127
128
  } = (0, _getQueryParts.default)(query);
128
129
  return (_state$queries$contex = state.queries?.[context]?.[stableKey]?.meta?.totalItems) !== null && _state$queries$contex !== void 0 ? _state$queries$contex : null;
129
130
  }
131
+ function getQueriedTotalPages(state, query = {}) {
132
+ var _state$queries$contex2;
133
+ const {
134
+ stableKey,
135
+ context
136
+ } = (0, _getQueryParts.default)(query);
137
+ return (_state$queries$contex2 = state.queries?.[context]?.[stableKey]?.meta?.totalPages) !== null && _state$queries$contex2 !== void 0 ? _state$queries$contex2 : null;
138
+ }
130
139
  //# sourceMappingURL=selectors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_rememo","_interopRequireDefault","require","_equivalentKeyMap","_getQueryParts","_utils","queriedItemsCacheByState","WeakMap","getQueriedItemsUncached","state","query","stableKey","page","perPage","include","fields","context","getQueryParts","itemIds","queries","startOffset","endOffset","length","Math","min","items","i","itemId","Array","isArray","includes","undefined","hasOwnProperty","item","filteredItem","f","field","split","value","forEach","fieldName","setNestedValue","itemIsComplete","push","getQueriedItems","exports","createSelector","queriedItemsCache","get","queriedItems","EquivalentKeyMap","set","getQueriedTotalItems","_state$queries$contex","meta","totalItems"],"sources":["@wordpress/core-data/src/queried-data/selectors.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\nimport EquivalentKeyMap from 'equivalent-key-map';\n\n/**\n * Internal dependencies\n */\nimport getQueryParts from './get-query-parts';\nimport { setNestedValue } from '../utils';\n\n/**\n * Cache of state keys to EquivalentKeyMap where the inner map tracks queries\n * to their resulting items set. WeakMap allows garbage collection on expired\n * state references.\n *\n * @type {WeakMap<Object,EquivalentKeyMap>}\n */\nconst queriedItemsCacheByState = new WeakMap();\n\n/**\n * Returns items for a given query, or null if the items are not known.\n *\n * @param {Object} state State object.\n * @param {?Object} query Optional query.\n *\n * @return {?Array} Query items.\n */\nfunction getQueriedItemsUncached( state, query ) {\n\tconst { stableKey, page, perPage, include, fields, context } =\n\t\tgetQueryParts( query );\n\tlet itemIds;\n\n\tif ( state.queries?.[ context ]?.[ stableKey ] ) {\n\t\titemIds = state.queries[ context ][ stableKey ].itemIds;\n\t}\n\n\tif ( ! itemIds ) {\n\t\treturn null;\n\t}\n\n\tconst startOffset = perPage === -1 ? 0 : ( page - 1 ) * perPage;\n\tconst endOffset =\n\t\tperPage === -1\n\t\t\t? itemIds.length\n\t\t\t: Math.min( startOffset + perPage, itemIds.length );\n\n\tconst items = [];\n\tfor ( let i = startOffset; i < endOffset; i++ ) {\n\t\tconst itemId = itemIds[ i ];\n\t\tif ( Array.isArray( include ) && ! include.includes( itemId ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( itemId === undefined ) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Having a target item ID doesn't guarantee that this object has been queried.\n\t\tif ( ! state.items[ context ]?.hasOwnProperty( itemId ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst item = state.items[ context ][ itemId ];\n\n\t\tlet filteredItem;\n\t\tif ( Array.isArray( fields ) ) {\n\t\t\tfilteredItem = {};\n\n\t\t\tfor ( let f = 0; f < fields.length; f++ ) {\n\t\t\t\tconst field = fields[ f ].split( '.' );\n\t\t\t\tlet value = item;\n\t\t\t\tfield.forEach( ( fieldName ) => {\n\t\t\t\t\tvalue = value?.[ fieldName ];\n\t\t\t\t} );\n\n\t\t\t\tsetNestedValue( filteredItem, field, value );\n\t\t\t}\n\t\t} else {\n\t\t\t// If expecting a complete item, validate that completeness, or\n\t\t\t// otherwise abort.\n\t\t\tif ( ! state.itemIsComplete[ context ]?.[ itemId ] ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tfilteredItem = item;\n\t\t}\n\n\t\titems.push( filteredItem );\n\t}\n\n\treturn items;\n}\n\n/**\n * Returns items for a given query, or null if the items are not known. Caches\n * result both per state (by reference) and per query (by deep equality).\n * The caching approach is intended to be durable to query objects which are\n * deeply but not referentially equal, since otherwise:\n *\n * `getQueriedItems( state, {} ) !== getQueriedItems( state, {} )`\n *\n * @param {Object} state State object.\n * @param {?Object} query Optional query.\n *\n * @return {?Array} Query items.\n */\nexport const getQueriedItems = createSelector( ( state, query = {} ) => {\n\tlet queriedItemsCache = queriedItemsCacheByState.get( state );\n\tif ( queriedItemsCache ) {\n\t\tconst queriedItems = queriedItemsCache.get( query );\n\t\tif ( queriedItems !== undefined ) {\n\t\t\treturn queriedItems;\n\t\t}\n\t} else {\n\t\tqueriedItemsCache = new EquivalentKeyMap();\n\t\tqueriedItemsCacheByState.set( state, queriedItemsCache );\n\t}\n\n\tconst items = getQueriedItemsUncached( state, query );\n\tqueriedItemsCache.set( query, items );\n\treturn items;\n} );\n\nexport function getQueriedTotalItems( state, query = {} ) {\n\tconst { stableKey, context } = getQueryParts( query );\n\n\treturn state.queries?.[ context ]?.[ stableKey ]?.meta?.totalItems ?? null;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_rememo","_interopRequireDefault","require","_equivalentKeyMap","_getQueryParts","_utils","queriedItemsCacheByState","WeakMap","getQueriedItemsUncached","state","query","stableKey","page","perPage","include","fields","context","getQueryParts","itemIds","queries","startOffset","endOffset","length","Math","min","items","i","itemId","Array","isArray","includes","undefined","hasOwnProperty","item","filteredItem","f","field","split","value","forEach","fieldName","setNestedValue","itemIsComplete","push","getQueriedItems","exports","createSelector","queriedItemsCache","get","queriedItems","EquivalentKeyMap","set","getQueriedTotalItems","_state$queries$contex","meta","totalItems","getQueriedTotalPages","_state$queries$contex2","totalPages"],"sources":["@wordpress/core-data/src/queried-data/selectors.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\nimport EquivalentKeyMap from 'equivalent-key-map';\n\n/**\n * Internal dependencies\n */\nimport getQueryParts from './get-query-parts';\nimport { setNestedValue } from '../utils';\n\n/**\n * Cache of state keys to EquivalentKeyMap where the inner map tracks queries\n * to their resulting items set. WeakMap allows garbage collection on expired\n * state references.\n *\n * @type {WeakMap<Object,EquivalentKeyMap>}\n */\nconst queriedItemsCacheByState = new WeakMap();\n\n/**\n * Returns items for a given query, or null if the items are not known.\n *\n * @param {Object} state State object.\n * @param {?Object} query Optional query.\n *\n * @return {?Array} Query items.\n */\nfunction getQueriedItemsUncached( state, query ) {\n\tconst { stableKey, page, perPage, include, fields, context } =\n\t\tgetQueryParts( query );\n\tlet itemIds;\n\n\tif ( state.queries?.[ context ]?.[ stableKey ] ) {\n\t\titemIds = state.queries[ context ][ stableKey ].itemIds;\n\t}\n\n\tif ( ! itemIds ) {\n\t\treturn null;\n\t}\n\n\tconst startOffset = perPage === -1 ? 0 : ( page - 1 ) * perPage;\n\tconst endOffset =\n\t\tperPage === -1\n\t\t\t? itemIds.length\n\t\t\t: Math.min( startOffset + perPage, itemIds.length );\n\n\tconst items = [];\n\tfor ( let i = startOffset; i < endOffset; i++ ) {\n\t\tconst itemId = itemIds[ i ];\n\t\tif ( Array.isArray( include ) && ! include.includes( itemId ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( itemId === undefined ) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Having a target item ID doesn't guarantee that this object has been queried.\n\t\tif ( ! state.items[ context ]?.hasOwnProperty( itemId ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst item = state.items[ context ][ itemId ];\n\n\t\tlet filteredItem;\n\t\tif ( Array.isArray( fields ) ) {\n\t\t\tfilteredItem = {};\n\n\t\t\tfor ( let f = 0; f < fields.length; f++ ) {\n\t\t\t\tconst field = fields[ f ].split( '.' );\n\t\t\t\tlet value = item;\n\t\t\t\tfield.forEach( ( fieldName ) => {\n\t\t\t\t\tvalue = value?.[ fieldName ];\n\t\t\t\t} );\n\n\t\t\t\tsetNestedValue( filteredItem, field, value );\n\t\t\t}\n\t\t} else {\n\t\t\t// If expecting a complete item, validate that completeness, or\n\t\t\t// otherwise abort.\n\t\t\tif ( ! state.itemIsComplete[ context ]?.[ itemId ] ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tfilteredItem = item;\n\t\t}\n\n\t\titems.push( filteredItem );\n\t}\n\n\treturn items;\n}\n\n/**\n * Returns items for a given query, or null if the items are not known. Caches\n * result both per state (by reference) and per query (by deep equality).\n * The caching approach is intended to be durable to query objects which are\n * deeply but not referentially equal, since otherwise:\n *\n * `getQueriedItems( state, {} ) !== getQueriedItems( state, {} )`\n *\n * @param {Object} state State object.\n * @param {?Object} query Optional query.\n *\n * @return {?Array} Query items.\n */\nexport const getQueriedItems = createSelector( ( state, query = {} ) => {\n\tlet queriedItemsCache = queriedItemsCacheByState.get( state );\n\tif ( queriedItemsCache ) {\n\t\tconst queriedItems = queriedItemsCache.get( query );\n\t\tif ( queriedItems !== undefined ) {\n\t\t\treturn queriedItems;\n\t\t}\n\t} else {\n\t\tqueriedItemsCache = new EquivalentKeyMap();\n\t\tqueriedItemsCacheByState.set( state, queriedItemsCache );\n\t}\n\n\tconst items = getQueriedItemsUncached( state, query );\n\tqueriedItemsCache.set( query, items );\n\treturn items;\n} );\n\nexport function getQueriedTotalItems( state, query = {} ) {\n\tconst { stableKey, context } = getQueryParts( query );\n\n\treturn state.queries?.[ context ]?.[ stableKey ]?.meta?.totalItems ?? null;\n}\n\nexport function getQueriedTotalPages( state, query = {} ) {\n\tconst { stableKey, context } = getQueryParts( query );\n\n\treturn state.queries?.[ context ]?.[ stableKey ]?.meta?.totalPages ?? null;\n}\n"],"mappings":"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"}
@@ -70,7 +70,7 @@ const getEntityRecord = (kind, name, key = '', query) => async ({
70
70
  select,
71
71
  dispatch
72
72
  }) => {
73
- const configs = await dispatch((0, _entities.getOrLoadEntitiesConfig)(kind));
73
+ const configs = await dispatch((0, _entities.getOrLoadEntitiesConfig)(kind, name));
74
74
  const entityConfig = configs.find(config => config.name === name && config.kind === kind);
75
75
  if (!entityConfig || entityConfig?.__experimentalNoFetch) {
76
76
  return;
@@ -172,7 +172,7 @@ const getEditedEntityRecord = exports.getEditedEntityRecord = (0, _utils.forward
172
172
  const getEntityRecords = (kind, name, query = {}) => async ({
173
173
  dispatch
174
174
  }) => {
175
- const configs = await dispatch((0, _entities.getOrLoadEntitiesConfig)(kind));
175
+ const configs = await dispatch((0, _entities.getOrLoadEntitiesConfig)(kind, name));
176
176
  const entityConfig = configs.find(config => config.name === name && config.kind === kind);
177
177
  if (!entityConfig || entityConfig?.__experimentalNoFetch) {
178
178
  return;
@@ -202,7 +202,8 @@ const getEntityRecords = (kind, name, query = {}) => async ({
202
202
  });
203
203
  records = Object.values(await response.json());
204
204
  meta = {
205
- totalItems: parseInt(response.headers.get('X-WP-Total'))
205
+ totalItems: parseInt(response.headers.get('X-WP-Total')),
206
+ totalPages: parseInt(response.headers.get('X-WP-TotalPages'))
206
207
  };
207
208
  } else {
208
209
  records = Object.values(await (0, _apiFetch.default)({
@@ -369,7 +370,7 @@ exports.canUser = canUser;
369
370
  const canUserEditEntityRecord = (kind, name, recordId) => async ({
370
371
  dispatch
371
372
  }) => {
372
- const configs = await dispatch((0, _entities.getOrLoadEntitiesConfig)(kind));
373
+ const configs = await dispatch((0, _entities.getOrLoadEntitiesConfig)(kind, name));
373
374
  const entityConfig = configs.find(config => config.name === name && config.kind === kind);
374
375
  if (!entityConfig) {
375
376
  return;
@@ -559,12 +560,27 @@ const getUserPatternCategories = () => async ({
559
560
  };
560
561
  exports.getUserPatternCategories = getUserPatternCategories;
561
562
  const getNavigationFallbackId = () => async ({
562
- dispatch
563
+ dispatch,
564
+ select
563
565
  }) => {
564
566
  const fallback = await (0, _apiFetch.default)({
565
- path: (0, _url.addQueryArgs)('/wp-block-editor/v1/navigation-fallback')
567
+ path: (0, _url.addQueryArgs)('/wp-block-editor/v1/navigation-fallback', {
568
+ _embed: true
569
+ })
566
570
  });
571
+ const record = fallback?._embedded?.self;
567
572
  dispatch.receiveNavigationFallbackId(fallback?.id);
573
+ if (record) {
574
+ // If the fallback is already in the store, don't invalidate navigation queries.
575
+ // Otherwise, invalidate the cache for the scenario where there were no Navigation
576
+ // posts in the state and the fallback created one.
577
+ const existingFallbackEntityRecord = select.getEntityRecord('postType', 'wp_navigation', fallback.id);
578
+ const invalidateNavigationQueries = !existingFallbackEntityRecord;
579
+ dispatch.receiveEntityRecords('postType', 'wp_navigation', record, undefined, invalidateNavigationQueries);
580
+
581
+ // Resolve to avoid further network requests.
582
+ dispatch.finishResolution('getEntityRecord', ['postType', 'wp_navigation', fallback.id]);
583
+ }
568
584
  };
569
585
  exports.getNavigationFallbackId = getNavigationFallbackId;
570
586
  const getDefaultTemplateId = query => async ({
@@ -592,7 +608,7 @@ exports.getDefaultTemplateId = getDefaultTemplateId;
592
608
  const getRevisions = (kind, name, recordKey, query = {}) => async ({
593
609
  dispatch
594
610
  }) => {
595
- const configs = await dispatch((0, _entities.getOrLoadEntitiesConfig)(kind));
611
+ const configs = await dispatch((0, _entities.getOrLoadEntitiesConfig)(kind, name));
596
612
  const entityConfig = configs.find(config => config.name === name && config.kind === kind);
597
613
  if (!entityConfig || entityConfig?.__experimentalNoFetch) {
598
614
  return;
@@ -679,7 +695,7 @@ getRevisions.shouldInvalidate = (action, kind, name, recordKey) => action.type =
679
695
  const getRevision = (kind, name, recordKey, revisionKey, query) => async ({
680
696
  dispatch
681
697
  }) => {
682
- const configs = await dispatch((0, _entities.getOrLoadEntitiesConfig)(kind));
698
+ const configs = await dispatch((0, _entities.getOrLoadEntitiesConfig)(kind, name));
683
699
  const entityConfig = configs.find(config => config.name === name && config.kind === kind);
684
700
  if (!entityConfig || entityConfig?.__experimentalNoFetch) {
685
701
  return;