@wordpress/core-data 6.18.0 → 6.19.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 +2 -0
- package/README.md +13 -1
- package/build/actions.js +34 -30
- package/build/actions.js.map +1 -1
- package/build/entity-provider.js +2 -99
- package/build/entity-provider.js.map +1 -1
- package/build/entity-types/helpers.js.map +1 -1
- package/build/footnotes/get-footnotes-order.js +35 -0
- package/build/footnotes/get-footnotes-order.js.map +1 -0
- package/build/footnotes/get-rich-text-values-cached.js +39 -0
- package/build/footnotes/get-rich-text-values-cached.js.map +1 -0
- package/build/footnotes/index.js +96 -0
- package/build/footnotes/index.js.map +1 -0
- package/build/hooks/use-entity-record.js +6 -3
- package/build/hooks/use-entity-record.js.map +1 -1
- package/build/hooks/use-resource-permissions.js.map +1 -1
- package/build/private-selectors.js +4 -17
- package/build/private-selectors.js.map +1 -1
- package/build/reducer.js +33 -145
- package/build/reducer.js.map +1 -1
- package/build/resolvers.js +20 -1
- package/build/resolvers.js.map +1 -1
- package/build/selectors.js +21 -25
- package/build/selectors.js.map +1 -1
- package/build/utils/get-nested-value.js +30 -0
- package/build/utils/get-nested-value.js.map +1 -0
- package/build/utils/index.js +7 -0
- package/build/utils/index.js.map +1 -1
- package/build/utils/set-nested-value.js +11 -6
- package/build/utils/set-nested-value.js.map +1 -1
- package/build-module/actions.js +32 -28
- package/build-module/actions.js.map +1 -1
- package/build-module/entity-provider.js +2 -99
- package/build-module/entity-provider.js.map +1 -1
- package/build-module/entity-types/helpers.js.map +1 -1
- package/build-module/footnotes/get-footnotes-order.js +27 -0
- package/build-module/footnotes/get-footnotes-order.js.map +1 -0
- package/build-module/footnotes/get-rich-text-values-cached.js +33 -0
- package/build-module/footnotes/get-rich-text-values-cached.js.map +1 -0
- package/build-module/footnotes/index.js +88 -0
- package/build-module/footnotes/index.js.map +1 -0
- package/build-module/hooks/use-entity-record.js +6 -3
- package/build-module/hooks/use-entity-record.js.map +1 -1
- package/build-module/hooks/use-resource-permissions.js.map +1 -1
- package/build-module/private-selectors.js +3 -15
- package/build-module/private-selectors.js.map +1 -1
- package/build-module/reducer.js +30 -144
- package/build-module/reducer.js.map +1 -1
- package/build-module/resolvers.js +18 -0
- package/build-module/resolvers.js.map +1 -1
- package/build-module/selectors.js +19 -29
- package/build-module/selectors.js.map +1 -1
- package/build-module/utils/get-nested-value.js +24 -0
- package/build-module/utils/get-nested-value.js.map +1 -0
- package/build-module/utils/index.js +1 -0
- package/build-module/utils/index.js.map +1 -1
- package/build-module/utils/set-nested-value.js +11 -6
- package/build-module/utils/set-nested-value.js.map +1 -1
- package/build-types/actions.d.ts +1 -6
- package/build-types/actions.d.ts.map +1 -1
- package/build-types/entity-provider.d.ts.map +1 -1
- package/build-types/footnotes/get-footnotes-order.d.ts +2 -0
- package/build-types/footnotes/get-footnotes-order.d.ts.map +1 -0
- package/build-types/footnotes/get-rich-text-values-cached.d.ts +2 -0
- package/build-types/footnotes/get-rich-text-values-cached.d.ts.map +1 -0
- package/build-types/footnotes/index.d.ts +4 -0
- package/build-types/footnotes/index.d.ts.map +1 -0
- package/build-types/hooks/use-entity-record.d.ts +2 -0
- package/build-types/hooks/use-entity-record.d.ts.map +1 -1
- package/build-types/index.d.ts +3 -2
- package/build-types/index.d.ts.map +1 -1
- package/build-types/private-selectors.d.ts +3 -13
- package/build-types/private-selectors.d.ts.map +1 -1
- package/build-types/reducer.d.ts +7 -23
- package/build-types/reducer.d.ts.map +1 -1
- package/build-types/resolvers.d.ts +4 -0
- package/build-types/resolvers.d.ts.map +1 -1
- package/build-types/selectors.d.ts +19 -14
- package/build-types/selectors.d.ts.map +1 -1
- package/build-types/utils/get-nested-value.d.ts +14 -0
- package/build-types/utils/get-nested-value.d.ts.map +1 -0
- package/build-types/utils/index.d.ts +1 -0
- package/build-types/utils/set-nested-value.d.ts +8 -4
- package/build-types/utils/set-nested-value.d.ts.map +1 -1
- package/package.json +16 -15
- package/src/actions.js +36 -26
- package/src/entity-provider.js +2 -134
- package/src/entity-types/helpers.ts +2 -2
- package/src/footnotes/get-footnotes-order.js +30 -0
- package/src/footnotes/get-rich-text-values-cached.js +35 -0
- package/src/footnotes/index.js +119 -0
- package/src/hooks/test/use-entity-record.js +4 -0
- package/src/hooks/use-entity-record.ts +12 -3
- package/src/hooks/use-resource-permissions.ts +1 -1
- package/src/private-selectors.ts +4 -17
- package/src/reducer.js +36 -155
- package/src/resolvers.js +25 -0
- package/src/selectors.ts +39 -51
- package/src/test/reducer.js +0 -233
- package/src/test/selectors.js +0 -54
- package/src/utils/get-nested-value.js +27 -0
- package/src/utils/index.js +1 -0
- package/src/utils/set-nested-value.js +12 -6
- package/src/utils/test/get-nested-value.js +61 -0
- package/src/utils/test/set-nested-value.js +7 -0
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
package/build/reducer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_es","_interopRequireDefault","require","_compose","_data","_isShallowEqual","_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","stackedEdits","newState","forEach","kind","name","recordId","property","from","to","edits","entity","entityConfig","compose","ifMatchingAction","replaceAction","key","DEFAULT_ENTITY_KEY","combineReducers","queriedData","queriedDataReducer","_action$query$context","context","query","nextState","record","items","nextEdits","Object","keys","acc","_record$key$raw","fastDeepEqual","raw","persistedEdits","length","saving","pending","error","isAutosave","deleting","entitiesConfig","rootEntitiesConfig","entities","newConfig","config","entitiesDataReducer","entitiesByKind","push","entries","memo","subEntities","kindReducer","kindMemo","newData","records","exports","UNDO_INITIAL_STATE","list","offset","undo","omitPendingRedos","currentState","slice","appendCachedEditsToLastUndo","cache","previousUndoState","pop","updatedUndoState","appendEditToStack","stack","existingEditIndex","findIndex","k","n","r","p","nextStack","meta","isCached","comparisonUndoEdits","values","filter","edit","comparisonEdits","isShallowEqual","embedPreviews","url","preview","userPermissions","isAllowed","autosaves","postId","autosavesData","blockPatterns","patterns","blockPatternCategories","categories","navigationFallbackId","fallbackId","themeGlobalStyleRevisions","currentId","revisions","_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 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\nconst withMultiEntityRecordEdits = ( reducer ) => ( state, action ) => {\n\tif ( action.type === 'UNDO' || action.type === 'REDO' ) {\n\t\tconst { stackedEdits } = action;\n\n\t\tlet newState = state;\n\t\tstackedEdits.forEach(\n\t\t\t( { kind, name, recordId, property, from, to } ) => {\n\t\t\t\tnewState = reducer( newState, {\n\t\t\t\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t\t\t\tkind,\n\t\t\t\t\tname,\n\t\t\t\t\trecordId,\n\t\t\t\t\tedits: {\n\t\t\t\t\t\t[ property ]: action.type === 'UNDO' ? from : to,\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\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 = 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 * @typedef {Object} UndoStateMeta\n *\n * @property {number} list The undo stack.\n * @property {number} offset Where in the undo stack we are.\n * @property {Object} cache Cache of unpersisted edits.\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 = { list: [], offset: 0 };\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\tconst omitPendingRedos = ( currentState ) => {\n\t\treturn {\n\t\t\t...currentState,\n\t\t\tlist: currentState.list.slice(\n\t\t\t\t0,\n\t\t\t\tcurrentState.offset || undefined\n\t\t\t),\n\t\t\toffset: 0,\n\t\t};\n\t};\n\n\tconst appendCachedEditsToLastUndo = ( currentState ) => {\n\t\tif ( ! currentState.cache ) {\n\t\t\treturn currentState;\n\t\t}\n\n\t\tlet nextState = {\n\t\t\t...currentState,\n\t\t\tlist: [ ...currentState.list ],\n\t\t};\n\t\tnextState = omitPendingRedos( nextState );\n\t\tconst previousUndoState = nextState.list.pop();\n\t\tconst updatedUndoState = currentState.cache.reduce(\n\t\t\tappendEditToStack,\n\t\t\tpreviousUndoState\n\t\t);\n\t\tnextState.list.push( updatedUndoState );\n\n\t\treturn {\n\t\t\t...nextState,\n\t\t\tcache: undefined,\n\t\t};\n\t};\n\n\tconst appendEditToStack = (\n\t\tstack = [],\n\t\t{ kind, name, recordId, property, from, to }\n\t) => {\n\t\tconst existingEditIndex = stack?.findIndex(\n\t\t\t( { kind: k, name: n, recordId: r, property: p } ) => {\n\t\t\t\treturn (\n\t\t\t\t\tk === kind && n === name && r === recordId && p === property\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\t\tconst nextStack = [ ...stack ];\n\t\tif ( existingEditIndex !== -1 ) {\n\t\t\t// If the edit is already in the stack leave the initial \"from\" value.\n\t\t\tnextStack[ existingEditIndex ] = {\n\t\t\t\t...nextStack[ existingEditIndex ],\n\t\t\t\tto,\n\t\t\t};\n\t\t} else {\n\t\t\tnextStack.push( {\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\trecordId,\n\t\t\t\tproperty,\n\t\t\t\tfrom,\n\t\t\t\tto,\n\t\t\t} );\n\t\t}\n\t\treturn nextStack;\n\t};\n\n\tswitch ( action.type ) {\n\t\tcase 'CREATE_UNDO_LEVEL':\n\t\t\treturn appendCachedEditsToLastUndo( state );\n\n\t\tcase 'UNDO':\n\t\tcase 'REDO': {\n\t\t\tconst nextState = appendCachedEditsToLastUndo( state );\n\t\t\treturn {\n\t\t\t\t...nextState,\n\t\t\t\toffset: state.offset + ( action.type === 'UNDO' ? -1 : 1 ),\n\t\t\t};\n\t\t}\n\n\t\tcase 'EDIT_ENTITY_RECORD': {\n\t\t\tif ( ! action.meta.undo ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\tconst edits = Object.keys( action.edits ).map( ( key ) => {\n\t\t\t\treturn {\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\tproperty: key,\n\t\t\t\t\tfrom: action.meta.undo.edits[ key ],\n\t\t\t\t\tto: action.edits[ key ],\n\t\t\t\t};\n\t\t\t} );\n\n\t\t\tif ( action.meta.undo.isCached ) {\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tcache: edits.reduce( appendEditToStack, state.cache ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tlet nextState = omitPendingRedos( state );\n\t\t\tnextState = appendCachedEditsToLastUndo( nextState );\n\t\t\tnextState = { ...nextState, list: [ ...nextState.list ] };\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.list.push( edits );\n\t\t\t}\n\n\t\t\treturn nextState;\n\t\t}\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 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\nexport default combineReducers( {\n\tterms,\n\tusers,\n\tcurrentTheme,\n\tcurrentGlobalStylesId,\n\tcurrentUser,\n\tthemeGlobalStyleVariations,\n\tthemeBaseGlobalStyles,\n\tthemeGlobalStyleRevisions,\n\ttaxonomies,\n\tentities,\n\tundo,\n\tembedPreviews,\n\tuserPermissions,\n\tautosaves,\n\tblockPatterns,\n\tblockPatternCategories,\n\tnavigationFallbackId,\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","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","revisions","_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\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 = 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\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} );\n"],"mappings":"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"}
|
package/build/resolvers.js
CHANGED
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.getThemeSupports = exports.getRawEntityRecord = exports.getNavigationFallbackId = exports.getEntityRecords = exports.getEntityRecord = exports.getEmbedPreview = exports.getEditedEntityRecord = exports.getCurrentUser = exports.getCurrentThemeGlobalStylesRevisions = exports.getCurrentTheme = exports.getBlockPatterns = exports.getBlockPatternCategories = exports.getAutosaves = exports.getAutosave = exports.getAuthors = exports.canUserEditEntityRecord = exports.canUser = exports.__experimentalGetTemplateForLink = exports.__experimentalGetCurrentThemeGlobalStylesVariations = exports.__experimentalGetCurrentThemeBaseGlobalStyles = exports.__experimentalGetCurrentGlobalStylesId = void 0;
|
|
7
|
+
exports.getUserPatternCategories = exports.getThemeSupports = exports.getRawEntityRecord = exports.getNavigationFallbackId = exports.getEntityRecords = exports.getEntityRecord = exports.getEmbedPreview = exports.getEditedEntityRecord = exports.getCurrentUser = exports.getCurrentThemeGlobalStylesRevisions = exports.getCurrentTheme = exports.getBlockPatterns = exports.getBlockPatternCategories = exports.getAutosaves = exports.getAutosave = exports.getAuthors = exports.canUserEditEntityRecord = exports.canUser = exports.__experimentalGetTemplateForLink = exports.__experimentalGetCurrentThemeGlobalStylesVariations = exports.__experimentalGetCurrentThemeBaseGlobalStyles = exports.__experimentalGetCurrentGlobalStylesId = void 0;
|
|
8
8
|
var _changeCase = require("change-case");
|
|
9
9
|
var _url = require("@wordpress/url");
|
|
10
10
|
var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
|
|
@@ -527,6 +527,25 @@ const getBlockPatternCategories = () => async ({
|
|
|
527
527
|
});
|
|
528
528
|
};
|
|
529
529
|
exports.getBlockPatternCategories = getBlockPatternCategories;
|
|
530
|
+
const getUserPatternCategories = () => async ({
|
|
531
|
+
dispatch,
|
|
532
|
+
resolveSelect
|
|
533
|
+
}) => {
|
|
534
|
+
const patternCategories = await resolveSelect.getEntityRecords('taxonomy', 'wp_pattern_category', {
|
|
535
|
+
per_page: -1,
|
|
536
|
+
_fields: 'id,name,description,slug'
|
|
537
|
+
});
|
|
538
|
+
const mappedPatternCategories = patternCategories?.map(userCategory => ({
|
|
539
|
+
...userCategory,
|
|
540
|
+
label: userCategory.name,
|
|
541
|
+
name: userCategory.slug
|
|
542
|
+
})) || [];
|
|
543
|
+
dispatch({
|
|
544
|
+
type: 'RECEIVE_USER_PATTERN_CATEGORIES',
|
|
545
|
+
patternCategories: mappedPatternCategories
|
|
546
|
+
});
|
|
547
|
+
};
|
|
548
|
+
exports.getUserPatternCategories = getUserPatternCategories;
|
|
530
549
|
const getNavigationFallbackId = () => async ({
|
|
531
550
|
dispatch,
|
|
532
551
|
select
|
package/build/resolvers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_changeCase","require","_url","_apiFetch","_interopRequireDefault","_name","_entities","_utils","_sync","getAuthors","query","dispatch","path","addQueryArgs","users","apiFetch","receiveUserQuery","exports","getCurrentUser","currentUser","receiveCurrentUser","getEntityRecord","kind","name","key","select","configs","getOrLoadEntitiesConfig","entityConfig","find","config","__experimentalNoFetch","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","window","__experimentalEnableSync","syncConfig","objectId","getSyncObjectId","getSyncProvider","bootstrap","syncObjectType","record","receiveEntityRecords","type","recordId","edits","meta","undo","undefined","_fields","Set","getNormalizedCommaSeparable","DEFAULT_ENTITY_KEY","join","baseURL","baseURLParams","include","hasRecords","hasEntityRecords","__unstableReleaseStoreLock","getRawEntityRecord","forwardResolver","getEditedEntityRecord","getEntityRecords","records","Object","values","map","split","forEach","field","hasOwnProperty","context","resolutionsArgs","filter","selectorName","args","shouldInvalidate","action","invalidateCache","getCurrentTheme","resolveSelect","activeThemes","status","receiveCurrentTheme","getThemeSupports","getEmbedPreview","url","embedProxyResponse","receiveEmbedPreview","error","canUser","requestedAction","resource","id","registry","hasStartedResolution","resourcePath","retrievedActions","includes","Error","relatedAction","isAlreadyResolving","response","method","parse","allowHeader","headers","get","allowedMethods","allow","permissions","methods","create","read","update","delete","actionName","methodName","entries","receiveUserPermission","canUserEditEntityRecord","__unstable_rest_base","getAutosaves","postType","postId","rest_base","restBase","rest_namespace","restNamespace","getPostType","autosaves","length","receiveAutosaves","getAutosave","__experimentalGetTemplateForLink","link","template","then","data","e","__experimentalGetCurrentGlobalStylesId","globalStylesURL","_links","href","globalStylesObject","__experimentalReceiveCurrentGlobalStylesId","__experimentalGetCurrentThemeBaseGlobalStyles","currentTheme","themeGlobalStyles","stylesheet","__experimentalReceiveThemeBaseGlobalStyles","__experimentalGetCurrentThemeGlobalStylesVariations","variations","__experimentalReceiveThemeGlobalStyleVariations","getCurrentThemeGlobalStylesRevisions","globalStylesId","revisionsURL","resetRevisions","revisions","revision","fromEntries","value","camelCase","receiveThemeGlobalStyleRevisions","getBlockPatterns","restPatterns","patterns","pattern","getBlockPatternCategories","categories","getNavigationFallbackId","fallback","_embed","_embedded","self","receiveNavigationFallbackId","existingFallbackEntityRecord","invalidateNavigationQueries","finishResolution"],"sources":["@wordpress/core-data/src/resolvers.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { addQueryArgs } from '@wordpress/url';\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from './name';\nimport { getOrLoadEntitiesConfig, DEFAULT_ENTITY_KEY } from './entities';\nimport { forwardResolver, getNormalizedCommaSeparable } from './utils';\nimport { getSyncProvider } from './sync';\n\n/**\n * Requests authors from the REST API.\n *\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request.\n */\nexport const getAuthors =\n\t( query ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst path = addQueryArgs(\n\t\t\t'/wp/v2/users/?who=authors&per_page=100',\n\t\t\tquery\n\t\t);\n\t\tconst users = await apiFetch( { path } );\n\t\tdispatch.receiveUserQuery( path, users );\n\t};\n\n/**\n * Requests the current user from the REST API.\n */\nexport const getCurrentUser =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst currentUser = await apiFetch( { path: '/wp/v2/users/me' } );\n\t\tdispatch.receiveCurrentUser( currentUser );\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {number|string} key Record's key\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request. If requesting specific\n * fields, fields must always include the ID.\n */\nexport const getEntityRecord =\n\t( kind, name, key = '', query ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name, key ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\t// Entity supports configs,\n\t\t\t// use the sync algorithm instead of the old fetch behavior.\n\t\t\tif (\n\t\t\t\twindow.__experimentalEnableSync &&\n\t\t\t\tentityConfig.syncConfig &&\n\t\t\t\t! query\n\t\t\t) {\n\t\t\t\tconst objectId = entityConfig.getSyncObjectId( key );\n\n\t\t\t\t// Loads the persisted document.\n\t\t\t\tawait getSyncProvider().bootstrap(\n\t\t\t\t\tentityConfig.syncObjectType,\n\t\t\t\t\tobjectId,\n\t\t\t\t\t( record ) => {\n\t\t\t\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t\t\t\tkind,\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\trecord,\n\t\t\t\t\t\t\tquery\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Boostraps the edited document as well (and load from peers).\n\t\t\t\tawait getSyncProvider().bootstrap(\n\t\t\t\t\tentityConfig.syncObjectType + '--edit',\n\t\t\t\t\tobjectId,\n\t\t\t\t\t( record ) => {\n\t\t\t\t\t\tdispatch( {\n\t\t\t\t\t\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t\t\t\t\t\tkind,\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\trecordId: key,\n\t\t\t\t\t\t\tedits: record,\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\tundo: undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tif ( query !== undefined && query._fields ) {\n\t\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t\t// the ID.\n\t\t\t\t\tquery = {\n\t\t\t\t\t\t...query,\n\t\t\t\t\t\t_fields: [\n\t\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t\t...( getNormalizedCommaSeparable(\n\t\t\t\t\t\t\t\t\tquery._fields\n\t\t\t\t\t\t\t\t) || [] ),\n\t\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t].join(),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Disable reason: While true that an early return could leave `path`\n\t\t\t\t// unused, it's important that path is derived using the query prior to\n\t\t\t\t// additional query modifications in the condition below, since those\n\t\t\t\t// modifications are relevant to how the data is tracked in state, and not\n\t\t\t\t// for how the request is made to the REST API.\n\n\t\t\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\t\t\tconst path = addQueryArgs(\n\t\t\t\t\tentityConfig.baseURL + ( key ? '/' + key : '' ),\n\t\t\t\t\t{\n\t\t\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t\t\t...query,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( query !== undefined ) {\n\t\t\t\t\tquery = { ...query, include: [ key ] };\n\n\t\t\t\t\t// The resolution cache won't consider query as reusable based on the\n\t\t\t\t\t// fields, so it's tested here, prior to initiating the REST request,\n\t\t\t\t\t// and without causing `getEntityRecords` resolution to occur.\n\t\t\t\t\tconst hasRecords = select.hasEntityRecords(\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tquery\n\t\t\t\t\t);\n\t\t\t\t\tif ( hasRecords ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst record = await apiFetch( { path } );\n\t\t\t\tdispatch.receiveEntityRecords( kind, name, record, query );\n\t\t\t}\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getRawEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getEditedEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests the entity's records from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {Object?} query Query Object. If requesting specific fields, fields\n * must always include the ID.\n */\nexport const getEntityRecords =\n\t( kind, name, query = {} ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\tif ( query._fields ) {\n\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t// the ID.\n\t\t\t\tquery = {\n\t\t\t\t\t...query,\n\t\t\t\t\t_fields: [\n\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t] ),\n\t\t\t\t\t].join(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst path = addQueryArgs( entityConfig.baseURL, {\n\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t...query,\n\t\t\t} );\n\n\t\t\tlet records = Object.values( await apiFetch( { path } ) );\n\t\t\t// If we request fields but the result doesn't contain the fields,\n\t\t\t// explicitly set these fields as \"undefined\"\n\t\t\t// that way we consider the query \"fullfilled\".\n\t\t\tif ( query._fields ) {\n\t\t\t\trecords = records.map( ( record ) => {\n\t\t\t\t\tquery._fields.split( ',' ).forEach( ( field ) => {\n\t\t\t\t\t\tif ( ! record.hasOwnProperty( field ) ) {\n\t\t\t\t\t\t\trecord[ field ] = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn record;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tdispatch.receiveEntityRecords( kind, name, records, query );\n\n\t\t\t// When requesting all fields, the list of results can be used to\n\t\t\t// resolve the `getEntityRecord` selector in addition to `getEntityRecords`.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/26575\n\t\t\tif ( ! query?._fields && ! query.context ) {\n\t\t\t\tconst key = entityConfig.key || DEFAULT_ENTITY_KEY;\n\t\t\t\tconst resolutionsArgs = records\n\t\t\t\t\t.filter( ( record ) => record[ key ] )\n\t\t\t\t\t.map( ( record ) => [ kind, name, record[ key ] ] );\n\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'START_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'FINISH_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t}\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\ngetEntityRecords.shouldInvalidate = ( action, kind, name ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\tkind === action.kind &&\n\t\tname === action.name\n\t);\n};\n\n/**\n * Requests the current theme.\n */\nexport const getCurrentTheme =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\n\t\tdispatch.receiveCurrentTheme( activeThemes[ 0 ] );\n\t};\n\n/**\n * Requests theme supports data from the index.\n */\nexport const getThemeSupports = forwardResolver( 'getCurrentTheme' );\n\n/**\n * Requests a preview from the from the Embed API.\n *\n * @param {string} url URL to get the preview for.\n */\nexport const getEmbedPreview =\n\t( url ) =>\n\tasync ( { dispatch } ) => {\n\t\ttry {\n\t\t\tconst embedProxyResponse = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/oembed/1.0/proxy', { url } ),\n\t\t\t} );\n\t\t\tdispatch.receiveEmbedPreview( url, embedProxyResponse );\n\t\t} catch ( error ) {\n\t\t\t// Embed API 404s if the URL cannot be embedded, so we have to catch the error from the apiRequest here.\n\t\t\tdispatch.receiveEmbedPreview( url, false );\n\t\t}\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} requestedAction Action to check. One of: 'create', 'read', 'update',\n * 'delete'.\n * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.\n * @param {?string} id ID of the rest resource to check.\n */\nexport const canUser =\n\t( requestedAction, resource, id ) =>\n\tasync ( { dispatch, registry } ) => {\n\t\tconst { hasStartedResolution } = registry.select( STORE_NAME );\n\n\t\tconst resourcePath = id ? `${ resource }/${ id }` : resource;\n\t\tconst retrievedActions = [ 'create', 'read', 'update', 'delete' ];\n\n\t\tif ( ! retrievedActions.includes( requestedAction ) ) {\n\t\t\tthrow new Error( `'${ requestedAction }' is not a valid action.` );\n\t\t}\n\n\t\t// Prevent resolving the same resource twice.\n\t\tfor ( const relatedAction of retrievedActions ) {\n\t\t\tif ( relatedAction === requestedAction ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst isAlreadyResolving = hasStartedResolution( 'canUser', [\n\t\t\t\trelatedAction,\n\t\t\t\tresource,\n\t\t\t\tid,\n\t\t\t] );\n\t\t\tif ( isAlreadyResolving ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tlet response;\n\t\ttry {\n\t\t\tresponse = await apiFetch( {\n\t\t\t\tpath: `/wp/v2/${ resourcePath }`,\n\t\t\t\tmethod: 'OPTIONS',\n\t\t\t\tparse: false,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\t// Do nothing if our OPTIONS request comes back with an API error (4xx or\n\t\t\t// 5xx). The previously determined isAllowed value will remain in the store.\n\t\t\treturn;\n\t\t}\n\n\t\t// Optional chaining operator is used here because the API requests don't\n\t\t// return the expected result in the native version. Instead, API requests\n\t\t// only return the result, without including response properties like the headers.\n\t\tconst allowHeader = response.headers?.get( 'allow' );\n\t\tconst allowedMethods = allowHeader?.allow || allowHeader || '';\n\n\t\tconst permissions = {};\n\t\tconst methods = {\n\t\t\tcreate: 'POST',\n\t\t\tread: 'GET',\n\t\t\tupdate: 'PUT',\n\t\t\tdelete: 'DELETE',\n\t\t};\n\t\tfor ( const [ actionName, methodName ] of Object.entries( methods ) ) {\n\t\t\tpermissions[ actionName ] = allowedMethods.includes( methodName );\n\t\t}\n\n\t\tfor ( const action of retrievedActions ) {\n\t\t\tdispatch.receiveUserPermission(\n\t\t\t\t`${ action }/${ resourcePath }`,\n\t\t\t\tpermissions[ action ]\n\t\t\t);\n\t\t}\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport const canUserEditEntityRecord =\n\t( kind, name, recordId ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resource = entityConfig.__unstable_rest_base;\n\t\tawait dispatch( canUser( 'update', resource, recordId ) );\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosaves =\n\t( postType, postId ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst { rest_base: restBase, rest_namespace: restNamespace = 'wp/v2' } =\n\t\t\tawait resolveSelect.getPostType( postType );\n\t\tconst autosaves = await apiFetch( {\n\t\t\tpath: `/${ restNamespace }/${ restBase }/${ postId }/autosaves?context=edit`,\n\t\t} );\n\n\t\tif ( autosaves && autosaves.length ) {\n\t\t\tdispatch.receiveAutosaves( postId, autosaves );\n\t\t}\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * This resolver exists to ensure the underlying autosaves are fetched via\n * `getAutosaves` when a call to the `getAutosave` selector is made.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosave =\n\t( postType, postId ) =>\n\tasync ( { resolveSelect } ) => {\n\t\tawait resolveSelect.getAutosaves( postType, postId );\n\t};\n\n/**\n * Retrieve the frontend template used for a given link.\n *\n * @param {string} link Link.\n */\nexport const __experimentalGetTemplateForLink =\n\t( link ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tlet template;\n\t\ttry {\n\t\t\t// This is NOT calling a REST endpoint but rather ends up with a response from\n\t\t\t// an Ajax function which has a different shape from a WP_REST_Response.\n\t\t\ttemplate = await apiFetch( {\n\t\t\t\turl: addQueryArgs( link, {\n\t\t\t\t\t'_wp-find-template': true,\n\t\t\t\t} ),\n\t\t\t} ).then( ( { data } ) => data );\n\t\t} catch ( e ) {\n\t\t\t// For non-FSE themes, it is possible that this request returns an error.\n\t\t}\n\n\t\tif ( ! template ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst record = await resolveSelect.getEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplate.id\n\t\t);\n\n\t\tif ( record ) {\n\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\t[ record ],\n\t\t\t\t{\n\t\t\t\t\t'find-template': link,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n__experimentalGetTemplateForLink.shouldInvalidate = ( action ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\taction.kind === 'postType' &&\n\t\taction.name === 'wp_template'\n\t);\n};\n\nexport const __experimentalGetCurrentGlobalStylesId =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\t\tconst globalStylesURL =\n\t\t\tactiveThemes?.[ 0 ]?._links?.[ 'wp:user-global-styles' ]?.[ 0 ]\n\t\t\t\t?.href;\n\t\tif ( globalStylesURL ) {\n\t\t\tconst globalStylesObject = await apiFetch( {\n\t\t\t\turl: globalStylesURL,\n\t\t\t} );\n\t\t\tdispatch.__experimentalReceiveCurrentGlobalStylesId(\n\t\t\t\tglobalStylesObject.id\n\t\t\t);\n\t\t}\n\t};\n\nexport const __experimentalGetCurrentThemeBaseGlobalStyles =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst themeGlobalStyles = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeBaseGlobalStyles(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tthemeGlobalStyles\n\t\t);\n\t};\n\nexport const __experimentalGetCurrentThemeGlobalStylesVariations =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst variations = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }/variations`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeGlobalStyleVariations(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tvariations\n\t\t);\n\t};\n\n/**\n * Fetches and returns the revisions of the current global styles theme.\n */\nexport const getCurrentThemeGlobalStylesRevisions =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst globalStylesId =\n\t\t\tawait resolveSelect.__experimentalGetCurrentGlobalStylesId();\n\t\tconst record = globalStylesId\n\t\t\t? await resolveSelect.getEntityRecord(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId\n\t\t\t )\n\t\t\t: undefined;\n\t\tconst revisionsURL = record?._links?.[ 'version-history' ]?.[ 0 ]?.href;\n\n\t\tif ( revisionsURL ) {\n\t\t\tconst resetRevisions = await apiFetch( {\n\t\t\t\turl: revisionsURL,\n\t\t\t} );\n\t\t\tconst revisions = resetRevisions?.map( ( revision ) =>\n\t\t\t\tObject.fromEntries(\n\t\t\t\t\tObject.entries( revision ).map( ( [ key, value ] ) => [\n\t\t\t\t\t\tcamelCase( key ),\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t] )\n\t\t\t\t)\n\t\t\t);\n\t\t\tdispatch.receiveThemeGlobalStyleRevisions(\n\t\t\t\tglobalStylesId,\n\t\t\t\trevisions\n\t\t\t);\n\t\t}\n\t};\n\ngetCurrentThemeGlobalStylesRevisions.shouldInvalidate = ( action ) => {\n\treturn (\n\t\taction.type === 'SAVE_ENTITY_RECORD_FINISH' &&\n\t\taction.kind === 'root' &&\n\t\t! action.error &&\n\t\taction.name === 'globalStyles'\n\t);\n};\n\nexport const getBlockPatterns =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst restPatterns = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/patterns',\n\t\t} );\n\t\tconst patterns = restPatterns?.map( ( pattern ) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( pattern ).map( ( [ key, value ] ) => [\n\t\t\t\t\tcamelCase( key ),\n\t\t\t\t\tvalue,\n\t\t\t\t] )\n\t\t\t)\n\t\t);\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERNS', patterns } );\n\t};\n\nexport const getBlockPatternCategories =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst categories = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/categories',\n\t\t} );\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERN_CATEGORIES', categories } );\n\t};\n\nexport const getNavigationFallbackId =\n\t() =>\n\tasync ( { dispatch, select } ) => {\n\t\tconst fallback = await apiFetch( {\n\t\t\tpath: addQueryArgs( '/wp-block-editor/v1/navigation-fallback', {\n\t\t\t\t_embed: true,\n\t\t\t} ),\n\t\t} );\n\n\t\tconst record = fallback?._embedded?.self;\n\n\t\tdispatch.receiveNavigationFallbackId( fallback?.id );\n\n\t\tif ( record ) {\n\t\t\t// If the fallback is already in the store, don't invalidate navigation queries.\n\t\t\t// Otherwise, invalidate the cache for the scenario where there were no Navigation\n\t\t\t// posts in the state and the fallback created one.\n\t\t\tconst existingFallbackEntityRecord = select.getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\tfallback?.id\n\t\t\t);\n\t\t\tconst invalidateNavigationQueries = ! existingFallbackEntityRecord;\n\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\trecord,\n\t\t\t\tundefined,\n\t\t\t\tinvalidateNavigationQueries\n\t\t\t);\n\n\t\t\t// Resolve to avoid further network requests.\n\t\t\tdispatch.finishResolution( 'getEntityRecord', [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\tfallback?.id,\n\t\t\t] );\n\t\t}\n\t};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_changeCase","require","_url","_apiFetch","_interopRequireDefault","_name","_entities","_utils","_sync","getAuthors","query","dispatch","path","addQueryArgs","users","apiFetch","receiveUserQuery","exports","getCurrentUser","currentUser","receiveCurrentUser","getEntityRecord","kind","name","key","select","configs","getOrLoadEntitiesConfig","entityConfig","find","config","__experimentalNoFetch","lock","__unstableAcquireStoreLock","STORE_NAME","exclusive","window","__experimentalEnableSync","syncConfig","objectId","getSyncObjectId","getSyncProvider","bootstrap","syncObjectType","record","receiveEntityRecords","type","recordId","edits","meta","undo","undefined","_fields","Set","getNormalizedCommaSeparable","DEFAULT_ENTITY_KEY","join","baseURL","baseURLParams","include","hasRecords","hasEntityRecords","__unstableReleaseStoreLock","getRawEntityRecord","forwardResolver","getEditedEntityRecord","getEntityRecords","records","Object","values","map","split","forEach","field","hasOwnProperty","context","resolutionsArgs","filter","selectorName","args","shouldInvalidate","action","invalidateCache","getCurrentTheme","resolveSelect","activeThemes","status","receiveCurrentTheme","getThemeSupports","getEmbedPreview","url","embedProxyResponse","receiveEmbedPreview","error","canUser","requestedAction","resource","id","registry","hasStartedResolution","resourcePath","retrievedActions","includes","Error","relatedAction","isAlreadyResolving","response","method","parse","allowHeader","headers","get","allowedMethods","allow","permissions","methods","create","read","update","delete","actionName","methodName","entries","receiveUserPermission","canUserEditEntityRecord","__unstable_rest_base","getAutosaves","postType","postId","rest_base","restBase","rest_namespace","restNamespace","getPostType","autosaves","length","receiveAutosaves","getAutosave","__experimentalGetTemplateForLink","link","template","then","data","e","__experimentalGetCurrentGlobalStylesId","globalStylesURL","_links","href","globalStylesObject","__experimentalReceiveCurrentGlobalStylesId","__experimentalGetCurrentThemeBaseGlobalStyles","currentTheme","themeGlobalStyles","stylesheet","__experimentalReceiveThemeBaseGlobalStyles","__experimentalGetCurrentThemeGlobalStylesVariations","variations","__experimentalReceiveThemeGlobalStyleVariations","getCurrentThemeGlobalStylesRevisions","globalStylesId","revisionsURL","resetRevisions","revisions","revision","fromEntries","value","camelCase","receiveThemeGlobalStyleRevisions","getBlockPatterns","restPatterns","patterns","pattern","getBlockPatternCategories","categories","getUserPatternCategories","patternCategories","per_page","mappedPatternCategories","userCategory","label","slug","getNavigationFallbackId","fallback","_embed","_embedded","self","receiveNavigationFallbackId","existingFallbackEntityRecord","invalidateNavigationQueries","finishResolution"],"sources":["@wordpress/core-data/src/resolvers.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { addQueryArgs } from '@wordpress/url';\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from './name';\nimport { getOrLoadEntitiesConfig, DEFAULT_ENTITY_KEY } from './entities';\nimport { forwardResolver, getNormalizedCommaSeparable } from './utils';\nimport { getSyncProvider } from './sync';\n\n/**\n * Requests authors from the REST API.\n *\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request.\n */\nexport const getAuthors =\n\t( query ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst path = addQueryArgs(\n\t\t\t'/wp/v2/users/?who=authors&per_page=100',\n\t\t\tquery\n\t\t);\n\t\tconst users = await apiFetch( { path } );\n\t\tdispatch.receiveUserQuery( path, users );\n\t};\n\n/**\n * Requests the current user from the REST API.\n */\nexport const getCurrentUser =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst currentUser = await apiFetch( { path: '/wp/v2/users/me' } );\n\t\tdispatch.receiveCurrentUser( currentUser );\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {number|string} key Record's key\n * @param {Object|undefined} query Optional object of query parameters to\n * include with request. If requesting specific\n * fields, fields must always include the ID.\n */\nexport const getEntityRecord =\n\t( kind, name, key = '', query ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name, key ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\t// Entity supports configs,\n\t\t\t// use the sync algorithm instead of the old fetch behavior.\n\t\t\tif (\n\t\t\t\twindow.__experimentalEnableSync &&\n\t\t\t\tentityConfig.syncConfig &&\n\t\t\t\t! query\n\t\t\t) {\n\t\t\t\tconst objectId = entityConfig.getSyncObjectId( key );\n\n\t\t\t\t// Loads the persisted document.\n\t\t\t\tawait getSyncProvider().bootstrap(\n\t\t\t\t\tentityConfig.syncObjectType,\n\t\t\t\t\tobjectId,\n\t\t\t\t\t( record ) => {\n\t\t\t\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t\t\t\tkind,\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\trecord,\n\t\t\t\t\t\t\tquery\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Boostraps the edited document as well (and load from peers).\n\t\t\t\tawait getSyncProvider().bootstrap(\n\t\t\t\t\tentityConfig.syncObjectType + '--edit',\n\t\t\t\t\tobjectId,\n\t\t\t\t\t( record ) => {\n\t\t\t\t\t\tdispatch( {\n\t\t\t\t\t\t\ttype: 'EDIT_ENTITY_RECORD',\n\t\t\t\t\t\t\tkind,\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\trecordId: key,\n\t\t\t\t\t\t\tedits: record,\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\tundo: undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tif ( query !== undefined && query._fields ) {\n\t\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t\t// the ID.\n\t\t\t\t\tquery = {\n\t\t\t\t\t\t...query,\n\t\t\t\t\t\t_fields: [\n\t\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t\t...( getNormalizedCommaSeparable(\n\t\t\t\t\t\t\t\t\tquery._fields\n\t\t\t\t\t\t\t\t) || [] ),\n\t\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t].join(),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Disable reason: While true that an early return could leave `path`\n\t\t\t\t// unused, it's important that path is derived using the query prior to\n\t\t\t\t// additional query modifications in the condition below, since those\n\t\t\t\t// modifications are relevant to how the data is tracked in state, and not\n\t\t\t\t// for how the request is made to the REST API.\n\n\t\t\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\t\t\tconst path = addQueryArgs(\n\t\t\t\t\tentityConfig.baseURL + ( key ? '/' + key : '' ),\n\t\t\t\t\t{\n\t\t\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t\t\t...query,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( query !== undefined ) {\n\t\t\t\t\tquery = { ...query, include: [ key ] };\n\n\t\t\t\t\t// The resolution cache won't consider query as reusable based on the\n\t\t\t\t\t// fields, so it's tested here, prior to initiating the REST request,\n\t\t\t\t\t// and without causing `getEntityRecords` resolution to occur.\n\t\t\t\t\tconst hasRecords = select.hasEntityRecords(\n\t\t\t\t\t\tkind,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tquery\n\t\t\t\t\t);\n\t\t\t\t\tif ( hasRecords ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst record = await apiFetch( { path } );\n\t\t\t\tdispatch.receiveEntityRecords( kind, name, record, query );\n\t\t\t}\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getRawEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests an entity's record from the REST API.\n */\nexport const getEditedEntityRecord = forwardResolver( 'getEntityRecord' );\n\n/**\n * Requests the entity's records from the REST API.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {Object?} query Query Object. If requesting specific fields, fields\n * must always include the ID.\n */\nexport const getEntityRecords =\n\t( kind, name, query = {} ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig || entityConfig?.__experimentalNoFetch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lock = await dispatch.__unstableAcquireStoreLock(\n\t\t\tSTORE_NAME,\n\t\t\t[ 'entities', 'records', kind, name ],\n\t\t\t{ exclusive: false }\n\t\t);\n\n\t\ttry {\n\t\t\tif ( query._fields ) {\n\t\t\t\t// If requesting specific fields, items and query association to said\n\t\t\t\t// records are stored by ID reference. Thus, fields must always include\n\t\t\t\t// the ID.\n\t\t\t\tquery = {\n\t\t\t\t\t...query,\n\t\t\t\t\t_fields: [\n\t\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t\t...( getNormalizedCommaSeparable( query._fields ) ||\n\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\tentityConfig.key || DEFAULT_ENTITY_KEY,\n\t\t\t\t\t\t] ),\n\t\t\t\t\t].join(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst path = addQueryArgs( entityConfig.baseURL, {\n\t\t\t\t...entityConfig.baseURLParams,\n\t\t\t\t...query,\n\t\t\t} );\n\n\t\t\tlet records = Object.values( await apiFetch( { path } ) );\n\t\t\t// If we request fields but the result doesn't contain the fields,\n\t\t\t// explicitly set these fields as \"undefined\"\n\t\t\t// that way we consider the query \"fullfilled\".\n\t\t\tif ( query._fields ) {\n\t\t\t\trecords = records.map( ( record ) => {\n\t\t\t\t\tquery._fields.split( ',' ).forEach( ( field ) => {\n\t\t\t\t\t\tif ( ! record.hasOwnProperty( field ) ) {\n\t\t\t\t\t\t\trecord[ field ] = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn record;\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tdispatch.receiveEntityRecords( kind, name, records, query );\n\n\t\t\t// When requesting all fields, the list of results can be used to\n\t\t\t// resolve the `getEntityRecord` selector in addition to `getEntityRecords`.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/26575\n\t\t\tif ( ! query?._fields && ! query.context ) {\n\t\t\t\tconst key = entityConfig.key || DEFAULT_ENTITY_KEY;\n\t\t\t\tconst resolutionsArgs = records\n\t\t\t\t\t.filter( ( record ) => record[ key ] )\n\t\t\t\t\t.map( ( record ) => [ kind, name, record[ key ] ] );\n\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'START_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t\tdispatch( {\n\t\t\t\t\ttype: 'FINISH_RESOLUTIONS',\n\t\t\t\t\tselectorName: 'getEntityRecord',\n\t\t\t\t\targs: resolutionsArgs,\n\t\t\t\t} );\n\t\t\t}\n\t\t} finally {\n\t\t\tdispatch.__unstableReleaseStoreLock( lock );\n\t\t}\n\t};\n\ngetEntityRecords.shouldInvalidate = ( action, kind, name ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\tkind === action.kind &&\n\t\tname === action.name\n\t);\n};\n\n/**\n * Requests the current theme.\n */\nexport const getCurrentTheme =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\n\t\tdispatch.receiveCurrentTheme( activeThemes[ 0 ] );\n\t};\n\n/**\n * Requests theme supports data from the index.\n */\nexport const getThemeSupports = forwardResolver( 'getCurrentTheme' );\n\n/**\n * Requests a preview from the from the Embed API.\n *\n * @param {string} url URL to get the preview for.\n */\nexport const getEmbedPreview =\n\t( url ) =>\n\tasync ( { dispatch } ) => {\n\t\ttry {\n\t\t\tconst embedProxyResponse = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/oembed/1.0/proxy', { url } ),\n\t\t\t} );\n\t\t\tdispatch.receiveEmbedPreview( url, embedProxyResponse );\n\t\t} catch ( error ) {\n\t\t\t// Embed API 404s if the URL cannot be embedded, so we have to catch the error from the apiRequest here.\n\t\t\tdispatch.receiveEmbedPreview( url, false );\n\t\t}\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} requestedAction Action to check. One of: 'create', 'read', 'update',\n * 'delete'.\n * @param {string} resource REST resource to check, e.g. 'media' or 'posts'.\n * @param {?string} id ID of the rest resource to check.\n */\nexport const canUser =\n\t( requestedAction, resource, id ) =>\n\tasync ( { dispatch, registry } ) => {\n\t\tconst { hasStartedResolution } = registry.select( STORE_NAME );\n\n\t\tconst resourcePath = id ? `${ resource }/${ id }` : resource;\n\t\tconst retrievedActions = [ 'create', 'read', 'update', 'delete' ];\n\n\t\tif ( ! retrievedActions.includes( requestedAction ) ) {\n\t\t\tthrow new Error( `'${ requestedAction }' is not a valid action.` );\n\t\t}\n\n\t\t// Prevent resolving the same resource twice.\n\t\tfor ( const relatedAction of retrievedActions ) {\n\t\t\tif ( relatedAction === requestedAction ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst isAlreadyResolving = hasStartedResolution( 'canUser', [\n\t\t\t\trelatedAction,\n\t\t\t\tresource,\n\t\t\t\tid,\n\t\t\t] );\n\t\t\tif ( isAlreadyResolving ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tlet response;\n\t\ttry {\n\t\t\tresponse = await apiFetch( {\n\t\t\t\tpath: `/wp/v2/${ resourcePath }`,\n\t\t\t\tmethod: 'OPTIONS',\n\t\t\t\tparse: false,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\t// Do nothing if our OPTIONS request comes back with an API error (4xx or\n\t\t\t// 5xx). The previously determined isAllowed value will remain in the store.\n\t\t\treturn;\n\t\t}\n\n\t\t// Optional chaining operator is used here because the API requests don't\n\t\t// return the expected result in the native version. Instead, API requests\n\t\t// only return the result, without including response properties like the headers.\n\t\tconst allowHeader = response.headers?.get( 'allow' );\n\t\tconst allowedMethods = allowHeader?.allow || allowHeader || '';\n\n\t\tconst permissions = {};\n\t\tconst methods = {\n\t\t\tcreate: 'POST',\n\t\t\tread: 'GET',\n\t\t\tupdate: 'PUT',\n\t\t\tdelete: 'DELETE',\n\t\t};\n\t\tfor ( const [ actionName, methodName ] of Object.entries( methods ) ) {\n\t\t\tpermissions[ actionName ] = allowedMethods.includes( methodName );\n\t\t}\n\n\t\tfor ( const action of retrievedActions ) {\n\t\t\tdispatch.receiveUserPermission(\n\t\t\t\t`${ action }/${ resourcePath }`,\n\t\t\t\tpermissions[ action ]\n\t\t\t);\n\t\t}\n\t};\n\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport const canUserEditEntityRecord =\n\t( kind, name, recordId ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst configs = await dispatch( getOrLoadEntitiesConfig( kind ) );\n\t\tconst entityConfig = configs.find(\n\t\t\t( config ) => config.name === name && config.kind === kind\n\t\t);\n\t\tif ( ! entityConfig ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resource = entityConfig.__unstable_rest_base;\n\t\tawait dispatch( canUser( 'update', resource, recordId ) );\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosaves =\n\t( postType, postId ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst { rest_base: restBase, rest_namespace: restNamespace = 'wp/v2' } =\n\t\t\tawait resolveSelect.getPostType( postType );\n\t\tconst autosaves = await apiFetch( {\n\t\t\tpath: `/${ restNamespace }/${ restBase }/${ postId }/autosaves?context=edit`,\n\t\t} );\n\n\t\tif ( autosaves && autosaves.length ) {\n\t\t\tdispatch.receiveAutosaves( postId, autosaves );\n\t\t}\n\t};\n\n/**\n * Request autosave data from the REST API.\n *\n * This resolver exists to ensure the underlying autosaves are fetched via\n * `getAutosaves` when a call to the `getAutosave` selector is made.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId The id of the parent post.\n */\nexport const getAutosave =\n\t( postType, postId ) =>\n\tasync ( { resolveSelect } ) => {\n\t\tawait resolveSelect.getAutosaves( postType, postId );\n\t};\n\n/**\n * Retrieve the frontend template used for a given link.\n *\n * @param {string} link Link.\n */\nexport const __experimentalGetTemplateForLink =\n\t( link ) =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tlet template;\n\t\ttry {\n\t\t\t// This is NOT calling a REST endpoint but rather ends up with a response from\n\t\t\t// an Ajax function which has a different shape from a WP_REST_Response.\n\t\t\ttemplate = await apiFetch( {\n\t\t\t\turl: addQueryArgs( link, {\n\t\t\t\t\t'_wp-find-template': true,\n\t\t\t\t} ),\n\t\t\t} ).then( ( { data } ) => data );\n\t\t} catch ( e ) {\n\t\t\t// For non-FSE themes, it is possible that this request returns an error.\n\t\t}\n\n\t\tif ( ! template ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst record = await resolveSelect.getEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplate.id\n\t\t);\n\n\t\tif ( record ) {\n\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\t[ record ],\n\t\t\t\t{\n\t\t\t\t\t'find-template': link,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n__experimentalGetTemplateForLink.shouldInvalidate = ( action ) => {\n\treturn (\n\t\t( action.type === 'RECEIVE_ITEMS' || action.type === 'REMOVE_ITEMS' ) &&\n\t\taction.invalidateCache &&\n\t\taction.kind === 'postType' &&\n\t\taction.name === 'wp_template'\n\t);\n};\n\nexport const __experimentalGetCurrentGlobalStylesId =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst activeThemes = await resolveSelect.getEntityRecords(\n\t\t\t'root',\n\t\t\t'theme',\n\t\t\t{ status: 'active' }\n\t\t);\n\t\tconst globalStylesURL =\n\t\t\tactiveThemes?.[ 0 ]?._links?.[ 'wp:user-global-styles' ]?.[ 0 ]\n\t\t\t\t?.href;\n\t\tif ( globalStylesURL ) {\n\t\t\tconst globalStylesObject = await apiFetch( {\n\t\t\t\turl: globalStylesURL,\n\t\t\t} );\n\t\t\tdispatch.__experimentalReceiveCurrentGlobalStylesId(\n\t\t\t\tglobalStylesObject.id\n\t\t\t);\n\t\t}\n\t};\n\nexport const __experimentalGetCurrentThemeBaseGlobalStyles =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst themeGlobalStyles = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeBaseGlobalStyles(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tthemeGlobalStyles\n\t\t);\n\t};\n\nexport const __experimentalGetCurrentThemeGlobalStylesVariations =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst currentTheme = await resolveSelect.getCurrentTheme();\n\t\tconst variations = await apiFetch( {\n\t\t\tpath: `/wp/v2/global-styles/themes/${ currentTheme.stylesheet }/variations`,\n\t\t} );\n\t\tdispatch.__experimentalReceiveThemeGlobalStyleVariations(\n\t\t\tcurrentTheme.stylesheet,\n\t\t\tvariations\n\t\t);\n\t};\n\n/**\n * Fetches and returns the revisions of the current global styles theme.\n */\nexport const getCurrentThemeGlobalStylesRevisions =\n\t() =>\n\tasync ( { resolveSelect, dispatch } ) => {\n\t\tconst globalStylesId =\n\t\t\tawait resolveSelect.__experimentalGetCurrentGlobalStylesId();\n\t\tconst record = globalStylesId\n\t\t\t? await resolveSelect.getEntityRecord(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId\n\t\t\t )\n\t\t\t: undefined;\n\t\tconst revisionsURL = record?._links?.[ 'version-history' ]?.[ 0 ]?.href;\n\n\t\tif ( revisionsURL ) {\n\t\t\tconst resetRevisions = await apiFetch( {\n\t\t\t\turl: revisionsURL,\n\t\t\t} );\n\t\t\tconst revisions = resetRevisions?.map( ( revision ) =>\n\t\t\t\tObject.fromEntries(\n\t\t\t\t\tObject.entries( revision ).map( ( [ key, value ] ) => [\n\t\t\t\t\t\tcamelCase( key ),\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t] )\n\t\t\t\t)\n\t\t\t);\n\t\t\tdispatch.receiveThemeGlobalStyleRevisions(\n\t\t\t\tglobalStylesId,\n\t\t\t\trevisions\n\t\t\t);\n\t\t}\n\t};\n\ngetCurrentThemeGlobalStylesRevisions.shouldInvalidate = ( action ) => {\n\treturn (\n\t\taction.type === 'SAVE_ENTITY_RECORD_FINISH' &&\n\t\taction.kind === 'root' &&\n\t\t! action.error &&\n\t\taction.name === 'globalStyles'\n\t);\n};\n\nexport const getBlockPatterns =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst restPatterns = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/patterns',\n\t\t} );\n\t\tconst patterns = restPatterns?.map( ( pattern ) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( pattern ).map( ( [ key, value ] ) => [\n\t\t\t\t\tcamelCase( key ),\n\t\t\t\t\tvalue,\n\t\t\t\t] )\n\t\t\t)\n\t\t);\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERNS', patterns } );\n\t};\n\nexport const getBlockPatternCategories =\n\t() =>\n\tasync ( { dispatch } ) => {\n\t\tconst categories = await apiFetch( {\n\t\t\tpath: '/wp/v2/block-patterns/categories',\n\t\t} );\n\t\tdispatch( { type: 'RECEIVE_BLOCK_PATTERN_CATEGORIES', categories } );\n\t};\n\nexport const getUserPatternCategories =\n\t() =>\n\tasync ( { dispatch, resolveSelect } ) => {\n\t\tconst patternCategories = await resolveSelect.getEntityRecords(\n\t\t\t'taxonomy',\n\t\t\t'wp_pattern_category',\n\t\t\t{\n\t\t\t\tper_page: -1,\n\t\t\t\t_fields: 'id,name,description,slug',\n\t\t\t}\n\t\t);\n\n\t\tconst mappedPatternCategories =\n\t\t\tpatternCategories?.map( ( userCategory ) => ( {\n\t\t\t\t...userCategory,\n\t\t\t\tlabel: userCategory.name,\n\t\t\t\tname: userCategory.slug,\n\t\t\t} ) ) || [];\n\n\t\tdispatch( {\n\t\t\ttype: 'RECEIVE_USER_PATTERN_CATEGORIES',\n\t\t\tpatternCategories: mappedPatternCategories,\n\t\t} );\n\t};\n\nexport const getNavigationFallbackId =\n\t() =>\n\tasync ( { dispatch, select } ) => {\n\t\tconst fallback = await apiFetch( {\n\t\t\tpath: addQueryArgs( '/wp-block-editor/v1/navigation-fallback', {\n\t\t\t\t_embed: true,\n\t\t\t} ),\n\t\t} );\n\n\t\tconst record = fallback?._embedded?.self;\n\n\t\tdispatch.receiveNavigationFallbackId( fallback?.id );\n\n\t\tif ( record ) {\n\t\t\t// If the fallback is already in the store, don't invalidate navigation queries.\n\t\t\t// Otherwise, invalidate the cache for the scenario where there were no Navigation\n\t\t\t// posts in the state and the fallback created one.\n\t\t\tconst existingFallbackEntityRecord = select.getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\tfallback?.id\n\t\t\t);\n\t\t\tconst invalidateNavigationQueries = ! existingFallbackEntityRecord;\n\t\t\tdispatch.receiveEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\trecord,\n\t\t\t\tundefined,\n\t\t\t\tinvalidateNavigationQueries\n\t\t\t);\n\n\t\t\t// Resolve to avoid further network requests.\n\t\t\tdispatch.finishResolution( 'getEntityRecord', [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\tfallback?.id,\n\t\t\t] );\n\t\t}\n\t};\n"],"mappings":"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"}
|
package/build/selectors.js
CHANGED
|
@@ -33,9 +33,10 @@ exports.getLastEntityDeleteError = getLastEntityDeleteError;
|
|
|
33
33
|
exports.getLastEntitySaveError = getLastEntitySaveError;
|
|
34
34
|
exports.getRawEntityRecord = void 0;
|
|
35
35
|
exports.getRedoEdit = getRedoEdit;
|
|
36
|
-
exports.getReferenceByDistinctEdits =
|
|
36
|
+
exports.getReferenceByDistinctEdits = getReferenceByDistinctEdits;
|
|
37
37
|
exports.getThemeSupports = getThemeSupports;
|
|
38
38
|
exports.getUndoEdit = getUndoEdit;
|
|
39
|
+
exports.getUserPatternCategories = getUserPatternCategories;
|
|
39
40
|
exports.getUserQueryResults = void 0;
|
|
40
41
|
exports.hasEditsForEntityRecord = hasEditsForEntityRecord;
|
|
41
42
|
exports.hasEntityRecords = hasEntityRecords;
|
|
@@ -55,7 +56,6 @@ var _name = require("./name");
|
|
|
55
56
|
var _queriedData = require("./queried-data");
|
|
56
57
|
var _entities = require("./entities");
|
|
57
58
|
var _utils = require("./utils");
|
|
58
|
-
var _privateSelectors = require("./private-selectors");
|
|
59
59
|
/**
|
|
60
60
|
* External dependencies
|
|
61
61
|
*/
|
|
@@ -597,21 +597,6 @@ function getLastEntityDeleteError(state, kind, name, recordId) {
|
|
|
597
597
|
return state.entities.records?.[kind]?.[name]?.deleting?.[recordId]?.error;
|
|
598
598
|
}
|
|
599
599
|
|
|
600
|
-
/**
|
|
601
|
-
* Returns the current undo offset for the
|
|
602
|
-
* entity records edits history. The offset
|
|
603
|
-
* represents how many items from the end
|
|
604
|
-
* of the history stack we are at. 0 is the
|
|
605
|
-
* last edit, -1 is the second last, and so on.
|
|
606
|
-
*
|
|
607
|
-
* @param state State tree.
|
|
608
|
-
*
|
|
609
|
-
* @return The current undo offset.
|
|
610
|
-
*/
|
|
611
|
-
function getCurrentUndoOffset(state) {
|
|
612
|
-
return state.undo.offset;
|
|
613
|
-
}
|
|
614
|
-
|
|
615
600
|
/**
|
|
616
601
|
* Returns the previous edit from the current undo offset
|
|
617
602
|
* for the entity records edits history, if any.
|
|
@@ -626,7 +611,7 @@ function getUndoEdit(state) {
|
|
|
626
611
|
(0, _deprecated.default)("select( 'core' ).getUndoEdit()", {
|
|
627
612
|
since: '6.3'
|
|
628
613
|
});
|
|
629
|
-
return
|
|
614
|
+
return undefined;
|
|
630
615
|
}
|
|
631
616
|
|
|
632
617
|
/**
|
|
@@ -643,7 +628,7 @@ function getRedoEdit(state) {
|
|
|
643
628
|
(0, _deprecated.default)("select( 'core' ).getRedoEdit()", {
|
|
644
629
|
since: '6.3'
|
|
645
630
|
});
|
|
646
|
-
return
|
|
631
|
+
return undefined;
|
|
647
632
|
}
|
|
648
633
|
|
|
649
634
|
/**
|
|
@@ -655,7 +640,7 @@ function getRedoEdit(state) {
|
|
|
655
640
|
* @return Whether there is a previous edit or not.
|
|
656
641
|
*/
|
|
657
642
|
function hasUndo(state) {
|
|
658
|
-
return
|
|
643
|
+
return state.undoManager.hasUndo();
|
|
659
644
|
}
|
|
660
645
|
|
|
661
646
|
/**
|
|
@@ -667,7 +652,7 @@ function hasUndo(state) {
|
|
|
667
652
|
* @return Whether there is a next edit or not.
|
|
668
653
|
*/
|
|
669
654
|
function hasRedo(state) {
|
|
670
|
-
return
|
|
655
|
+
return state.undoManager.hasRedo();
|
|
671
656
|
}
|
|
672
657
|
|
|
673
658
|
/**
|
|
@@ -849,9 +834,9 @@ const hasFetchedAutosaves = (0, _data.createRegistrySelector)(select => (state,
|
|
|
849
834
|
* @return A value whose reference will change only when an edit occurs.
|
|
850
835
|
*/
|
|
851
836
|
exports.hasFetchedAutosaves = hasFetchedAutosaves;
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
837
|
+
function getReferenceByDistinctEdits(state) {
|
|
838
|
+
return state.editsReference;
|
|
839
|
+
}
|
|
855
840
|
|
|
856
841
|
/**
|
|
857
842
|
* Retrieve the frontend template used for a given link.
|
|
@@ -861,7 +846,6 @@ state => [], state => [state.undo.list.length, state.undo.offset]);
|
|
|
861
846
|
*
|
|
862
847
|
* @return The template record.
|
|
863
848
|
*/
|
|
864
|
-
exports.getReferenceByDistinctEdits = getReferenceByDistinctEdits;
|
|
865
849
|
function __experimentalGetTemplateForLink(state, link) {
|
|
866
850
|
const records = getEntityRecords(state, 'postType', 'wp_template', {
|
|
867
851
|
'find-template': link
|
|
@@ -924,6 +908,18 @@ function getBlockPatternCategories(state) {
|
|
|
924
908
|
return state.blockPatternCategories;
|
|
925
909
|
}
|
|
926
910
|
|
|
911
|
+
/**
|
|
912
|
+
* Retrieve the registered user pattern categories.
|
|
913
|
+
*
|
|
914
|
+
* @param state Data state.
|
|
915
|
+
*
|
|
916
|
+
* @return User patterns category array.
|
|
917
|
+
*/
|
|
918
|
+
|
|
919
|
+
function getUserPatternCategories(state) {
|
|
920
|
+
return state.userPatternCategories;
|
|
921
|
+
}
|
|
922
|
+
|
|
927
923
|
/**
|
|
928
924
|
* Returns the revisions of the current global styles theme.
|
|
929
925
|
*
|