@wordpress/edit-post 6.2.0 → 6.3.2

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 (69) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/layout/index.js +7 -4
  3. package/build/components/layout/index.js.map +1 -1
  4. package/build/components/sidebar/post-link/index.js +1 -1
  5. package/build/components/sidebar/post-link/index.js.map +1 -1
  6. package/build/components/start-page-options/index.js +116 -0
  7. package/build/components/start-page-options/index.js.map +1 -0
  8. package/build/components/visual-editor/index.js +3 -3
  9. package/build/components/visual-editor/index.js.map +1 -1
  10. package/build/editor.js +3 -2
  11. package/build/editor.js.map +1 -1
  12. package/build/index.js +3 -0
  13. package/build/index.js.map +1 -1
  14. package/build/index.native.js +3 -0
  15. package/build/index.native.js.map +1 -1
  16. package/build/store/actions.js +76 -49
  17. package/build/store/actions.js.map +1 -1
  18. package/build/store/index.js +7 -10
  19. package/build/store/index.js.map +1 -1
  20. package/build/store/reducer.js +0 -80
  21. package/build/store/reducer.js.map +1 -1
  22. package/build/store/selectors.js +86 -25
  23. package/build/store/selectors.js.map +1 -1
  24. package/build-module/components/layout/index.js +6 -4
  25. package/build-module/components/layout/index.js.map +1 -1
  26. package/build-module/components/sidebar/post-link/index.js +1 -1
  27. package/build-module/components/sidebar/post-link/index.js.map +1 -1
  28. package/build-module/components/start-page-options/index.js +103 -0
  29. package/build-module/components/start-page-options/index.js.map +1 -0
  30. package/build-module/components/visual-editor/index.js +3 -3
  31. package/build-module/components/visual-editor/index.js.map +1 -1
  32. package/build-module/editor.js +2 -2
  33. package/build-module/editor.js.map +1 -1
  34. package/build-module/index.js +3 -0
  35. package/build-module/index.js.map +1 -1
  36. package/build-module/index.native.js +3 -0
  37. package/build-module/index.native.js.map +1 -1
  38. package/build-module/store/actions.js +71 -45
  39. package/build-module/store/actions.js.map +1 -1
  40. package/build-module/store/index.js +7 -10
  41. package/build-module/store/index.js.map +1 -1
  42. package/build-module/store/reducer.js +1 -77
  43. package/build-module/store/reducer.js.map +1 -1
  44. package/build-module/store/selectors.js +82 -23
  45. package/build-module/store/selectors.js.map +1 -1
  46. package/build-style/style-rtl.css +38 -3
  47. package/build-style/style.css +38 -3
  48. package/package.json +27 -26
  49. package/src/components/layout/index.js +10 -2
  50. package/src/components/sidebar/post-link/index.js +1 -1
  51. package/src/components/start-page-options/index.js +121 -0
  52. package/src/components/start-page-options/style.scss +42 -0
  53. package/src/components/visual-editor/index.js +5 -3
  54. package/src/editor.js +3 -2
  55. package/src/index.js +3 -0
  56. package/src/index.native.js +3 -0
  57. package/src/store/actions.js +47 -15
  58. package/src/store/index.js +7 -11
  59. package/src/store/reducer.js +1 -74
  60. package/src/store/selectors.js +121 -51
  61. package/src/store/test/actions.js +30 -33
  62. package/src/store/test/reducer.js +0 -126
  63. package/src/store/test/selectors.js +0 -155
  64. package/src/style.scss +1 -4
  65. package/build/store/defaults.js +0 -15
  66. package/build/store/defaults.js.map +0 -1
  67. package/build-module/store/defaults.js +0 -8
  68. package/build-module/store/defaults.js.map +0 -1
  69. package/src/store/defaults.js +0 -7
@@ -14,8 +14,7 @@ exports.getPreference = getPreference;
14
14
  exports.getPreferences = void 0;
15
15
  exports.hasMetaBoxes = hasMetaBoxes;
16
16
  exports.isEditingTemplate = isEditingTemplate;
17
- exports.isEditorPanelEnabled = isEditorPanelEnabled;
18
- exports.isEditorPanelOpened = isEditorPanelOpened;
17
+ exports.isEditorPanelOpened = exports.isEditorPanelEnabled = void 0;
19
18
  exports.isEditorPanelRemoved = isEditorPanelRemoved;
20
19
  exports.isFeatureActive = exports.isEditorSidebarOpened = void 0;
21
20
  exports.isInserterOpened = isInserterOpened;
@@ -41,6 +40,8 @@ var _coreData = require("@wordpress/core-data");
41
40
 
42
41
  var _editor = require("@wordpress/editor");
43
42
 
43
+ var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
44
+
44
45
  /**
45
46
  * External dependencies
46
47
  */
@@ -49,6 +50,7 @@ var _editor = require("@wordpress/editor");
49
50
  * WordPress dependencies
50
51
  */
51
52
  const EMPTY_ARRAY = [];
53
+ const EMPTY_OBJECT = {};
52
54
  /**
53
55
  * Returns the current editing mode.
54
56
  *
@@ -106,11 +108,55 @@ const isPluginSidebarOpened = (0, _data.createRegistrySelector)(select => () =>
106
108
  exports.isPluginSidebarOpened = isPluginSidebarOpened;
107
109
  const getActiveGeneralSidebarName = (0, _data.createRegistrySelector)(select => () => {
108
110
  return select(_interface.store).getActiveComplementaryArea('core/edit-post');
109
- }); // The current list of preference keys that have been migrated to the
110
- // preferences package.
111
+ });
112
+ /**
113
+ * Converts panels from the new preferences store format to the old format
114
+ * that the post editor previously used.
115
+ *
116
+ * The resultant converted data should look like this:
117
+ * {
118
+ * panelName: {
119
+ * enabled: false,
120
+ * opened: true,
121
+ * },
122
+ * anotherPanelName: {
123
+ * opened: true
124
+ * },
125
+ * }
126
+ *
127
+ * @param {string[] | undefined} inactivePanels An array of inactive panel names.
128
+ * @param {string[] | undefined} openPanels An array of open panel names.
129
+ *
130
+ * @return {Object} The converted panel data.
131
+ */
111
132
 
112
133
  exports.getActiveGeneralSidebarName = getActiveGeneralSidebarName;
113
- const MIGRATED_KEYS = ['hiddenBlockTypes', 'editorMode', 'preferredStyleVariations'];
134
+
135
+ function convertPanelsToOldFormat(inactivePanels, openPanels) {
136
+ var _ref;
137
+
138
+ // First reduce the inactive panels.
139
+ const panelsWithEnabledState = inactivePanels === null || inactivePanels === void 0 ? void 0 : inactivePanels.reduce((accumulatedPanels, panelName) => ({ ...accumulatedPanels,
140
+ [panelName]: {
141
+ enabled: false
142
+ }
143
+ }), {}); // Then reduce the open panels, passing in the result of the previous
144
+ // reduction as the initial value so that both open and inactive
145
+ // panel state is combined.
146
+
147
+ const panels = openPanels === null || openPanels === void 0 ? void 0 : openPanels.reduce((accumulatedPanels, panelName) => {
148
+ const currentPanelState = accumulatedPanels === null || accumulatedPanels === void 0 ? void 0 : accumulatedPanels[panelName];
149
+ return { ...accumulatedPanels,
150
+ [panelName]: { ...currentPanelState,
151
+ opened: true
152
+ }
153
+ };
154
+ }, panelsWithEnabledState !== null && panelsWithEnabledState !== void 0 ? panelsWithEnabledState : {}); // The panels variable will only be set if openPanels wasn't `undefined`.
155
+ // If it isn't set just return `panelsWithEnabledState`, and if that isn't
156
+ // set return an empty object.
157
+
158
+ return (_ref = panels !== null && panels !== void 0 ? panels : panelsWithEnabledState) !== null && _ref !== void 0 ? _ref : EMPTY_OBJECT;
159
+ }
114
160
  /**
115
161
  * Returns the preferences (these preferences are persisted locally).
116
162
  *
@@ -119,19 +165,30 @@ const MIGRATED_KEYS = ['hiddenBlockTypes', 'editorMode', 'preferredStyleVariatio
119
165
  * @return {Object} Preferences Object.
120
166
  */
121
167
 
122
- const getPreferences = (0, _data.createRegistrySelector)(select => state => {
123
- const editPostPreferences = state.preferences; // Some preferences now exist in the preferences store.
168
+
169
+ const getPreferences = (0, _data.createRegistrySelector)(select => () => {
170
+ (0, _deprecated.default)(`wp.data.select( 'core/edit-post' ).getPreferences`, {
171
+ since: '6.0',
172
+ alternative: `wp.data.select( 'core/preferences' ).get`
173
+ }); // These preferences now exist in the preferences store.
124
174
  // Fetch them so that they can be merged into the post
125
175
  // editor preferences.
126
176
 
127
- const preferenceStorePreferences = MIGRATED_KEYS.reduce((accumulatedPrefs, preferenceKey) => {
177
+ const preferences = ['hiddenBlockTypes', 'editorMode', 'preferredStyleVariations'].reduce((accumulatedPrefs, preferenceKey) => {
128
178
  const value = select(_preferences.store).get('core/edit-post', preferenceKey);
129
179
  return { ...accumulatedPrefs,
130
180
  [preferenceKey]: value
131
181
  };
132
- }, {});
133
- return { ...editPostPreferences,
134
- ...preferenceStorePreferences
182
+ }, {}); // Panels were a preference, but the data structure changed when the state
183
+ // was migrated to the preferences store. They need to be converted from
184
+ // the new preferences store format to old format to ensure no breaking
185
+ // changes for plugins.
186
+
187
+ const inactivePanels = select(_preferences.store).get('core/edit-post', 'inactivePanels');
188
+ const openPanels = select(_preferences.store).get('core/edit-post', 'openPanels');
189
+ const panels = convertPanelsToOldFormat(inactivePanels, openPanels);
190
+ return { ...preferences,
191
+ panels
135
192
  };
136
193
  });
137
194
  /**
@@ -146,9 +203,12 @@ const getPreferences = (0, _data.createRegistrySelector)(select => state => {
146
203
  exports.getPreferences = getPreferences;
147
204
 
148
205
  function getPreference(state, preferenceKey, defaultValue) {
149
- // Avoid using the `getPreferences` registry selector where possible.
150
- const isMigratedKey = MIGRATED_KEYS.includes(preferenceKey);
151
- const preferences = isMigratedKey ? getPreferences(state) : state.preferences;
206
+ (0, _deprecated.default)(`wp.data.select( 'core/edit-post' ).getPreference`, {
207
+ since: '6.0',
208
+ alternative: `wp.data.select( 'core/preferences' ).get`
209
+ }); // Avoid using the `getPreferences` registry selector where possible.
210
+
211
+ const preferences = getPreferences(state);
152
212
  const value = preferences[preferenceKey];
153
213
  return value === undefined ? defaultValue : value;
154
214
  }
@@ -202,10 +262,10 @@ function isEditorPanelRemoved(state, panelName) {
202
262
  */
203
263
 
204
264
 
205
- function isEditorPanelEnabled(state, panelName) {
206
- const panels = getPreference(state, 'panels');
207
- return !isEditorPanelRemoved(state, panelName) && (0, _lodash.get)(panels, [panelName, 'enabled'], true);
208
- }
265
+ const isEditorPanelEnabled = (0, _data.createRegistrySelector)(select => (state, panelName) => {
266
+ const inactivePanels = select(_preferences.store).get('core/edit-post', 'inactivePanels');
267
+ return !isEditorPanelRemoved(state, panelName) && !(inactivePanels !== null && inactivePanels !== void 0 && inactivePanels.includes(panelName));
268
+ });
209
269
  /**
210
270
  * Returns true if the given panel is open, or false otherwise. Panels are
211
271
  * closed by default.
@@ -216,11 +276,11 @@ function isEditorPanelEnabled(state, panelName) {
216
276
  * @return {boolean} Whether or not the panel is open.
217
277
  */
218
278
 
219
-
220
- function isEditorPanelOpened(state, panelName) {
221
- const panels = getPreference(state, 'panels');
222
- return (0, _lodash.get)(panels, [panelName]) === true || (0, _lodash.get)(panels, [panelName, 'opened']) === true;
223
- }
279
+ exports.isEditorPanelEnabled = isEditorPanelEnabled;
280
+ const isEditorPanelOpened = (0, _data.createRegistrySelector)(select => (state, panelName) => {
281
+ const openPanels = select(_preferences.store).get('core/edit-post', 'openPanels');
282
+ return !!(openPanels !== null && openPanels !== void 0 && openPanels.includes(panelName));
283
+ });
224
284
  /**
225
285
  * Returns true if a modal is active, or false otherwise.
226
286
  *
@@ -230,6 +290,7 @@ function isEditorPanelOpened(state, panelName) {
230
290
  * @return {boolean} Whether the modal is active.
231
291
  */
232
292
 
293
+ exports.isEditorPanelOpened = isEditorPanelOpened;
233
294
 
234
295
  function isModalActive(state, modalName) {
235
296
  return state.activeModal === modalName;
@@ -285,10 +346,10 @@ const getActiveMetaBoxLocations = (0, _rememo.default)(state => {
285
346
  exports.getActiveMetaBoxLocations = getActiveMetaBoxLocations;
286
347
 
287
348
  function isMetaBoxLocationVisible(state, location) {
288
- return isMetaBoxLocationActive(state, location) && (0, _lodash.some)(getMetaBoxesPerLocation(state, location), _ref => {
349
+ return isMetaBoxLocationActive(state, location) && (0, _lodash.some)(getMetaBoxesPerLocation(state, location), _ref2 => {
289
350
  let {
290
351
  id
291
- } = _ref;
352
+ } = _ref2;
292
353
  return isEditorPanelEnabled(state, `meta-box-${id}`);
293
354
  });
294
355
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-post/src/store/selectors.js"],"names":["EMPTY_ARRAY","getEditorMode","select","preferencesStore","get","isEditorSidebarOpened","activeGeneralSidebar","interfaceStore","getActiveComplementaryArea","isPluginSidebarOpened","getActiveGeneralSidebarName","MIGRATED_KEYS","getPreferences","state","editPostPreferences","preferences","preferenceStorePreferences","reduce","accumulatedPrefs","preferenceKey","value","getPreference","defaultValue","isMigratedKey","includes","undefined","getHiddenBlockTypes","isPublishSidebarOpened","publishSidebarActive","isEditorPanelRemoved","panelName","removedPanels","isEditorPanelEnabled","panels","isEditorPanelOpened","isModalActive","modalName","activeModal","isFeatureActive","feature","isPluginItemPinned","pluginName","isItemPinned","getActiveMetaBoxLocations","Object","keys","metaBoxes","locations","filter","location","isMetaBoxLocationActive","isMetaBoxLocationVisible","getMetaBoxesPerLocation","id","length","getAllMetaBoxes","hasMetaBoxes","isSavingMetaBoxes","isSaving","__experimentalGetPreviewDeviceType","deviceType","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","rootClientId","insertionIndex","filterValue","isListViewOpened","listViewPanel","isEditingTemplate","areMetaBoxesInitialized","initialized","getEditedPostTemplate","currentTemplate","editorStore","getEditedPostAttribute","templateWithSameSlug","coreStore","getEntityRecords","per_page","find","template","slug","getEditedEntityRecord","post","getCurrentPost","link","__experimentalGetTemplateForLink"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\nimport { get, includes, some, flatten, values } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createRegistrySelector } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Returns the current editing mode.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Editing mode.\n */\nexport const getEditorMode = createRegistrySelector( ( select ) => () =>\n\tselect( preferencesStore ).get( 'core/edit-post', 'editorMode' ) ?? 'visual'\n);\n\n/**\n * Returns true if the editor sidebar is opened.\n *\n * @param {Object} state Global application state\n *\n * @return {boolean} Whether the editor sidebar is opened.\n */\nexport const isEditorSidebarOpened = createRegistrySelector(\n\t( select ) => () => {\n\t\tconst activeGeneralSidebar = select(\n\t\t\tinterfaceStore\n\t\t).getActiveComplementaryArea( 'core/edit-post' );\n\t\treturn includes(\n\t\t\t[ 'edit-post/document', 'edit-post/block' ],\n\t\t\tactiveGeneralSidebar\n\t\t);\n\t}\n);\n\n/**\n * Returns true if the plugin sidebar is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the plugin sidebar is opened.\n */\nexport const isPluginSidebarOpened = createRegistrySelector(\n\t( select ) => () => {\n\t\tconst activeGeneralSidebar = select(\n\t\t\tinterfaceStore\n\t\t).getActiveComplementaryArea( 'core/edit-post' );\n\t\treturn (\n\t\t\t!! activeGeneralSidebar &&\n\t\t\t! includes(\n\t\t\t\t[ 'edit-post/document', 'edit-post/block' ],\n\t\t\t\tactiveGeneralSidebar\n\t\t\t)\n\t\t);\n\t}\n);\n\n/**\n * Returns the current active general sidebar name, or null if there is no\n * general sidebar active. The active general sidebar is a unique name to\n * identify either an editor or plugin sidebar.\n *\n * Examples:\n *\n * - `edit-post/document`\n * - `my-plugin/insert-image-sidebar`\n *\n * @param {Object} state Global application state.\n *\n * @return {?string} Active general sidebar name.\n */\nexport const getActiveGeneralSidebarName = createRegistrySelector(\n\t( select ) => () => {\n\t\treturn select( interfaceStore ).getActiveComplementaryArea(\n\t\t\t'core/edit-post'\n\t\t);\n\t}\n);\n\n// The current list of preference keys that have been migrated to the\n// preferences package.\nconst MIGRATED_KEYS = [\n\t'hiddenBlockTypes',\n\t'editorMode',\n\t'preferredStyleVariations',\n];\n\n/**\n * Returns the preferences (these preferences are persisted locally).\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Preferences Object.\n */\nexport const getPreferences = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst editPostPreferences = state.preferences;\n\n\t\t// Some preferences now exist in the preferences store.\n\t\t// Fetch them so that they can be merged into the post\n\t\t// editor preferences.\n\t\tconst preferenceStorePreferences = MIGRATED_KEYS.reduce(\n\t\t\t( accumulatedPrefs, preferenceKey ) => {\n\t\t\t\tconst value = select( preferencesStore ).get(\n\t\t\t\t\t'core/edit-post',\n\t\t\t\t\tpreferenceKey\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\t...accumulatedPrefs,\n\t\t\t\t\t[ preferenceKey ]: value,\n\t\t\t\t};\n\t\t\t},\n\t\t\t{}\n\t\t);\n\n\t\treturn {\n\t\t\t...editPostPreferences,\n\t\t\t...preferenceStorePreferences,\n\t\t};\n\t}\n);\n\n/**\n *\n * @param {Object} state Global application state.\n * @param {string} preferenceKey Preference Key.\n * @param {*} defaultValue Default Value.\n *\n * @return {*} Preference Value.\n */\nexport function getPreference( state, preferenceKey, defaultValue ) {\n\t// Avoid using the `getPreferences` registry selector where possible.\n\tconst isMigratedKey = MIGRATED_KEYS.includes( preferenceKey );\n\tconst preferences = isMigratedKey\n\t\t? getPreferences( state )\n\t\t: state.preferences;\n\tconst value = preferences[ preferenceKey ];\n\treturn value === undefined ? defaultValue : value;\n}\n\n/**\n * Returns an array of blocks that are hidden.\n *\n * @return {Array} A list of the hidden block types\n */\nexport const getHiddenBlockTypes = createRegistrySelector( ( select ) => () => {\n\treturn (\n\t\tselect( preferencesStore ).get(\n\t\t\t'core/edit-post',\n\t\t\t'hiddenBlockTypes'\n\t\t) ?? EMPTY_ARRAY\n\t);\n} );\n\n/**\n * Returns true if the publish sidebar is opened.\n *\n * @param {Object} state Global application state\n *\n * @return {boolean} Whether the publish sidebar is open.\n */\nexport function isPublishSidebarOpened( state ) {\n\treturn state.publishSidebarActive;\n}\n\n/**\n * Returns true if the given panel was programmatically removed, or false otherwise.\n * All panels are not removed by default.\n *\n * @param {Object} state Global application state.\n * @param {string} panelName A string that identifies the panel.\n *\n * @return {boolean} Whether or not the panel is removed.\n */\nexport function isEditorPanelRemoved( state, panelName ) {\n\treturn includes( state.removedPanels, panelName );\n}\n\n/**\n * Returns true if the given panel is enabled, or false otherwise. Panels are\n * enabled by default.\n *\n * @param {Object} state Global application state.\n * @param {string} panelName A string that identifies the panel.\n *\n * @return {boolean} Whether or not the panel is enabled.\n */\nexport function isEditorPanelEnabled( state, panelName ) {\n\tconst panels = getPreference( state, 'panels' );\n\n\treturn (\n\t\t! isEditorPanelRemoved( state, panelName ) &&\n\t\tget( panels, [ panelName, 'enabled' ], true )\n\t);\n}\n\n/**\n * Returns true if the given panel is open, or false otherwise. Panels are\n * closed by default.\n *\n * @param {Object} state Global application state.\n * @param {string} panelName A string that identifies the panel.\n *\n * @return {boolean} Whether or not the panel is open.\n */\nexport function isEditorPanelOpened( state, panelName ) {\n\tconst panels = getPreference( state, 'panels' );\n\treturn (\n\t\tget( panels, [ panelName ] ) === true ||\n\t\tget( panels, [ panelName, 'opened' ] ) === true\n\t);\n}\n\n/**\n * Returns true if a modal is active, or false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} modalName A string that uniquely identifies the modal.\n *\n * @return {boolean} Whether the modal is active.\n */\nexport function isModalActive( state, modalName ) {\n\treturn state.activeModal === modalName;\n}\n\n/**\n * Returns whether the given feature is enabled or not.\n *\n * @param {Object} state Global application state.\n * @param {string} feature Feature slug.\n *\n * @return {boolean} Is active.\n */\nexport const isFeatureActive = createRegistrySelector(\n\t( select ) => ( state, feature ) => {\n\t\treturn !! select( preferencesStore ).get( 'core/edit-post', feature );\n\t}\n);\n\n/**\n * Returns true if the plugin item is pinned to the header.\n * When the value is not set it defaults to true.\n *\n * @param {Object} state Global application state.\n * @param {string} pluginName Plugin item name.\n *\n * @return {boolean} Whether the plugin item is pinned.\n */\nexport const isPluginItemPinned = createRegistrySelector(\n\t( select ) => ( state, pluginName ) => {\n\t\treturn select( interfaceStore ).isItemPinned(\n\t\t\t'core/edit-post',\n\t\t\tpluginName\n\t\t);\n\t}\n);\n\n/**\n * Returns an array of active meta box locations.\n *\n * @param {Object} state Post editor state.\n *\n * @return {string[]} Active meta box locations.\n */\nexport const getActiveMetaBoxLocations = createSelector(\n\t( state ) => {\n\t\treturn Object.keys( state.metaBoxes.locations ).filter( ( location ) =>\n\t\t\tisMetaBoxLocationActive( state, location )\n\t\t);\n\t},\n\t( state ) => [ state.metaBoxes.locations ]\n);\n\n/**\n * Returns true if a metabox location is active and visible\n *\n * @param {Object} state Post editor state.\n * @param {string} location Meta box location to test.\n *\n * @return {boolean} Whether the meta box location is active and visible.\n */\nexport function isMetaBoxLocationVisible( state, location ) {\n\treturn (\n\t\tisMetaBoxLocationActive( state, location ) &&\n\t\tsome( getMetaBoxesPerLocation( state, location ), ( { id } ) => {\n\t\t\treturn isEditorPanelEnabled( state, `meta-box-${ id }` );\n\t\t} )\n\t);\n}\n\n/**\n * Returns true if there is an active meta box in the given location, or false\n * otherwise.\n *\n * @param {Object} state Post editor state.\n * @param {string} location Meta box location to test.\n *\n * @return {boolean} Whether the meta box location is active.\n */\nexport function isMetaBoxLocationActive( state, location ) {\n\tconst metaBoxes = getMetaBoxesPerLocation( state, location );\n\treturn !! metaBoxes && metaBoxes.length !== 0;\n}\n\n/**\n * Returns the list of all the available meta boxes for a given location.\n *\n * @param {Object} state Global application state.\n * @param {string} location Meta box location to test.\n *\n * @return {?Array} List of meta boxes.\n */\nexport function getMetaBoxesPerLocation( state, location ) {\n\treturn state.metaBoxes.locations[ location ];\n}\n\n/**\n * Returns the list of all the available meta boxes.\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} List of meta boxes.\n */\nexport const getAllMetaBoxes = createSelector(\n\t( state ) => {\n\t\treturn flatten( values( state.metaBoxes.locations ) );\n\t},\n\t( state ) => [ state.metaBoxes.locations ]\n);\n\n/**\n * Returns true if the post is using Meta Boxes\n *\n * @param {Object} state Global application state\n *\n * @return {boolean} Whether there are metaboxes or not.\n */\nexport function hasMetaBoxes( state ) {\n\treturn getActiveMetaBoxLocations( state ).length > 0;\n}\n\n/**\n * Returns true if the Meta Boxes are being saved.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the metaboxes are being saved.\n */\nexport function isSavingMetaBoxes( state ) {\n\treturn state.metaBoxes.isSaving;\n}\n\n/**\n * Returns the current editing canvas device type.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Device type.\n */\nexport function __experimentalGetPreviewDeviceType( state ) {\n\treturn state.deviceType;\n}\n\n/**\n * Returns true if the inserter is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the inserter is opened.\n */\nexport function isInserterOpened( state ) {\n\treturn !! state.blockInserterPanel;\n}\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID, index to insert at and starting filter value.\n */\nexport function __experimentalGetInsertionPoint( state ) {\n\tconst {\n\t\trootClientId,\n\t\tinsertionIndex,\n\t\tfilterValue,\n\t} = state.blockInserterPanel;\n\treturn { rootClientId, insertionIndex, filterValue };\n}\n\n/**\n * Returns true if the list view is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the list view is opened.\n */\nexport function isListViewOpened( state ) {\n\treturn state.listViewPanel;\n}\n\n/**\n * Returns true if the template editing mode is enabled.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether we're editing the template.\n */\nexport function isEditingTemplate( state ) {\n\treturn state.isEditingTemplate;\n}\n\n/**\n * Returns true if meta boxes are initialized.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether meta boxes are initialized.\n */\nexport function areMetaBoxesInitialized( state ) {\n\treturn state.metaBoxes.initialized;\n}\n\n/**\n * Retrieves the template of the currently edited post.\n *\n * @return {Object?} Post Template.\n */\nexport const getEditedPostTemplate = createRegistrySelector(\n\t( select ) => () => {\n\t\tconst currentTemplate = select( editorStore ).getEditedPostAttribute(\n\t\t\t'template'\n\t\t);\n\t\tif ( currentTemplate ) {\n\t\t\tconst templateWithSameSlug = select( coreStore )\n\t\t\t\t.getEntityRecords( 'postType', 'wp_template', { per_page: -1 } )\n\t\t\t\t?.find( ( template ) => template.slug === currentTemplate );\n\t\t\tif ( ! templateWithSameSlug ) {\n\t\t\t\treturn templateWithSameSlug;\n\t\t\t}\n\t\t\treturn select( coreStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\ttemplateWithSameSlug.id\n\t\t\t);\n\t\t}\n\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tif ( post.link ) {\n\t\t\treturn select( coreStore ).__experimentalGetTemplateForLink(\n\t\t\t\tpost.link\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t}\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-post/src/store/selectors.js"],"names":["EMPTY_ARRAY","EMPTY_OBJECT","getEditorMode","select","preferencesStore","get","isEditorSidebarOpened","activeGeneralSidebar","interfaceStore","getActiveComplementaryArea","isPluginSidebarOpened","getActiveGeneralSidebarName","convertPanelsToOldFormat","inactivePanels","openPanels","panelsWithEnabledState","reduce","accumulatedPanels","panelName","enabled","panels","currentPanelState","opened","getPreferences","since","alternative","preferences","accumulatedPrefs","preferenceKey","value","getPreference","state","defaultValue","undefined","getHiddenBlockTypes","isPublishSidebarOpened","publishSidebarActive","isEditorPanelRemoved","removedPanels","isEditorPanelEnabled","includes","isEditorPanelOpened","isModalActive","modalName","activeModal","isFeatureActive","feature","isPluginItemPinned","pluginName","isItemPinned","getActiveMetaBoxLocations","Object","keys","metaBoxes","locations","filter","location","isMetaBoxLocationActive","isMetaBoxLocationVisible","getMetaBoxesPerLocation","id","length","getAllMetaBoxes","hasMetaBoxes","isSavingMetaBoxes","isSaving","__experimentalGetPreviewDeviceType","deviceType","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","rootClientId","insertionIndex","filterValue","isListViewOpened","listViewPanel","isEditingTemplate","areMetaBoxesInitialized","initialized","getEditedPostTemplate","currentTemplate","editorStore","getEditedPostAttribute","templateWithSameSlug","coreStore","getEntityRecords","per_page","find","template","slug","getEditedEntityRecord","post","getCurrentPost","link","__experimentalGetTemplateForLink"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\nimport { includes, some, flatten, values } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createRegistrySelector } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport deprecated from '@wordpress/deprecated';\n\nconst EMPTY_ARRAY = [];\nconst EMPTY_OBJECT = {};\n\n/**\n * Returns the current editing mode.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Editing mode.\n */\nexport const getEditorMode = createRegistrySelector( ( select ) => () =>\n\tselect( preferencesStore ).get( 'core/edit-post', 'editorMode' ) ?? 'visual'\n);\n\n/**\n * Returns true if the editor sidebar is opened.\n *\n * @param {Object} state Global application state\n *\n * @return {boolean} Whether the editor sidebar is opened.\n */\nexport const isEditorSidebarOpened = createRegistrySelector(\n\t( select ) => () => {\n\t\tconst activeGeneralSidebar = select(\n\t\t\tinterfaceStore\n\t\t).getActiveComplementaryArea( 'core/edit-post' );\n\t\treturn includes(\n\t\t\t[ 'edit-post/document', 'edit-post/block' ],\n\t\t\tactiveGeneralSidebar\n\t\t);\n\t}\n);\n\n/**\n * Returns true if the plugin sidebar is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the plugin sidebar is opened.\n */\nexport const isPluginSidebarOpened = createRegistrySelector(\n\t( select ) => () => {\n\t\tconst activeGeneralSidebar = select(\n\t\t\tinterfaceStore\n\t\t).getActiveComplementaryArea( 'core/edit-post' );\n\t\treturn (\n\t\t\t!! activeGeneralSidebar &&\n\t\t\t! includes(\n\t\t\t\t[ 'edit-post/document', 'edit-post/block' ],\n\t\t\t\tactiveGeneralSidebar\n\t\t\t)\n\t\t);\n\t}\n);\n\n/**\n * Returns the current active general sidebar name, or null if there is no\n * general sidebar active. The active general sidebar is a unique name to\n * identify either an editor or plugin sidebar.\n *\n * Examples:\n *\n * - `edit-post/document`\n * - `my-plugin/insert-image-sidebar`\n *\n * @param {Object} state Global application state.\n *\n * @return {?string} Active general sidebar name.\n */\nexport const getActiveGeneralSidebarName = createRegistrySelector(\n\t( select ) => () => {\n\t\treturn select( interfaceStore ).getActiveComplementaryArea(\n\t\t\t'core/edit-post'\n\t\t);\n\t}\n);\n\n/**\n * Converts panels from the new preferences store format to the old format\n * that the post editor previously used.\n *\n * The resultant converted data should look like this:\n * {\n * panelName: {\n * enabled: false,\n * opened: true,\n * },\n * anotherPanelName: {\n * opened: true\n * },\n * }\n *\n * @param {string[] | undefined} inactivePanels An array of inactive panel names.\n * @param {string[] | undefined} openPanels An array of open panel names.\n *\n * @return {Object} The converted panel data.\n */\nfunction convertPanelsToOldFormat( inactivePanels, openPanels ) {\n\t// First reduce the inactive panels.\n\tconst panelsWithEnabledState = inactivePanels?.reduce(\n\t\t( accumulatedPanels, panelName ) => ( {\n\t\t\t...accumulatedPanels,\n\t\t\t[ panelName ]: {\n\t\t\t\tenabled: false,\n\t\t\t},\n\t\t} ),\n\t\t{}\n\t);\n\n\t// Then reduce the open panels, passing in the result of the previous\n\t// reduction as the initial value so that both open and inactive\n\t// panel state is combined.\n\tconst panels = openPanels?.reduce( ( accumulatedPanels, panelName ) => {\n\t\tconst currentPanelState = accumulatedPanels?.[ panelName ];\n\t\treturn {\n\t\t\t...accumulatedPanels,\n\t\t\t[ panelName ]: {\n\t\t\t\t...currentPanelState,\n\t\t\t\topened: true,\n\t\t\t},\n\t\t};\n\t}, panelsWithEnabledState ?? {} );\n\n\t// The panels variable will only be set if openPanels wasn't `undefined`.\n\t// If it isn't set just return `panelsWithEnabledState`, and if that isn't\n\t// set return an empty object.\n\treturn panels ?? panelsWithEnabledState ?? EMPTY_OBJECT;\n}\n\n/**\n * Returns the preferences (these preferences are persisted locally).\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Preferences Object.\n */\nexport const getPreferences = createRegistrySelector( ( select ) => () => {\n\tdeprecated( `wp.data.select( 'core/edit-post' ).getPreferences`, {\n\t\tsince: '6.0',\n\t\talternative: `wp.data.select( 'core/preferences' ).get`,\n\t} );\n\n\t// These preferences now exist in the preferences store.\n\t// Fetch them so that they can be merged into the post\n\t// editor preferences.\n\tconst preferences = [\n\t\t'hiddenBlockTypes',\n\t\t'editorMode',\n\t\t'preferredStyleVariations',\n\t].reduce( ( accumulatedPrefs, preferenceKey ) => {\n\t\tconst value = select( preferencesStore ).get(\n\t\t\t'core/edit-post',\n\t\t\tpreferenceKey\n\t\t);\n\n\t\treturn {\n\t\t\t...accumulatedPrefs,\n\t\t\t[ preferenceKey ]: value,\n\t\t};\n\t}, {} );\n\n\t// Panels were a preference, but the data structure changed when the state\n\t// was migrated to the preferences store. They need to be converted from\n\t// the new preferences store format to old format to ensure no breaking\n\t// changes for plugins.\n\tconst inactivePanels = select( preferencesStore ).get(\n\t\t'core/edit-post',\n\t\t'inactivePanels'\n\t);\n\tconst openPanels = select( preferencesStore ).get(\n\t\t'core/edit-post',\n\t\t'openPanels'\n\t);\n\tconst panels = convertPanelsToOldFormat( inactivePanels, openPanels );\n\n\treturn {\n\t\t...preferences,\n\t\tpanels,\n\t};\n} );\n\n/**\n *\n * @param {Object} state Global application state.\n * @param {string} preferenceKey Preference Key.\n * @param {*} defaultValue Default Value.\n *\n * @return {*} Preference Value.\n */\nexport function getPreference( state, preferenceKey, defaultValue ) {\n\tdeprecated( `wp.data.select( 'core/edit-post' ).getPreference`, {\n\t\tsince: '6.0',\n\t\talternative: `wp.data.select( 'core/preferences' ).get`,\n\t} );\n\n\t// Avoid using the `getPreferences` registry selector where possible.\n\tconst preferences = getPreferences( state );\n\tconst value = preferences[ preferenceKey ];\n\treturn value === undefined ? defaultValue : value;\n}\n\n/**\n * Returns an array of blocks that are hidden.\n *\n * @return {Array} A list of the hidden block types\n */\nexport const getHiddenBlockTypes = createRegistrySelector( ( select ) => () => {\n\treturn (\n\t\tselect( preferencesStore ).get(\n\t\t\t'core/edit-post',\n\t\t\t'hiddenBlockTypes'\n\t\t) ?? EMPTY_ARRAY\n\t);\n} );\n\n/**\n * Returns true if the publish sidebar is opened.\n *\n * @param {Object} state Global application state\n *\n * @return {boolean} Whether the publish sidebar is open.\n */\nexport function isPublishSidebarOpened( state ) {\n\treturn state.publishSidebarActive;\n}\n\n/**\n * Returns true if the given panel was programmatically removed, or false otherwise.\n * All panels are not removed by default.\n *\n * @param {Object} state Global application state.\n * @param {string} panelName A string that identifies the panel.\n *\n * @return {boolean} Whether or not the panel is removed.\n */\nexport function isEditorPanelRemoved( state, panelName ) {\n\treturn includes( state.removedPanels, panelName );\n}\n\n/**\n * Returns true if the given panel is enabled, or false otherwise. Panels are\n * enabled by default.\n *\n * @param {Object} state Global application state.\n * @param {string} panelName A string that identifies the panel.\n *\n * @return {boolean} Whether or not the panel is enabled.\n */\nexport const isEditorPanelEnabled = createRegistrySelector(\n\t( select ) => ( state, panelName ) => {\n\t\tconst inactivePanels = select( preferencesStore ).get(\n\t\t\t'core/edit-post',\n\t\t\t'inactivePanels'\n\t\t);\n\t\treturn (\n\t\t\t! isEditorPanelRemoved( state, panelName ) &&\n\t\t\t! inactivePanels?.includes( panelName )\n\t\t);\n\t}\n);\n\n/**\n * Returns true if the given panel is open, or false otherwise. Panels are\n * closed by default.\n *\n * @param {Object} state Global application state.\n * @param {string} panelName A string that identifies the panel.\n *\n * @return {boolean} Whether or not the panel is open.\n */\nexport const isEditorPanelOpened = createRegistrySelector(\n\t( select ) => ( state, panelName ) => {\n\t\tconst openPanels = select( preferencesStore ).get(\n\t\t\t'core/edit-post',\n\t\t\t'openPanels'\n\t\t);\n\t\treturn !! openPanels?.includes( panelName );\n\t}\n);\n\n/**\n * Returns true if a modal is active, or false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} modalName A string that uniquely identifies the modal.\n *\n * @return {boolean} Whether the modal is active.\n */\nexport function isModalActive( state, modalName ) {\n\treturn state.activeModal === modalName;\n}\n\n/**\n * Returns whether the given feature is enabled or not.\n *\n * @param {Object} state Global application state.\n * @param {string} feature Feature slug.\n *\n * @return {boolean} Is active.\n */\nexport const isFeatureActive = createRegistrySelector(\n\t( select ) => ( state, feature ) => {\n\t\treturn !! select( preferencesStore ).get( 'core/edit-post', feature );\n\t}\n);\n\n/**\n * Returns true if the plugin item is pinned to the header.\n * When the value is not set it defaults to true.\n *\n * @param {Object} state Global application state.\n * @param {string} pluginName Plugin item name.\n *\n * @return {boolean} Whether the plugin item is pinned.\n */\nexport const isPluginItemPinned = createRegistrySelector(\n\t( select ) => ( state, pluginName ) => {\n\t\treturn select( interfaceStore ).isItemPinned(\n\t\t\t'core/edit-post',\n\t\t\tpluginName\n\t\t);\n\t}\n);\n\n/**\n * Returns an array of active meta box locations.\n *\n * @param {Object} state Post editor state.\n *\n * @return {string[]} Active meta box locations.\n */\nexport const getActiveMetaBoxLocations = createSelector(\n\t( state ) => {\n\t\treturn Object.keys( state.metaBoxes.locations ).filter( ( location ) =>\n\t\t\tisMetaBoxLocationActive( state, location )\n\t\t);\n\t},\n\t( state ) => [ state.metaBoxes.locations ]\n);\n\n/**\n * Returns true if a metabox location is active and visible\n *\n * @param {Object} state Post editor state.\n * @param {string} location Meta box location to test.\n *\n * @return {boolean} Whether the meta box location is active and visible.\n */\nexport function isMetaBoxLocationVisible( state, location ) {\n\treturn (\n\t\tisMetaBoxLocationActive( state, location ) &&\n\t\tsome( getMetaBoxesPerLocation( state, location ), ( { id } ) => {\n\t\t\treturn isEditorPanelEnabled( state, `meta-box-${ id }` );\n\t\t} )\n\t);\n}\n\n/**\n * Returns true if there is an active meta box in the given location, or false\n * otherwise.\n *\n * @param {Object} state Post editor state.\n * @param {string} location Meta box location to test.\n *\n * @return {boolean} Whether the meta box location is active.\n */\nexport function isMetaBoxLocationActive( state, location ) {\n\tconst metaBoxes = getMetaBoxesPerLocation( state, location );\n\treturn !! metaBoxes && metaBoxes.length !== 0;\n}\n\n/**\n * Returns the list of all the available meta boxes for a given location.\n *\n * @param {Object} state Global application state.\n * @param {string} location Meta box location to test.\n *\n * @return {?Array} List of meta boxes.\n */\nexport function getMetaBoxesPerLocation( state, location ) {\n\treturn state.metaBoxes.locations[ location ];\n}\n\n/**\n * Returns the list of all the available meta boxes.\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} List of meta boxes.\n */\nexport const getAllMetaBoxes = createSelector(\n\t( state ) => {\n\t\treturn flatten( values( state.metaBoxes.locations ) );\n\t},\n\t( state ) => [ state.metaBoxes.locations ]\n);\n\n/**\n * Returns true if the post is using Meta Boxes\n *\n * @param {Object} state Global application state\n *\n * @return {boolean} Whether there are metaboxes or not.\n */\nexport function hasMetaBoxes( state ) {\n\treturn getActiveMetaBoxLocations( state ).length > 0;\n}\n\n/**\n * Returns true if the Meta Boxes are being saved.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the metaboxes are being saved.\n */\nexport function isSavingMetaBoxes( state ) {\n\treturn state.metaBoxes.isSaving;\n}\n\n/**\n * Returns the current editing canvas device type.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Device type.\n */\nexport function __experimentalGetPreviewDeviceType( state ) {\n\treturn state.deviceType;\n}\n\n/**\n * Returns true if the inserter is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the inserter is opened.\n */\nexport function isInserterOpened( state ) {\n\treturn !! state.blockInserterPanel;\n}\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID, index to insert at and starting filter value.\n */\nexport function __experimentalGetInsertionPoint( state ) {\n\tconst {\n\t\trootClientId,\n\t\tinsertionIndex,\n\t\tfilterValue,\n\t} = state.blockInserterPanel;\n\treturn { rootClientId, insertionIndex, filterValue };\n}\n\n/**\n * Returns true if the list view is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the list view is opened.\n */\nexport function isListViewOpened( state ) {\n\treturn state.listViewPanel;\n}\n\n/**\n * Returns true if the template editing mode is enabled.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether we're editing the template.\n */\nexport function isEditingTemplate( state ) {\n\treturn state.isEditingTemplate;\n}\n\n/**\n * Returns true if meta boxes are initialized.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether meta boxes are initialized.\n */\nexport function areMetaBoxesInitialized( state ) {\n\treturn state.metaBoxes.initialized;\n}\n\n/**\n * Retrieves the template of the currently edited post.\n *\n * @return {Object?} Post Template.\n */\nexport const getEditedPostTemplate = createRegistrySelector(\n\t( select ) => () => {\n\t\tconst currentTemplate = select( editorStore ).getEditedPostAttribute(\n\t\t\t'template'\n\t\t);\n\t\tif ( currentTemplate ) {\n\t\t\tconst templateWithSameSlug = select( coreStore )\n\t\t\t\t.getEntityRecords( 'postType', 'wp_template', { per_page: -1 } )\n\t\t\t\t?.find( ( template ) => template.slug === currentTemplate );\n\t\t\tif ( ! templateWithSameSlug ) {\n\t\t\t\treturn templateWithSameSlug;\n\t\t\t}\n\t\t\treturn select( coreStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\ttemplateWithSameSlug.id\n\t\t\t);\n\t\t}\n\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tif ( post.link ) {\n\t\t\treturn select( coreStore ).__experimentalGetTemplateForLink(\n\t\t\t\tpost.link\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t}\n);\n"]}
@@ -36,10 +36,9 @@ import SettingsSidebar from '../sidebar/settings-sidebar';
36
36
  import MetaBoxes from '../meta-boxes';
37
37
  import WelcomeGuide from '../welcome-guide';
38
38
  import ActionsPanel from './actions-panel';
39
+ import StartPageOptions from '../start-page-options';
39
40
  import { store as editPostStore } from '../../store';
40
41
  const interfaceLabels = {
41
- secondarySidebar: __('Block library'),
42
-
43
42
  /* translators: accessibility text for the editor top bar landmark region. */
44
43
  header: __('Editor top bar'),
45
44
 
@@ -143,6 +142,7 @@ function Layout(_ref) {
143
142
 
144
143
  setEntitiesSavedStatesCallback(false);
145
144
  }, [entitiesSavedStatesCallback]);
145
+ const secondarySidebarLabel = isListViewOpened ? __('List View') : __('Block Library');
146
146
 
147
147
  const secondarySidebar = () => {
148
148
  if (mode === 'visual' && isInserterOpened) {
@@ -166,7 +166,9 @@ function Layout(_ref) {
166
166
  isActive: isFullscreenActive
167
167
  }), createElement(BrowserURL, null), createElement(UnsavedChangesWarning, null), createElement(AutosaveMonitor, null), createElement(LocalAutosaveMonitor, null), createElement(EditPostKeyboardShortcuts, null), createElement(EditorKeyboardShortcutsRegister, null), createElement(SettingsSidebar, null), createElement(InterfaceSkeleton, {
168
168
  className: className,
169
- labels: interfaceLabels,
169
+ labels: { ...interfaceLabels,
170
+ secondarySidebar: secondarySidebarLabel
171
+ },
170
172
  header: createElement(Header, {
171
173
  setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback
172
174
  }),
@@ -207,7 +209,7 @@ function Layout(_ref) {
207
209
  previous: previousShortcut,
208
210
  next: nextShortcut
209
211
  }
210
- }), createElement(EditPostPreferencesModal, null), createElement(KeyboardShortcutHelpModal, null), createElement(WelcomeGuide, null), createElement(Popover.Slot, null), createElement(PluginArea, {
212
+ }), createElement(EditPostPreferencesModal, null), createElement(KeyboardShortcutHelpModal, null), createElement(WelcomeGuide, null), createElement(StartPageOptions, null), createElement(Popover.Slot, null), createElement(PluginArea, {
211
213
  onError: onPluginAreaError
212
214
  }));
213
215
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-post/src/components/layout/index.js"],"names":["classnames","AutosaveMonitor","LocalAutosaveMonitor","UnsavedChangesWarning","EditorNotices","EditorKeyboardShortcutsRegister","EditorSnackbars","store","editorStore","useSelect","useDispatch","BlockBreadcrumb","BlockStyles","Button","ScrollLock","Popover","useViewportMatch","PluginArea","__","_x","sprintf","ComplementaryArea","FullscreenMode","InterfaceSkeleton","interfaceStore","useState","useEffect","useCallback","keyboardShortcutsStore","noticesStore","TextEditor","VisualEditor","EditPostKeyboardShortcuts","KeyboardShortcutHelpModal","EditPostPreferencesModal","BrowserURL","Header","InserterSidebar","ListViewSidebar","SettingsSidebar","MetaBoxes","WelcomeGuide","ActionsPanel","editPostStore","interfaceLabels","secondarySidebar","header","body","sidebar","actions","footer","Layout","styles","isMobileViewport","isHugeViewport","openGeneralSidebar","closeGeneralSidebar","setIsInserterOpened","createErrorNotice","mode","isFullscreenActive","isRichEditingEnabled","sidebarIsOpened","hasActiveMetaboxes","hasFixedToolbar","previousShortcut","nextShortcut","hasBlockSelected","isInserterOpened","isListViewOpened","showIconLabels","hasReducedUI","showBlockBreadcrumbs","isTemplateMode","documentLabel","select","getEditorSettings","getPostTypeLabel","editorSettings","postTypeLabel","isEditingTemplate","isFeatureActive","getActiveComplementaryArea","name","isPublishSidebarOpened","getEditorMode","richEditingEnabled","hasMetaBoxes","getAllShortcutKeyCombinations","className","openSidebarPanel","entitiesSavedStatesCallback","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","arg","onPluginAreaError","previous","next"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAutosaveMonitor,\n\tLocalAutosaveMonitor,\n\tUnsavedChangesWarning,\n\tEditorNotices,\n\tEditorKeyboardShortcutsRegister,\n\tEditorSnackbars,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { BlockBreadcrumb, BlockStyles } from '@wordpress/block-editor';\nimport { Button, ScrollLock, Popover } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { PluginArea } from '@wordpress/plugins';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tComplementaryArea,\n\tFullscreenMode,\n\tInterfaceSkeleton,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport TextEditor from '../text-editor';\nimport VisualEditor from '../visual-editor';\nimport EditPostKeyboardShortcuts from '../keyboard-shortcuts';\nimport KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';\nimport EditPostPreferencesModal from '../preferences-modal';\nimport BrowserURL from '../browser-url';\nimport Header from '../header';\nimport InserterSidebar from '../secondary-sidebar/inserter-sidebar';\nimport ListViewSidebar from '../secondary-sidebar/list-view-sidebar';\nimport SettingsSidebar from '../sidebar/settings-sidebar';\nimport MetaBoxes from '../meta-boxes';\nimport WelcomeGuide from '../welcome-guide';\nimport ActionsPanel from './actions-panel';\nimport { store as editPostStore } from '../../store';\n\nconst interfaceLabels = {\n\tsecondarySidebar: __( 'Block library' ),\n\t/* translators: accessibility text for the editor top bar landmark region. */\n\theader: __( 'Editor top bar' ),\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\nfunction Layout( { styles } ) {\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isHugeViewport = useViewportMatch( 'huge', '>=' );\n\tconst {\n\t\topenGeneralSidebar,\n\t\tcloseGeneralSidebar,\n\t\tsetIsInserterOpened,\n\t} = useDispatch( editPostStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst {\n\t\tmode,\n\t\tisFullscreenActive,\n\t\tisRichEditingEnabled,\n\t\tsidebarIsOpened,\n\t\thasActiveMetaboxes,\n\t\thasFixedToolbar,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t\thasBlockSelected,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tshowIconLabels,\n\t\thasReducedUI,\n\t\tshowBlockBreadcrumbs,\n\t\tisTemplateMode,\n\t\tdocumentLabel,\n\t} = useSelect( ( select ) => {\n\t\tconst { getEditorSettings, getPostTypeLabel } = select( editorStore );\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst postTypeLabel = getPostTypeLabel();\n\n\t\treturn {\n\t\t\tisTemplateMode: select( editPostStore ).isEditingTemplate(),\n\t\t\thasFixedToolbar: select( editPostStore ).isFeatureActive(\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tsidebarIsOpened: !! (\n\t\t\t\tselect( interfaceStore ).getActiveComplementaryArea(\n\t\t\t\t\teditPostStore.name\n\t\t\t\t) || select( editPostStore ).isPublishSidebarOpened()\n\t\t\t),\n\t\t\tisFullscreenActive: select( editPostStore ).isFeatureActive(\n\t\t\t\t'fullscreenMode'\n\t\t\t),\n\t\t\tisInserterOpened: select( editPostStore ).isInserterOpened(),\n\t\t\tisListViewOpened: select( editPostStore ).isListViewOpened(),\n\t\t\tmode: select( editPostStore ).getEditorMode(),\n\t\t\tisRichEditingEnabled: editorSettings.richEditingEnabled,\n\t\t\thasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-post/previous-region' ),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-post/next-region' ),\n\t\t\tshowIconLabels: select( editPostStore ).isFeatureActive(\n\t\t\t\t'showIconLabels'\n\t\t\t),\n\t\t\thasReducedUI: select( editPostStore ).isFeatureActive(\n\t\t\t\t'reducedUI'\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: select( editPostStore ).isFeatureActive(\n\t\t\t\t'showBlockBreadcrumbs'\n\t\t\t),\n\t\t\t// translators: Default label for the Document in the Block Breadcrumb.\n\t\t\tdocumentLabel: postTypeLabel || _x( 'Document', 'noun' ),\n\t\t};\n\t}, [] );\n\tconst className = classnames( 'edit-post-layout', 'is-mode-' + mode, {\n\t\t'is-sidebar-opened': sidebarIsOpened,\n\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t'has-metaboxes': hasActiveMetaboxes,\n\t\t'show-icon-labels': showIconLabels,\n\t} );\n\tconst openSidebarPanel = () =>\n\t\topenGeneralSidebar(\n\t\t\thasBlockSelected ? 'edit-post/block' : 'edit-post/document'\n\t\t);\n\n\t// Inserter and Sidebars are mutually exclusive\n\tuseEffect( () => {\n\t\tif ( sidebarIsOpened && ! isHugeViewport ) {\n\t\t\tsetIsInserterOpened( false );\n\t\t}\n\t}, [ sidebarIsOpened, isHugeViewport ] );\n\tuseEffect( () => {\n\t\tif ( isInserterOpened && ! isHugeViewport ) {\n\t\t\tcloseGeneralSidebar();\n\t\t}\n\t}, [ isInserterOpened, isHugeViewport ] );\n\n\t// Local state for save panel.\n\t// Note 'truthy' callback implies an open panel.\n\tconst [\n\t\tentitiesSavedStatesCallback,\n\t\tsetEntitiesSavedStatesCallback,\n\t] = useState( false );\n\tconst closeEntitiesSavedStates = useCallback(\n\t\t( arg ) => {\n\t\t\tif ( typeof entitiesSavedStatesCallback === 'function' ) {\n\t\t\t\tentitiesSavedStatesCallback( arg );\n\t\t\t}\n\t\t\tsetEntitiesSavedStatesCallback( false );\n\t\t},\n\t\t[ entitiesSavedStatesCallback ]\n\t);\n\n\tconst secondarySidebar = () => {\n\t\tif ( mode === 'visual' && isInserterOpened ) {\n\t\t\treturn <InserterSidebar />;\n\t\t}\n\t\tif ( mode === 'visual' && isListViewOpened ) {\n\t\t\treturn <ListViewSidebar />;\n\t\t}\n\t\treturn null;\n\t};\n\n\tfunction onPluginAreaError( name ) {\n\t\tcreateErrorNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: plugin name */\n\t\t\t\t__(\n\t\t\t\t\t'The \"%s\" plugin has encountered an error and cannot be rendered.'\n\t\t\t\t),\n\t\t\t\tname\n\t\t\t)\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<FullscreenMode isActive={ isFullscreenActive } />\n\t\t\t<BrowserURL />\n\t\t\t<UnsavedChangesWarning />\n\t\t\t<AutosaveMonitor />\n\t\t\t<LocalAutosaveMonitor />\n\t\t\t<EditPostKeyboardShortcuts />\n\t\t\t<EditorKeyboardShortcutsRegister />\n\t\t\t<SettingsSidebar />\n\t\t\t<InterfaceSkeleton\n\t\t\t\tclassName={ className }\n\t\t\t\tlabels={ interfaceLabels }\n\t\t\t\theader={\n\t\t\t\t\t<Header\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tsecondarySidebar={ secondarySidebar() }\n\t\t\t\tsidebar={\n\t\t\t\t\t( ! isMobileViewport || sidebarIsOpened ) && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isMobileViewport && ! sidebarIsOpened && (\n\t\t\t\t\t\t\t\t<div className=\"edit-post-layout__toggle-sidebar-panel\">\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-post-layout__toggle-sidebar-panel-button\"\n\t\t\t\t\t\t\t\t\t\tonClick={ openSidebarPanel }\n\t\t\t\t\t\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ hasBlockSelected\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Open block settings' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Open document settings' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-post\" />\n\t\t\t\t\t\t</>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\tcontent={\n\t\t\t\t\t<>\n\t\t\t\t\t\t<EditorNotices />\n\t\t\t\t\t\t{ ( mode === 'text' || ! isRichEditingEnabled ) && (\n\t\t\t\t\t\t\t<TextEditor />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isRichEditingEnabled && mode === 'visual' && (\n\t\t\t\t\t\t\t<VisualEditor styles={ styles } />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! isTemplateMode && (\n\t\t\t\t\t\t\t<div className=\"edit-post-layout__metaboxes\">\n\t\t\t\t\t\t\t\t<MetaBoxes location=\"normal\" />\n\t\t\t\t\t\t\t\t<MetaBoxes location=\"advanced\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isMobileViewport && sidebarIsOpened && (\n\t\t\t\t\t\t\t<ScrollLock />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<BlockStyles.Slot scope=\"core/block-inspector\" />\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tfooter={\n\t\t\t\t\t! hasReducedUI &&\n\t\t\t\t\tshowBlockBreadcrumbs &&\n\t\t\t\t\t! isMobileViewport &&\n\t\t\t\t\tisRichEditingEnabled &&\n\t\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t\t<div className=\"edit-post-layout__footer\">\n\t\t\t\t\t\t\t<BlockBreadcrumb rootLabelText={ documentLabel } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tactions={\n\t\t\t\t\t<ActionsPanel\n\t\t\t\t\t\tcloseEntitiesSavedStates={ closeEntitiesSavedStates }\n\t\t\t\t\t\tisEntitiesSavedStatesOpen={\n\t\t\t\t\t\t\tentitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tshortcuts={ {\n\t\t\t\t\tprevious: previousShortcut,\n\t\t\t\t\tnext: nextShortcut,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<EditPostPreferencesModal />\n\t\t\t<KeyboardShortcutHelpModal />\n\t\t\t<WelcomeGuide />\n\t\t\t<Popover.Slot />\n\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t</>\n\t);\n}\n\nexport default Layout;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-post/src/components/layout/index.js"],"names":["classnames","AutosaveMonitor","LocalAutosaveMonitor","UnsavedChangesWarning","EditorNotices","EditorKeyboardShortcutsRegister","EditorSnackbars","store","editorStore","useSelect","useDispatch","BlockBreadcrumb","BlockStyles","Button","ScrollLock","Popover","useViewportMatch","PluginArea","__","_x","sprintf","ComplementaryArea","FullscreenMode","InterfaceSkeleton","interfaceStore","useState","useEffect","useCallback","keyboardShortcutsStore","noticesStore","TextEditor","VisualEditor","EditPostKeyboardShortcuts","KeyboardShortcutHelpModal","EditPostPreferencesModal","BrowserURL","Header","InserterSidebar","ListViewSidebar","SettingsSidebar","MetaBoxes","WelcomeGuide","ActionsPanel","StartPageOptions","editPostStore","interfaceLabels","header","body","sidebar","actions","footer","Layout","styles","isMobileViewport","isHugeViewport","openGeneralSidebar","closeGeneralSidebar","setIsInserterOpened","createErrorNotice","mode","isFullscreenActive","isRichEditingEnabled","sidebarIsOpened","hasActiveMetaboxes","hasFixedToolbar","previousShortcut","nextShortcut","hasBlockSelected","isInserterOpened","isListViewOpened","showIconLabels","hasReducedUI","showBlockBreadcrumbs","isTemplateMode","documentLabel","select","getEditorSettings","getPostTypeLabel","editorSettings","postTypeLabel","isEditingTemplate","isFeatureActive","getActiveComplementaryArea","name","isPublishSidebarOpened","getEditorMode","richEditingEnabled","hasMetaBoxes","getAllShortcutKeyCombinations","className","openSidebarPanel","entitiesSavedStatesCallback","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","arg","secondarySidebarLabel","secondarySidebar","onPluginAreaError","previous","next"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAutosaveMonitor,\n\tLocalAutosaveMonitor,\n\tUnsavedChangesWarning,\n\tEditorNotices,\n\tEditorKeyboardShortcutsRegister,\n\tEditorSnackbars,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { BlockBreadcrumb, BlockStyles } from '@wordpress/block-editor';\nimport { Button, ScrollLock, Popover } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { PluginArea } from '@wordpress/plugins';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tComplementaryArea,\n\tFullscreenMode,\n\tInterfaceSkeleton,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport TextEditor from '../text-editor';\nimport VisualEditor from '../visual-editor';\nimport EditPostKeyboardShortcuts from '../keyboard-shortcuts';\nimport KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';\nimport EditPostPreferencesModal from '../preferences-modal';\nimport BrowserURL from '../browser-url';\nimport Header from '../header';\nimport InserterSidebar from '../secondary-sidebar/inserter-sidebar';\nimport ListViewSidebar from '../secondary-sidebar/list-view-sidebar';\nimport SettingsSidebar from '../sidebar/settings-sidebar';\nimport MetaBoxes from '../meta-boxes';\nimport WelcomeGuide from '../welcome-guide';\nimport ActionsPanel from './actions-panel';\nimport StartPageOptions from '../start-page-options';\nimport { store as editPostStore } from '../../store';\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor top bar landmark region. */\n\theader: __( 'Editor top bar' ),\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\nfunction Layout( { styles } ) {\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isHugeViewport = useViewportMatch( 'huge', '>=' );\n\tconst {\n\t\topenGeneralSidebar,\n\t\tcloseGeneralSidebar,\n\t\tsetIsInserterOpened,\n\t} = useDispatch( editPostStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst {\n\t\tmode,\n\t\tisFullscreenActive,\n\t\tisRichEditingEnabled,\n\t\tsidebarIsOpened,\n\t\thasActiveMetaboxes,\n\t\thasFixedToolbar,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t\thasBlockSelected,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tshowIconLabels,\n\t\thasReducedUI,\n\t\tshowBlockBreadcrumbs,\n\t\tisTemplateMode,\n\t\tdocumentLabel,\n\t} = useSelect( ( select ) => {\n\t\tconst { getEditorSettings, getPostTypeLabel } = select( editorStore );\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst postTypeLabel = getPostTypeLabel();\n\n\t\treturn {\n\t\t\tisTemplateMode: select( editPostStore ).isEditingTemplate(),\n\t\t\thasFixedToolbar: select( editPostStore ).isFeatureActive(\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tsidebarIsOpened: !! (\n\t\t\t\tselect( interfaceStore ).getActiveComplementaryArea(\n\t\t\t\t\teditPostStore.name\n\t\t\t\t) || select( editPostStore ).isPublishSidebarOpened()\n\t\t\t),\n\t\t\tisFullscreenActive: select( editPostStore ).isFeatureActive(\n\t\t\t\t'fullscreenMode'\n\t\t\t),\n\t\t\tisInserterOpened: select( editPostStore ).isInserterOpened(),\n\t\t\tisListViewOpened: select( editPostStore ).isListViewOpened(),\n\t\t\tmode: select( editPostStore ).getEditorMode(),\n\t\t\tisRichEditingEnabled: editorSettings.richEditingEnabled,\n\t\t\thasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-post/previous-region' ),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-post/next-region' ),\n\t\t\tshowIconLabels: select( editPostStore ).isFeatureActive(\n\t\t\t\t'showIconLabels'\n\t\t\t),\n\t\t\thasReducedUI: select( editPostStore ).isFeatureActive(\n\t\t\t\t'reducedUI'\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: select( editPostStore ).isFeatureActive(\n\t\t\t\t'showBlockBreadcrumbs'\n\t\t\t),\n\t\t\t// translators: Default label for the Document in the Block Breadcrumb.\n\t\t\tdocumentLabel: postTypeLabel || _x( 'Document', 'noun' ),\n\t\t};\n\t}, [] );\n\tconst className = classnames( 'edit-post-layout', 'is-mode-' + mode, {\n\t\t'is-sidebar-opened': sidebarIsOpened,\n\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t'has-metaboxes': hasActiveMetaboxes,\n\t\t'show-icon-labels': showIconLabels,\n\t} );\n\tconst openSidebarPanel = () =>\n\t\topenGeneralSidebar(\n\t\t\thasBlockSelected ? 'edit-post/block' : 'edit-post/document'\n\t\t);\n\n\t// Inserter and Sidebars are mutually exclusive\n\tuseEffect( () => {\n\t\tif ( sidebarIsOpened && ! isHugeViewport ) {\n\t\t\tsetIsInserterOpened( false );\n\t\t}\n\t}, [ sidebarIsOpened, isHugeViewport ] );\n\tuseEffect( () => {\n\t\tif ( isInserterOpened && ! isHugeViewport ) {\n\t\t\tcloseGeneralSidebar();\n\t\t}\n\t}, [ isInserterOpened, isHugeViewport ] );\n\n\t// Local state for save panel.\n\t// Note 'truthy' callback implies an open panel.\n\tconst [\n\t\tentitiesSavedStatesCallback,\n\t\tsetEntitiesSavedStatesCallback,\n\t] = useState( false );\n\tconst closeEntitiesSavedStates = useCallback(\n\t\t( arg ) => {\n\t\t\tif ( typeof entitiesSavedStatesCallback === 'function' ) {\n\t\t\t\tentitiesSavedStatesCallback( arg );\n\t\t\t}\n\t\t\tsetEntitiesSavedStatesCallback( false );\n\t\t},\n\t\t[ entitiesSavedStatesCallback ]\n\t);\n\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'List View' )\n\t\t: __( 'Block Library' );\n\n\tconst secondarySidebar = () => {\n\t\tif ( mode === 'visual' && isInserterOpened ) {\n\t\t\treturn <InserterSidebar />;\n\t\t}\n\t\tif ( mode === 'visual' && isListViewOpened ) {\n\t\t\treturn <ListViewSidebar />;\n\t\t}\n\t\treturn null;\n\t};\n\n\tfunction onPluginAreaError( name ) {\n\t\tcreateErrorNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: plugin name */\n\t\t\t\t__(\n\t\t\t\t\t'The \"%s\" plugin has encountered an error and cannot be rendered.'\n\t\t\t\t),\n\t\t\t\tname\n\t\t\t)\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<FullscreenMode isActive={ isFullscreenActive } />\n\t\t\t<BrowserURL />\n\t\t\t<UnsavedChangesWarning />\n\t\t\t<AutosaveMonitor />\n\t\t\t<LocalAutosaveMonitor />\n\t\t\t<EditPostKeyboardShortcuts />\n\t\t\t<EditorKeyboardShortcutsRegister />\n\t\t\t<SettingsSidebar />\n\t\t\t<InterfaceSkeleton\n\t\t\t\tclassName={ className }\n\t\t\t\tlabels={ {\n\t\t\t\t\t...interfaceLabels,\n\t\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t\t} }\n\t\t\t\theader={\n\t\t\t\t\t<Header\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tsecondarySidebar={ secondarySidebar() }\n\t\t\t\tsidebar={\n\t\t\t\t\t( ! isMobileViewport || sidebarIsOpened ) && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isMobileViewport && ! sidebarIsOpened && (\n\t\t\t\t\t\t\t\t<div className=\"edit-post-layout__toggle-sidebar-panel\">\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-post-layout__toggle-sidebar-panel-button\"\n\t\t\t\t\t\t\t\t\t\tonClick={ openSidebarPanel }\n\t\t\t\t\t\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ hasBlockSelected\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Open block settings' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Open document settings' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-post\" />\n\t\t\t\t\t\t</>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\tcontent={\n\t\t\t\t\t<>\n\t\t\t\t\t\t<EditorNotices />\n\t\t\t\t\t\t{ ( mode === 'text' || ! isRichEditingEnabled ) && (\n\t\t\t\t\t\t\t<TextEditor />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isRichEditingEnabled && mode === 'visual' && (\n\t\t\t\t\t\t\t<VisualEditor styles={ styles } />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! isTemplateMode && (\n\t\t\t\t\t\t\t<div className=\"edit-post-layout__metaboxes\">\n\t\t\t\t\t\t\t\t<MetaBoxes location=\"normal\" />\n\t\t\t\t\t\t\t\t<MetaBoxes location=\"advanced\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isMobileViewport && sidebarIsOpened && (\n\t\t\t\t\t\t\t<ScrollLock />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<BlockStyles.Slot scope=\"core/block-inspector\" />\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tfooter={\n\t\t\t\t\t! hasReducedUI &&\n\t\t\t\t\tshowBlockBreadcrumbs &&\n\t\t\t\t\t! isMobileViewport &&\n\t\t\t\t\tisRichEditingEnabled &&\n\t\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t\t<div className=\"edit-post-layout__footer\">\n\t\t\t\t\t\t\t<BlockBreadcrumb rootLabelText={ documentLabel } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tactions={\n\t\t\t\t\t<ActionsPanel\n\t\t\t\t\t\tcloseEntitiesSavedStates={ closeEntitiesSavedStates }\n\t\t\t\t\t\tisEntitiesSavedStatesOpen={\n\t\t\t\t\t\t\tentitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tshortcuts={ {\n\t\t\t\t\tprevious: previousShortcut,\n\t\t\t\t\tnext: nextShortcut,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<EditPostPreferencesModal />\n\t\t\t<KeyboardShortcutHelpModal />\n\t\t\t<WelcomeGuide />\n\t\t\t<StartPageOptions />\n\t\t\t<Popover.Slot />\n\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t</>\n\t);\n}\n\nexport default Layout;\n"]}
@@ -91,7 +91,7 @@ function PostLink(_ref) {
91
91
  }
92
92
  }
93
93
  }), createElement("p", null, __('The last part of the URL.'), ' ', createElement(ExternalLink, {
94
- href: __('https://wordpress.org/support/article/writing-posts/#post-field-descriptions')
94
+ href: __('https://wordpress.org/support/article/settings-sidebar/#permalink')
95
95
  }, __('Read about permalinks')))), createElement("h3", {
96
96
  className: "edit-post-post-link__preview-label"
97
97
  }, postTypeLabel || __('View post')), createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-post/src/components/sidebar/post-link/index.js"],"names":["get","__","PanelBody","TextControl","ExternalLink","withSelect","withDispatch","compose","ifCondition","store","editorStore","safeDecodeURIComponent","cleanForSlug","coreStore","useState","editPostStore","PANEL_NAME","PostLink","isOpened","onTogglePanel","isEditable","postLink","permalinkPrefix","permalinkSuffix","editPermalink","postSlug","postTypeLabel","forceEmptyField","setForceEmptyField","prefixElement","postNameElement","suffixElement","newValue","event","target","value","select","isPermalinkEditable","getCurrentPost","isCurrentPostPublished","getPermalinkParts","getEditedPostAttribute","getEditedPostSlug","isEditorPanelEnabled","isEditorPanelOpened","getPostType","link","postTypeName","postType","permalinkParts","isPublished","isEnabled","isViewable","hasPermalinkParts","prefix","suffix","dispatch","toggleEditorPanelOpened","editPost","newSlug","slug"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, TextControl, ExternalLink } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { store as editorStore } from '@wordpress/editor';\nimport { safeDecodeURIComponent, cleanForSlug } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\n\n/**\n * Module Constants\n */\nconst PANEL_NAME = 'post-link';\n\nfunction PostLink( {\n\tisOpened,\n\tonTogglePanel,\n\tisEditable,\n\tpostLink,\n\tpermalinkPrefix,\n\tpermalinkSuffix,\n\teditPermalink,\n\tpostSlug,\n\tpostTypeLabel,\n} ) {\n\tconst [ forceEmptyField, setForceEmptyField ] = useState( false );\n\n\tlet prefixElement, postNameElement, suffixElement;\n\tif ( isEditable ) {\n\t\tprefixElement = permalinkPrefix && (\n\t\t\t<span className=\"edit-post-post-link__link-prefix\">\n\t\t\t\t{ permalinkPrefix }\n\t\t\t</span>\n\t\t);\n\t\tpostNameElement = postSlug && (\n\t\t\t<span className=\"edit-post-post-link__link-post-name\">\n\t\t\t\t{ postSlug }\n\t\t\t</span>\n\t\t);\n\t\tsuffixElement = permalinkSuffix && (\n\t\t\t<span className=\"edit-post-post-link__link-suffix\">\n\t\t\t\t{ permalinkSuffix }\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\ttitle={ __( 'Permalink' ) }\n\t\t\topened={ isOpened }\n\t\t\tonToggle={ onTogglePanel }\n\t\t>\n\t\t\t{ isEditable && (\n\t\t\t\t<div className=\"editor-post-link\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'URL Slug' ) }\n\t\t\t\t\t\tvalue={ forceEmptyField ? '' : postSlug }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\teditPermalink( newValue );\n\t\t\t\t\t\t\t// When we delete the field the permalink gets\n\t\t\t\t\t\t\t// reverted to the original value.\n\t\t\t\t\t\t\t// The forceEmptyField logic allows the user to have\n\t\t\t\t\t\t\t// the field temporarily empty while typing.\n\t\t\t\t\t\t\tif ( ! newValue ) {\n\t\t\t\t\t\t\t\tif ( ! forceEmptyField ) {\n\t\t\t\t\t\t\t\t\tsetForceEmptyField( true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonBlur={ ( event ) => {\n\t\t\t\t\t\t\teditPermalink( cleanForSlug( event.target.value ) );\n\t\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\t\tsetForceEmptyField( false );\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\t<p>\n\t\t\t\t\t\t{ __( 'The last part of the URL.' ) }{ ' ' }\n\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t'https://wordpress.org/support/article/writing-posts/#post-field-descriptions'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Read about permalinks' ) }\n\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<h3 className=\"edit-post-post-link__preview-label\">\n\t\t\t\t{ postTypeLabel || __( 'View post' ) }\n\t\t\t</h3>\n\t\t\t<div className=\"edit-post-post-link__preview-link-container\">\n\t\t\t\t<ExternalLink\n\t\t\t\t\tclassName=\"edit-post-post-link__link\"\n\t\t\t\t\thref={ postLink }\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t>\n\t\t\t\t\t{ isEditable ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ prefixElement }\n\t\t\t\t\t\t\t{ postNameElement }\n\t\t\t\t\t\t\t{ suffixElement }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tpostLink\n\t\t\t\t\t) }\n\t\t\t\t</ExternalLink>\n\t\t\t</div>\n\t\t</PanelBody>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisPermalinkEditable,\n\t\t\tgetCurrentPost,\n\t\t\tisCurrentPostPublished,\n\t\t\tgetPermalinkParts,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostSlug,\n\t\t} = select( editorStore );\n\t\tconst { isEditorPanelEnabled, isEditorPanelOpened } = select(\n\t\t\teditPostStore\n\t\t);\n\t\tconst { getPostType } = select( coreStore );\n\n\t\tconst { link } = getCurrentPost();\n\n\t\tconst postTypeName = getEditedPostAttribute( 'type' );\n\t\tconst postType = getPostType( postTypeName );\n\t\tconst permalinkParts = getPermalinkParts();\n\n\t\treturn {\n\t\t\tpostLink: link,\n\t\t\tisEditable: isPermalinkEditable(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisOpened: isEditorPanelOpened( PANEL_NAME ),\n\t\t\tisEnabled: isEditorPanelEnabled( PANEL_NAME ),\n\t\t\tisViewable: get( postType, [ 'viewable' ], false ),\n\t\t\tpostSlug: safeDecodeURIComponent( getEditedPostSlug() ),\n\t\t\tpostTypeLabel: get( postType, [ 'labels', 'view_item' ] ),\n\t\t\thasPermalinkParts: !! permalinkParts,\n\t\t\tpermalinkPrefix: permalinkParts?.prefix,\n\t\t\tpermalinkSuffix: permalinkParts?.suffix,\n\t\t};\n\t} ),\n\tifCondition( ( { isEnabled, postLink, isViewable, hasPermalinkParts } ) => {\n\t\treturn isEnabled && postLink && isViewable && hasPermalinkParts;\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { toggleEditorPanelOpened } = dispatch( editPostStore );\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonTogglePanel: () => toggleEditorPanelOpened( PANEL_NAME ),\n\t\t\teditPermalink: ( newSlug ) => {\n\t\t\t\teditPost( { slug: newSlug } );\n\t\t\t},\n\t\t};\n\t} ),\n] )( PostLink );\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-post/src/components/sidebar/post-link/index.js"],"names":["get","__","PanelBody","TextControl","ExternalLink","withSelect","withDispatch","compose","ifCondition","store","editorStore","safeDecodeURIComponent","cleanForSlug","coreStore","useState","editPostStore","PANEL_NAME","PostLink","isOpened","onTogglePanel","isEditable","postLink","permalinkPrefix","permalinkSuffix","editPermalink","postSlug","postTypeLabel","forceEmptyField","setForceEmptyField","prefixElement","postNameElement","suffixElement","newValue","event","target","value","select","isPermalinkEditable","getCurrentPost","isCurrentPostPublished","getPermalinkParts","getEditedPostAttribute","getEditedPostSlug","isEditorPanelEnabled","isEditorPanelOpened","getPostType","link","postTypeName","postType","permalinkParts","isPublished","isEnabled","isViewable","hasPermalinkParts","prefix","suffix","dispatch","toggleEditorPanelOpened","editPost","newSlug","slug"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, TextControl, ExternalLink } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { store as editorStore } from '@wordpress/editor';\nimport { safeDecodeURIComponent, cleanForSlug } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\n\n/**\n * Module Constants\n */\nconst PANEL_NAME = 'post-link';\n\nfunction PostLink( {\n\tisOpened,\n\tonTogglePanel,\n\tisEditable,\n\tpostLink,\n\tpermalinkPrefix,\n\tpermalinkSuffix,\n\teditPermalink,\n\tpostSlug,\n\tpostTypeLabel,\n} ) {\n\tconst [ forceEmptyField, setForceEmptyField ] = useState( false );\n\n\tlet prefixElement, postNameElement, suffixElement;\n\tif ( isEditable ) {\n\t\tprefixElement = permalinkPrefix && (\n\t\t\t<span className=\"edit-post-post-link__link-prefix\">\n\t\t\t\t{ permalinkPrefix }\n\t\t\t</span>\n\t\t);\n\t\tpostNameElement = postSlug && (\n\t\t\t<span className=\"edit-post-post-link__link-post-name\">\n\t\t\t\t{ postSlug }\n\t\t\t</span>\n\t\t);\n\t\tsuffixElement = permalinkSuffix && (\n\t\t\t<span className=\"edit-post-post-link__link-suffix\">\n\t\t\t\t{ permalinkSuffix }\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\ttitle={ __( 'Permalink' ) }\n\t\t\topened={ isOpened }\n\t\t\tonToggle={ onTogglePanel }\n\t\t>\n\t\t\t{ isEditable && (\n\t\t\t\t<div className=\"editor-post-link\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'URL Slug' ) }\n\t\t\t\t\t\tvalue={ forceEmptyField ? '' : postSlug }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\teditPermalink( newValue );\n\t\t\t\t\t\t\t// When we delete the field the permalink gets\n\t\t\t\t\t\t\t// reverted to the original value.\n\t\t\t\t\t\t\t// The forceEmptyField logic allows the user to have\n\t\t\t\t\t\t\t// the field temporarily empty while typing.\n\t\t\t\t\t\t\tif ( ! newValue ) {\n\t\t\t\t\t\t\t\tif ( ! forceEmptyField ) {\n\t\t\t\t\t\t\t\t\tsetForceEmptyField( true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonBlur={ ( event ) => {\n\t\t\t\t\t\t\teditPermalink( cleanForSlug( event.target.value ) );\n\t\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\t\tsetForceEmptyField( false );\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\t<p>\n\t\t\t\t\t\t{ __( 'The last part of the URL.' ) }{ ' ' }\n\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t'https://wordpress.org/support/article/settings-sidebar/#permalink'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Read about permalinks' ) }\n\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<h3 className=\"edit-post-post-link__preview-label\">\n\t\t\t\t{ postTypeLabel || __( 'View post' ) }\n\t\t\t</h3>\n\t\t\t<div className=\"edit-post-post-link__preview-link-container\">\n\t\t\t\t<ExternalLink\n\t\t\t\t\tclassName=\"edit-post-post-link__link\"\n\t\t\t\t\thref={ postLink }\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t>\n\t\t\t\t\t{ isEditable ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ prefixElement }\n\t\t\t\t\t\t\t{ postNameElement }\n\t\t\t\t\t\t\t{ suffixElement }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tpostLink\n\t\t\t\t\t) }\n\t\t\t\t</ExternalLink>\n\t\t\t</div>\n\t\t</PanelBody>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisPermalinkEditable,\n\t\t\tgetCurrentPost,\n\t\t\tisCurrentPostPublished,\n\t\t\tgetPermalinkParts,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostSlug,\n\t\t} = select( editorStore );\n\t\tconst { isEditorPanelEnabled, isEditorPanelOpened } = select(\n\t\t\teditPostStore\n\t\t);\n\t\tconst { getPostType } = select( coreStore );\n\n\t\tconst { link } = getCurrentPost();\n\n\t\tconst postTypeName = getEditedPostAttribute( 'type' );\n\t\tconst postType = getPostType( postTypeName );\n\t\tconst permalinkParts = getPermalinkParts();\n\n\t\treturn {\n\t\t\tpostLink: link,\n\t\t\tisEditable: isPermalinkEditable(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisOpened: isEditorPanelOpened( PANEL_NAME ),\n\t\t\tisEnabled: isEditorPanelEnabled( PANEL_NAME ),\n\t\t\tisViewable: get( postType, [ 'viewable' ], false ),\n\t\t\tpostSlug: safeDecodeURIComponent( getEditedPostSlug() ),\n\t\t\tpostTypeLabel: get( postType, [ 'labels', 'view_item' ] ),\n\t\t\thasPermalinkParts: !! permalinkParts,\n\t\t\tpermalinkPrefix: permalinkParts?.prefix,\n\t\t\tpermalinkSuffix: permalinkParts?.suffix,\n\t\t};\n\t} ),\n\tifCondition( ( { isEnabled, postLink, isViewable, hasPermalinkParts } ) => {\n\t\treturn isEnabled && postLink && isViewable && hasPermalinkParts;\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { toggleEditorPanelOpened } = dispatch( editPostStore );\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonTogglePanel: () => toggleEditorPanelOpened( PANEL_NAME ),\n\t\t\teditPermalink: ( newSlug ) => {\n\t\t\t\teditPost( { slug: newSlug } );\n\t\t\t},\n\t\t};\n\t} ),\n] )( PostLink );\n"]}
@@ -0,0 +1,103 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { Modal } from '@wordpress/components';
7
+ import { __ } from '@wordpress/i18n';
8
+ import { useState, useEffect } from '@wordpress/element';
9
+ import { store as blockEditorStore, __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';
10
+ import { useSelect, useDispatch } from '@wordpress/data';
11
+ import { useAsyncList } from '@wordpress/compose';
12
+ import { store as editorStore } from '@wordpress/editor';
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+
17
+ import { store as editPostStore } from '../../store';
18
+
19
+ function PatternSelection(_ref) {
20
+ let {
21
+ onChoosePattern
22
+ } = _ref;
23
+ const {
24
+ blockPatterns
25
+ } = useSelect(select => {
26
+ const {
27
+ __experimentalGetPatternsByBlockTypes
28
+ } = select(blockEditorStore);
29
+ return {
30
+ blockPatterns: __experimentalGetPatternsByBlockTypes('core/post-content')
31
+ };
32
+ }, []);
33
+ const shownBlockPatterns = useAsyncList(blockPatterns);
34
+ const {
35
+ resetEditorBlocks
36
+ } = useDispatch(editorStore);
37
+ useEffect(() => {
38
+ if (blockPatterns.length <= 1) {
39
+ onChoosePattern();
40
+ }
41
+ }, [blockPatterns.length]);
42
+ return createElement(BlockPatternsList, {
43
+ blockPatterns: blockPatterns,
44
+ shownPatterns: shownBlockPatterns,
45
+ onClickPattern: (_pattern, blocks) => {
46
+ resetEditorBlocks(blocks);
47
+ onChoosePattern();
48
+ }
49
+ });
50
+ }
51
+
52
+ const START_PAGE_MODAL_STATES = {
53
+ INITIAL: 'INITIAL',
54
+ PATTERN: 'PATTERN',
55
+ CLOSED: 'CLOSED'
56
+ };
57
+ export default function StartPageOptions() {
58
+ const [modalState, setModalState] = useState(START_PAGE_MODAL_STATES.INITIAL);
59
+ const shouldOpenModel = useSelect(select => {
60
+ if (modalState !== START_PAGE_MODAL_STATES.INITIAL) {
61
+ return false;
62
+ }
63
+
64
+ const {
65
+ __experimentalGetPatternsByBlockTypes
66
+ } = select(blockEditorStore);
67
+ const {
68
+ getCurrentPostType,
69
+ getEditedPostContent,
70
+ isEditedPostSaveable
71
+ } = select(editorStore);
72
+ const {
73
+ isEditingTemplate,
74
+ isFeatureActive
75
+ } = select(editPostStore);
76
+ return getCurrentPostType() === 'page' && !isEditedPostSaveable() && '' === getEditedPostContent() && !isEditingTemplate() && !isFeatureActive('welcomeGuide') && __experimentalGetPatternsByBlockTypes('core/post-content').length >= 1;
77
+ }, [modalState]);
78
+ useEffect(() => {
79
+ if (shouldOpenModel) {
80
+ setModalState(START_PAGE_MODAL_STATES.PATTERN);
81
+ }
82
+ }, [shouldOpenModel]);
83
+
84
+ if (modalState === START_PAGE_MODAL_STATES.INITIAL || modalState === START_PAGE_MODAL_STATES.CLOSED) {
85
+ return null;
86
+ }
87
+
88
+ return createElement(Modal, {
89
+ className: "edit-post-start-page-options__modal",
90
+ title: __('Choose a pattern'),
91
+ closeLabel: __('Cancel'),
92
+ onRequestClose: () => {
93
+ setModalState(START_PAGE_MODAL_STATES.CLOSED);
94
+ }
95
+ }, createElement("div", {
96
+ className: "edit-post-start-page-options__modal-content"
97
+ }, modalState === START_PAGE_MODAL_STATES.PATTERN && createElement(PatternSelection, {
98
+ onChoosePattern: () => {
99
+ setModalState(START_PAGE_MODAL_STATES.CLOSED);
100
+ }
101
+ })));
102
+ }
103
+ //# sourceMappingURL=index.js.map