@wordpress/core-data 6.24.0 → 6.25.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 6.25.0 (2023-12-13)
6
+
5
7
  ## 6.24.0 (2023-11-29)
6
8
 
7
9
  ## 6.23.0 (2023-11-16)
package/build/entities.js CHANGED
@@ -25,11 +25,6 @@ var _sync = require("./sync");
25
25
  const DEFAULT_ENTITY_KEY = 'id';
26
26
  exports.DEFAULT_ENTITY_KEY = DEFAULT_ENTITY_KEY;
27
27
  const POST_RAW_ATTRIBUTES = ['title', 'excerpt', 'content'];
28
-
29
- // A hardcoded list of post types that support revisions.
30
- // Reflects post types in Core's src/wp-includes/post.php.
31
- // @TODO: Ideally this should be fetched from the `/types` REST API's view context.
32
- const POST_TYPE_ENTITIES_WITH_REVISIONS_SUPPORT = ['post', 'page', 'wp_block', 'wp_navigation', 'wp_template', 'wp_template_part'];
33
28
  const rootEntitiesConfig = [{
34
29
  label: (0, _i18n.__)('Base'),
35
30
  kind: 'root',
@@ -229,9 +224,6 @@ const rootEntitiesConfig = [{
229
224
  // Should be different from name.
230
225
  getTitle: record => record?.title?.rendered || record?.title,
231
226
  getRevisionsUrl: (parentId, revisionId) => `/wp/v2/global-styles/${parentId}/revisions${revisionId ? '/' + revisionId : ''}`,
232
- supports: {
233
- revisions: true
234
- },
235
227
  supportsPagination: true
236
228
  }, {
237
229
  label: (0, _i18n.__)('Themes'),
@@ -324,9 +316,6 @@ async function loadPostTypeEntities() {
324
316
  mergedEdits: {
325
317
  meta: true
326
318
  },
327
- supports: {
328
- revisions: POST_TYPE_ENTITIES_WITH_REVISIONS_SUPPORT.includes(postType?.slug)
329
- },
330
319
  rawAttributes: POST_RAW_ATTRIBUTES,
331
320
  getTitle: record => {
332
321
  var _record$slug;
@@ -1 +1 @@
1
- {"version":3,"names":["_changeCase","require","_apiFetch","_interopRequireDefault","_i18n","_actions","_sync","DEFAULT_ENTITY_KEY","exports","POST_RAW_ATTRIBUTES","POST_TYPE_ENTITIES_WITH_REVISIONS_SUPPORT","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","supports","revisions","additionalEntityConfigLoaders","loadEntities","loadPostTypeEntities","loadTaxonomyEntities","prePersistPostType","persistedRecord","edits","newEdits","status","postTypes","map","postType","_postType$rest_namesp","isTemplate","includes","namespace","rest_namespace","rest_base","selection","mergedEdits","meta","slug","_record$slug","capitalCase","String","__unstablePrePersist","undefined","__unstable_rest_base","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';\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\n// A hardcoded list of post types that support revisions.\n// Reflects post types in Core's src/wp-includes/post.php.\n// @TODO: Ideally this should be fetched from the `/types` REST API's view context.\nconst POST_TYPE_ENTITIES_WITH_REVISIONS_SUPPORT = [\n\t'post',\n\t'page',\n\t'wp_block',\n\t'wp_navigation',\n\t'wp_template',\n\t'wp_template_part',\n];\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\tsupports: {\n\t\t\trevisions: true,\n\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\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\tsupports: {\n\t\t\t\trevisions: POST_TYPE_ENTITIES_WITH_REVISIONS_SUPPORT.includes(\n\t\t\t\t\tpostType?.slug\n\t\t\t\t),\n\t\t\t},\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\t\t\t\t\tObject.entries( changes ).forEach( ( [ key, value ] ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdocument.get( key ) !== value &&\n\t\t\t\t\t\t\ttypeof value !== 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tdocument.set( key, value );\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","_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","postTypes","map","postType","_postType$rest_namesp","isTemplate","includes","namespace","rest_namespace","rest_base","selection","mergedEdits","meta","_record$slug","capitalCase","slug","String","__unstablePrePersist","undefined","__unstable_rest_base","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';\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\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\t\t\t\t\tObject.entries( changes ).forEach( ( [ key, value ] ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdocument.get( key ) !== value &&\n\t\t\t\t\t\t\ttypeof value !== 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tdocument.set( key, value );\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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"}
@@ -5,12 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = getFootnotesOrder;
8
- var _richText = require("@wordpress/rich-text");
9
8
  var _getRichTextValuesCached = _interopRequireDefault(require("./get-rich-text-values-cached"));
10
- /**
11
- * WordPress dependencies
12
- */
13
-
14
9
  /**
15
10
  * Internal dependencies
16
11
  */
@@ -20,14 +15,12 @@ function getBlockFootnotesOrder(block) {
20
15
  if (!cache.has(block)) {
21
16
  const order = [];
22
17
  for (const value of (0, _getRichTextValuesCached.default)(block)) {
23
- if (!value || !value.includes('data-fn')) {
18
+ if (!value) {
24
19
  continue;
25
20
  }
26
21
 
27
22
  // replacements is a sparse array, use forEach to skip empty slots.
28
- (0, _richText.create)({
29
- html: value
30
- }).replacements.forEach(({
23
+ value.replacements.forEach(({
31
24
  type,
32
25
  attributes
33
26
  }) => {
@@ -1 +1 @@
1
- {"version":3,"names":["_richText","require","_getRichTextValuesCached","_interopRequireDefault","cache","WeakMap","getBlockFootnotesOrder","block","has","order","value","getRichTextValuesCached","includes","create","html","replacements","forEach","type","attributes","push","set","get","getFootnotesOrder","blocks","flatMap"],"sources":["@wordpress/core-data/src/footnotes/get-footnotes-order.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { create } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport getRichTextValuesCached from './get-rich-text-values-cached';\n\nconst cache = new WeakMap();\n\nfunction getBlockFootnotesOrder( block ) {\n\tif ( ! cache.has( block ) ) {\n\t\tconst order = [];\n\t\tfor ( const value of getRichTextValuesCached( block ) ) {\n\t\t\tif ( ! value || ! value.includes( 'data-fn' ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// replacements is a sparse array, use forEach to skip empty slots.\n\t\t\tcreate( { html: value } ).replacements.forEach(\n\t\t\t\t( { type, attributes } ) => {\n\t\t\t\t\tif ( type === 'core/footnote' ) {\n\t\t\t\t\t\torder.push( attributes[ 'data-fn' ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tcache.set( block, order );\n\t}\n\n\treturn cache.get( block );\n}\n\nexport default function getFootnotesOrder( blocks ) {\n\t// We can only separate getting order from blocks at the root level. For\n\t// deeper inner blocks, this will not work since it's possible to have both\n\t// inner blocks and block attributes, so order needs to be computed from the\n\t// Edit functions as a whole.\n\treturn blocks.flatMap( getBlockFootnotesOrder );\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AAKA,IAAAC,wBAAA,GAAAC,sBAAA,CAAAF,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA,MAAMG,KAAK,GAAG,IAAIC,OAAO,CAAC,CAAC;AAE3B,SAASC,sBAAsBA,CAAEC,KAAK,EAAG;EACxC,IAAK,CAAEH,KAAK,CAACI,GAAG,CAAED,KAAM,CAAC,EAAG;IAC3B,MAAME,KAAK,GAAG,EAAE;IAChB,KAAM,MAAMC,KAAK,IAAI,IAAAC,gCAAuB,EAAEJ,KAAM,CAAC,EAAG;MACvD,IAAK,CAAEG,KAAK,IAAI,CAAEA,KAAK,CAACE,QAAQ,CAAE,SAAU,CAAC,EAAG;QAC/C;MACD;;MAEA;MACA,IAAAC,gBAAM,EAAE;QAAEC,IAAI,EAAEJ;MAAM,CAAE,CAAC,CAACK,YAAY,CAACC,OAAO,CAC7C,CAAE;QAAEC,IAAI;QAAEC;MAAW,CAAC,KAAM;QAC3B,IAAKD,IAAI,KAAK,eAAe,EAAG;UAC/BR,KAAK,CAACU,IAAI,CAAED,UAAU,CAAE,SAAS,CAAG,CAAC;QACtC;MACD,CACD,CAAC;IACF;IACAd,KAAK,CAACgB,GAAG,CAAEb,KAAK,EAAEE,KAAM,CAAC;EAC1B;EAEA,OAAOL,KAAK,CAACiB,GAAG,CAAEd,KAAM,CAAC;AAC1B;AAEe,SAASe,iBAAiBA,CAAEC,MAAM,EAAG;EACnD;EACA;EACA;EACA;EACA,OAAOA,MAAM,CAACC,OAAO,CAAElB,sBAAuB,CAAC;AAChD"}
1
+ {"version":3,"names":["_getRichTextValuesCached","_interopRequireDefault","require","cache","WeakMap","getBlockFootnotesOrder","block","has","order","value","getRichTextValuesCached","replacements","forEach","type","attributes","push","set","get","getFootnotesOrder","blocks","flatMap"],"sources":["@wordpress/core-data/src/footnotes/get-footnotes-order.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport getRichTextValuesCached from './get-rich-text-values-cached';\n\nconst cache = new WeakMap();\n\nfunction getBlockFootnotesOrder( block ) {\n\tif ( ! cache.has( block ) ) {\n\t\tconst order = [];\n\t\tfor ( const value of getRichTextValuesCached( block ) ) {\n\t\t\tif ( ! value ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// replacements is a sparse array, use forEach to skip empty slots.\n\t\t\tvalue.replacements.forEach( ( { type, attributes } ) => {\n\t\t\t\tif ( type === 'core/footnote' ) {\n\t\t\t\t\torder.push( attributes[ 'data-fn' ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\tcache.set( block, order );\n\t}\n\n\treturn cache.get( block );\n}\n\nexport default function getFootnotesOrder( blocks ) {\n\t// We can only separate getting order from blocks at the root level. For\n\t// deeper inner blocks, this will not work since it's possible to have both\n\t// inner blocks and block attributes, so order needs to be computed from the\n\t// Edit functions as a whole.\n\treturn blocks.flatMap( getBlockFootnotesOrder );\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,wBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAHA;AACA;AACA;;AAGA,MAAMC,KAAK,GAAG,IAAIC,OAAO,CAAC,CAAC;AAE3B,SAASC,sBAAsBA,CAAEC,KAAK,EAAG;EACxC,IAAK,CAAEH,KAAK,CAACI,GAAG,CAAED,KAAM,CAAC,EAAG;IAC3B,MAAME,KAAK,GAAG,EAAE;IAChB,KAAM,MAAMC,KAAK,IAAI,IAAAC,gCAAuB,EAAEJ,KAAM,CAAC,EAAG;MACvD,IAAK,CAAEG,KAAK,EAAG;QACd;MACD;;MAEA;MACAA,KAAK,CAACE,YAAY,CAACC,OAAO,CAAE,CAAE;QAAEC,IAAI;QAAEC;MAAW,CAAC,KAAM;QACvD,IAAKD,IAAI,KAAK,eAAe,EAAG;UAC/BL,KAAK,CAACO,IAAI,CAAED,UAAU,CAAE,SAAS,CAAG,CAAC;QACtC;MACD,CAAE,CAAC;IACJ;IACAX,KAAK,CAACa,GAAG,CAAEV,KAAK,EAAEE,KAAM,CAAC;EAC1B;EAEA,OAAOL,KAAK,CAACc,GAAG,CAAEX,KAAM,CAAC;AAC1B;AAEe,SAASY,iBAAiBA,CAAEC,MAAM,EAAG;EACnD;EACA;EACA;EACA;EACA,OAAOA,MAAM,CAACC,OAAO,CAAEf,sBAAuB,CAAC;AAChD"}
@@ -46,15 +46,12 @@ function updateFootnotesFromMeta(blocks, meta) {
46
46
  attributes[key] = value.map(updateAttributes);
47
47
  continue;
48
48
  }
49
- if (typeof value !== 'string') {
50
- continue;
51
- }
52
- if (value.indexOf('data-fn') === -1) {
49
+
50
+ // To do, remove support for string values?
51
+ if (typeof value !== 'string' && !(value instanceof _richText.RichTextData)) {
53
52
  continue;
54
53
  }
55
- const richTextValue = (0, _richText.create)({
56
- html: value
57
- });
54
+ const richTextValue = typeof value === 'string' ? _richText.RichTextData.fromHTMLString(value) : value;
58
55
  richTextValue.replacements.forEach(replacement => {
59
56
  if (replacement.type === 'core/footnote') {
60
57
  const id = replacement.attributes['data-fn'];
@@ -69,9 +66,7 @@ function updateFootnotesFromMeta(blocks, meta) {
69
66
  });
70
67
  }
71
68
  });
72
- attributes[key] = (0, _richText.toHTMLString)({
73
- value: richTextValue
74
- });
69
+ attributes[key] = typeof value === 'string' ? richTextValue.toHTMLString() : richTextValue;
75
70
  }
76
71
  return attributes;
77
72
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_richText","require","_getFootnotesOrder","_interopRequireDefault","oldFootnotes","updateFootnotesFromMeta","blocks","meta","output","footnotes","undefined","newOrder","getFootnotesOrder","JSON","parse","currentOrder","map","fn","id","join","newFootnotes","fnId","find","content","updateAttributes","attributes","Array","isArray","key","value","indexOf","richTextValue","create","html","replacements","forEach","replacement","type","index","countValue","innerHTML","text","String","toHTMLString","updateBlocksAttributes","__blocks","block","innerBlocks","newBlocks","reduce","acc","includes","stringify"],"sources":["@wordpress/core-data/src/footnotes/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { create, toHTMLString } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport getFootnotesOrder from './get-footnotes-order';\n\nlet oldFootnotes = {};\n\nexport function updateFootnotesFromMeta( blocks, meta ) {\n\tconst output = { blocks };\n\tif ( ! meta ) return output;\n\n\t// If meta.footnotes is empty, it means the meta is not registered.\n\tif ( meta.footnotes === undefined ) return output;\n\n\tconst newOrder = getFootnotesOrder( blocks );\n\n\tconst footnotes = meta.footnotes ? JSON.parse( meta.footnotes ) : [];\n\tconst currentOrder = footnotes.map( ( fn ) => fn.id );\n\n\tif ( currentOrder.join( '' ) === newOrder.join( '' ) ) return output;\n\n\tconst newFootnotes = newOrder.map(\n\t\t( fnId ) =>\n\t\t\tfootnotes.find( ( fn ) => fn.id === fnId ) ||\n\t\t\toldFootnotes[ fnId ] || {\n\t\t\t\tid: fnId,\n\t\t\t\tcontent: '',\n\t\t\t}\n\t);\n\n\tfunction updateAttributes( attributes ) {\n\t\t// Only attempt to update attributes, if attributes is an object.\n\t\tif (\n\t\t\t! attributes ||\n\t\t\tArray.isArray( attributes ) ||\n\t\t\ttypeof attributes !== 'object'\n\t\t) {\n\t\t\treturn attributes;\n\t\t}\n\n\t\tattributes = { ...attributes };\n\n\t\tfor ( const key in attributes ) {\n\t\t\tconst value = attributes[ key ];\n\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\tattributes[ key ] = value.map( updateAttributes );\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( typeof value !== 'string' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( value.indexOf( 'data-fn' ) === -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst richTextValue = create( { html: value } );\n\n\t\t\trichTextValue.replacements.forEach( ( replacement ) => {\n\t\t\t\tif ( replacement.type === 'core/footnote' ) {\n\t\t\t\t\tconst id = replacement.attributes[ 'data-fn' ];\n\t\t\t\t\tconst index = newOrder.indexOf( id );\n\t\t\t\t\t// The innerHTML contains the count wrapped in a link.\n\t\t\t\t\tconst countValue = create( {\n\t\t\t\t\t\thtml: replacement.innerHTML,\n\t\t\t\t\t} );\n\t\t\t\t\tcountValue.text = String( index + 1 );\n\t\t\t\t\treplacement.innerHTML = toHTMLString( {\n\t\t\t\t\t\tvalue: countValue,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tattributes[ key ] = toHTMLString( { value: richTextValue } );\n\t\t}\n\n\t\treturn attributes;\n\t}\n\n\tfunction updateBlocksAttributes( __blocks ) {\n\t\treturn __blocks.map( ( block ) => {\n\t\t\treturn {\n\t\t\t\t...block,\n\t\t\t\tattributes: updateAttributes( block.attributes ),\n\t\t\t\tinnerBlocks: updateBlocksAttributes( block.innerBlocks ),\n\t\t\t};\n\t\t} );\n\t}\n\n\t// We need to go through all block attributes deeply and update the\n\t// footnote anchor numbering (textContent) to match the new order.\n\tconst newBlocks = updateBlocksAttributes( blocks );\n\n\toldFootnotes = {\n\t\t...oldFootnotes,\n\t\t...footnotes.reduce( ( acc, fn ) => {\n\t\t\tif ( ! newOrder.includes( fn.id ) ) {\n\t\t\t\tacc[ fn.id ] = fn;\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, {} ),\n\t};\n\n\treturn {\n\t\tmeta: {\n\t\t\t...meta,\n\t\t\tfootnotes: JSON.stringify( newFootnotes ),\n\t\t},\n\t\tblocks: newBlocks,\n\t};\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_richText","require","_getFootnotesOrder","_interopRequireDefault","oldFootnotes","updateFootnotesFromMeta","blocks","meta","output","footnotes","undefined","newOrder","getFootnotesOrder","JSON","parse","currentOrder","map","fn","id","join","newFootnotes","fnId","find","content","updateAttributes","attributes","Array","isArray","key","value","RichTextData","richTextValue","fromHTMLString","replacements","forEach","replacement","type","index","indexOf","countValue","create","html","innerHTML","text","String","toHTMLString","updateBlocksAttributes","__blocks","block","innerBlocks","newBlocks","reduce","acc","includes","stringify"],"sources":["@wordpress/core-data/src/footnotes/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { RichTextData, create, toHTMLString } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport getFootnotesOrder from './get-footnotes-order';\n\nlet oldFootnotes = {};\n\nexport function updateFootnotesFromMeta( blocks, meta ) {\n\tconst output = { blocks };\n\tif ( ! meta ) return output;\n\n\t// If meta.footnotes is empty, it means the meta is not registered.\n\tif ( meta.footnotes === undefined ) return output;\n\n\tconst newOrder = getFootnotesOrder( blocks );\n\n\tconst footnotes = meta.footnotes ? JSON.parse( meta.footnotes ) : [];\n\tconst currentOrder = footnotes.map( ( fn ) => fn.id );\n\n\tif ( currentOrder.join( '' ) === newOrder.join( '' ) ) return output;\n\n\tconst newFootnotes = newOrder.map(\n\t\t( fnId ) =>\n\t\t\tfootnotes.find( ( fn ) => fn.id === fnId ) ||\n\t\t\toldFootnotes[ fnId ] || {\n\t\t\t\tid: fnId,\n\t\t\t\tcontent: '',\n\t\t\t}\n\t);\n\n\tfunction updateAttributes( attributes ) {\n\t\t// Only attempt to update attributes, if attributes is an object.\n\t\tif (\n\t\t\t! attributes ||\n\t\t\tArray.isArray( attributes ) ||\n\t\t\ttypeof attributes !== 'object'\n\t\t) {\n\t\t\treturn attributes;\n\t\t}\n\n\t\tattributes = { ...attributes };\n\n\t\tfor ( const key in attributes ) {\n\t\t\tconst value = attributes[ key ];\n\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\tattributes[ key ] = value.map( updateAttributes );\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// To do, remove support for string values?\n\t\t\tif (\n\t\t\t\ttypeof value !== 'string' &&\n\t\t\t\t! ( value instanceof RichTextData )\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst richTextValue =\n\t\t\t\ttypeof value === 'string'\n\t\t\t\t\t? RichTextData.fromHTMLString( value )\n\t\t\t\t\t: value;\n\n\t\t\trichTextValue.replacements.forEach( ( replacement ) => {\n\t\t\t\tif ( replacement.type === 'core/footnote' ) {\n\t\t\t\t\tconst id = replacement.attributes[ 'data-fn' ];\n\t\t\t\t\tconst index = newOrder.indexOf( id );\n\t\t\t\t\t// The innerHTML contains the count wrapped in a link.\n\t\t\t\t\tconst countValue = create( {\n\t\t\t\t\t\thtml: replacement.innerHTML,\n\t\t\t\t\t} );\n\t\t\t\t\tcountValue.text = String( index + 1 );\n\t\t\t\t\treplacement.innerHTML = toHTMLString( {\n\t\t\t\t\t\tvalue: countValue,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tattributes[ key ] =\n\t\t\t\ttypeof value === 'string'\n\t\t\t\t\t? richTextValue.toHTMLString()\n\t\t\t\t\t: richTextValue;\n\t\t}\n\n\t\treturn attributes;\n\t}\n\n\tfunction updateBlocksAttributes( __blocks ) {\n\t\treturn __blocks.map( ( block ) => {\n\t\t\treturn {\n\t\t\t\t...block,\n\t\t\t\tattributes: updateAttributes( block.attributes ),\n\t\t\t\tinnerBlocks: updateBlocksAttributes( block.innerBlocks ),\n\t\t\t};\n\t\t} );\n\t}\n\n\t// We need to go through all block attributes deeply and update the\n\t// footnote anchor numbering (textContent) to match the new order.\n\tconst newBlocks = updateBlocksAttributes( blocks );\n\n\toldFootnotes = {\n\t\t...oldFootnotes,\n\t\t...footnotes.reduce( ( acc, fn ) => {\n\t\t\tif ( ! newOrder.includes( fn.id ) ) {\n\t\t\t\tacc[ fn.id ] = fn;\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, {} ),\n\t};\n\n\treturn {\n\t\tmeta: {\n\t\t\t...meta,\n\t\t\tfootnotes: JSON.stringify( newFootnotes ),\n\t\t},\n\t\tblocks: newBlocks,\n\t};\n}\n"],"mappings":"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"}
package/build/reducer.js CHANGED
@@ -344,33 +344,30 @@ function entity(entityConfig) {
344
344
  }
345
345
  return state;
346
346
  },
347
- // Add revisions to the state tree if the post type supports it.
348
- ...(entityConfig?.supports?.revisions ? {
349
- revisions: (state = {}, action) => {
350
- // Use the same queriedDataReducer shape for revisions.
351
- if (action.type === 'RECEIVE_ITEM_REVISIONS') {
352
- const recordKey = action.recordKey;
353
- delete action.recordKey;
354
- const newState = (0, _queriedData.reducer)(state[recordKey], {
355
- ...action,
356
- type: 'RECEIVE_ITEMS'
357
- });
358
- return {
359
- ...state,
360
- [recordKey]: newState
361
- };
362
- }
363
- if (action.type === 'REMOVE_ITEMS') {
364
- return Object.fromEntries(Object.entries(state).filter(([id]) => !action.itemIds.some(itemId => {
365
- if (Number.isInteger(itemId)) {
366
- return itemId === +id;
367
- }
368
- return itemId === id;
369
- })));
370
- }
371
- return state;
347
+ revisions: (state = {}, action) => {
348
+ // Use the same queriedDataReducer shape for revisions.
349
+ if (action.type === 'RECEIVE_ITEM_REVISIONS') {
350
+ const recordKey = action.recordKey;
351
+ delete action.recordKey;
352
+ const newState = (0, _queriedData.reducer)(state[recordKey], {
353
+ ...action,
354
+ type: 'RECEIVE_ITEMS'
355
+ });
356
+ return {
357
+ ...state,
358
+ [recordKey]: newState
359
+ };
372
360
  }
373
- } : {})
361
+ if (action.type === 'REMOVE_ITEMS') {
362
+ return Object.fromEntries(Object.entries(state).filter(([id]) => !action.itemIds.some(itemId => {
363
+ if (Number.isInteger(itemId)) {
364
+ return itemId === +id;
365
+ }
366
+ return itemId === id;
367
+ })));
368
+ }
369
+ return state;
370
+ }
374
371
  }));
375
372
  }
376
373
 
@@ -1 +1 @@
1
- {"version":3,"names":["_es","_interopRequireDefault","require","_compose","_data","_undoManager","_utils","_queriedData","_entities","terms","state","action","type","taxonomy","users","byId","queries","reduce","newUsers","user","id","queryID","map","currentUser","taxonomies","currentTheme","undefined","stylesheet","currentGlobalStylesId","themeBaseGlobalStyles","globalStyles","themeGlobalStyleVariations","variations","withMultiEntityRecordEdits","reducer","record","newState","forEach","kind","name","recordId","changes","edits","Object","entries","acc","key","value","from","to","entity","entityConfig","compose","ifMatchingAction","replaceAction","DEFAULT_ENTITY_KEY","combineReducers","queriedData","queriedDataReducer","_action$query$context","context","query","nextState","items","nextEdits","keys","_record$key$raw","fastDeepEqual","raw","persistedEdits","length","saving","pending","error","isAutosave","deleting","supports","revisions","recordKey","fromEntries","filter","itemIds","some","itemId","Number","isInteger","entitiesConfig","rootEntitiesConfig","entities","newConfig","config","entitiesDataReducer","entitiesByKind","push","memo","subEntities","kindReducer","kindMemo","newData","records","exports","undoManager","createUndoManager","editsReference","embedPreviews","url","preview","userPermissions","isAllowed","autosaves","postId","autosavesData","blockPatterns","patterns","blockPatternCategories","categories","userPatternCategories","patternCategories","navigationFallbackId","fallbackId","themeGlobalStyleRevisions","currentId","defaultTemplates","JSON","stringify","templateId","_default","default"],"sources":["@wordpress/core-data/src/reducer.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { combineReducers } from '@wordpress/data';\nimport { createUndoManager } from '@wordpress/undo-manager';\n\n/**\n * Internal dependencies\n */\nimport { ifMatchingAction, replaceAction } from './utils';\nimport { reducer as queriedDataReducer } from './queried-data';\nimport { rootEntitiesConfig, DEFAULT_ENTITY_KEY } from './entities';\n\n/** @typedef {import('./types').AnyFunction} AnyFunction */\n\n/**\n * Reducer managing terms state. Keyed by taxonomy slug, the value is either\n * undefined (if no request has been made for given taxonomy), null (if a\n * request is in-flight for given taxonomy), or the array of terms for the\n * taxonomy.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function terms( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_TERMS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.taxonomy ]: action.terms,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing authors state. Keyed by id.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function users( state = { byId: {}, queries: {} }, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_USER_QUERY':\n\t\t\treturn {\n\t\t\t\tbyId: {\n\t\t\t\t\t...state.byId,\n\t\t\t\t\t// Key users by their ID.\n\t\t\t\t\t...action.users.reduce(\n\t\t\t\t\t\t( newUsers, user ) => ( {\n\t\t\t\t\t\t\t...newUsers,\n\t\t\t\t\t\t\t[ user.id ]: user,\n\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\tqueries: {\n\t\t\t\t\t...state.queries,\n\t\t\t\t\t[ action.queryID ]: action.users.map( ( user ) => user.id ),\n\t\t\t\t},\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing current user state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function currentUser( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_CURRENT_USER':\n\t\t\treturn action.currentUser;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing taxonomies.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function taxonomies( state = [], action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_TAXONOMIES':\n\t\t\treturn action.taxonomies;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the current theme.\n *\n * @param {string|undefined} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string|undefined} Updated state.\n */\nexport function currentTheme( state = undefined, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_CURRENT_THEME':\n\t\t\treturn action.currentTheme.stylesheet;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the current global styles id.\n *\n * @param {string|undefined} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string|undefined} Updated state.\n */\nexport function currentGlobalStylesId( state = undefined, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_CURRENT_GLOBAL_STYLES_ID':\n\t\t\treturn action.id;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the theme base global styles.\n *\n * @param {Record<string, object>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string, object>} Updated state.\n */\nexport function themeBaseGlobalStyles( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_THEME_GLOBAL_STYLES':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.stylesheet ]: action.globalStyles,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the theme global styles variations.\n *\n * @param {Record<string, object>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string, object>} Updated state.\n */\nexport function themeGlobalStyleVariations( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_THEME_GLOBAL_STYLE_VARIATIONS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.stylesheet ]: action.variations,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\nconst withMultiEntityRecordEdits = ( reducer ) => ( state, action ) => {\n\tif ( action.type === 'UNDO' || action.type === 'REDO' ) {\n\t\tconst { record } = action;\n\n\t\tlet newState = state;\n\t\trecord.forEach( ( { id: { kind, name, recordId }, changes } ) => {\n\t\t\tnewState = reducer( newState, {\n\t\t\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId,\n\t\t\t\tedits: Object.entries( changes ).reduce(\n\t\t\t\t\t( acc, [ key, value ] ) => {\n\t\t\t\t\t\tacc[ key ] =\n\t\t\t\t\t\t\taction.type === 'UNDO' ? value.from : value.to;\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t),\n\t\t\t} );\n\t\t} );\n\t\treturn newState;\n\t}\n\n\treturn reducer( state, action );\n};\n\n/**\n * Higher Order Reducer for a given entity config. It supports:\n *\n * - Fetching\n * - Editing\n * - Saving\n *\n * @param {Object} entityConfig Entity config.\n *\n * @return {AnyFunction} Reducer.\n */\nfunction entity( entityConfig ) {\n\treturn compose( [\n\t\twithMultiEntityRecordEdits,\n\n\t\t// Limit to matching action type so we don't attempt to replace action on\n\t\t// an unhandled action.\n\t\tifMatchingAction(\n\t\t\t( action ) =>\n\t\t\t\taction.name &&\n\t\t\t\taction.kind &&\n\t\t\t\taction.name === entityConfig.name &&\n\t\t\t\taction.kind === entityConfig.kind\n\t\t),\n\n\t\t// Inject the entity config into the action.\n\t\treplaceAction( ( action ) => {\n\t\t\treturn {\n\t\t\t\tkey: entityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t...action,\n\t\t\t};\n\t\t} ),\n\t] )(\n\t\tcombineReducers( {\n\t\t\tqueriedData: queriedDataReducer,\n\t\t\tedits: ( state = {}, action ) => {\n\t\t\t\tswitch ( action.type ) {\n\t\t\t\t\tcase 'RECEIVE_ITEMS':\n\t\t\t\t\t\tconst context = action?.query?.context ?? 'default';\n\t\t\t\t\t\tif ( context !== 'default' ) {\n\t\t\t\t\t\t\treturn state;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst nextState = { ...state };\n\n\t\t\t\t\t\tfor ( const record of action.items ) {\n\t\t\t\t\t\t\tconst recordId = record[ action.key ];\n\t\t\t\t\t\t\tconst edits = nextState[ recordId ];\n\t\t\t\t\t\t\tif ( ! edits ) {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst nextEdits = Object.keys( edits ).reduce(\n\t\t\t\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\t\t\t\t// If the edited value is still different to the persisted value,\n\t\t\t\t\t\t\t\t\t// keep the edited value in edits.\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t// Edits are the \"raw\" attribute values, but records may have\n\t\t\t\t\t\t\t\t\t\t// objects with more properties, so we use `get` here for the\n\t\t\t\t\t\t\t\t\t\t// comparison.\n\t\t\t\t\t\t\t\t\t\t! fastDeepEqual(\n\t\t\t\t\t\t\t\t\t\t\tedits[ key ],\n\t\t\t\t\t\t\t\t\t\t\trecord[ key ]?.raw ?? record[ key ]\n\t\t\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\t\t\t// Sometimes the server alters the sent value which means\n\t\t\t\t\t\t\t\t\t\t// we need to also remove the edits before the api request.\n\t\t\t\t\t\t\t\t\t\t( ! action.persistedEdits ||\n\t\t\t\t\t\t\t\t\t\t\t! fastDeepEqual(\n\t\t\t\t\t\t\t\t\t\t\t\tedits[ key ],\n\t\t\t\t\t\t\t\t\t\t\t\taction.persistedEdits[ key ]\n\t\t\t\t\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tacc[ key ] = edits[ key ];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( Object.keys( nextEdits ).length ) {\n\t\t\t\t\t\t\t\tnextState[ recordId ] = nextEdits;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdelete nextState[ recordId ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn nextState;\n\n\t\t\t\t\tcase 'EDIT_ENTITY_RECORD':\n\t\t\t\t\t\tconst nextEdits = {\n\t\t\t\t\t\t\t...state[ action.recordId ],\n\t\t\t\t\t\t\t...action.edits,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tObject.keys( nextEdits ).forEach( ( key ) => {\n\t\t\t\t\t\t\t// Delete cleared edits so that the properties\n\t\t\t\t\t\t\t// are not considered dirty.\n\t\t\t\t\t\t\tif ( nextEdits[ key ] === undefined ) {\n\t\t\t\t\t\t\t\tdelete nextEdits[ key ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t[ action.recordId ]: nextEdits,\n\t\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn state;\n\t\t\t},\n\n\t\t\tsaving: ( state = {}, action ) => {\n\t\t\t\tswitch ( action.type ) {\n\t\t\t\t\tcase 'SAVE_ENTITY_RECORD_START':\n\t\t\t\t\tcase 'SAVE_ENTITY_RECORD_FINISH':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t[ action.recordId ]: {\n\t\t\t\t\t\t\t\tpending:\n\t\t\t\t\t\t\t\t\taction.type === 'SAVE_ENTITY_RECORD_START',\n\t\t\t\t\t\t\t\terror: action.error,\n\t\t\t\t\t\t\t\tisAutosave: action.isAutosave,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn state;\n\t\t\t},\n\n\t\t\tdeleting: ( state = {}, action ) => {\n\t\t\t\tswitch ( action.type ) {\n\t\t\t\t\tcase 'DELETE_ENTITY_RECORD_START':\n\t\t\t\t\tcase 'DELETE_ENTITY_RECORD_FINISH':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t[ action.recordId ]: {\n\t\t\t\t\t\t\t\tpending:\n\t\t\t\t\t\t\t\t\taction.type ===\n\t\t\t\t\t\t\t\t\t'DELETE_ENTITY_RECORD_START',\n\t\t\t\t\t\t\t\terror: action.error,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn state;\n\t\t\t},\n\n\t\t\t// Add revisions to the state tree if the post type supports it.\n\t\t\t...( entityConfig?.supports?.revisions\n\t\t\t\t? {\n\t\t\t\t\t\trevisions: ( state = {}, action ) => {\n\t\t\t\t\t\t\t// Use the same queriedDataReducer shape for revisions.\n\t\t\t\t\t\t\tif ( action.type === 'RECEIVE_ITEM_REVISIONS' ) {\n\t\t\t\t\t\t\t\tconst recordKey = action.recordKey;\n\t\t\t\t\t\t\t\tdelete action.recordKey;\n\t\t\t\t\t\t\t\tconst newState = queriedDataReducer(\n\t\t\t\t\t\t\t\t\tstate[ recordKey ],\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t...action,\n\t\t\t\t\t\t\t\t\t\ttype: 'RECEIVE_ITEMS',\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\t[ recordKey ]: newState,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( action.type === 'REMOVE_ITEMS' ) {\n\t\t\t\t\t\t\t\treturn Object.fromEntries(\n\t\t\t\t\t\t\t\t\tObject.entries( state ).filter(\n\t\t\t\t\t\t\t\t\t\t( [ id ] ) =>\n\t\t\t\t\t\t\t\t\t\t\t! action.itemIds.some(\n\t\t\t\t\t\t\t\t\t\t\t\t( itemId ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumber.isInteger(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\titemId\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn itemId === +id;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn itemId === id;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn state;\n\t\t\t\t\t\t},\n\t\t\t\t }\n\t\t\t\t: {} ),\n\t\t} )\n\t);\n}\n\n/**\n * Reducer keeping track of the registered entities.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function entitiesConfig( state = rootEntitiesConfig, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'ADD_ENTITIES':\n\t\t\treturn [ ...state, ...action.entities ];\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer keeping track of the registered entities config and data.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport const entities = ( state = {}, action ) => {\n\tconst newConfig = entitiesConfig( state.config, action );\n\n\t// Generates a dynamic reducer for the entities.\n\tlet entitiesDataReducer = state.reducer;\n\tif ( ! entitiesDataReducer || newConfig !== state.config ) {\n\t\tconst entitiesByKind = newConfig.reduce( ( acc, record ) => {\n\t\t\tconst { kind } = record;\n\t\t\tif ( ! acc[ kind ] ) {\n\t\t\t\tacc[ kind ] = [];\n\t\t\t}\n\t\t\tacc[ kind ].push( record );\n\t\t\treturn acc;\n\t\t}, {} );\n\n\t\tentitiesDataReducer = combineReducers(\n\t\t\tObject.entries( entitiesByKind ).reduce(\n\t\t\t\t( memo, [ kind, subEntities ] ) => {\n\t\t\t\t\tconst kindReducer = combineReducers(\n\t\t\t\t\t\tsubEntities.reduce(\n\t\t\t\t\t\t\t( kindMemo, entityConfig ) => ( {\n\t\t\t\t\t\t\t\t...kindMemo,\n\t\t\t\t\t\t\t\t[ entityConfig.name ]: entity( entityConfig ),\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\n\t\t\t\t\tmemo[ kind ] = kindReducer;\n\t\t\t\t\treturn memo;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t)\n\t\t);\n\t}\n\n\tconst newData = entitiesDataReducer( state.records, action );\n\n\tif (\n\t\tnewData === state.records &&\n\t\tnewConfig === state.config &&\n\t\tentitiesDataReducer === state.reducer\n\t) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\treducer: entitiesDataReducer,\n\t\trecords: newData,\n\t\tconfig: newConfig,\n\t};\n};\n\n/**\n * @type {UndoManager}\n */\nexport function undoManager( state = createUndoManager() ) {\n\treturn state;\n}\n\nexport function editsReference( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'EDIT_ENTITY_RECORD':\n\t\tcase 'UNDO':\n\t\tcase 'REDO':\n\t\t\treturn {};\n\t}\n\treturn state;\n}\n\n/**\n * Reducer managing embed preview data.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function embedPreviews( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_EMBED_PREVIEW':\n\t\t\tconst { url, preview } = action;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ url ]: preview,\n\t\t\t};\n\t}\n\treturn state;\n}\n\n/**\n * State which tracks whether the user can perform an action on a REST\n * resource.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function userPermissions( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_USER_PERMISSION':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.key ]: action.isAllowed,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning autosaves keyed by their parent's post id.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function autosaves( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_AUTOSAVES':\n\t\t\tconst { postId, autosaves: autosavesData } = action;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ postId ]: autosavesData,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\nexport function blockPatterns( state = [], action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_BLOCK_PATTERNS':\n\t\t\treturn action.patterns;\n\t}\n\n\treturn state;\n}\n\nexport function blockPatternCategories( state = [], action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_BLOCK_PATTERN_CATEGORIES':\n\t\t\treturn action.categories;\n\t}\n\n\treturn state;\n}\n\nexport function userPatternCategories( state = [], action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_USER_PATTERN_CATEGORIES':\n\t\t\treturn action.patternCategories;\n\t}\n\treturn state;\n}\n\nexport function navigationFallbackId( state = null, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_NAVIGATION_FALLBACK_ID':\n\t\t\treturn action.fallbackId;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the theme global styles revisions.\n *\n * @param {Record<string, object>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string, object>} Updated state.\n */\nexport function themeGlobalStyleRevisions( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_THEME_GLOBAL_STYLE_REVISIONS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.currentId ]: action.revisions,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the template lookup per query.\n *\n * @param {Record<string, string>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string, string>} Updated state.\n */\nexport function defaultTemplates( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_DEFAULT_TEMPLATE':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ JSON.stringify( action.query ) ]: action.templateId,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\nexport default combineReducers( {\n\tterms,\n\tusers,\n\tcurrentTheme,\n\tcurrentGlobalStylesId,\n\tcurrentUser,\n\tthemeGlobalStyleVariations,\n\tthemeBaseGlobalStyles,\n\tthemeGlobalStyleRevisions,\n\ttaxonomies,\n\tentities,\n\teditsReference,\n\tundoManager,\n\tembedPreviews,\n\tuserPermissions,\n\tautosaves,\n\tblockPatterns,\n\tblockPatternCategories,\n\tuserPatternCategories,\n\tnavigationFallbackId,\n\tdefaultTemplates,\n} );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_es","_interopRequireDefault","require","_compose","_data","_undoManager","_utils","_queriedData","_entities","terms","state","action","type","taxonomy","users","byId","queries","reduce","newUsers","user","id","queryID","map","currentUser","taxonomies","currentTheme","undefined","stylesheet","currentGlobalStylesId","themeBaseGlobalStyles","globalStyles","themeGlobalStyleVariations","variations","withMultiEntityRecordEdits","reducer","record","newState","forEach","kind","name","recordId","changes","edits","Object","entries","acc","key","value","from","to","entity","entityConfig","compose","ifMatchingAction","replaceAction","DEFAULT_ENTITY_KEY","combineReducers","queriedData","queriedDataReducer","_action$query$context","context","query","nextState","items","nextEdits","keys","_record$key$raw","fastDeepEqual","raw","persistedEdits","length","saving","pending","error","isAutosave","deleting","revisions","recordKey","fromEntries","filter","itemIds","some","itemId","Number","isInteger","entitiesConfig","rootEntitiesConfig","entities","newConfig","config","entitiesDataReducer","entitiesByKind","push","memo","subEntities","kindReducer","kindMemo","newData","records","exports","undoManager","createUndoManager","editsReference","embedPreviews","url","preview","userPermissions","isAllowed","autosaves","postId","autosavesData","blockPatterns","patterns","blockPatternCategories","categories","userPatternCategories","patternCategories","navigationFallbackId","fallbackId","themeGlobalStyleRevisions","currentId","defaultTemplates","JSON","stringify","templateId","_default","default"],"sources":["@wordpress/core-data/src/reducer.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { combineReducers } from '@wordpress/data';\nimport { createUndoManager } from '@wordpress/undo-manager';\n\n/**\n * Internal dependencies\n */\nimport { ifMatchingAction, replaceAction } from './utils';\nimport { reducer as queriedDataReducer } from './queried-data';\nimport { rootEntitiesConfig, DEFAULT_ENTITY_KEY } from './entities';\n\n/** @typedef {import('./types').AnyFunction} AnyFunction */\n\n/**\n * Reducer managing terms state. Keyed by taxonomy slug, the value is either\n * undefined (if no request has been made for given taxonomy), null (if a\n * request is in-flight for given taxonomy), or the array of terms for the\n * taxonomy.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function terms( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_TERMS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.taxonomy ]: action.terms,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing authors state. Keyed by id.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function users( state = { byId: {}, queries: {} }, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_USER_QUERY':\n\t\t\treturn {\n\t\t\t\tbyId: {\n\t\t\t\t\t...state.byId,\n\t\t\t\t\t// Key users by their ID.\n\t\t\t\t\t...action.users.reduce(\n\t\t\t\t\t\t( newUsers, user ) => ( {\n\t\t\t\t\t\t\t...newUsers,\n\t\t\t\t\t\t\t[ user.id ]: user,\n\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\tqueries: {\n\t\t\t\t\t...state.queries,\n\t\t\t\t\t[ action.queryID ]: action.users.map( ( user ) => user.id ),\n\t\t\t\t},\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing current user state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function currentUser( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_CURRENT_USER':\n\t\t\treturn action.currentUser;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing taxonomies.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function taxonomies( state = [], action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_TAXONOMIES':\n\t\t\treturn action.taxonomies;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the current theme.\n *\n * @param {string|undefined} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string|undefined} Updated state.\n */\nexport function currentTheme( state = undefined, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_CURRENT_THEME':\n\t\t\treturn action.currentTheme.stylesheet;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the current global styles id.\n *\n * @param {string|undefined} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string|undefined} Updated state.\n */\nexport function currentGlobalStylesId( state = undefined, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_CURRENT_GLOBAL_STYLES_ID':\n\t\t\treturn action.id;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the theme base global styles.\n *\n * @param {Record<string, object>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string, object>} Updated state.\n */\nexport function themeBaseGlobalStyles( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_THEME_GLOBAL_STYLES':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.stylesheet ]: action.globalStyles,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the theme global styles variations.\n *\n * @param {Record<string, object>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string, object>} Updated state.\n */\nexport function themeGlobalStyleVariations( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_THEME_GLOBAL_STYLE_VARIATIONS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.stylesheet ]: action.variations,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\nconst withMultiEntityRecordEdits = ( reducer ) => ( state, action ) => {\n\tif ( action.type === 'UNDO' || action.type === 'REDO' ) {\n\t\tconst { record } = action;\n\n\t\tlet newState = state;\n\t\trecord.forEach( ( { id: { kind, name, recordId }, changes } ) => {\n\t\t\tnewState = reducer( newState, {\n\t\t\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId,\n\t\t\t\tedits: Object.entries( changes ).reduce(\n\t\t\t\t\t( acc, [ key, value ] ) => {\n\t\t\t\t\t\tacc[ key ] =\n\t\t\t\t\t\t\taction.type === 'UNDO' ? value.from : value.to;\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t),\n\t\t\t} );\n\t\t} );\n\t\treturn newState;\n\t}\n\n\treturn reducer( state, action );\n};\n\n/**\n * Higher Order Reducer for a given entity config. It supports:\n *\n * - Fetching\n * - Editing\n * - Saving\n *\n * @param {Object} entityConfig Entity config.\n *\n * @return {AnyFunction} Reducer.\n */\nfunction entity( entityConfig ) {\n\treturn compose( [\n\t\twithMultiEntityRecordEdits,\n\n\t\t// Limit to matching action type so we don't attempt to replace action on\n\t\t// an unhandled action.\n\t\tifMatchingAction(\n\t\t\t( action ) =>\n\t\t\t\taction.name &&\n\t\t\t\taction.kind &&\n\t\t\t\taction.name === entityConfig.name &&\n\t\t\t\taction.kind === entityConfig.kind\n\t\t),\n\n\t\t// Inject the entity config into the action.\n\t\treplaceAction( ( action ) => {\n\t\t\treturn {\n\t\t\t\tkey: entityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t...action,\n\t\t\t};\n\t\t} ),\n\t] )(\n\t\tcombineReducers( {\n\t\t\tqueriedData: queriedDataReducer,\n\t\t\tedits: ( state = {}, action ) => {\n\t\t\t\tswitch ( action.type ) {\n\t\t\t\t\tcase 'RECEIVE_ITEMS':\n\t\t\t\t\t\tconst context = action?.query?.context ?? 'default';\n\t\t\t\t\t\tif ( context !== 'default' ) {\n\t\t\t\t\t\t\treturn state;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst nextState = { ...state };\n\n\t\t\t\t\t\tfor ( const record of action.items ) {\n\t\t\t\t\t\t\tconst recordId = record[ action.key ];\n\t\t\t\t\t\t\tconst edits = nextState[ recordId ];\n\t\t\t\t\t\t\tif ( ! edits ) {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst nextEdits = Object.keys( edits ).reduce(\n\t\t\t\t\t\t\t\t( acc, key ) => {\n\t\t\t\t\t\t\t\t\t// If the edited value is still different to the persisted value,\n\t\t\t\t\t\t\t\t\t// keep the edited value in edits.\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t// Edits are the \"raw\" attribute values, but records may have\n\t\t\t\t\t\t\t\t\t\t// objects with more properties, so we use `get` here for the\n\t\t\t\t\t\t\t\t\t\t// comparison.\n\t\t\t\t\t\t\t\t\t\t! fastDeepEqual(\n\t\t\t\t\t\t\t\t\t\t\tedits[ key ],\n\t\t\t\t\t\t\t\t\t\t\trecord[ key ]?.raw ?? record[ key ]\n\t\t\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\t\t\t// Sometimes the server alters the sent value which means\n\t\t\t\t\t\t\t\t\t\t// we need to also remove the edits before the api request.\n\t\t\t\t\t\t\t\t\t\t( ! action.persistedEdits ||\n\t\t\t\t\t\t\t\t\t\t\t! fastDeepEqual(\n\t\t\t\t\t\t\t\t\t\t\t\tedits[ key ],\n\t\t\t\t\t\t\t\t\t\t\t\taction.persistedEdits[ key ]\n\t\t\t\t\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tacc[ key ] = edits[ key ];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( Object.keys( nextEdits ).length ) {\n\t\t\t\t\t\t\t\tnextState[ recordId ] = nextEdits;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdelete nextState[ recordId ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn nextState;\n\n\t\t\t\t\tcase 'EDIT_ENTITY_RECORD':\n\t\t\t\t\t\tconst nextEdits = {\n\t\t\t\t\t\t\t...state[ action.recordId ],\n\t\t\t\t\t\t\t...action.edits,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tObject.keys( nextEdits ).forEach( ( key ) => {\n\t\t\t\t\t\t\t// Delete cleared edits so that the properties\n\t\t\t\t\t\t\t// are not considered dirty.\n\t\t\t\t\t\t\tif ( nextEdits[ key ] === undefined ) {\n\t\t\t\t\t\t\t\tdelete nextEdits[ key ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t[ action.recordId ]: nextEdits,\n\t\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn state;\n\t\t\t},\n\n\t\t\tsaving: ( state = {}, action ) => {\n\t\t\t\tswitch ( action.type ) {\n\t\t\t\t\tcase 'SAVE_ENTITY_RECORD_START':\n\t\t\t\t\tcase 'SAVE_ENTITY_RECORD_FINISH':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t[ action.recordId ]: {\n\t\t\t\t\t\t\t\tpending:\n\t\t\t\t\t\t\t\t\taction.type === 'SAVE_ENTITY_RECORD_START',\n\t\t\t\t\t\t\t\terror: action.error,\n\t\t\t\t\t\t\t\tisAutosave: action.isAutosave,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn state;\n\t\t\t},\n\n\t\t\tdeleting: ( state = {}, action ) => {\n\t\t\t\tswitch ( action.type ) {\n\t\t\t\t\tcase 'DELETE_ENTITY_RECORD_START':\n\t\t\t\t\tcase 'DELETE_ENTITY_RECORD_FINISH':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t[ action.recordId ]: {\n\t\t\t\t\t\t\t\tpending:\n\t\t\t\t\t\t\t\t\taction.type ===\n\t\t\t\t\t\t\t\t\t'DELETE_ENTITY_RECORD_START',\n\t\t\t\t\t\t\t\terror: action.error,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn state;\n\t\t\t},\n\n\t\t\trevisions: ( state = {}, action ) => {\n\t\t\t\t// Use the same queriedDataReducer shape for revisions.\n\t\t\t\tif ( action.type === 'RECEIVE_ITEM_REVISIONS' ) {\n\t\t\t\t\tconst recordKey = action.recordKey;\n\t\t\t\t\tdelete action.recordKey;\n\t\t\t\t\tconst newState = queriedDataReducer( state[ recordKey ], {\n\t\t\t\t\t\t...action,\n\t\t\t\t\t\ttype: 'RECEIVE_ITEMS',\n\t\t\t\t\t} );\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\t[ recordKey ]: newState,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif ( action.type === 'REMOVE_ITEMS' ) {\n\t\t\t\t\treturn Object.fromEntries(\n\t\t\t\t\t\tObject.entries( state ).filter(\n\t\t\t\t\t\t\t( [ id ] ) =>\n\t\t\t\t\t\t\t\t! action.itemIds.some( ( itemId ) => {\n\t\t\t\t\t\t\t\t\tif ( Number.isInteger( itemId ) ) {\n\t\t\t\t\t\t\t\t\t\treturn itemId === +id;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn itemId === id;\n\t\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\n\t\t\t\treturn state;\n\t\t\t},\n\t\t} )\n\t);\n}\n\n/**\n * Reducer keeping track of the registered entities.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function entitiesConfig( state = rootEntitiesConfig, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'ADD_ENTITIES':\n\t\t\treturn [ ...state, ...action.entities ];\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer keeping track of the registered entities config and data.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport const entities = ( state = {}, action ) => {\n\tconst newConfig = entitiesConfig( state.config, action );\n\n\t// Generates a dynamic reducer for the entities.\n\tlet entitiesDataReducer = state.reducer;\n\tif ( ! entitiesDataReducer || newConfig !== state.config ) {\n\t\tconst entitiesByKind = newConfig.reduce( ( acc, record ) => {\n\t\t\tconst { kind } = record;\n\t\t\tif ( ! acc[ kind ] ) {\n\t\t\t\tacc[ kind ] = [];\n\t\t\t}\n\t\t\tacc[ kind ].push( record );\n\t\t\treturn acc;\n\t\t}, {} );\n\n\t\tentitiesDataReducer = combineReducers(\n\t\t\tObject.entries( entitiesByKind ).reduce(\n\t\t\t\t( memo, [ kind, subEntities ] ) => {\n\t\t\t\t\tconst kindReducer = combineReducers(\n\t\t\t\t\t\tsubEntities.reduce(\n\t\t\t\t\t\t\t( kindMemo, entityConfig ) => ( {\n\t\t\t\t\t\t\t\t...kindMemo,\n\t\t\t\t\t\t\t\t[ entityConfig.name ]: entity( entityConfig ),\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\n\t\t\t\t\tmemo[ kind ] = kindReducer;\n\t\t\t\t\treturn memo;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t)\n\t\t);\n\t}\n\n\tconst newData = entitiesDataReducer( state.records, action );\n\n\tif (\n\t\tnewData === state.records &&\n\t\tnewConfig === state.config &&\n\t\tentitiesDataReducer === state.reducer\n\t) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\treducer: entitiesDataReducer,\n\t\trecords: newData,\n\t\tconfig: newConfig,\n\t};\n};\n\n/**\n * @type {UndoManager}\n */\nexport function undoManager( state = createUndoManager() ) {\n\treturn state;\n}\n\nexport function editsReference( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'EDIT_ENTITY_RECORD':\n\t\tcase 'UNDO':\n\t\tcase 'REDO':\n\t\t\treturn {};\n\t}\n\treturn state;\n}\n\n/**\n * Reducer managing embed preview data.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function embedPreviews( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_EMBED_PREVIEW':\n\t\t\tconst { url, preview } = action;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ url ]: preview,\n\t\t\t};\n\t}\n\treturn state;\n}\n\n/**\n * State which tracks whether the user can perform an action on a REST\n * resource.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function userPermissions( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_USER_PERMISSION':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.key ]: action.isAllowed,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning autosaves keyed by their parent's post id.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function autosaves( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_AUTOSAVES':\n\t\t\tconst { postId, autosaves: autosavesData } = action;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ postId ]: autosavesData,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\nexport function blockPatterns( state = [], action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_BLOCK_PATTERNS':\n\t\t\treturn action.patterns;\n\t}\n\n\treturn state;\n}\n\nexport function blockPatternCategories( state = [], action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_BLOCK_PATTERN_CATEGORIES':\n\t\t\treturn action.categories;\n\t}\n\n\treturn state;\n}\n\nexport function userPatternCategories( state = [], action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_USER_PATTERN_CATEGORIES':\n\t\t\treturn action.patternCategories;\n\t}\n\treturn state;\n}\n\nexport function navigationFallbackId( state = null, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_NAVIGATION_FALLBACK_ID':\n\t\t\treturn action.fallbackId;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the theme global styles revisions.\n *\n * @param {Record<string, object>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string, object>} Updated state.\n */\nexport function themeGlobalStyleRevisions( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_THEME_GLOBAL_STYLE_REVISIONS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.currentId ]: action.revisions,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer managing the template lookup per query.\n *\n * @param {Record<string, string>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string, string>} Updated state.\n */\nexport function defaultTemplates( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_DEFAULT_TEMPLATE':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ JSON.stringify( action.query ) ]: action.templateId,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\nexport default combineReducers( {\n\tterms,\n\tusers,\n\tcurrentTheme,\n\tcurrentGlobalStylesId,\n\tcurrentUser,\n\tthemeGlobalStyleVariations,\n\tthemeBaseGlobalStyles,\n\tthemeGlobalStyleRevisions,\n\ttaxonomies,\n\tentities,\n\teditsReference,\n\tundoManager,\n\tembedPreviews,\n\tuserPermissions,\n\tautosaves,\n\tblockPatterns,\n\tblockPatternCategories,\n\tuserPatternCategories,\n\tnavigationFallbackId,\n\tdefaultTemplates,\n} );\n"],"mappings":"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"}