@wordpress/core-data 6.4.0 → 6.5.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.5.0 (2023-03-01)
6
+
5
7
  ## 6.4.0 (2023-02-15)
6
8
 
7
9
  ## 6.3.0 (2023-02-01)
package/build/entities.js CHANGED
@@ -9,8 +9,6 @@ exports.rootEntitiesConfig = exports.prePersistPostType = exports.getOrLoadEntit
9
9
 
10
10
  var _changeCase = require("change-case");
11
11
 
12
- var _lodash = require("lodash");
13
-
14
12
  var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
15
13
 
16
14
  var _i18n = require("@wordpress/i18n");
@@ -45,7 +43,9 @@ const rootEntitiesConfig = [{
45
43
  kind: 'root',
46
44
  baseURL: '/wp/v2/settings',
47
45
  getTitle: record => {
48
- return (0, _lodash.get)(record, ['title'], (0, _i18n.__)('Site Title'));
46
+ var _record$title;
47
+
48
+ return (_record$title = record === null || record === void 0 ? void 0 : record.title) !== null && _record$title !== void 0 ? _record$title : (0, _i18n.__)('Site Title');
49
49
  }
50
50
  }, {
51
51
  label: (0, _i18n.__)('Post Type'),
@@ -167,9 +167,9 @@ const rootEntitiesConfig = [{
167
167
  plural: 'globalStylesVariations',
168
168
  // Should be different than name.
169
169
  getTitle: record => {
170
- var _record$title;
170
+ var _record$title2;
171
171
 
172
- return (record === null || record === void 0 ? void 0 : (_record$title = record.title) === null || _record$title === void 0 ? void 0 : _record$title.rendered) || (record === null || record === void 0 ? void 0 : record.title);
172
+ return (record === null || record === void 0 ? void 0 : (_record$title2 = record.title) === null || _record$title2 === void 0 ? void 0 : _record$title2.rendered) || (record === null || record === void 0 ? void 0 : record.title);
173
173
  }
174
174
  }, {
175
175
  label: (0, _i18n.__)('Themes'),
@@ -261,9 +261,9 @@ async function loadPostTypeEntities() {
261
261
  },
262
262
  rawAttributes: POST_RAW_ATTRIBUTES,
263
263
  getTitle: record => {
264
- var _record$title2, _record$slug;
264
+ var _record$title3, _record$slug;
265
265
 
266
- return (record === null || record === void 0 ? void 0 : (_record$title2 = record.title) === null || _record$title2 === void 0 ? void 0 : _record$title2.rendered) || (record === null || record === void 0 ? void 0 : record.title) || (isTemplate ? (0, _changeCase.capitalCase)((_record$slug = record.slug) !== null && _record$slug !== void 0 ? _record$slug : '') : String(record.id));
266
+ return (record === null || record === void 0 ? void 0 : (_record$title3 = record.title) === null || _record$title3 === void 0 ? void 0 : _record$title3.rendered) || (record === null || record === void 0 ? void 0 : record.title) || (isTemplate ? (0, _changeCase.capitalCase)((_record$slug = record.slug) !== null && _record$slug !== void 0 ? _record$slug : '') : String(record.id));
267
267
  },
268
268
  __unstablePrePersist: isTemplate ? undefined : prePersistPostType,
269
269
  __unstable_rest_base: postType.rest_base
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/entities.js"],"names":["DEFAULT_ENTITY_KEY","POST_RAW_ATTRIBUTES","rootEntitiesConfig","label","kind","name","baseURL","baseURLParams","_fields","join","getTitle","record","key","context","plural","rawAttributes","transientEdits","blocks","title","rendered","additionalEntityConfigLoaders","loadEntities","loadPostTypeEntities","loadTaxonomyEntities","prePersistPostType","persistedRecord","edits","newEdits","status","postTypes","path","Object","entries","map","postType","isTemplate","includes","namespace","rest_namespace","rest_base","selection","mergedEdits","meta","slug","String","id","__unstablePrePersist","undefined","__unstable_rest_base","taxonomies","taxonomy","getMethodName","prefix","usePlural","entityConfig","find","config","kindPrefix","nameSuffix","suffix","getOrLoadEntitiesConfig","select","dispatch","configs","getEntitiesConfig","length","loader","l"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { capitalCase, pascalCase } from 'change-case';\nimport { get } from 'lodash';\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';\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},\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 get( record, [ 'title' ], __( 'Site Title' ) );\n\t\t},\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},\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},\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 than name.\n\t\tgetTitle: ( record ) => record?.title?.rendered || record?.title,\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];\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};\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\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\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\tdispatch( addEntities( configs ) );\n\n\t\treturn configs;\n\t};\n"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/entities.js"],"names":["DEFAULT_ENTITY_KEY","POST_RAW_ATTRIBUTES","rootEntitiesConfig","label","kind","name","baseURL","baseURLParams","_fields","join","getTitle","record","title","key","context","plural","rawAttributes","transientEdits","blocks","rendered","additionalEntityConfigLoaders","loadEntities","loadPostTypeEntities","loadTaxonomyEntities","prePersistPostType","persistedRecord","edits","newEdits","status","postTypes","path","Object","entries","map","postType","isTemplate","includes","namespace","rest_namespace","rest_base","selection","mergedEdits","meta","slug","String","id","__unstablePrePersist","undefined","__unstable_rest_base","taxonomies","taxonomy","getMethodName","prefix","usePlural","entityConfig","find","config","kindPrefix","nameSuffix","suffix","getOrLoadEntitiesConfig","select","dispatch","configs","getEntitiesConfig","length","loader","l"],"mappings":"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","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';\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},\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},\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},\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},\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 than name.\n\t\tgetTitle: ( record ) => record?.title?.rendered || record?.title,\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];\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};\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\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\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\tdispatch( addEntities( configs ) );\n\n\t\treturn configs;\n\t};\n"]}
@@ -87,7 +87,10 @@ function getQueriedItemsUncached(state, query) {
87
87
 
88
88
  for (let f = 0; f < fields.length; f++) {
89
89
  const field = fields[f].split('.');
90
- const value = (0, _lodash.get)(item, field);
90
+ let value = item;
91
+ field.forEach(fieldName => {
92
+ value = value[fieldName];
93
+ });
91
94
  (0, _lodash.set)(filteredItem, field, value);
92
95
  }
93
96
  } else {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/queried-data/selectors.js"],"names":["queriedItemsCacheByState","WeakMap","getQueriedItemsUncached","state","query","stableKey","page","perPage","include","fields","context","itemIds","queries","startOffset","endOffset","length","Math","min","items","i","itemId","Array","isArray","includes","hasOwnProperty","item","filteredItem","f","field","split","value","itemIsComplete","push","getQueriedItems","queriedItemsCache","get","queriedItems","undefined","EquivalentKeyMap","set"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\nimport EquivalentKeyMap from 'equivalent-key-map';\nimport { get, set } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport getQueryParts from './get-query-parts';\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 ];\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\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\tconst value = get( item, field );\n\t\t\t\tset( 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"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/queried-data/selectors.js"],"names":["queriedItemsCacheByState","WeakMap","getQueriedItemsUncached","state","query","stableKey","page","perPage","include","fields","context","itemIds","queries","startOffset","endOffset","length","Math","min","items","i","itemId","Array","isArray","includes","hasOwnProperty","item","filteredItem","f","field","split","value","forEach","fieldName","itemIsComplete","push","getQueriedItems","queriedItemsCache","get","queriedItems","undefined","EquivalentKeyMap","set"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\nimport EquivalentKeyMap from 'equivalent-key-map';\nimport { set } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport getQueryParts from './get-query-parts';\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 ];\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\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\t\t\t\tset( 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"]}
package/build/reducer.js CHANGED
@@ -290,12 +290,14 @@ function entity(entityConfig) {
290
290
  }
291
291
 
292
292
  const nextEdits = Object.keys(edits).reduce((acc, key) => {
293
+ var _record$key$raw, _record$key;
294
+
293
295
  // If the edited value is still different to the persisted value,
294
296
  // keep the edited value in edits.
295
297
  if ( // Edits are the "raw" attribute values, but records may have
296
298
  // objects with more properties, so we use `get` here for the
297
299
  // comparison.
298
- !(0, _es.default)(edits[key], (0, _lodash.get)(record[key], 'raw', record[key])) && ( // Sometimes the server alters the sent value which means
300
+ !(0, _es.default)(edits[key], (_record$key$raw = (_record$key = record[key]) === null || _record$key === void 0 ? void 0 : _record$key.raw) !== null && _record$key$raw !== void 0 ? _record$key$raw : record[key]) && ( // Sometimes the server alters the sent value which means
299
301
  // we need to also remove the edits before the api request.
300
302
  !action.persistedEdits || !(0, _es.default)(edits[key], action.persistedEdits[key]))) {
301
303
  acc[key] = edits[key];
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/reducer.js"],"names":["terms","state","action","type","taxonomy","users","byId","queries","reduce","newUsers","user","id","queryID","map","currentUser","taxonomies","currentTheme","undefined","stylesheet","currentGlobalStylesId","themeBaseGlobalStyles","globalStyles","themeGlobalStyleVariations","variations","entity","entityConfig","name","kind","key","DEFAULT_ENTITY_KEY","queriedData","queriedDataReducer","edits","context","query","nextState","record","items","recordId","nextEdits","Object","keys","acc","persistedEdits","length","forEach","saving","pending","error","isAutosave","deleting","entitiesConfig","rootEntitiesConfig","entities","newConfig","config","entitiesDataReducer","reducer","entitiesByKind","entries","memo","subEntities","kindReducer","kindMemo","newData","records","UNDO_INITIAL_STATE","assign","offset","lastEditAction","undo","isCreateUndoLevel","isUndoOrRedo","meta","isUndo","isRedo","some","transientEdits","flattenedUndo","slice","pop","push","comparisonUndoEdits","values","filter","edit","comparisonEdits","embedPreviews","url","preview","userPermissions","isAllowed","autosaves","postId","autosavesData","blockPatterns","patterns","blockPatternCategories","categories"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\nimport { groupBy, get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { combineReducers } from '@wordpress/data';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\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\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\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\t...action,\n\t\t\t\tkey: entityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t};\n\t\t} ),\n\t] )(\n\t\tcombineReducers( {\n\t\t\tqueriedData: queriedDataReducer,\n\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\tget(\n\t\t\t\t\t\t\t\t\t\t\t\trecord[ key ],\n\t\t\t\t\t\t\t\t\t\t\t\t'raw',\n\t\t\t\t\t\t\t\t\t\t\t\trecord[ key ]\n\t\t\t\t\t\t\t\t\t\t\t)\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\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 = groupBy( newConfig, 'kind' );\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 * @typedef {Object} UndoStateMeta\n *\n * @property {number} offset Where in the undo stack we are.\n * @property {Object} [flattenedUndo] Flattened form of undo stack.\n */\n\n/** @typedef {Array<Object> & UndoStateMeta} UndoState */\n\n/**\n * @type {UndoState}\n *\n * @todo Given how we use this we might want to make a custom class for it.\n */\nconst UNDO_INITIAL_STATE = Object.assign( [], { offset: 0 } );\n\n/** @type {Object} */\nlet lastEditAction;\n\n/**\n * Reducer keeping track of entity edit undo history.\n *\n * @param {UndoState} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {UndoState} Updated state.\n */\nexport function undo( state = UNDO_INITIAL_STATE, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'EDIT_ENTITY_RECORD':\n\t\tcase 'CREATE_UNDO_LEVEL':\n\t\t\tlet isCreateUndoLevel = action.type === 'CREATE_UNDO_LEVEL';\n\t\t\tconst isUndoOrRedo =\n\t\t\t\t! isCreateUndoLevel &&\n\t\t\t\t( action.meta.isUndo || action.meta.isRedo );\n\t\t\tif ( isCreateUndoLevel ) {\n\t\t\t\taction = lastEditAction;\n\t\t\t} else if ( ! isUndoOrRedo ) {\n\t\t\t\t// Don't lose the last edit cache if the new one only has transient edits.\n\t\t\t\t// Transient edits don't create new levels so updating the cache would make\n\t\t\t\t// us skip an edit later when creating levels explicitly.\n\t\t\t\tif (\n\t\t\t\t\tObject.keys( action.edits ).some(\n\t\t\t\t\t\t( key ) => ! action.transientEdits[ key ]\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlastEditAction = action;\n\t\t\t\t} else {\n\t\t\t\t\tlastEditAction = {\n\t\t\t\t\t\t...action,\n\t\t\t\t\t\tedits: {\n\t\t\t\t\t\t\t...( lastEditAction && lastEditAction.edits ),\n\t\t\t\t\t\t\t...action.edits,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/** @type {UndoState} */\n\t\t\tlet nextState;\n\n\t\t\tif ( isUndoOrRedo ) {\n\t\t\t\t// @ts-ignore we might consider using Object.assign({}, state)\n\t\t\t\tnextState = [ ...state ];\n\t\t\t\tnextState.offset =\n\t\t\t\t\tstate.offset + ( action.meta.isUndo ? -1 : 1 );\n\n\t\t\t\tif ( state.flattenedUndo ) {\n\t\t\t\t\t// The first undo in a sequence of undos might happen while we have\n\t\t\t\t\t// flattened undos in state. If this is the case, we want execution\n\t\t\t\t\t// to continue as if we were creating an explicit undo level. This\n\t\t\t\t\t// will result in an extra undo level being appended with the flattened\n\t\t\t\t\t// undo values.\n\t\t\t\t\t// We also have to take into account if the `lastEditAction` had opted out\n\t\t\t\t\t// of being tracked in undo history, like the action that persists the latest\n\t\t\t\t\t// content right before saving. In that case we have to update the `lastEditAction`\n\t\t\t\t\t// to avoid returning early before applying the existing flattened undos.\n\t\t\t\t\tisCreateUndoLevel = true;\n\t\t\t\t\tif ( ! lastEditAction.meta.undo ) {\n\t\t\t\t\t\tlastEditAction.meta.undo = {\n\t\t\t\t\t\t\tedits: {},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\taction = lastEditAction;\n\t\t\t\t} else {\n\t\t\t\t\treturn nextState;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! action.meta.undo ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\t// Transient edits don't create an undo level, but are\n\t\t\t// reachable in the next meaningful edit to which they\n\t\t\t// are merged. They are defined in the entity's config.\n\t\t\tif (\n\t\t\t\t! isCreateUndoLevel &&\n\t\t\t\t! Object.keys( action.edits ).some(\n\t\t\t\t\t( key ) => ! action.transientEdits[ key ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// @ts-ignore we might consider using Object.assign({}, state)\n\t\t\t\tnextState = [ ...state ];\n\t\t\t\tnextState.flattenedUndo = {\n\t\t\t\t\t...state.flattenedUndo,\n\t\t\t\t\t...action.edits,\n\t\t\t\t};\n\t\t\t\tnextState.offset = state.offset;\n\t\t\t\treturn nextState;\n\t\t\t}\n\n\t\t\t// Clear potential redos, because this only supports linear history.\n\t\t\tnextState =\n\t\t\t\t// @ts-ignore this needs additional cleanup, probably involving code-level changes\n\t\t\t\tnextState || state.slice( 0, state.offset || undefined );\n\t\t\tnextState.offset = nextState.offset || 0;\n\t\t\tnextState.pop();\n\t\t\tif ( ! isCreateUndoLevel ) {\n\t\t\t\tnextState.push( {\n\t\t\t\t\tkind: action.meta.undo.kind,\n\t\t\t\t\tname: action.meta.undo.name,\n\t\t\t\t\trecordId: action.meta.undo.recordId,\n\t\t\t\t\tedits: {\n\t\t\t\t\t\t...state.flattenedUndo,\n\t\t\t\t\t\t...action.meta.undo.edits,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t\t// When an edit is a function it's an optimization to avoid running some expensive operation.\n\t\t\t// We can't rely on the function references being the same so we opt out of comparing them here.\n\t\t\tconst comparisonUndoEdits = Object.values(\n\t\t\t\taction.meta.undo.edits\n\t\t\t).filter( ( edit ) => typeof edit !== 'function' );\n\t\t\tconst comparisonEdits = Object.values( action.edits ).filter(\n\t\t\t\t( edit ) => typeof edit !== 'function'\n\t\t\t);\n\t\t\tif ( ! isShallowEqual( comparisonUndoEdits, comparisonEdits ) ) {\n\t\t\t\tnextState.push( {\n\t\t\t\t\tkind: action.kind,\n\t\t\t\t\tname: action.name,\n\t\t\t\t\trecordId: action.recordId,\n\t\t\t\t\tedits: isCreateUndoLevel\n\t\t\t\t\t\t? { ...state.flattenedUndo, ...action.edits }\n\t\t\t\t\t\t: action.edits,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn nextState;\n\t}\n\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 default combineReducers( {\n\tterms,\n\tusers,\n\tcurrentTheme,\n\tcurrentGlobalStylesId,\n\tcurrentUser,\n\tthemeGlobalStyleVariations,\n\tthemeBaseGlobalStyles,\n\ttaxonomies,\n\tentities,\n\tundo,\n\tembedPreviews,\n\tuserPermissions,\n\tautosaves,\n\tblockPatterns,\n\tblockPatternCategories,\n} );\n"]}
1
+ {"version":3,"sources":["@wordpress/core-data/src/reducer.js"],"names":["terms","state","action","type","taxonomy","users","byId","queries","reduce","newUsers","user","id","queryID","map","currentUser","taxonomies","currentTheme","undefined","stylesheet","currentGlobalStylesId","themeBaseGlobalStyles","globalStyles","themeGlobalStyleVariations","variations","entity","entityConfig","name","kind","key","DEFAULT_ENTITY_KEY","queriedData","queriedDataReducer","edits","context","query","nextState","record","items","recordId","nextEdits","Object","keys","acc","raw","persistedEdits","length","forEach","saving","pending","error","isAutosave","deleting","entitiesConfig","rootEntitiesConfig","entities","newConfig","config","entitiesDataReducer","reducer","entitiesByKind","entries","memo","subEntities","kindReducer","kindMemo","newData","records","UNDO_INITIAL_STATE","assign","offset","lastEditAction","undo","isCreateUndoLevel","isUndoOrRedo","meta","isUndo","isRedo","some","transientEdits","flattenedUndo","slice","pop","push","comparisonUndoEdits","values","filter","edit","comparisonEdits","embedPreviews","url","preview","userPermissions","isAllowed","autosaves","postId","autosavesData","blockPatterns","patterns","blockPatternCategories","categories"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\nimport { groupBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { combineReducers } from '@wordpress/data';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\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\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\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\t...action,\n\t\t\t\tkey: entityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t};\n\t\t} ),\n\t] )(\n\t\tcombineReducers( {\n\t\t\tqueriedData: queriedDataReducer,\n\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\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 = groupBy( newConfig, 'kind' );\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 * @typedef {Object} UndoStateMeta\n *\n * @property {number} offset Where in the undo stack we are.\n * @property {Object} [flattenedUndo] Flattened form of undo stack.\n */\n\n/** @typedef {Array<Object> & UndoStateMeta} UndoState */\n\n/**\n * @type {UndoState}\n *\n * @todo Given how we use this we might want to make a custom class for it.\n */\nconst UNDO_INITIAL_STATE = Object.assign( [], { offset: 0 } );\n\n/** @type {Object} */\nlet lastEditAction;\n\n/**\n * Reducer keeping track of entity edit undo history.\n *\n * @param {UndoState} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {UndoState} Updated state.\n */\nexport function undo( state = UNDO_INITIAL_STATE, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'EDIT_ENTITY_RECORD':\n\t\tcase 'CREATE_UNDO_LEVEL':\n\t\t\tlet isCreateUndoLevel = action.type === 'CREATE_UNDO_LEVEL';\n\t\t\tconst isUndoOrRedo =\n\t\t\t\t! isCreateUndoLevel &&\n\t\t\t\t( action.meta.isUndo || action.meta.isRedo );\n\t\t\tif ( isCreateUndoLevel ) {\n\t\t\t\taction = lastEditAction;\n\t\t\t} else if ( ! isUndoOrRedo ) {\n\t\t\t\t// Don't lose the last edit cache if the new one only has transient edits.\n\t\t\t\t// Transient edits don't create new levels so updating the cache would make\n\t\t\t\t// us skip an edit later when creating levels explicitly.\n\t\t\t\tif (\n\t\t\t\t\tObject.keys( action.edits ).some(\n\t\t\t\t\t\t( key ) => ! action.transientEdits[ key ]\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlastEditAction = action;\n\t\t\t\t} else {\n\t\t\t\t\tlastEditAction = {\n\t\t\t\t\t\t...action,\n\t\t\t\t\t\tedits: {\n\t\t\t\t\t\t\t...( lastEditAction && lastEditAction.edits ),\n\t\t\t\t\t\t\t...action.edits,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/** @type {UndoState} */\n\t\t\tlet nextState;\n\n\t\t\tif ( isUndoOrRedo ) {\n\t\t\t\t// @ts-ignore we might consider using Object.assign({}, state)\n\t\t\t\tnextState = [ ...state ];\n\t\t\t\tnextState.offset =\n\t\t\t\t\tstate.offset + ( action.meta.isUndo ? -1 : 1 );\n\n\t\t\t\tif ( state.flattenedUndo ) {\n\t\t\t\t\t// The first undo in a sequence of undos might happen while we have\n\t\t\t\t\t// flattened undos in state. If this is the case, we want execution\n\t\t\t\t\t// to continue as if we were creating an explicit undo level. This\n\t\t\t\t\t// will result in an extra undo level being appended with the flattened\n\t\t\t\t\t// undo values.\n\t\t\t\t\t// We also have to take into account if the `lastEditAction` had opted out\n\t\t\t\t\t// of being tracked in undo history, like the action that persists the latest\n\t\t\t\t\t// content right before saving. In that case we have to update the `lastEditAction`\n\t\t\t\t\t// to avoid returning early before applying the existing flattened undos.\n\t\t\t\t\tisCreateUndoLevel = true;\n\t\t\t\t\tif ( ! lastEditAction.meta.undo ) {\n\t\t\t\t\t\tlastEditAction.meta.undo = {\n\t\t\t\t\t\t\tedits: {},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\taction = lastEditAction;\n\t\t\t\t} else {\n\t\t\t\t\treturn nextState;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! action.meta.undo ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\t// Transient edits don't create an undo level, but are\n\t\t\t// reachable in the next meaningful edit to which they\n\t\t\t// are merged. They are defined in the entity's config.\n\t\t\tif (\n\t\t\t\t! isCreateUndoLevel &&\n\t\t\t\t! Object.keys( action.edits ).some(\n\t\t\t\t\t( key ) => ! action.transientEdits[ key ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// @ts-ignore we might consider using Object.assign({}, state)\n\t\t\t\tnextState = [ ...state ];\n\t\t\t\tnextState.flattenedUndo = {\n\t\t\t\t\t...state.flattenedUndo,\n\t\t\t\t\t...action.edits,\n\t\t\t\t};\n\t\t\t\tnextState.offset = state.offset;\n\t\t\t\treturn nextState;\n\t\t\t}\n\n\t\t\t// Clear potential redos, because this only supports linear history.\n\t\t\tnextState =\n\t\t\t\t// @ts-ignore this needs additional cleanup, probably involving code-level changes\n\t\t\t\tnextState || state.slice( 0, state.offset || undefined );\n\t\t\tnextState.offset = nextState.offset || 0;\n\t\t\tnextState.pop();\n\t\t\tif ( ! isCreateUndoLevel ) {\n\t\t\t\tnextState.push( {\n\t\t\t\t\tkind: action.meta.undo.kind,\n\t\t\t\t\tname: action.meta.undo.name,\n\t\t\t\t\trecordId: action.meta.undo.recordId,\n\t\t\t\t\tedits: {\n\t\t\t\t\t\t...state.flattenedUndo,\n\t\t\t\t\t\t...action.meta.undo.edits,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t\t// When an edit is a function it's an optimization to avoid running some expensive operation.\n\t\t\t// We can't rely on the function references being the same so we opt out of comparing them here.\n\t\t\tconst comparisonUndoEdits = Object.values(\n\t\t\t\taction.meta.undo.edits\n\t\t\t).filter( ( edit ) => typeof edit !== 'function' );\n\t\t\tconst comparisonEdits = Object.values( action.edits ).filter(\n\t\t\t\t( edit ) => typeof edit !== 'function'\n\t\t\t);\n\t\t\tif ( ! isShallowEqual( comparisonUndoEdits, comparisonEdits ) ) {\n\t\t\t\tnextState.push( {\n\t\t\t\t\tkind: action.kind,\n\t\t\t\t\tname: action.name,\n\t\t\t\t\trecordId: action.recordId,\n\t\t\t\t\tedits: isCreateUndoLevel\n\t\t\t\t\t\t? { ...state.flattenedUndo, ...action.edits }\n\t\t\t\t\t\t: action.edits,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn nextState;\n\t}\n\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 default combineReducers( {\n\tterms,\n\tusers,\n\tcurrentTheme,\n\tcurrentGlobalStylesId,\n\tcurrentUser,\n\tthemeGlobalStyleVariations,\n\tthemeBaseGlobalStyles,\n\ttaxonomies,\n\tentities,\n\tundo,\n\tembedPreviews,\n\tuserPermissions,\n\tautosaves,\n\tblockPatterns,\n\tblockPatternCategories,\n} );\n"]}
@@ -256,9 +256,9 @@ function getEntityConfig(state, kind, name) {
256
256
  * @return Record.
257
257
  */
258
258
  const getEntityRecord = (0, _rememo.default)((state, kind, name, key, query) => {
259
- var _query$context, _queriedState$items$c;
259
+ var _state$entities$recor, _state$entities$recor2, _state$entities$recor3, _query$context, _queriedState$items$c;
260
260
 
261
- const queriedState = (0, _lodash.get)(state.entities.records, [kind, name, 'queriedData']);
261
+ const queriedState = (_state$entities$recor = state.entities.records) === null || _state$entities$recor === void 0 ? void 0 : (_state$entities$recor2 = _state$entities$recor[kind]) === null || _state$entities$recor2 === void 0 ? void 0 : (_state$entities$recor3 = _state$entities$recor2[name]) === null || _state$entities$recor3 === void 0 ? void 0 : _state$entities$recor3.queriedData;
262
262
 
263
263
  if (!queriedState) {
264
264
  return undefined;
@@ -287,7 +287,10 @@ const getEntityRecord = (0, _rememo.default)((state, kind, name, key, query) =>
287
287
 
288
288
  for (let f = 0; f < fields.length; f++) {
289
289
  const field = fields[f].split('.');
290
- const value = (0, _lodash.get)(item, field);
290
+ let value = item;
291
+ field.forEach(fieldName => {
292
+ value = value[fieldName];
293
+ });
291
294
  (0, _lodash.set)(filteredItem, field, value);
292
295
  }
293
296
 
@@ -296,10 +299,10 @@ const getEntityRecord = (0, _rememo.default)((state, kind, name, key, query) =>
296
299
 
297
300
  return item;
298
301
  }, (state, kind, name, recordId, query) => {
299
- var _query$context2;
302
+ var _query$context2, _state$entities$recor4, _state$entities$recor5, _state$entities$recor6, _state$entities$recor7, _state$entities$recor8, _state$entities$recor9, _state$entities$recor10, _state$entities$recor11, _state$entities$recor12, _state$entities$recor13;
300
303
 
301
304
  const context = (_query$context2 = query === null || query === void 0 ? void 0 : query.context) !== null && _query$context2 !== void 0 ? _query$context2 : 'default';
302
- return [(0, _lodash.get)(state.entities.records, [kind, name, 'queriedData', 'items', context, recordId]), (0, _lodash.get)(state.entities.records, [kind, name, 'queriedData', 'itemIsComplete', context, recordId])];
305
+ return [(_state$entities$recor4 = state.entities.records) === null || _state$entities$recor4 === void 0 ? void 0 : (_state$entities$recor5 = _state$entities$recor4[kind]) === null || _state$entities$recor5 === void 0 ? void 0 : (_state$entities$recor6 = _state$entities$recor5[name]) === null || _state$entities$recor6 === void 0 ? void 0 : (_state$entities$recor7 = _state$entities$recor6.queriedData) === null || _state$entities$recor7 === void 0 ? void 0 : (_state$entities$recor8 = _state$entities$recor7.items[context]) === null || _state$entities$recor8 === void 0 ? void 0 : _state$entities$recor8[recordId], (_state$entities$recor9 = state.entities.records) === null || _state$entities$recor9 === void 0 ? void 0 : (_state$entities$recor10 = _state$entities$recor9[kind]) === null || _state$entities$recor10 === void 0 ? void 0 : (_state$entities$recor11 = _state$entities$recor10[name]) === null || _state$entities$recor11 === void 0 ? void 0 : (_state$entities$recor12 = _state$entities$recor11.queriedData) === null || _state$entities$recor12 === void 0 ? void 0 : (_state$entities$recor13 = _state$entities$recor12.itemIsComplete[context]) === null || _state$entities$recor13 === void 0 ? void 0 : _state$entities$recor13[recordId]];
303
306
  });
304
307
  /**
305
308
  * Returns the Entity's record object by key. Doesn't trigger a resolver nor requests the entity records from the API if the entity record isn't available in the local state.
@@ -334,10 +337,12 @@ const getRawEntityRecord = (0, _rememo.default)((state, kind, name, key) => {
334
337
  const record = getEntityRecord(state, kind, name, key);
335
338
  return record && Object.keys(record).reduce((accumulator, _key) => {
336
339
  if ((0, _utils.isRawAttribute)(getEntityConfig(state, kind, name), _key)) {
340
+ var _record$_key$raw, _record$_key;
341
+
337
342
  // Because edits are the "raw" attribute values,
338
343
  // we return those from record selectors to make rendering,
339
344
  // comparisons, and joins with edits easier.
340
- accumulator[_key] = (0, _lodash.get)(record[_key], 'raw', record[_key]);
345
+ accumulator[_key] = (_record$_key$raw = (_record$_key = record[_key]) === null || _record$_key === void 0 ? void 0 : _record$_key.raw) !== null && _record$_key$raw !== void 0 ? _record$_key$raw : record[_key];
341
346
  } else {
342
347
  accumulator[_key] = record[_key];
343
348
  }
@@ -345,10 +350,10 @@ const getRawEntityRecord = (0, _rememo.default)((state, kind, name, key) => {
345
350
  return accumulator;
346
351
  }, {});
347
352
  }, (state, kind, name, recordId, query) => {
348
- var _query$context3;
353
+ var _query$context3, _state$entities$recor14, _state$entities$recor15, _state$entities$recor16, _state$entities$recor17, _state$entities$recor18, _state$entities$recor19, _state$entities$recor20, _state$entities$recor21, _state$entities$recor22, _state$entities$recor23;
349
354
 
350
355
  const context = (_query$context3 = query === null || query === void 0 ? void 0 : query.context) !== null && _query$context3 !== void 0 ? _query$context3 : 'default';
351
- return [state.entities.config, (0, _lodash.get)(state.entities.records, [kind, name, 'queriedData', 'items', context, recordId]), (0, _lodash.get)(state.entities.records, [kind, name, 'queriedData', 'itemIsComplete', context, recordId])];
356
+ return [state.entities.config, (_state$entities$recor14 = state.entities.records) === null || _state$entities$recor14 === void 0 ? void 0 : (_state$entities$recor15 = _state$entities$recor14[kind]) === null || _state$entities$recor15 === void 0 ? void 0 : (_state$entities$recor16 = _state$entities$recor15[name]) === null || _state$entities$recor16 === void 0 ? void 0 : (_state$entities$recor17 = _state$entities$recor16.queriedData) === null || _state$entities$recor17 === void 0 ? void 0 : (_state$entities$recor18 = _state$entities$recor17.items[context]) === null || _state$entities$recor18 === void 0 ? void 0 : _state$entities$recor18[recordId], (_state$entities$recor19 = state.entities.records) === null || _state$entities$recor19 === void 0 ? void 0 : (_state$entities$recor20 = _state$entities$recor19[kind]) === null || _state$entities$recor20 === void 0 ? void 0 : (_state$entities$recor21 = _state$entities$recor20[name]) === null || _state$entities$recor21 === void 0 ? void 0 : (_state$entities$recor22 = _state$entities$recor21.queriedData) === null || _state$entities$recor22 === void 0 ? void 0 : (_state$entities$recor23 = _state$entities$recor22.itemIsComplete[context]) === null || _state$entities$recor23 === void 0 ? void 0 : _state$entities$recor23[recordId]];
352
357
  });
353
358
  /**
354
359
  * Returns true if records have been received for the given set of parameters,
@@ -389,9 +394,11 @@ function hasEntityRecords(state, kind, name, query) {
389
394
  * @return Records.
390
395
  */
391
396
  const getEntityRecords = (state, kind, name, query) => {
397
+ var _state$entities$recor24, _state$entities$recor25, _state$entities$recor26;
398
+
392
399
  // Queried data state is prepopulated for all known entities. If this is not
393
400
  // assigned for the given parameters, then it is known to not exist.
394
- const queriedState = (0, _lodash.get)(state.entities.records, [kind, name, 'queriedData']);
401
+ const queriedState = (_state$entities$recor24 = state.entities.records) === null || _state$entities$recor24 === void 0 ? void 0 : (_state$entities$recor25 = _state$entities$recor24[kind]) === null || _state$entities$recor25 === void 0 ? void 0 : (_state$entities$recor26 = _state$entities$recor25[name]) === null || _state$entities$recor26 === void 0 ? void 0 : _state$entities$recor26.queriedData;
395
402
 
396
403
  if (!queriedState) {
397
404
  return null;
@@ -499,7 +506,9 @@ const __experimentalGetEntitiesBeingSaved = (0, _rememo.default)(state => {
499
506
  exports.__experimentalGetEntitiesBeingSaved = __experimentalGetEntitiesBeingSaved;
500
507
 
501
508
  function getEntityRecordEdits(state, kind, name, recordId) {
502
- return (0, _lodash.get)(state.entities.records, [kind, name, 'edits', recordId]);
509
+ var _state$entities$recor27, _state$entities$recor28, _state$entities$recor29, _state$entities$recor30;
510
+
511
+ return (_state$entities$recor27 = state.entities.records) === null || _state$entities$recor27 === void 0 ? void 0 : (_state$entities$recor28 = _state$entities$recor27[kind]) === null || _state$entities$recor28 === void 0 ? void 0 : (_state$entities$recor29 = _state$entities$recor28[name]) === null || _state$entities$recor29 === void 0 ? void 0 : (_state$entities$recor30 = _state$entities$recor29.edits) === null || _state$entities$recor30 === void 0 ? void 0 : _state$entities$recor30[recordId];
503
512
  }
504
513
  /**
505
514
  * Returns the specified entity record's non transient edits.
@@ -534,7 +543,11 @@ const getEntityRecordNonTransientEdits = (0, _rememo.default)((state, kind, name
534
543
 
535
544
  return acc;
536
545
  }, {});
537
- }, (state, kind, name, recordId) => [state.entities.config, (0, _lodash.get)(state.entities.records, [kind, name, 'edits', recordId])]);
546
+ }, (state, kind, name, recordId) => {
547
+ var _state$entities$recor31, _state$entities$recor32, _state$entities$recor33, _state$entities$recor34;
548
+
549
+ return [state.entities.config, (_state$entities$recor31 = state.entities.records) === null || _state$entities$recor31 === void 0 ? void 0 : (_state$entities$recor32 = _state$entities$recor31[kind]) === null || _state$entities$recor32 === void 0 ? void 0 : (_state$entities$recor33 = _state$entities$recor32[name]) === null || _state$entities$recor33 === void 0 ? void 0 : (_state$entities$recor34 = _state$entities$recor33.edits) === null || _state$entities$recor34 === void 0 ? void 0 : _state$entities$recor34[recordId]];
550
+ });
538
551
  /**
539
552
  * Returns true if the specified entity record has edits,
540
553
  * and false otherwise.
@@ -567,10 +580,10 @@ function hasEditsForEntityRecord(state, kind, name, recordId) {
567
580
  const getEditedEntityRecord = (0, _rememo.default)((state, kind, name, recordId) => ({ ...getRawEntityRecord(state, kind, name, recordId),
568
581
  ...getEntityRecordEdits(state, kind, name, recordId)
569
582
  }), (state, kind, name, recordId, query) => {
570
- var _query$context4;
583
+ var _query$context4, _state$entities$recor35, _state$entities$recor36, _state$entities$recor37, _state$entities$recor38, _state$entities$recor39, _state$entities$recor40, _state$entities$recor41, _state$entities$recor42, _state$entities$recor43, _state$entities$recor44, _state$entities$recor45, _state$entities$recor46;
571
584
 
572
585
  const context = (_query$context4 = query === null || query === void 0 ? void 0 : query.context) !== null && _query$context4 !== void 0 ? _query$context4 : 'default';
573
- return [state.entities.config, (0, _lodash.get)(state.entities.records, [kind, name, 'queriedData', 'items', context, recordId]), (0, _lodash.get)(state.entities.records, [kind, name, 'queriedData', 'itemIsComplete', context, recordId]), (0, _lodash.get)(state.entities.records, [kind, name, 'edits', recordId])];
586
+ return [state.entities.config, (_state$entities$recor35 = state.entities.records) === null || _state$entities$recor35 === void 0 ? void 0 : (_state$entities$recor36 = _state$entities$recor35[kind]) === null || _state$entities$recor36 === void 0 ? void 0 : (_state$entities$recor37 = _state$entities$recor36[name]) === null || _state$entities$recor37 === void 0 ? void 0 : (_state$entities$recor38 = _state$entities$recor37.queriedData.items[context]) === null || _state$entities$recor38 === void 0 ? void 0 : _state$entities$recor38[recordId], (_state$entities$recor39 = state.entities.records) === null || _state$entities$recor39 === void 0 ? void 0 : (_state$entities$recor40 = _state$entities$recor39[kind]) === null || _state$entities$recor40 === void 0 ? void 0 : (_state$entities$recor41 = _state$entities$recor40[name]) === null || _state$entities$recor41 === void 0 ? void 0 : (_state$entities$recor42 = _state$entities$recor41.queriedData.itemIsComplete[context]) === null || _state$entities$recor42 === void 0 ? void 0 : _state$entities$recor42[recordId], (_state$entities$recor43 = state.entities.records) === null || _state$entities$recor43 === void 0 ? void 0 : (_state$entities$recor44 = _state$entities$recor43[kind]) === null || _state$entities$recor44 === void 0 ? void 0 : (_state$entities$recor45 = _state$entities$recor44[name]) === null || _state$entities$recor45 === void 0 ? void 0 : (_state$entities$recor46 = _state$entities$recor45.edits) === null || _state$entities$recor46 === void 0 ? void 0 : _state$entities$recor46[recordId]];
574
587
  });
575
588
  /**
576
589
  * Returns true if the specified entity record is autosaving, and false otherwise.
@@ -586,10 +599,12 @@ const getEditedEntityRecord = (0, _rememo.default)((state, kind, name, recordId)
586
599
  exports.getEditedEntityRecord = getEditedEntityRecord;
587
600
 
588
601
  function isAutosavingEntityRecord(state, kind, name, recordId) {
602
+ var _state$entities$recor47, _state$entities$recor48, _state$entities$recor49, _state$entities$recor50, _state$entities$recor51;
603
+
589
604
  const {
590
605
  pending,
591
606
  isAutosave
592
- } = (0, _lodash.get)(state.entities.records, [kind, name, 'saving', recordId], {});
607
+ } = (_state$entities$recor47 = (_state$entities$recor48 = state.entities.records) === null || _state$entities$recor48 === void 0 ? void 0 : (_state$entities$recor49 = _state$entities$recor48[kind]) === null || _state$entities$recor49 === void 0 ? void 0 : (_state$entities$recor50 = _state$entities$recor49[name]) === null || _state$entities$recor50 === void 0 ? void 0 : (_state$entities$recor51 = _state$entities$recor50.saving) === null || _state$entities$recor51 === void 0 ? void 0 : _state$entities$recor51[recordId]) !== null && _state$entities$recor47 !== void 0 ? _state$entities$recor47 : {};
593
608
  return Boolean(pending && isAutosave);
594
609
  }
595
610
  /**
@@ -605,7 +620,9 @@ function isAutosavingEntityRecord(state, kind, name, recordId) {
605
620
 
606
621
 
607
622
  function isSavingEntityRecord(state, kind, name, recordId) {
608
- return (0, _lodash.get)(state.entities.records, [kind, name, 'saving', recordId, 'pending'], false);
623
+ var _state$entities$recor52, _state$entities$recor53, _state$entities$recor54, _state$entities$recor55, _state$entities$recor56, _state$entities$recor57;
624
+
625
+ return (_state$entities$recor52 = (_state$entities$recor53 = state.entities.records) === null || _state$entities$recor53 === void 0 ? void 0 : (_state$entities$recor54 = _state$entities$recor53[kind]) === null || _state$entities$recor54 === void 0 ? void 0 : (_state$entities$recor55 = _state$entities$recor54[name]) === null || _state$entities$recor55 === void 0 ? void 0 : (_state$entities$recor56 = _state$entities$recor55.saving) === null || _state$entities$recor56 === void 0 ? void 0 : (_state$entities$recor57 = _state$entities$recor56[recordId]) === null || _state$entities$recor57 === void 0 ? void 0 : _state$entities$recor57.pending) !== null && _state$entities$recor52 !== void 0 ? _state$entities$recor52 : false;
609
626
  }
610
627
  /**
611
628
  * Returns true if the specified entity record is deleting, and false otherwise.
@@ -620,7 +637,9 @@ function isSavingEntityRecord(state, kind, name, recordId) {
620
637
 
621
638
 
622
639
  function isDeletingEntityRecord(state, kind, name, recordId) {
623
- return (0, _lodash.get)(state.entities.records, [kind, name, 'deleting', recordId, 'pending'], false);
640
+ var _state$entities$recor58, _state$entities$recor59, _state$entities$recor60, _state$entities$recor61, _state$entities$recor62, _state$entities$recor63;
641
+
642
+ return (_state$entities$recor58 = (_state$entities$recor59 = state.entities.records) === null || _state$entities$recor59 === void 0 ? void 0 : (_state$entities$recor60 = _state$entities$recor59[kind]) === null || _state$entities$recor60 === void 0 ? void 0 : (_state$entities$recor61 = _state$entities$recor60[name]) === null || _state$entities$recor61 === void 0 ? void 0 : (_state$entities$recor62 = _state$entities$recor61.deleting) === null || _state$entities$recor62 === void 0 ? void 0 : (_state$entities$recor63 = _state$entities$recor62[recordId]) === null || _state$entities$recor63 === void 0 ? void 0 : _state$entities$recor63.pending) !== null && _state$entities$recor58 !== void 0 ? _state$entities$recor58 : false;
624
643
  }
625
644
  /**
626
645
  * Returns the specified entity record's last save error.
@@ -635,7 +654,9 @@ function isDeletingEntityRecord(state, kind, name, recordId) {
635
654
 
636
655
 
637
656
  function getLastEntitySaveError(state, kind, name, recordId) {
638
- return (0, _lodash.get)(state.entities.records, [kind, name, 'saving', recordId, 'error']);
657
+ var _state$entities$recor64, _state$entities$recor65, _state$entities$recor66, _state$entities$recor67, _state$entities$recor68;
658
+
659
+ return (_state$entities$recor64 = state.entities.records) === null || _state$entities$recor64 === void 0 ? void 0 : (_state$entities$recor65 = _state$entities$recor64[kind]) === null || _state$entities$recor65 === void 0 ? void 0 : (_state$entities$recor66 = _state$entities$recor65[name]) === null || _state$entities$recor66 === void 0 ? void 0 : (_state$entities$recor67 = _state$entities$recor66.saving) === null || _state$entities$recor67 === void 0 ? void 0 : (_state$entities$recor68 = _state$entities$recor67[recordId]) === null || _state$entities$recor68 === void 0 ? void 0 : _state$entities$recor68.error;
639
660
  }
640
661
  /**
641
662
  * Returns the specified entity record's last delete error.
@@ -650,7 +671,9 @@ function getLastEntitySaveError(state, kind, name, recordId) {
650
671
 
651
672
 
652
673
  function getLastEntityDeleteError(state, kind, name, recordId) {
653
- return (0, _lodash.get)(state.entities.records, [kind, name, 'deleting', recordId, 'error']);
674
+ var _state$entities$recor69, _state$entities$recor70, _state$entities$recor71, _state$entities$recor72, _state$entities$recor73;
675
+
676
+ return (_state$entities$recor69 = state.entities.records) === null || _state$entities$recor69 === void 0 ? void 0 : (_state$entities$recor70 = _state$entities$recor69[kind]) === null || _state$entities$recor70 === void 0 ? void 0 : (_state$entities$recor71 = _state$entities$recor70[name]) === null || _state$entities$recor71 === void 0 ? void 0 : (_state$entities$recor72 = _state$entities$recor71.deleting) === null || _state$entities$recor72 === void 0 ? void 0 : (_state$entities$recor73 = _state$entities$recor72[recordId]) === null || _state$entities$recor73 === void 0 ? void 0 : _state$entities$recor73.error;
654
677
  }
655
678
  /**
656
679
  * Returns the current undo offset for the
@@ -816,7 +839,7 @@ function isPreviewEmbedFallback(state, url) {
816
839
 
817
840
  function canUser(state, action, resource, id) {
818
841
  const key = [action, resource, id].filter(Boolean).join('/');
819
- return (0, _lodash.get)(state, ['userPermissions', key]);
842
+ return state.userPermissions[key];
820
843
  }
821
844
  /**
822
845
  * Returns whether the current user can edit the given entity.