@wordpress/edit-site 4.0.1-next.f435e9e01b.0 → 4.0.3-next.a55ed9455a.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/build/components/add-new-template/new-template-part.js +4 -1
  3. package/build/components/add-new-template/new-template-part.js.map +1 -1
  4. package/build/components/app/index.js +20 -0
  5. package/build/components/app/index.js.map +1 -1
  6. package/build/components/editor/global-styles-renderer.js +7 -3
  7. package/build/components/editor/global-styles-renderer.js.map +1 -1
  8. package/build/components/editor/index.js +3 -18
  9. package/build/components/editor/index.js.map +1 -1
  10. package/build/components/error-boundary/index.js +11 -27
  11. package/build/components/error-boundary/index.js.map +1 -1
  12. package/build/components/error-boundary/warning.js +70 -0
  13. package/build/components/error-boundary/warning.js.map +1 -0
  14. package/build/components/global-styles/navigation-button.js +7 -27
  15. package/build/components/global-styles/navigation-button.js.map +1 -1
  16. package/build/components/global-styles/screen-block-list.js +31 -1
  17. package/build/components/global-styles/screen-block-list.js.map +1 -1
  18. package/build/components/global-styles/screen-typography.js.map +1 -1
  19. package/build/components/global-styles/typography-panel.js +5 -2
  20. package/build/components/global-styles/typography-panel.js.map +1 -1
  21. package/build/components/global-styles/use-global-styles-output.js +21 -4
  22. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  23. package/build/components/global-styles/utils.js +2 -2
  24. package/build/components/global-styles/utils.js.map +1 -1
  25. package/build/components/header/index.js +1 -1
  26. package/build/components/header/index.js.map +1 -1
  27. package/build/components/header/more-menu/index.js +9 -21
  28. package/build/components/header/more-menu/index.js.map +1 -1
  29. package/build/components/header/more-menu/site-export.js +1 -1
  30. package/build/components/header/more-menu/site-export.js.map +1 -1
  31. package/build/components/header/more-menu/welcome-guide-menu-item.js +4 -8
  32. package/build/components/header/more-menu/welcome-guide-menu-item.js.map +1 -1
  33. package/build/components/keyboard-shortcuts/index.js +1 -1
  34. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  35. package/build/components/list/table.js +9 -20
  36. package/build/components/list/table.js.map +1 -1
  37. package/build/components/navigation-sidebar/navigation-panel/index.js +9 -3
  38. package/build/components/navigation-sidebar/navigation-panel/index.js.map +1 -1
  39. package/build/components/navigation-sidebar/navigation-toggle/index.js +15 -4
  40. package/build/components/navigation-sidebar/navigation-toggle/index.js.map +1 -1
  41. package/build/components/secondary-sidebar/list-view-sidebar.js +0 -11
  42. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  43. package/build/components/sidebar/global-styles-sidebar.js +5 -5
  44. package/build/components/sidebar/global-styles-sidebar.js.map +1 -1
  45. package/build/components/template-part-converter/convert-to-template-part.js +4 -1
  46. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  47. package/build/components/welcome-guide/editor.js +6 -6
  48. package/build/components/welcome-guide/editor.js.map +1 -1
  49. package/build/components/welcome-guide/styles.js +6 -4
  50. package/build/components/welcome-guide/styles.js.map +1 -1
  51. package/build/index.js +22 -7
  52. package/build/index.js.map +1 -1
  53. package/build/store/actions.js +203 -163
  54. package/build/store/actions.js.map +1 -1
  55. package/build/store/index.js +3 -9
  56. package/build/store/index.js.map +1 -1
  57. package/build/store/reducer.js +0 -44
  58. package/build/store/reducer.js.map +1 -1
  59. package/build/store/selectors.js +33 -10
  60. package/build/store/selectors.js.map +1 -1
  61. package/build-module/components/add-new-template/new-template-part.js +4 -1
  62. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  63. package/build-module/components/app/index.js +16 -0
  64. package/build-module/components/app/index.js.map +1 -1
  65. package/build-module/components/editor/global-styles-renderer.js +6 -3
  66. package/build-module/components/editor/global-styles-renderer.js.map +1 -1
  67. package/build-module/components/editor/index.js +4 -17
  68. package/build-module/components/editor/index.js.map +1 -1
  69. package/build-module/components/error-boundary/index.js +9 -26
  70. package/build-module/components/error-boundary/index.js.map +1 -1
  71. package/build-module/components/error-boundary/warning.js +60 -0
  72. package/build-module/components/error-boundary/warning.js.map +1 -0
  73. package/build-module/components/global-styles/navigation-button.js +8 -28
  74. package/build-module/components/global-styles/navigation-button.js.map +1 -1
  75. package/build-module/components/global-styles/screen-block-list.js +31 -2
  76. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  77. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  78. package/build-module/components/global-styles/typography-panel.js +6 -3
  79. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  80. package/build-module/components/global-styles/use-global-styles-output.js +20 -4
  81. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  82. package/build-module/components/global-styles/utils.js +2 -2
  83. package/build-module/components/global-styles/utils.js.map +1 -1
  84. package/build-module/components/header/index.js +1 -1
  85. package/build-module/components/header/index.js.map +1 -1
  86. package/build-module/components/header/more-menu/index.js +11 -22
  87. package/build-module/components/header/more-menu/index.js.map +1 -1
  88. package/build-module/components/header/more-menu/site-export.js +1 -1
  89. package/build-module/components/header/more-menu/site-export.js.map +1 -1
  90. package/build-module/components/header/more-menu/welcome-guide-menu-item.js +4 -8
  91. package/build-module/components/header/more-menu/welcome-guide-menu-item.js.map +1 -1
  92. package/build-module/components/keyboard-shortcuts/index.js +1 -1
  93. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  94. package/build-module/components/list/table.js +9 -21
  95. package/build-module/components/list/table.js.map +1 -1
  96. package/build-module/components/navigation-sidebar/navigation-panel/index.js +9 -3
  97. package/build-module/components/navigation-sidebar/navigation-panel/index.js.map +1 -1
  98. package/build-module/components/navigation-sidebar/navigation-toggle/index.js +12 -4
  99. package/build-module/components/navigation-sidebar/navigation-toggle/index.js.map +1 -1
  100. package/build-module/components/secondary-sidebar/list-view-sidebar.js +1 -12
  101. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  102. package/build-module/components/sidebar/global-styles-sidebar.js +4 -4
  103. package/build-module/components/sidebar/global-styles-sidebar.js.map +1 -1
  104. package/build-module/components/template-part-converter/convert-to-template-part.js +4 -1
  105. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  106. package/build-module/components/welcome-guide/editor.js +5 -5
  107. package/build-module/components/welcome-guide/editor.js.map +1 -1
  108. package/build-module/components/welcome-guide/styles.js +5 -4
  109. package/build-module/components/welcome-guide/styles.js.map +1 -1
  110. package/build-module/index.js +20 -7
  111. package/build-module/index.js.map +1 -1
  112. package/build-module/store/actions.js +181 -154
  113. package/build-module/store/actions.js.map +1 -1
  114. package/build-module/store/index.js +4 -9
  115. package/build-module/store/index.js.map +1 -1
  116. package/build-module/store/reducer.js +0 -40
  117. package/build-module/store/reducer.js.map +1 -1
  118. package/build-module/store/selectors.js +28 -10
  119. package/build-module/store/selectors.js.map +1 -1
  120. package/build-style/style-rtl.css +101 -38
  121. package/build-style/style.css +101 -38
  122. package/package.json +33 -27
  123. package/src/components/add-new-template/new-template-part.js +7 -1
  124. package/src/components/app/index.js +19 -0
  125. package/src/components/editor/global-styles-renderer.js +7 -1
  126. package/src/components/editor/index.js +2 -20
  127. package/src/components/error-boundary/index.js +11 -28
  128. package/src/components/error-boundary/warning.js +59 -0
  129. package/src/components/global-styles/navigation-button.js +6 -25
  130. package/src/components/global-styles/screen-block-list.js +27 -2
  131. package/src/components/global-styles/screen-typography.js +1 -2
  132. package/src/components/global-styles/typography-panel.js +12 -5
  133. package/src/components/global-styles/use-global-styles-output.js +19 -3
  134. package/src/components/global-styles/utils.js +2 -2
  135. package/src/components/header/index.js +1 -1
  136. package/src/components/header/more-menu/index.js +12 -29
  137. package/src/components/header/more-menu/site-export.js +1 -1
  138. package/src/components/header/more-menu/welcome-guide-menu-item.js +3 -7
  139. package/src/components/keyboard-shortcuts/index.js +1 -1
  140. package/src/components/list/table.js +18 -23
  141. package/src/components/navigation-sidebar/navigation-panel/index.js +16 -11
  142. package/src/components/navigation-sidebar/navigation-toggle/index.js +13 -4
  143. package/src/components/navigation-sidebar/navigation-toggle/style.scss +32 -31
  144. package/src/components/navigation-sidebar/navigation-toggle/test/index.js +1 -1
  145. package/src/components/secondary-sidebar/list-view-sidebar.js +1 -11
  146. package/src/components/sidebar/global-styles-sidebar.js +6 -3
  147. package/src/components/sidebar/style.scss +1 -1
  148. package/src/components/template-part-converter/convert-to-template-part.js +6 -1
  149. package/src/components/welcome-guide/editor.js +8 -4
  150. package/src/components/welcome-guide/styles.js +5 -3
  151. package/src/index.js +25 -7
  152. package/src/store/actions.js +180 -215
  153. package/src/store/index.js +2 -8
  154. package/src/store/reducer.js +0 -30
  155. package/src/store/selectors.js +37 -10
  156. package/src/store/test/actions.js +203 -92
  157. package/src/store/test/reducer.js +0 -22
  158. package/src/store/test/selectors.js +22 -53
  159. package/src/style.scss +0 -1
  160. package/build/components/header/feature-toggle/index.js +0 -66
  161. package/build/components/header/feature-toggle/index.js.map +0 -1
  162. package/build/components/routes/redirect-to-homepage.js +0 -87
  163. package/build/components/routes/redirect-to-homepage.js.map +0 -1
  164. package/build/store/defaults.js +0 -15
  165. package/build/store/defaults.js.map +0 -1
  166. package/build-module/components/header/feature-toggle/index.js +0 -52
  167. package/build-module/components/header/feature-toggle/index.js.map +0 -1
  168. package/build-module/components/routes/redirect-to-homepage.js +0 -75
  169. package/build-module/components/routes/redirect-to-homepage.js.map +0 -1
  170. package/build-module/store/defaults.js +0 -8
  171. package/build-module/store/defaults.js.map +0 -1
  172. package/src/components/header/feature-toggle/index.js +0 -55
  173. package/src/components/header/more-menu/style.scss +0 -29
  174. package/src/components/routes/redirect-to-homepage.js +0 -71
  175. package/src/store/defaults.js +0 -7
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
+ import apiFetch from '@wordpress/api-fetch';
4
5
  import { parse, __unstableSerializeAndClean } from '@wordpress/blocks';
5
- import { controls, dispatch } from '@wordpress/data';
6
- import { apiFetch } from '@wordpress/data-controls';
6
+ import deprecated from '@wordpress/deprecated';
7
7
  import { addQueryArgs, getPathAndQueryString } from '@wordpress/url';
8
8
  import { __, sprintf } from '@wordpress/i18n';
9
9
  import { store as noticesStore } from '@wordpress/notices';
@@ -11,6 +11,7 @@ import { store as coreStore } from '@wordpress/core-data';
11
11
  import { store as interfaceStore } from '@wordpress/interface';
12
12
  import { store as blockEditorStore } from '@wordpress/block-editor';
13
13
  import { speak } from '@wordpress/a11y';
14
+ import { store as preferencesStore } from '@wordpress/preferences';
14
15
  /**
15
16
  * Internal dependencies
16
17
  */
@@ -18,21 +19,25 @@ import { speak } from '@wordpress/a11y';
18
19
  import { STORE_NAME as editSiteStoreName } from './constants';
19
20
  import isTemplateRevertable from '../utils/is-template-revertable';
20
21
  /**
21
- * Returns an action object used to toggle a feature flag.
22
+ * Dispatches an action that toggles a feature flag.
22
23
  *
23
- * @param {string} feature Feature name.
24
- *
25
- * @return {Object} Action object.
24
+ * @param {string} featureName Feature name.
26
25
  */
27
26
 
28
- export function toggleFeature(feature) {
29
- return {
30
- type: 'TOGGLE_FEATURE',
31
- feature
27
+ export function toggleFeature(featureName) {
28
+ return function (_ref) {
29
+ let {
30
+ registry
31
+ } = _ref;
32
+ deprecated("select( 'core/edit-site' ).toggleFeature( featureName )", {
33
+ since: '6.0',
34
+ alternative: "select( 'core/preferences').toggle( 'core/edit-site', featureName )"
35
+ });
36
+ registry.dispatch(preferencesStore).toggle('core/edit-site', featureName);
32
37
  };
33
38
  }
34
39
  /**
35
- * Returns an action object used to toggle the width of the editing canvas.
40
+ * Action that changes the width of the editing canvas.
36
41
  *
37
42
  * @param {string} deviceType
38
43
  *
@@ -46,51 +51,58 @@ export function __experimentalSetPreviewDeviceType(deviceType) {
46
51
  };
47
52
  }
48
53
  /**
49
- * Returns an action object used to set a template.
54
+ * Action that sets a template, optionally fetching it from REST API.
50
55
  *
51
56
  * @param {number} templateId The template ID.
52
57
  * @param {string} templateSlug The template slug.
53
58
  * @return {Object} Action object.
54
59
  */
55
60
 
56
- export function* setTemplate(templateId, templateSlug) {
57
- const pageContext = {
58
- templateSlug
59
- };
61
+ export const setTemplate = (templateId, templateSlug) => async _ref2 => {
62
+ let {
63
+ dispatch,
64
+ registry
65
+ } = _ref2;
60
66
 
61
67
  if (!templateSlug) {
62
- const template = yield controls.resolveSelect(coreStore, 'getEntityRecord', 'postType', 'wp_template', templateId);
63
- pageContext.templateSlug = template === null || template === void 0 ? void 0 : template.slug;
68
+ const template = await registry.resolveSelect(coreStore).getEntityRecord('postType', 'wp_template', templateId);
69
+ templateSlug = template === null || template === void 0 ? void 0 : template.slug;
64
70
  }
65
71
 
66
- return {
72
+ dispatch({
67
73
  type: 'SET_TEMPLATE',
68
74
  templateId,
69
75
  page: {
70
- context: pageContext
76
+ context: {
77
+ templateSlug
78
+ }
71
79
  }
72
- };
73
- }
80
+ });
81
+ };
74
82
  /**
75
- * Adds a new template, and sets it as the current template.
83
+ * Action that adds a new template and sets it as the current template.
76
84
  *
77
85
  * @param {Object} template The template.
78
86
  *
79
87
  * @return {Object} Action object used to set the current template.
80
88
  */
81
89
 
82
- export function* addTemplate(template) {
83
- const newTemplate = yield controls.dispatch(coreStore, 'saveEntityRecord', 'postType', 'wp_template', template);
90
+ export const addTemplate = template => async _ref3 => {
91
+ let {
92
+ dispatch,
93
+ registry
94
+ } = _ref3;
95
+ const newTemplate = await registry.dispatch(coreStore).saveEntityRecord('postType', 'wp_template', template);
84
96
 
85
97
  if (template.content) {
86
- yield controls.dispatch(coreStore, 'editEntityRecord', 'postType', 'wp_template', newTemplate.id, {
98
+ registry.dispatch(coreStore).editEntityRecord('postType', 'wp_template', newTemplate.id, {
87
99
  blocks: parse(template.content)
88
100
  }, {
89
101
  undoIgnore: true
90
102
  });
91
103
  }
92
104
 
93
- return {
105
+ dispatch({
94
106
  type: 'SET_TEMPLATE',
95
107
  templateId: newTemplate.id,
96
108
  page: {
@@ -98,39 +110,43 @@ export function* addTemplate(template) {
98
110
  templateSlug: newTemplate.slug
99
111
  }
100
112
  }
101
- };
102
- }
113
+ });
114
+ };
103
115
  /**
104
- * Removes a template.
116
+ * Action that removes a template.
105
117
  *
106
118
  * @param {Object} template The template object.
107
119
  */
108
120
 
109
- export function* removeTemplate(template) {
121
+ export const removeTemplate = template => async _ref4 => {
122
+ let {
123
+ registry
124
+ } = _ref4;
125
+
110
126
  try {
111
- yield controls.dispatch(coreStore, 'deleteEntityRecord', 'postType', template.type, template.id, {
127
+ await registry.dispatch(coreStore).deleteEntityRecord('postType', template.type, template.id, {
112
128
  force: true
113
129
  });
114
- const lastError = yield controls.select(coreStore, 'getLastEntityDeleteError', 'postType', template.type, template.id);
130
+ const lastError = registry.select(coreStore).getLastEntityDeleteError('postType', template.type, template.id);
115
131
 
116
132
  if (lastError) {
117
133
  throw lastError;
118
134
  }
119
135
 
120
- yield controls.dispatch(noticesStore, 'createSuccessNotice', sprintf(
136
+ registry.dispatch(noticesStore).createSuccessNotice(sprintf(
121
137
  /* translators: The template/part's name. */
122
138
  __('"%s" deleted.'), template.title.rendered), {
123
139
  type: 'snackbar'
124
140
  });
125
141
  } catch (error) {
126
142
  const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : __('An error occurred while deleting the template.');
127
- yield controls.dispatch(noticesStore, 'createErrorNotice', errorMessage, {
143
+ registry.dispatch(noticesStore).createErrorNotice(errorMessage, {
128
144
  type: 'snackbar'
129
145
  });
130
146
  }
131
- }
147
+ };
132
148
  /**
133
- * Returns an action object used to set a template part.
149
+ * Action that sets a template part.
134
150
  *
135
151
  * @param {string} templatePartId The template part ID.
136
152
  *
@@ -144,8 +160,8 @@ export function setTemplatePart(templatePartId) {
144
160
  };
145
161
  }
146
162
  /**
147
- * Updates the homeTemplateId state with the templateId of the page resolved
148
- * from the given path.
163
+ * Action that sets the home template ID to the template ID of the page resolved
164
+ * from a given path.
149
165
  *
150
166
  * @param {number} homeTemplateId The template ID for the homepage.
151
167
  */
@@ -169,32 +185,39 @@ export function setHomeTemplateId(homeTemplateId) {
169
185
  * @return {number} The resolved template ID for the page route.
170
186
  */
171
187
 
172
- export function* setPage(page) {
188
+ export const setPage = page => async _ref5 => {
173
189
  var _page$context;
174
190
 
191
+ let {
192
+ dispatch,
193
+ registry
194
+ } = _ref5;
195
+
175
196
  if (!page.path && (_page$context = page.context) !== null && _page$context !== void 0 && _page$context.postId) {
176
- const entity = yield controls.resolveSelect(coreStore, 'getEntityRecord', 'postType', page.context.postType || 'post', page.context.postId); // If the entity is undefined for some reason, path will resolve to "/"
197
+ const entity = await registry.resolveSelect(coreStore).getEntityRecord('postType', page.context.postType || 'post', page.context.postId); // If the entity is undefined for some reason, path will resolve to "/"
177
198
 
178
199
  page.path = getPathAndQueryString(entity === null || entity === void 0 ? void 0 : entity.link);
179
200
  }
180
201
 
181
- const {
182
- id: templateId,
183
- slug: templateSlug
184
- } = yield controls.resolveSelect(coreStore, '__experimentalGetTemplateForLink', page.path);
185
- yield {
202
+ const template = await registry.resolveSelect(coreStore).__experimentalGetTemplateForLink(page.path);
203
+
204
+ if (!template) {
205
+ return;
206
+ }
207
+
208
+ dispatch({
186
209
  type: 'SET_PAGE',
187
- page: !templateSlug ? page : { ...page,
210
+ page: template.slug ? { ...page,
188
211
  context: { ...page.context,
189
- templateSlug
212
+ templateSlug: template.slug
190
213
  }
191
- },
192
- templateId
193
- };
194
- return templateId;
195
- }
214
+ } : page,
215
+ templateId: template.id
216
+ });
217
+ return template.id;
218
+ };
196
219
  /**
197
- * Returns an action object used to set the active navigation panel menu.
220
+ * Action that sets the active navigation panel menu.
198
221
  *
199
222
  * @param {string} menu Menu prop of active menu.
200
223
  *
@@ -233,7 +256,7 @@ export function setIsNavigationPanelOpened(isOpen) {
233
256
  };
234
257
  }
235
258
  /**
236
- * Returns an action object used to open/close the inserter.
259
+ * Opens or closes the inserter.
237
260
  *
238
261
  * @param {boolean|Object} value Whether the inserter should be
239
262
  * opened (true) or closed (false).
@@ -287,136 +310,140 @@ export function setIsListViewOpened(isOpen) {
287
310
  * reverting the template. Default true.
288
311
  */
289
312
 
290
- export function* revertTemplate(template) {
313
+ export const revertTemplate = function (template) {
291
314
  let {
292
315
  allowUndo = true
293
316
  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
317
+ return async _ref6 => {
318
+ let {
319
+ registry
320
+ } = _ref6;
294
321
 
295
- if (!isTemplateRevertable(template)) {
296
- yield controls.dispatch(noticesStore, 'createErrorNotice', __('This template is not revertable.'), {
297
- type: 'snackbar'
298
- });
299
- return;
300
- }
301
-
302
- try {
303
- var _fileTemplate$content;
304
-
305
- const templateEntity = yield controls.select(coreStore, 'getEntity', 'postType', template.type);
306
-
307
- if (!templateEntity) {
308
- yield controls.dispatch(noticesStore, 'createErrorNotice', __('The editor has encountered an unexpected error. Please reload.'), {
322
+ if (!isTemplateRevertable(template)) {
323
+ registry.dispatch(noticesStore).createErrorNotice(__('This template is not revertable.'), {
309
324
  type: 'snackbar'
310
325
  });
311
326
  return;
312
327
  }
313
328
 
314
- const fileTemplatePath = addQueryArgs(`${templateEntity.baseURL}/${template.id}`, {
315
- context: 'edit',
316
- source: 'theme'
317
- });
318
- const fileTemplate = yield apiFetch({
319
- path: fileTemplatePath
320
- });
329
+ try {
330
+ var _fileTemplate$content;
321
331
 
322
- if (!fileTemplate) {
323
- yield controls.dispatch(noticesStore, 'createErrorNotice', __('The editor has encountered an unexpected error. Please reload.'), {
324
- type: 'snackbar'
332
+ const templateEntity = registry.select(coreStore).getEntity('postType', template.type);
333
+
334
+ if (!templateEntity) {
335
+ registry.dispatch(noticesStore).createErrorNotice(__('The editor has encountered an unexpected error. Please reload.'), {
336
+ type: 'snackbar'
337
+ });
338
+ return;
339
+ }
340
+
341
+ const fileTemplatePath = addQueryArgs(`${templateEntity.baseURL}/${template.id}`, {
342
+ context: 'edit',
343
+ source: 'theme'
344
+ });
345
+ const fileTemplate = await apiFetch({
346
+ path: fileTemplatePath
325
347
  });
326
- return;
327
- }
328
348
 
329
- const serializeBlocks = _ref => {
330
- let {
331
- blocks: blocksForSerialization = []
332
- } = _ref;
333
- return __unstableSerializeAndClean(blocksForSerialization);
334
- };
349
+ if (!fileTemplate) {
350
+ registry.dispatch(noticesStore).createErrorNotice(__('The editor has encountered an unexpected error. Please reload.'), {
351
+ type: 'snackbar'
352
+ });
353
+ return;
354
+ }
335
355
 
336
- const edited = yield controls.select(coreStore, 'getEditedEntityRecord', 'postType', template.type, template.id); // We are fixing up the undo level here to make sure we can undo
337
- // the revert in the header toolbar correctly.
356
+ const serializeBlocks = _ref7 => {
357
+ let {
358
+ blocks: blocksForSerialization = []
359
+ } = _ref7;
360
+ return __unstableSerializeAndClean(blocksForSerialization);
361
+ };
338
362
 
339
- yield controls.dispatch(coreStore, 'editEntityRecord', 'postType', template.type, template.id, {
340
- content: serializeBlocks,
341
- // required to make the `undo` behave correctly
342
- blocks: edited.blocks,
343
- // required to revert the blocks in the editor
344
- source: 'custom' // required to avoid turning the editor into a dirty state
363
+ const edited = registry.select(coreStore).getEditedEntityRecord('postType', template.type, template.id); // We are fixing up the undo level here to make sure we can undo
364
+ // the revert in the header toolbar correctly.
345
365
 
346
- }, {
347
- undoIgnore: true // required to merge this edit with the last undo level
366
+ registry.dispatch(coreStore).editEntityRecord('postType', template.type, template.id, {
367
+ content: serializeBlocks,
368
+ // Required to make the `undo` behave correctly.
369
+ blocks: edited.blocks,
370
+ // Required to revert the blocks in the editor.
371
+ source: 'custom' // required to avoid turning the editor into a dirty state
348
372
 
349
- });
350
- const blocks = parse(fileTemplate === null || fileTemplate === void 0 ? void 0 : (_fileTemplate$content = fileTemplate.content) === null || _fileTemplate$content === void 0 ? void 0 : _fileTemplate$content.raw);
351
- yield controls.dispatch(coreStore, 'editEntityRecord', 'postType', template.type, fileTemplate.id, {
352
- content: serializeBlocks,
353
- blocks,
354
- source: 'theme'
355
- });
373
+ }, {
374
+ undoIgnore: true // Required to merge this edit with the last undo level.
356
375
 
357
- if (allowUndo) {
358
- const undoRevert = async () => {
359
- await dispatch(coreStore).editEntityRecord('postType', template.type, edited.id, {
360
- content: serializeBlocks,
361
- blocks: edited.blocks,
362
- source: 'custom'
363
- });
364
- };
376
+ });
377
+ const blocks = parse(fileTemplate === null || fileTemplate === void 0 ? void 0 : (_fileTemplate$content = fileTemplate.content) === null || _fileTemplate$content === void 0 ? void 0 : _fileTemplate$content.raw);
378
+ registry.dispatch(coreStore).editEntityRecord('postType', template.type, fileTemplate.id, {
379
+ content: serializeBlocks,
380
+ blocks,
381
+ source: 'theme'
382
+ });
365
383
 
366
- yield controls.dispatch(noticesStore, 'createSuccessNotice', __('Template reverted.'), {
367
- type: 'snackbar',
368
- actions: [{
369
- label: __('Undo'),
370
- onClick: undoRevert
371
- }]
384
+ if (allowUndo) {
385
+ const undoRevert = () => {
386
+ registry.dispatch(coreStore).editEntityRecord('postType', template.type, edited.id, {
387
+ content: serializeBlocks,
388
+ blocks: edited.blocks,
389
+ source: 'custom'
390
+ });
391
+ };
392
+
393
+ registry.dispatch(noticesStore).createSuccessNotice(__('Template reverted.'), {
394
+ type: 'snackbar',
395
+ actions: [{
396
+ label: __('Undo'),
397
+ onClick: undoRevert
398
+ }]
399
+ });
400
+ } else {
401
+ registry.dispatch(noticesStore).createSuccessNotice(__('Template reverted.'));
402
+ }
403
+ } catch (error) {
404
+ const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : __('Template revert failed. Please reload.');
405
+ registry.dispatch(noticesStore).createErrorNotice(errorMessage, {
406
+ type: 'snackbar'
372
407
  });
373
- } else {
374
- yield controls.dispatch(noticesStore, 'createSuccessNotice', __('Template reverted.'));
375
408
  }
376
- } catch (error) {
377
- const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : __('Template revert failed. Please reload.');
378
- yield controls.dispatch(noticesStore, 'createErrorNotice', errorMessage, {
379
- type: 'snackbar'
380
- });
381
- }
382
- }
409
+ };
410
+ };
383
411
  /**
384
- * Returns an action object used in signalling that the user opened an editor sidebar.
412
+ * Action that opens an editor sidebar.
385
413
  *
386
414
  * @param {?string} name Sidebar name to be opened.
387
- *
388
- * @yield {Object} Action object.
389
415
  */
390
416
 
391
- export function* openGeneralSidebar(name) {
392
- yield controls.dispatch(interfaceStore, 'enableComplementaryArea', editSiteStoreName, name);
393
- }
417
+ export const openGeneralSidebar = name => _ref8 => {
418
+ let {
419
+ registry
420
+ } = _ref8;
421
+ registry.dispatch(interfaceStore).enableComplementaryArea(editSiteStoreName, name);
422
+ };
394
423
  /**
395
- * Returns an action object signalling that the user closed the sidebar.
396
- *
397
- * @yield {Object} Action object.
424
+ * Action that closes the sidebar.
398
425
  */
399
426
 
400
- export function* closeGeneralSidebar() {
401
- yield controls.dispatch(interfaceStore, 'disableComplementaryArea', editSiteStoreName);
402
- }
403
- export function* switchEditorMode(mode) {
404
- yield {
405
- type: 'SWITCH_MODE',
406
- mode
407
- }; // Unselect blocks when we switch to a non visual mode.
427
+ export const closeGeneralSidebar = () => _ref9 => {
428
+ let {
429
+ registry
430
+ } = _ref9;
431
+ registry.dispatch(interfaceStore).disableComplementaryArea(editSiteStoreName);
432
+ };
433
+ export const switchEditorMode = mode => _ref10 => {
434
+ let {
435
+ registry
436
+ } = _ref10;
437
+ registry.dispatch('core/preferences').set('core/edit-site', 'editorMode', mode); // Unselect blocks when we switch to a non visual mode.
408
438
 
409
439
  if (mode !== 'visual') {
410
- yield controls.dispatch(blockEditorStore.name, 'clearSelectedBlock');
440
+ registry.dispatch(blockEditorStore).clearSelectedBlock();
411
441
  }
412
442
 
413
- const messages = {
414
- visual: __('Visual editor selected'),
415
- mosaic: __('Mosaic view selected')
416
- };
417
-
418
- if (messages[mode]) {
419
- speak(messages[mode], 'assertive');
443
+ if (mode === 'visual') {
444
+ speak(__('Visual editor selected'), 'assertive');
445
+ } else if (mode === 'mosaic') {
446
+ speak(__('Mosaic view selected'), 'assertive');
420
447
  }
421
- }
448
+ };
422
449
  //# sourceMappingURL=actions.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/store/actions.js"],"names":["parse","__unstableSerializeAndClean","controls","dispatch","apiFetch","addQueryArgs","getPathAndQueryString","__","sprintf","store","noticesStore","coreStore","interfaceStore","blockEditorStore","speak","STORE_NAME","editSiteStoreName","isTemplateRevertable","toggleFeature","feature","type","__experimentalSetPreviewDeviceType","deviceType","setTemplate","templateId","templateSlug","pageContext","template","resolveSelect","slug","page","context","addTemplate","newTemplate","content","id","blocks","undoIgnore","removeTemplate","force","lastError","select","title","rendered","error","errorMessage","message","code","setTemplatePart","templatePartId","setHomeTemplateId","homeTemplateId","setPage","path","postId","entity","postType","link","setNavigationPanelActiveMenu","menu","openNavigationPanelToMenu","setIsNavigationPanelOpened","isOpen","setIsInserterOpened","value","updateSettings","settings","setIsListViewOpened","revertTemplate","allowUndo","templateEntity","fileTemplatePath","baseURL","source","fileTemplate","serializeBlocks","blocksForSerialization","edited","raw","undoRevert","editEntityRecord","actions","label","onClick","openGeneralSidebar","name","closeGeneralSidebar","switchEditorMode","mode","messages","visual","mosaic"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse, __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { controls, dispatch } from '@wordpress/data';\nimport { apiFetch } from '@wordpress/data-controls';\nimport { addQueryArgs, getPathAndQueryString } from '@wordpress/url';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME as editSiteStoreName } from './constants';\nimport isTemplateRevertable from '../utils/is-template-revertable';\n\n/**\n * Returns an action object used to toggle a feature flag.\n *\n * @param {string} feature Feature name.\n *\n * @return {Object} Action object.\n */\nexport function toggleFeature( feature ) {\n\treturn {\n\t\ttype: 'TOGGLE_FEATURE',\n\t\tfeature,\n\t};\n}\n\n/**\n * Returns an action object used to toggle the width of the editing canvas.\n *\n * @param {string} deviceType\n *\n * @return {Object} Action object.\n */\nexport function __experimentalSetPreviewDeviceType( deviceType ) {\n\treturn {\n\t\ttype: 'SET_PREVIEW_DEVICE_TYPE',\n\t\tdeviceType,\n\t};\n}\n\n/**\n * Returns an action object used to set a template.\n *\n * @param {number} templateId The template ID.\n * @param {string} templateSlug The template slug.\n * @return {Object} Action object.\n */\nexport function* setTemplate( templateId, templateSlug ) {\n\tconst pageContext = { templateSlug };\n\tif ( ! templateSlug ) {\n\t\tconst template = yield controls.resolveSelect(\n\t\t\tcoreStore,\n\t\t\t'getEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplateId\n\t\t);\n\t\tpageContext.templateSlug = template?.slug;\n\t}\n\treturn {\n\t\ttype: 'SET_TEMPLATE',\n\t\ttemplateId,\n\t\tpage: { context: pageContext },\n\t};\n}\n\n/**\n * Adds a new template, and sets it as the current template.\n *\n * @param {Object} template The template.\n *\n * @return {Object} Action object used to set the current template.\n */\nexport function* addTemplate( template ) {\n\tconst newTemplate = yield controls.dispatch(\n\t\tcoreStore,\n\t\t'saveEntityRecord',\n\t\t'postType',\n\t\t'wp_template',\n\t\ttemplate\n\t);\n\n\tif ( template.content ) {\n\t\tyield controls.dispatch(\n\t\t\tcoreStore,\n\t\t\t'editEntityRecord',\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\tnewTemplate.id,\n\t\t\t{ blocks: parse( template.content ) },\n\t\t\t{ undoIgnore: true }\n\t\t);\n\t}\n\n\treturn {\n\t\ttype: 'SET_TEMPLATE',\n\t\ttemplateId: newTemplate.id,\n\t\tpage: { context: { templateSlug: newTemplate.slug } },\n\t};\n}\n\n/**\n * Removes a template.\n *\n * @param {Object} template The template object.\n */\nexport function* removeTemplate( template ) {\n\ttry {\n\t\tyield controls.dispatch(\n\t\t\tcoreStore,\n\t\t\t'deleteEntityRecord',\n\t\t\t'postType',\n\t\t\ttemplate.type,\n\t\t\ttemplate.id,\n\t\t\t{ force: true }\n\t\t);\n\n\t\tconst lastError = yield controls.select(\n\t\t\tcoreStore,\n\t\t\t'getLastEntityDeleteError',\n\t\t\t'postType',\n\t\t\ttemplate.type,\n\t\t\ttemplate.id\n\t\t);\n\n\t\tif ( lastError ) {\n\t\t\tthrow lastError;\n\t\t}\n\n\t\tyield controls.dispatch(\n\t\t\tnoticesStore,\n\t\t\t'createSuccessNotice',\n\t\t\tsprintf(\n\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\ttemplate.title.rendered\n\t\t\t),\n\t\t\t{ type: 'snackbar' }\n\t\t);\n\t} catch ( error ) {\n\t\tconst errorMessage =\n\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t? error.message\n\t\t\t\t: __( 'An error occurred while deleting the template.' );\n\n\t\tyield controls.dispatch(\n\t\t\tnoticesStore,\n\t\t\t'createErrorNotice',\n\t\t\terrorMessage,\n\t\t\t{ type: 'snackbar' }\n\t\t);\n\t}\n}\n\n/**\n * Returns an action object used to set a template part.\n *\n * @param {string} templatePartId The template part ID.\n *\n * @return {Object} Action object.\n */\nexport function setTemplatePart( templatePartId ) {\n\treturn {\n\t\ttype: 'SET_TEMPLATE_PART',\n\t\ttemplatePartId,\n\t};\n}\n\n/**\n * Updates the homeTemplateId state with the templateId of the page resolved\n * from the given path.\n *\n * @param {number} homeTemplateId The template ID for the homepage.\n */\nexport function setHomeTemplateId( homeTemplateId ) {\n\treturn {\n\t\ttype: 'SET_HOME_TEMPLATE',\n\t\thomeTemplateId,\n\t};\n}\n\n/**\n * Resolves the template for a page and displays both. If no path is given, attempts\n * to use the postId to generate a path like `?p=${ postId }`.\n *\n * @param {Object} page The page object.\n * @param {string} page.type The page type.\n * @param {string} page.slug The page slug.\n * @param {string} page.path The page path.\n * @param {Object} page.context The page context.\n *\n * @return {number} The resolved template ID for the page route.\n */\nexport function* setPage( page ) {\n\tif ( ! page.path && page.context?.postId ) {\n\t\tconst entity = yield controls.resolveSelect(\n\t\t\tcoreStore,\n\t\t\t'getEntityRecord',\n\t\t\t'postType',\n\t\t\tpage.context.postType || 'post',\n\t\t\tpage.context.postId\n\t\t);\n\t\t// If the entity is undefined for some reason, path will resolve to \"/\"\n\t\tpage.path = getPathAndQueryString( entity?.link );\n\t}\n\tconst { id: templateId, slug: templateSlug } = yield controls.resolveSelect(\n\t\tcoreStore,\n\t\t'__experimentalGetTemplateForLink',\n\t\tpage.path\n\t);\n\tyield {\n\t\ttype: 'SET_PAGE',\n\t\tpage: ! templateSlug\n\t\t\t? page\n\t\t\t: {\n\t\t\t\t\t...page,\n\t\t\t\t\tcontext: {\n\t\t\t\t\t\t...page.context,\n\t\t\t\t\t\ttemplateSlug,\n\t\t\t\t\t},\n\t\t\t },\n\t\ttemplateId,\n\t};\n\treturn templateId;\n}\n\n/**\n * Returns an action object used to set the active navigation panel menu.\n *\n * @param {string} menu Menu prop of active menu.\n *\n * @return {Object} Action object.\n */\nexport function setNavigationPanelActiveMenu( menu ) {\n\treturn {\n\t\ttype: 'SET_NAVIGATION_PANEL_ACTIVE_MENU',\n\t\tmenu,\n\t};\n}\n\n/**\n * Opens the navigation panel and sets its active menu at the same time.\n *\n * @param {string} menu Identifies the menu to open.\n */\nexport function openNavigationPanelToMenu( menu ) {\n\treturn {\n\t\ttype: 'OPEN_NAVIGATION_PANEL_TO_MENU',\n\t\tmenu,\n\t};\n}\n\n/**\n * Sets whether the navigation panel should be open.\n *\n * @param {boolean} isOpen If true, opens the nav panel. If false, closes it. It\n * does not toggle the state, but sets it directly.\n */\nexport function setIsNavigationPanelOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_NAVIGATION_PANEL_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Returns an action object used to open/close the inserter.\n *\n * @param {boolean|Object} value Whether the inserter should be\n * opened (true) or closed (false).\n * To specify an insertion point,\n * use an object.\n * @param {string} value.rootClientId The root client ID to insert at.\n * @param {number} value.insertionIndex The index to insert at.\n *\n * @return {Object} Action object.\n */\nexport function setIsInserterOpened( value ) {\n\treturn {\n\t\ttype: 'SET_IS_INSERTER_OPENED',\n\t\tvalue,\n\t};\n}\n\n/**\n * Returns an action object used to update the settings.\n *\n * @param {Object} settings New settings.\n *\n * @return {Object} Action object.\n */\nexport function updateSettings( settings ) {\n\treturn {\n\t\ttype: 'UPDATE_SETTINGS',\n\t\tsettings,\n\t};\n}\n\n/**\n * Sets whether the list view panel should be open.\n *\n * @param {boolean} isOpen If true, opens the list view. If false, closes it.\n * It does not toggle the state, but sets it directly.\n */\nexport function setIsListViewOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_LIST_VIEW_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Reverts a template to its original theme-provided file.\n *\n * @param {Object} template The template to revert.\n * @param {Object} [options]\n * @param {boolean} [options.allowUndo] Whether to allow the user to undo\n * reverting the template. Default true.\n */\nexport function* revertTemplate( template, { allowUndo = true } = {} ) {\n\tif ( ! isTemplateRevertable( template ) ) {\n\t\tyield controls.dispatch(\n\t\t\tnoticesStore,\n\t\t\t'createErrorNotice',\n\t\t\t__( 'This template is not revertable.' ),\n\t\t\t{ type: 'snackbar' }\n\t\t);\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst templateEntity = yield controls.select(\n\t\t\tcoreStore,\n\t\t\t'getEntity',\n\t\t\t'postType',\n\t\t\ttemplate.type\n\t\t);\n\t\tif ( ! templateEntity ) {\n\t\t\tyield controls.dispatch(\n\t\t\t\tnoticesStore,\n\t\t\t\t'createErrorNotice',\n\t\t\t\t__(\n\t\t\t\t\t'The editor has encountered an unexpected error. Please reload.'\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar' }\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst fileTemplatePath = addQueryArgs(\n\t\t\t`${ templateEntity.baseURL }/${ template.id }`,\n\t\t\t{ context: 'edit', source: 'theme' }\n\t\t);\n\t\tconst fileTemplate = yield apiFetch( { path: fileTemplatePath } );\n\t\tif ( ! fileTemplate ) {\n\t\t\tyield controls.dispatch(\n\t\t\t\tnoticesStore,\n\t\t\t\t'createErrorNotice',\n\t\t\t\t__(\n\t\t\t\t\t'The editor has encountered an unexpected error. Please reload.'\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar' }\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst serializeBlocks = ( { blocks: blocksForSerialization = [] } ) =>\n\t\t\t__unstableSerializeAndClean( blocksForSerialization );\n\t\tconst edited = yield controls.select(\n\t\t\tcoreStore,\n\t\t\t'getEditedEntityRecord',\n\t\t\t'postType',\n\t\t\ttemplate.type,\n\t\t\ttemplate.id\n\t\t);\n\t\t// We are fixing up the undo level here to make sure we can undo\n\t\t// the revert in the header toolbar correctly.\n\t\tyield controls.dispatch(\n\t\t\tcoreStore,\n\t\t\t'editEntityRecord',\n\t\t\t'postType',\n\t\t\ttemplate.type,\n\t\t\ttemplate.id,\n\t\t\t{\n\t\t\t\tcontent: serializeBlocks, // required to make the `undo` behave correctly\n\t\t\t\tblocks: edited.blocks, // required to revert the blocks in the editor\n\t\t\t\tsource: 'custom', // required to avoid turning the editor into a dirty state\n\t\t\t},\n\t\t\t{\n\t\t\t\tundoIgnore: true, // required to merge this edit with the last undo level\n\t\t\t}\n\t\t);\n\n\t\tconst blocks = parse( fileTemplate?.content?.raw );\n\t\tyield controls.dispatch(\n\t\t\tcoreStore,\n\t\t\t'editEntityRecord',\n\t\t\t'postType',\n\t\t\ttemplate.type,\n\t\t\tfileTemplate.id,\n\t\t\t{\n\t\t\t\tcontent: serializeBlocks,\n\t\t\t\tblocks,\n\t\t\t\tsource: 'theme',\n\t\t\t}\n\t\t);\n\n\t\tif ( allowUndo ) {\n\t\t\tconst undoRevert = async () => {\n\t\t\t\tawait dispatch( coreStore ).editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\tedited.id,\n\t\t\t\t\t{\n\t\t\t\t\t\tcontent: serializeBlocks,\n\t\t\t\t\t\tblocks: edited.blocks,\n\t\t\t\t\t\tsource: 'custom',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t};\n\t\t\tyield controls.dispatch(\n\t\t\t\tnoticesStore,\n\t\t\t\t'createSuccessNotice',\n\t\t\t\t__( 'Template reverted.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\t\tonClick: undoRevert,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tyield controls.dispatch(\n\t\t\t\tnoticesStore,\n\t\t\t\t'createSuccessNotice',\n\t\t\t\t__( 'Template reverted.' )\n\t\t\t);\n\t\t}\n\t} catch ( error ) {\n\t\tconst errorMessage =\n\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t? error.message\n\t\t\t\t: __( 'Template revert failed. Please reload.' );\n\t\tyield controls.dispatch(\n\t\t\tnoticesStore,\n\t\t\t'createErrorNotice',\n\t\t\terrorMessage,\n\t\t\t{ type: 'snackbar' }\n\t\t);\n\t}\n}\n/**\n * Returns an action object used in signalling that the user opened an editor sidebar.\n *\n * @param {?string} name Sidebar name to be opened.\n *\n * @yield {Object} Action object.\n */\nexport function* openGeneralSidebar( name ) {\n\tyield controls.dispatch(\n\t\tinterfaceStore,\n\t\t'enableComplementaryArea',\n\t\teditSiteStoreName,\n\t\tname\n\t);\n}\n\n/**\n * Returns an action object signalling that the user closed the sidebar.\n *\n * @yield {Object} Action object.\n */\nexport function* closeGeneralSidebar() {\n\tyield controls.dispatch(\n\t\tinterfaceStore,\n\t\t'disableComplementaryArea',\n\t\teditSiteStoreName\n\t);\n}\n\nexport function* switchEditorMode( mode ) {\n\tyield {\n\t\ttype: 'SWITCH_MODE',\n\t\tmode,\n\t};\n\n\t// Unselect blocks when we switch to a non visual mode.\n\tif ( mode !== 'visual' ) {\n\t\tyield controls.dispatch( blockEditorStore.name, 'clearSelectedBlock' );\n\t}\n\tconst messages = {\n\t\tvisual: __( 'Visual editor selected' ),\n\t\tmosaic: __( 'Mosaic view selected' ),\n\t};\n\tif ( messages[ mode ] ) {\n\t\tspeak( messages[ mode ], 'assertive' );\n\t}\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/store/actions.js"],"names":["apiFetch","parse","__unstableSerializeAndClean","deprecated","addQueryArgs","getPathAndQueryString","__","sprintf","store","noticesStore","coreStore","interfaceStore","blockEditorStore","speak","preferencesStore","STORE_NAME","editSiteStoreName","isTemplateRevertable","toggleFeature","featureName","registry","since","alternative","dispatch","toggle","__experimentalSetPreviewDeviceType","deviceType","type","setTemplate","templateId","templateSlug","template","resolveSelect","getEntityRecord","slug","page","context","addTemplate","newTemplate","saveEntityRecord","content","editEntityRecord","id","blocks","undoIgnore","removeTemplate","deleteEntityRecord","force","lastError","select","getLastEntityDeleteError","createSuccessNotice","title","rendered","error","errorMessage","message","code","createErrorNotice","setTemplatePart","templatePartId","setHomeTemplateId","homeTemplateId","setPage","path","postId","entity","postType","link","__experimentalGetTemplateForLink","setNavigationPanelActiveMenu","menu","openNavigationPanelToMenu","setIsNavigationPanelOpened","isOpen","setIsInserterOpened","value","updateSettings","settings","setIsListViewOpened","revertTemplate","allowUndo","templateEntity","getEntity","fileTemplatePath","baseURL","source","fileTemplate","serializeBlocks","blocksForSerialization","edited","getEditedEntityRecord","raw","undoRevert","actions","label","onClick","openGeneralSidebar","name","enableComplementaryArea","closeGeneralSidebar","disableComplementaryArea","switchEditorMode","mode","set","clearSelectedBlock"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { parse, __unstableSerializeAndClean } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\nimport { addQueryArgs, getPathAndQueryString } from '@wordpress/url';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { speak } from '@wordpress/a11y';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME as editSiteStoreName } from './constants';\nimport isTemplateRevertable from '../utils/is-template-revertable';\n\n/**\n * Dispatches an action that toggles a feature flag.\n *\n * @param {string} featureName Feature name.\n */\nexport function toggleFeature( featureName ) {\n\treturn function ( { registry } ) {\n\t\tdeprecated( \"select( 'core/edit-site' ).toggleFeature( featureName )\", {\n\t\t\tsince: '6.0',\n\t\t\talternative:\n\t\t\t\t\"select( 'core/preferences').toggle( 'core/edit-site', featureName )\",\n\t\t} );\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.toggle( 'core/edit-site', featureName );\n\t};\n}\n\n/**\n * Action that changes the width of the editing canvas.\n *\n * @param {string} deviceType\n *\n * @return {Object} Action object.\n */\nexport function __experimentalSetPreviewDeviceType( deviceType ) {\n\treturn {\n\t\ttype: 'SET_PREVIEW_DEVICE_TYPE',\n\t\tdeviceType,\n\t};\n}\n\n/**\n * Action that sets a template, optionally fetching it from REST API.\n *\n * @param {number} templateId The template ID.\n * @param {string} templateSlug The template slug.\n * @return {Object} Action object.\n */\nexport const setTemplate = ( templateId, templateSlug ) => async ( {\n\tdispatch,\n\tregistry,\n} ) => {\n\tif ( ! templateSlug ) {\n\t\tconst template = await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.getEntityRecord( 'postType', 'wp_template', templateId );\n\t\ttemplateSlug = template?.slug;\n\t}\n\n\tdispatch( {\n\t\ttype: 'SET_TEMPLATE',\n\t\ttemplateId,\n\t\tpage: { context: { templateSlug } },\n\t} );\n};\n\n/**\n * Action that adds a new template and sets it as the current template.\n *\n * @param {Object} template The template.\n *\n * @return {Object} Action object used to set the current template.\n */\nexport const addTemplate = ( template ) => async ( { dispatch, registry } ) => {\n\tconst newTemplate = await registry\n\t\t.dispatch( coreStore )\n\t\t.saveEntityRecord( 'postType', 'wp_template', template );\n\n\tif ( template.content ) {\n\t\tregistry\n\t\t\t.dispatch( coreStore )\n\t\t\t.editEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\tnewTemplate.id,\n\t\t\t\t{ blocks: parse( template.content ) },\n\t\t\t\t{ undoIgnore: true }\n\t\t\t);\n\t}\n\n\tdispatch( {\n\t\ttype: 'SET_TEMPLATE',\n\t\ttemplateId: newTemplate.id,\n\t\tpage: { context: { templateSlug: newTemplate.slug } },\n\t} );\n};\n\n/**\n * Action that removes a template.\n *\n * @param {Object} template The template object.\n */\nexport const removeTemplate = ( template ) => async ( { registry } ) => {\n\ttry {\n\t\tawait registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.deleteEntityRecord( 'postType', template.type, template.id, {\n\t\t\t\tforce: true,\n\t\t\t} );\n\n\t\tconst lastError = registry\n\t\t\t.select( coreStore )\n\t\t\t.getLastEntityDeleteError( 'postType', template.type, template.id );\n\n\t\tif ( lastError ) {\n\t\t\tthrow lastError;\n\t\t}\n\n\t\tregistry.dispatch( noticesStore ).createSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\ttemplate.title.rendered\n\t\t\t),\n\t\t\t{ type: 'snackbar' }\n\t\t);\n\t} catch ( error ) {\n\t\tconst errorMessage =\n\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t? error.message\n\t\t\t\t: __( 'An error occurred while deleting the template.' );\n\n\t\tregistry\n\t\t\t.dispatch( noticesStore )\n\t\t\t.createErrorNotice( errorMessage, { type: 'snackbar' } );\n\t}\n};\n\n/**\n * Action that sets a template part.\n *\n * @param {string} templatePartId The template part ID.\n *\n * @return {Object} Action object.\n */\nexport function setTemplatePart( templatePartId ) {\n\treturn {\n\t\ttype: 'SET_TEMPLATE_PART',\n\t\ttemplatePartId,\n\t};\n}\n\n/**\n * Action that sets the home template ID to the template ID of the page resolved\n * from a given path.\n *\n * @param {number} homeTemplateId The template ID for the homepage.\n */\nexport function setHomeTemplateId( homeTemplateId ) {\n\treturn {\n\t\ttype: 'SET_HOME_TEMPLATE',\n\t\thomeTemplateId,\n\t};\n}\n\n/**\n * Resolves the template for a page and displays both. If no path is given, attempts\n * to use the postId to generate a path like `?p=${ postId }`.\n *\n * @param {Object} page The page object.\n * @param {string} page.type The page type.\n * @param {string} page.slug The page slug.\n * @param {string} page.path The page path.\n * @param {Object} page.context The page context.\n *\n * @return {number} The resolved template ID for the page route.\n */\nexport const setPage = ( page ) => async ( { dispatch, registry } ) => {\n\tif ( ! page.path && page.context?.postId ) {\n\t\tconst entity = await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpage.context.postType || 'post',\n\t\t\t\tpage.context.postId\n\t\t\t);\n\t\t// If the entity is undefined for some reason, path will resolve to \"/\"\n\t\tpage.path = getPathAndQueryString( entity?.link );\n\t}\n\n\tconst template = await registry\n\t\t.resolveSelect( coreStore )\n\t\t.__experimentalGetTemplateForLink( page.path );\n\n\tif ( ! template ) {\n\t\treturn;\n\t}\n\n\tdispatch( {\n\t\ttype: 'SET_PAGE',\n\t\tpage: template.slug\n\t\t\t? {\n\t\t\t\t\t...page,\n\t\t\t\t\tcontext: {\n\t\t\t\t\t\t...page.context,\n\t\t\t\t\t\ttemplateSlug: template.slug,\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: page,\n\t\ttemplateId: template.id,\n\t} );\n\n\treturn template.id;\n};\n\n/**\n * Action that sets the active navigation panel menu.\n *\n * @param {string} menu Menu prop of active menu.\n *\n * @return {Object} Action object.\n */\nexport function setNavigationPanelActiveMenu( menu ) {\n\treturn {\n\t\ttype: 'SET_NAVIGATION_PANEL_ACTIVE_MENU',\n\t\tmenu,\n\t};\n}\n\n/**\n * Opens the navigation panel and sets its active menu at the same time.\n *\n * @param {string} menu Identifies the menu to open.\n */\nexport function openNavigationPanelToMenu( menu ) {\n\treturn {\n\t\ttype: 'OPEN_NAVIGATION_PANEL_TO_MENU',\n\t\tmenu,\n\t};\n}\n\n/**\n * Sets whether the navigation panel should be open.\n *\n * @param {boolean} isOpen If true, opens the nav panel. If false, closes it. It\n * does not toggle the state, but sets it directly.\n */\nexport function setIsNavigationPanelOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_NAVIGATION_PANEL_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Opens or closes the inserter.\n *\n * @param {boolean|Object} value Whether the inserter should be\n * opened (true) or closed (false).\n * To specify an insertion point,\n * use an object.\n * @param {string} value.rootClientId The root client ID to insert at.\n * @param {number} value.insertionIndex The index to insert at.\n *\n * @return {Object} Action object.\n */\nexport function setIsInserterOpened( value ) {\n\treturn {\n\t\ttype: 'SET_IS_INSERTER_OPENED',\n\t\tvalue,\n\t};\n}\n\n/**\n * Returns an action object used to update the settings.\n *\n * @param {Object} settings New settings.\n *\n * @return {Object} Action object.\n */\nexport function updateSettings( settings ) {\n\treturn {\n\t\ttype: 'UPDATE_SETTINGS',\n\t\tsettings,\n\t};\n}\n\n/**\n * Sets whether the list view panel should be open.\n *\n * @param {boolean} isOpen If true, opens the list view. If false, closes it.\n * It does not toggle the state, but sets it directly.\n */\nexport function setIsListViewOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_LIST_VIEW_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Reverts a template to its original theme-provided file.\n *\n * @param {Object} template The template to revert.\n * @param {Object} [options]\n * @param {boolean} [options.allowUndo] Whether to allow the user to undo\n * reverting the template. Default true.\n */\nexport const revertTemplate = (\n\ttemplate,\n\t{ allowUndo = true } = {}\n) => async ( { registry } ) => {\n\tif ( ! isTemplateRevertable( template ) ) {\n\t\tregistry\n\t\t\t.dispatch( noticesStore )\n\t\t\t.createErrorNotice( __( 'This template is not revertable.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst templateEntity = registry\n\t\t\t.select( coreStore )\n\t\t\t.getEntity( 'postType', template.type );\n\n\t\tif ( ! templateEntity ) {\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createErrorNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'The editor has encountered an unexpected error. Please reload.'\n\t\t\t\t\t),\n\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst fileTemplatePath = addQueryArgs(\n\t\t\t`${ templateEntity.baseURL }/${ template.id }`,\n\t\t\t{ context: 'edit', source: 'theme' }\n\t\t);\n\n\t\tconst fileTemplate = await apiFetch( { path: fileTemplatePath } );\n\t\tif ( ! fileTemplate ) {\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createErrorNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'The editor has encountered an unexpected error. Please reload.'\n\t\t\t\t\t),\n\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst serializeBlocks = ( { blocks: blocksForSerialization = [] } ) =>\n\t\t\t__unstableSerializeAndClean( blocksForSerialization );\n\n\t\tconst edited = registry\n\t\t\t.select( coreStore )\n\t\t\t.getEditedEntityRecord( 'postType', template.type, template.id );\n\n\t\t// We are fixing up the undo level here to make sure we can undo\n\t\t// the revert in the header toolbar correctly.\n\t\tregistry.dispatch( coreStore ).editEntityRecord(\n\t\t\t'postType',\n\t\t\ttemplate.type,\n\t\t\ttemplate.id,\n\t\t\t{\n\t\t\t\tcontent: serializeBlocks, // Required to make the `undo` behave correctly.\n\t\t\t\tblocks: edited.blocks, // Required to revert the blocks in the editor.\n\t\t\t\tsource: 'custom', // required to avoid turning the editor into a dirty state\n\t\t\t},\n\t\t\t{\n\t\t\t\tundoIgnore: true, // Required to merge this edit with the last undo level.\n\t\t\t}\n\t\t);\n\n\t\tconst blocks = parse( fileTemplate?.content?.raw );\n\t\tregistry\n\t\t\t.dispatch( coreStore )\n\t\t\t.editEntityRecord( 'postType', template.type, fileTemplate.id, {\n\t\t\t\tcontent: serializeBlocks,\n\t\t\t\tblocks,\n\t\t\t\tsource: 'theme',\n\t\t\t} );\n\n\t\tif ( allowUndo ) {\n\t\t\tconst undoRevert = () => {\n\t\t\t\tregistry\n\t\t\t\t\t.dispatch( coreStore )\n\t\t\t\t\t.editEntityRecord( 'postType', template.type, edited.id, {\n\t\t\t\t\t\tcontent: serializeBlocks,\n\t\t\t\t\t\tblocks: edited.blocks,\n\t\t\t\t\t\tsource: 'custom',\n\t\t\t\t\t} );\n\t\t\t};\n\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createSuccessNotice( __( 'Template reverted.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\t\tonClick: undoRevert,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t} );\n\t\t} else {\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createSuccessNotice( __( 'Template reverted.' ) );\n\t\t}\n\t} catch ( error ) {\n\t\tconst errorMessage =\n\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t? error.message\n\t\t\t\t: __( 'Template revert failed. Please reload.' );\n\t\tregistry\n\t\t\t.dispatch( noticesStore )\n\t\t\t.createErrorNotice( errorMessage, { type: 'snackbar' } );\n\t}\n};\n/**\n * Action that opens an editor sidebar.\n *\n * @param {?string} name Sidebar name to be opened.\n */\nexport const openGeneralSidebar = ( name ) => ( { registry } ) => {\n\tregistry\n\t\t.dispatch( interfaceStore )\n\t\t.enableComplementaryArea( editSiteStoreName, name );\n};\n\n/**\n * Action that closes the sidebar.\n */\nexport const closeGeneralSidebar = () => ( { registry } ) => {\n\tregistry\n\t\t.dispatch( interfaceStore )\n\t\t.disableComplementaryArea( editSiteStoreName );\n};\n\nexport const switchEditorMode = ( mode ) => ( { registry } ) => {\n\tregistry\n\t\t.dispatch( 'core/preferences' )\n\t\t.set( 'core/edit-site', 'editorMode', mode );\n\n\t// Unselect blocks when we switch to a non visual mode.\n\tif ( mode !== 'visual' ) {\n\t\tregistry.dispatch( blockEditorStore ).clearSelectedBlock();\n\t}\n\n\tif ( mode === 'visual' ) {\n\t\tspeak( __( 'Visual editor selected' ), 'assertive' );\n\t} else if ( mode === 'mosaic' ) {\n\t\tspeak( __( 'Mosaic view selected' ), 'assertive' );\n\t}\n};\n"]}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { createReduxStore, registerStore } from '@wordpress/data';
5
- import { controls } from '@wordpress/data-controls';
4
+ import { createReduxStore, register } from '@wordpress/data';
6
5
  /**
7
6
  * Internal dependencies
8
7
  */
@@ -14,12 +13,8 @@ import { STORE_NAME } from './constants';
14
13
  export const storeConfig = {
15
14
  reducer,
16
15
  actions,
17
- selectors,
18
- controls,
19
- persist: ['preferences']
16
+ selectors
20
17
  };
21
- export const store = createReduxStore(STORE_NAME, storeConfig); // Once we build a more generic persistence plugin that works across types of stores
22
- // we'd be able to replace this with a register call.
23
-
24
- registerStore(STORE_NAME, storeConfig);
18
+ export const store = createReduxStore(STORE_NAME, storeConfig);
19
+ register(store);
25
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/store/index.js"],"names":["createReduxStore","registerStore","controls","reducer","actions","selectors","STORE_NAME","storeConfig","persist","store"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,gBAAT,EAA2BC,aAA3B,QAAgD,iBAAhD;AACA,SAASC,QAAT,QAAyB,0BAAzB;AAEA;AACA;AACA;;AACA,OAAOC,OAAP,MAAoB,WAApB;AACA,OAAO,KAAKC,OAAZ,MAAyB,WAAzB;AACA,OAAO,KAAKC,SAAZ,MAA2B,aAA3B;AACA,SAASC,UAAT,QAA2B,aAA3B;AAEA,OAAO,MAAMC,WAAW,GAAG;AAC1BJ,EAAAA,OAD0B;AAE1BC,EAAAA,OAF0B;AAG1BC,EAAAA,SAH0B;AAI1BH,EAAAA,QAJ0B;AAK1BM,EAAAA,OAAO,EAAE,CAAE,aAAF;AALiB,CAApB;AAQP,OAAO,MAAMC,KAAK,GAAGT,gBAAgB,CAAEM,UAAF,EAAcC,WAAd,CAA9B,C,CAEP;AACA;;AACAN,aAAa,CAAEK,UAAF,EAAcC,WAAd,CAAb","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createReduxStore, registerStore } from '@wordpress/data';\nimport { controls } from '@wordpress/data-controls';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as actions from './actions';\nimport * as selectors from './selectors';\nimport { STORE_NAME } from './constants';\n\nexport const storeConfig = {\n\treducer,\n\tactions,\n\tselectors,\n\tcontrols,\n\tpersist: [ 'preferences' ],\n};\n\nexport const store = createReduxStore( STORE_NAME, storeConfig );\n\n// Once we build a more generic persistence plugin that works across types of stores\n// we'd be able to replace this with a register call.\nregisterStore( STORE_NAME, storeConfig );\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/store/index.js"],"names":["createReduxStore","register","reducer","actions","selectors","STORE_NAME","storeConfig","store"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,gBAAT,EAA2BC,QAA3B,QAA2C,iBAA3C;AAEA;AACA;AACA;;AACA,OAAOC,OAAP,MAAoB,WAApB;AACA,OAAO,KAAKC,OAAZ,MAAyB,WAAzB;AACA,OAAO,KAAKC,SAAZ,MAA2B,aAA3B;AACA,SAASC,UAAT,QAA2B,aAA3B;AAEA,OAAO,MAAMC,WAAW,GAAG;AAC1BJ,EAAAA,OAD0B;AAE1BC,EAAAA,OAF0B;AAG1BC,EAAAA;AAH0B,CAApB;AAMP,OAAO,MAAMG,KAAK,GAAGP,gBAAgB,CAAEK,UAAF,EAAcC,WAAd,CAA9B;AACPL,QAAQ,CAAEM,KAAF,CAAR","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as actions from './actions';\nimport * as selectors from './selectors';\nimport { STORE_NAME } from './constants';\n\nexport const storeConfig = {\n\treducer,\n\tactions,\n\tselectors,\n};\n\nexport const store = createReduxStore( STORE_NAME, storeConfig );\nregister( store );\n"]}