@wordpress/editor 13.24.1 → 13.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/document-bar/index.js +152 -0
  3. package/build/components/document-bar/index.js.map +1 -0
  4. package/build/components/editor-canvas/edit-template-blocks-notification.js +106 -0
  5. package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
  6. package/build/components/editor-canvas/index.js +292 -0
  7. package/build/components/editor-canvas/index.js.map +1 -0
  8. package/build/components/index.js +24 -8
  9. package/build/components/index.js.map +1 -1
  10. package/build/components/post-publish-button/index.js +1 -0
  11. package/build/components/post-publish-button/index.js.map +1 -1
  12. package/build/components/post-publish-panel/maybe-upload-media.js +2 -4
  13. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  14. package/build/components/post-saved-state/index.js +1 -0
  15. package/build/components/post-saved-state/index.js.map +1 -1
  16. package/build/components/post-schedule/panel.js +1 -1
  17. package/build/components/post-schedule/panel.js.map +1 -1
  18. package/build/components/post-template/block-theme.js +99 -0
  19. package/build/components/post-template/block-theme.js.map +1 -0
  20. package/build/components/post-template/classic-theme.js +171 -0
  21. package/build/components/post-template/classic-theme.js.map +1 -0
  22. package/build/components/post-template/create-new-template-modal.js +98 -0
  23. package/build/components/post-template/create-new-template-modal.js.map +1 -0
  24. package/build/components/post-template/create-new-template.js +55 -0
  25. package/build/components/post-template/create-new-template.js.map +1 -0
  26. package/build/components/post-template/hooks.js +88 -0
  27. package/build/components/post-template/hooks.js.map +1 -0
  28. package/build/components/post-template/panel.js +71 -0
  29. package/build/components/post-template/panel.js.map +1 -0
  30. package/build/components/post-template/reset-default-template.js +48 -0
  31. package/build/components/post-template/reset-default-template.js.map +1 -0
  32. package/build/components/post-template/swap-template-button.js +84 -0
  33. package/build/components/post-template/swap-template-button.js.map +1 -0
  34. package/build/components/post-title/index.native.js +0 -1
  35. package/build/components/post-title/index.native.js.map +1 -1
  36. package/build/components/preview-dropdown/index.js +113 -0
  37. package/build/components/preview-dropdown/index.js.map +1 -0
  38. package/build/components/provider/index.js +24 -82
  39. package/build/components/provider/index.js.map +1 -1
  40. package/build/components/provider/index.native.js +17 -8
  41. package/build/components/provider/index.native.js.map +1 -1
  42. package/build/components/provider/navigation-block-editing-mode.js +40 -0
  43. package/build/components/provider/navigation-block-editing-mode.js.map +1 -0
  44. package/build/components/provider/use-block-editor-settings.js +9 -10
  45. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  46. package/build/hooks/index.js +1 -0
  47. package/build/hooks/index.js.map +1 -1
  48. package/build/hooks/pattern-partial-syncing.js +49 -0
  49. package/build/hooks/pattern-partial-syncing.js.map +1 -0
  50. package/build/private-apis.js +4 -0
  51. package/build/private-apis.js.map +1 -1
  52. package/build/store/actions.js +59 -11
  53. package/build/store/actions.js.map +1 -1
  54. package/build/store/defaults.js +2 -1
  55. package/build/store/defaults.js.map +1 -1
  56. package/build/store/index.js +3 -0
  57. package/build/store/index.js.map +1 -1
  58. package/build/store/private-actions.js +52 -0
  59. package/build/store/private-actions.js.map +1 -0
  60. package/build/store/reducer.js +32 -27
  61. package/build/store/reducer.js.map +1 -1
  62. package/build/store/reducer.native.js +0 -1
  63. package/build/store/reducer.native.js.map +1 -1
  64. package/build/store/selectors.js +31 -10
  65. package/build/store/selectors.js.map +1 -1
  66. package/build-module/components/document-bar/index.js +144 -0
  67. package/build-module/components/document-bar/index.js.map +1 -0
  68. package/build-module/components/editor-canvas/edit-template-blocks-notification.js +100 -0
  69. package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
  70. package/build-module/components/editor-canvas/index.js +283 -0
  71. package/build-module/components/editor-canvas/index.js.map +1 -0
  72. package/build-module/components/index.js +3 -1
  73. package/build-module/components/index.js.map +1 -1
  74. package/build-module/components/post-publish-button/index.js +1 -0
  75. package/build-module/components/post-publish-button/index.js.map +1 -1
  76. package/build-module/components/post-publish-panel/maybe-upload-media.js +2 -4
  77. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  78. package/build-module/components/post-saved-state/index.js +1 -0
  79. package/build-module/components/post-saved-state/index.js.map +1 -1
  80. package/build-module/components/post-schedule/panel.js +1 -1
  81. package/build-module/components/post-schedule/panel.js.map +1 -1
  82. package/build-module/components/post-template/block-theme.js +91 -0
  83. package/build-module/components/post-template/block-theme.js.map +1 -0
  84. package/build-module/components/post-template/classic-theme.js +162 -0
  85. package/build-module/components/post-template/classic-theme.js.map +1 -0
  86. package/build-module/components/post-template/create-new-template-modal.js +91 -0
  87. package/build-module/components/post-template/create-new-template-modal.js.map +1 -0
  88. package/build-module/components/post-template/create-new-template.js +47 -0
  89. package/build-module/components/post-template/create-new-template.js.map +1 -0
  90. package/build-module/components/post-template/hooks.js +78 -0
  91. package/build-module/components/post-template/hooks.js.map +1 -0
  92. package/build-module/components/post-template/panel.js +63 -0
  93. package/build-module/components/post-template/panel.js.map +1 -0
  94. package/build-module/components/post-template/reset-default-template.js +41 -0
  95. package/build-module/components/post-template/reset-default-template.js.map +1 -0
  96. package/build-module/components/post-template/swap-template-button.js +77 -0
  97. package/build-module/components/post-template/swap-template-button.js.map +1 -0
  98. package/build-module/components/post-title/index.native.js +0 -1
  99. package/build-module/components/post-title/index.native.js.map +1 -1
  100. package/build-module/components/preview-dropdown/index.js +105 -0
  101. package/build-module/components/preview-dropdown/index.js.map +1 -0
  102. package/build-module/components/provider/index.js +25 -83
  103. package/build-module/components/provider/index.js.map +1 -1
  104. package/build-module/components/provider/index.native.js +18 -9
  105. package/build-module/components/provider/index.native.js.map +1 -1
  106. package/build-module/components/provider/navigation-block-editing-mode.js +34 -0
  107. package/build-module/components/provider/navigation-block-editing-mode.js.map +1 -0
  108. package/build-module/components/provider/use-block-editor-settings.js +9 -10
  109. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  110. package/build-module/hooks/index.js +1 -0
  111. package/build-module/hooks/index.js.map +1 -1
  112. package/build-module/hooks/pattern-partial-syncing.js +46 -0
  113. package/build-module/hooks/pattern-partial-syncing.js.map +1 -0
  114. package/build-module/private-apis.js +4 -0
  115. package/build-module/private-apis.js.map +1 -1
  116. package/build-module/store/actions.js +53 -9
  117. package/build-module/store/actions.js.map +1 -1
  118. package/build-module/store/defaults.js +2 -1
  119. package/build-module/store/defaults.js.map +1 -1
  120. package/build-module/store/index.js +3 -0
  121. package/build-module/store/index.js.map +1 -1
  122. package/build-module/store/private-actions.js +44 -0
  123. package/build-module/store/private-actions.js.map +1 -0
  124. package/build-module/store/reducer.js +30 -26
  125. package/build-module/store/reducer.js.map +1 -1
  126. package/build-module/store/reducer.native.js +1 -2
  127. package/build-module/store/reducer.native.js.map +1 -1
  128. package/build-module/store/selectors.js +26 -6
  129. package/build-module/store/selectors.js.map +1 -1
  130. package/build-style/style-rtl.css +182 -0
  131. package/build-style/style.css +182 -0
  132. package/package.json +32 -31
  133. package/src/components/document-bar/index.js +182 -0
  134. package/src/components/document-bar/style.scss +130 -0
  135. package/src/components/editor-canvas/edit-template-blocks-notification.js +108 -0
  136. package/src/components/editor-canvas/index.js +381 -0
  137. package/src/components/index.js +3 -1
  138. package/src/components/post-publish-button/index.js +1 -0
  139. package/src/components/post-publish-panel/maybe-upload-media.js +3 -8
  140. package/src/components/post-saved-state/index.js +1 -0
  141. package/src/components/post-saved-state/test/__snapshots__/index.js.snap +2 -2
  142. package/src/components/post-schedule/panel.js +1 -1
  143. package/src/components/post-template/block-theme.js +109 -0
  144. package/src/components/post-template/classic-theme.js +213 -0
  145. package/src/components/post-template/create-new-template-modal.js +139 -0
  146. package/src/components/post-template/create-new-template.js +50 -0
  147. package/src/components/post-template/hooks.js +95 -0
  148. package/src/components/post-template/panel.js +67 -0
  149. package/src/components/post-template/reset-default-template.js +43 -0
  150. package/src/components/post-template/style.scss +52 -0
  151. package/src/components/post-template/swap-template-button.js +83 -0
  152. package/src/components/post-title/index.native.js +0 -1
  153. package/src/components/preview-dropdown/index.js +136 -0
  154. package/src/components/preview-dropdown/style.scss +5 -0
  155. package/src/components/provider/index.js +28 -118
  156. package/src/components/provider/index.native.js +26 -12
  157. package/src/components/provider/navigation-block-editing-mode.js +37 -0
  158. package/src/components/provider/use-block-editor-settings.js +6 -9
  159. package/src/hooks/index.js +1 -0
  160. package/src/hooks/pattern-partial-syncing.js +73 -0
  161. package/src/private-apis.js +4 -0
  162. package/src/store/actions.js +51 -9
  163. package/src/store/defaults.js +1 -0
  164. package/src/store/index.js +3 -0
  165. package/src/store/private-actions.js +61 -0
  166. package/src/store/reducer.js +32 -27
  167. package/src/store/reducer.native.js +0 -2
  168. package/src/store/selectors.js +64 -42
  169. package/src/store/test/selectors.js +88 -147
  170. package/src/style.scss +3 -0
  171. package/build/components/post-template/index.js +0 -66
  172. package/build/components/post-template/index.js.map +0 -1
  173. package/build-module/components/post-template/index.js +0 -57
  174. package/build-module/components/post-template/index.js.map +0 -1
  175. package/src/components/post-template/index.js +0 -64
@@ -1 +1 @@
1
- {"version":3,"names":["EditorKeyboardShortcuts","default","AutosaveMonitor","DocumentOutline","DocumentOutlineCheck","EditorKeyboardShortcutsRegister","EditorHistoryRedo","EditorHistoryUndo","EditorNotices","EditorSnackbars","EntitiesSavedStates","useIsDirty","useEntitiesSavedStatesIsDirty","ErrorBoundary","LocalAutosaveMonitor","PageAttributesCheck","PageAttributesOrder","PageAttributesParent","PageTemplate","PostAuthor","PostAuthorCheck","PostAuthorPanel","PostComments","PostExcerpt","PostExcerptCheck","PostFeaturedImage","PostFeaturedImageCheck","PostFormat","PostFormatCheck","PostLastRevision","PostLastRevisionCheck","PostLockedModal","PostPendingStatus","PostPendingStatusCheck","PostPingbacks","PostPreviewButton","PostPublishButton","PostPublishButtonLabel","PostPublishPanel","PostSavedState","PostSchedule","PostScheduleCheck","PostScheduleLabel","usePostScheduleLabel","PostSchedulePanel","PostSlug","PostSlugCheck","PostSticky","PostStickyCheck","PostSwitchToDraftButton","PostSyncStatus","PostSyncStatusModal","PostTaxonomies","FlatTermSelector","PostTaxonomiesFlatTermSelector","HierarchicalTermSelector","PostTaxonomiesHierarchicalTermSelector","PostTaxonomiesCheck","PostTextEditor","PostTitle","PostTitleRaw","PostTrash","PostTrashCheck","PostTypeSupportCheck","PostURL","PostURLCheck","PostURLLabel","usePostURLLabel","PostURLPanel","PostVisibility","PostVisibilityLabel","usePostVisibilityLabel","PostVisibilityCheck","TableOfContents","ThemeSupportCheck","UnsavedChangesWarning","WordCount","TimeToRead","CharacterCount","EditorProvider","VisualEditorGlobalKeyboardShortcuts","TextEditorGlobalKeyboardShortcuts"],"sources":["@wordpress/editor/src/components/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport EditorKeyboardShortcuts from './global-keyboard-shortcuts';\n\n// Block Creation Components.\nexport * from './autocompleters';\n\n// Post Related Components.\nexport { default as AutosaveMonitor } from './autosave-monitor';\nexport { default as DocumentOutline } from './document-outline';\nexport { default as DocumentOutlineCheck } from './document-outline/check';\nexport { EditorKeyboardShortcuts };\nexport { default as EditorKeyboardShortcutsRegister } from './global-keyboard-shortcuts/register-shortcuts';\nexport { default as EditorHistoryRedo } from './editor-history/redo';\nexport { default as EditorHistoryUndo } from './editor-history/undo';\nexport { default as EditorNotices } from './editor-notices';\nexport { default as EditorSnackbars } from './editor-snackbars';\nexport { default as EntitiesSavedStates } from './entities-saved-states';\nexport { useIsDirty as useEntitiesSavedStatesIsDirty } from './entities-saved-states/hooks/use-is-dirty';\nexport { default as ErrorBoundary } from './error-boundary';\nexport { default as LocalAutosaveMonitor } from './local-autosave-monitor';\nexport { default as PageAttributesCheck } from './page-attributes/check';\nexport { default as PageAttributesOrder } from './page-attributes/order';\nexport { default as PageAttributesParent } from './page-attributes/parent';\nexport { default as PageTemplate } from './post-template';\nexport { default as PostAuthor } from './post-author';\nexport { default as PostAuthorCheck } from './post-author/check';\nexport { default as PostAuthorPanel } from './post-author/panel';\nexport { default as PostComments } from './post-comments';\nexport { default as PostExcerpt } from './post-excerpt';\nexport { default as PostExcerptCheck } from './post-excerpt/check';\nexport { default as PostFeaturedImage } from './post-featured-image';\nexport { default as PostFeaturedImageCheck } from './post-featured-image/check';\nexport { default as PostFormat } from './post-format';\nexport { default as PostFormatCheck } from './post-format/check';\nexport { default as PostLastRevision } from './post-last-revision';\nexport { default as PostLastRevisionCheck } from './post-last-revision/check';\nexport { default as PostLockedModal } from './post-locked-modal';\nexport { default as PostPendingStatus } from './post-pending-status';\nexport { default as PostPendingStatusCheck } from './post-pending-status/check';\nexport { default as PostPingbacks } from './post-pingbacks';\nexport { default as PostPreviewButton } from './post-preview-button';\nexport { default as PostPublishButton } from './post-publish-button';\nexport { default as PostPublishButtonLabel } from './post-publish-button/label';\nexport { default as PostPublishPanel } from './post-publish-panel';\nexport { default as PostSavedState } from './post-saved-state';\nexport { default as PostSchedule } from './post-schedule';\nexport { default as PostScheduleCheck } from './post-schedule/check';\nexport {\n\tdefault as PostScheduleLabel,\n\tusePostScheduleLabel,\n} from './post-schedule/label';\nexport { default as PostSchedulePanel } from './post-schedule/panel';\nexport { default as PostSlug } from './post-slug';\nexport { default as PostSlugCheck } from './post-slug/check';\nexport { default as PostSticky } from './post-sticky';\nexport { default as PostStickyCheck } from './post-sticky/check';\nexport { default as PostSwitchToDraftButton } from './post-switch-to-draft-button';\nexport {\n\tdefault as PostSyncStatus,\n\tPostSyncStatusModal,\n} from './post-sync-status';\nexport { default as PostTaxonomies } from './post-taxonomies';\nexport { FlatTermSelector as PostTaxonomiesFlatTermSelector } from './post-taxonomies/flat-term-selector';\nexport { HierarchicalTermSelector as PostTaxonomiesHierarchicalTermSelector } from './post-taxonomies/hierarchical-term-selector';\nexport { default as PostTaxonomiesCheck } from './post-taxonomies/check';\nexport { default as PostTextEditor } from './post-text-editor';\nexport { default as PostTitle } from './post-title';\nexport { default as PostTitleRaw } from './post-title/post-title-raw';\nexport { default as PostTrash } from './post-trash';\nexport { default as PostTrashCheck } from './post-trash/check';\nexport { default as PostTypeSupportCheck } from './post-type-support-check';\nexport { default as PostURL } from './post-url';\nexport { default as PostURLCheck } from './post-url/check';\nexport { default as PostURLLabel, usePostURLLabel } from './post-url/label';\nexport { default as PostURLPanel } from './post-url/panel';\nexport { default as PostVisibility } from './post-visibility';\nexport {\n\tdefault as PostVisibilityLabel,\n\tusePostVisibilityLabel,\n} from './post-visibility/label';\nexport { default as PostVisibilityCheck } from './post-visibility/check';\nexport { default as TableOfContents } from './table-of-contents';\nexport { default as ThemeSupportCheck } from './theme-support-check';\nexport { default as UnsavedChangesWarning } from './unsaved-changes-warning';\nexport { default as WordCount } from './word-count';\nexport { default as TimeToRead } from './time-to-read';\nexport { default as CharacterCount } from './character-count';\n\n// State Related Components.\nexport { default as EditorProvider } from './provider';\n\nexport * from './deprecated';\nexport const VisualEditorGlobalKeyboardShortcuts = EditorKeyboardShortcuts;\nexport const TextEditorGlobalKeyboardShortcuts = EditorKeyboardShortcuts;\n"],"mappings":"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"}
1
+ {"version":3,"names":["EditorKeyboardShortcuts","default","AutosaveMonitor","DocumentBar","DocumentOutline","DocumentOutlineCheck","EditorKeyboardShortcutsRegister","EditorHistoryRedo","EditorHistoryUndo","EditorNotices","EditorSnackbars","EntitiesSavedStates","useIsDirty","useEntitiesSavedStatesIsDirty","ErrorBoundary","LocalAutosaveMonitor","PageAttributesCheck","PageAttributesOrder","PageAttributesParent","PageTemplate","PostTemplatePanel","PostAuthor","PostAuthorCheck","PostAuthorPanel","PostComments","PostExcerpt","PostExcerptCheck","PostFeaturedImage","PostFeaturedImageCheck","PostFormat","PostFormatCheck","PostLastRevision","PostLastRevisionCheck","PostLockedModal","PostPendingStatus","PostPendingStatusCheck","PostPingbacks","PostPreviewButton","PostPublishButton","PostPublishButtonLabel","PostPublishPanel","PostSavedState","PostSchedule","PostScheduleCheck","PostScheduleLabel","usePostScheduleLabel","PostSchedulePanel","PostSlug","PostSlugCheck","PostSticky","PostStickyCheck","PostSwitchToDraftButton","PostSyncStatus","PostSyncStatusModal","PostTaxonomies","FlatTermSelector","PostTaxonomiesFlatTermSelector","HierarchicalTermSelector","PostTaxonomiesHierarchicalTermSelector","PostTaxonomiesCheck","PostTextEditor","PostTitle","PostTitleRaw","PostTrash","PostTrashCheck","PostTypeSupportCheck","PostURL","PostURLCheck","PostURLLabel","usePostURLLabel","PostURLPanel","PostVisibility","PostVisibilityLabel","usePostVisibilityLabel","PostVisibilityCheck","TableOfContents","ThemeSupportCheck","UnsavedChangesWarning","WordCount","TimeToRead","CharacterCount","EditorProvider","VisualEditorGlobalKeyboardShortcuts","TextEditorGlobalKeyboardShortcuts"],"sources":["@wordpress/editor/src/components/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport EditorKeyboardShortcuts from './global-keyboard-shortcuts';\n\n// Block Creation Components.\nexport * from './autocompleters';\n\n// Post Related Components.\nexport { default as AutosaveMonitor } from './autosave-monitor';\nexport { default as DocumentBar } from './document-bar';\nexport { default as DocumentOutline } from './document-outline';\nexport { default as DocumentOutlineCheck } from './document-outline/check';\nexport { EditorKeyboardShortcuts };\nexport { default as EditorKeyboardShortcutsRegister } from './global-keyboard-shortcuts/register-shortcuts';\nexport { default as EditorHistoryRedo } from './editor-history/redo';\nexport { default as EditorHistoryUndo } from './editor-history/undo';\nexport { default as EditorNotices } from './editor-notices';\nexport { default as EditorSnackbars } from './editor-snackbars';\nexport { default as EntitiesSavedStates } from './entities-saved-states';\nexport { useIsDirty as useEntitiesSavedStatesIsDirty } from './entities-saved-states/hooks/use-is-dirty';\nexport { default as ErrorBoundary } from './error-boundary';\nexport { default as LocalAutosaveMonitor } from './local-autosave-monitor';\nexport { default as PageAttributesCheck } from './page-attributes/check';\nexport { default as PageAttributesOrder } from './page-attributes/order';\nexport { default as PageAttributesParent } from './page-attributes/parent';\nexport { default as PageTemplate } from './post-template/classic-theme';\nexport { default as PostTemplatePanel } from './post-template/panel';\nexport { default as PostAuthor } from './post-author';\nexport { default as PostAuthorCheck } from './post-author/check';\nexport { default as PostAuthorPanel } from './post-author/panel';\nexport { default as PostComments } from './post-comments';\nexport { default as PostExcerpt } from './post-excerpt';\nexport { default as PostExcerptCheck } from './post-excerpt/check';\nexport { default as PostFeaturedImage } from './post-featured-image';\nexport { default as PostFeaturedImageCheck } from './post-featured-image/check';\nexport { default as PostFormat } from './post-format';\nexport { default as PostFormatCheck } from './post-format/check';\nexport { default as PostLastRevision } from './post-last-revision';\nexport { default as PostLastRevisionCheck } from './post-last-revision/check';\nexport { default as PostLockedModal } from './post-locked-modal';\nexport { default as PostPendingStatus } from './post-pending-status';\nexport { default as PostPendingStatusCheck } from './post-pending-status/check';\nexport { default as PostPingbacks } from './post-pingbacks';\nexport { default as PostPreviewButton } from './post-preview-button';\nexport { default as PostPublishButton } from './post-publish-button';\nexport { default as PostPublishButtonLabel } from './post-publish-button/label';\nexport { default as PostPublishPanel } from './post-publish-panel';\nexport { default as PostSavedState } from './post-saved-state';\nexport { default as PostSchedule } from './post-schedule';\nexport { default as PostScheduleCheck } from './post-schedule/check';\nexport {\n\tdefault as PostScheduleLabel,\n\tusePostScheduleLabel,\n} from './post-schedule/label';\nexport { default as PostSchedulePanel } from './post-schedule/panel';\nexport { default as PostSlug } from './post-slug';\nexport { default as PostSlugCheck } from './post-slug/check';\nexport { default as PostSticky } from './post-sticky';\nexport { default as PostStickyCheck } from './post-sticky/check';\nexport { default as PostSwitchToDraftButton } from './post-switch-to-draft-button';\nexport {\n\tdefault as PostSyncStatus,\n\tPostSyncStatusModal,\n} from './post-sync-status';\nexport { default as PostTaxonomies } from './post-taxonomies';\nexport { FlatTermSelector as PostTaxonomiesFlatTermSelector } from './post-taxonomies/flat-term-selector';\nexport { HierarchicalTermSelector as PostTaxonomiesHierarchicalTermSelector } from './post-taxonomies/hierarchical-term-selector';\nexport { default as PostTaxonomiesCheck } from './post-taxonomies/check';\nexport { default as PostTextEditor } from './post-text-editor';\nexport { default as PostTitle } from './post-title';\nexport { default as PostTitleRaw } from './post-title/post-title-raw';\nexport { default as PostTrash } from './post-trash';\nexport { default as PostTrashCheck } from './post-trash/check';\nexport { default as PostTypeSupportCheck } from './post-type-support-check';\nexport { default as PostURL } from './post-url';\nexport { default as PostURLCheck } from './post-url/check';\nexport { default as PostURLLabel, usePostURLLabel } from './post-url/label';\nexport { default as PostURLPanel } from './post-url/panel';\nexport { default as PostVisibility } from './post-visibility';\nexport {\n\tdefault as PostVisibilityLabel,\n\tusePostVisibilityLabel,\n} from './post-visibility/label';\nexport { default as PostVisibilityCheck } from './post-visibility/check';\nexport { default as TableOfContents } from './table-of-contents';\nexport { default as ThemeSupportCheck } from './theme-support-check';\nexport { default as UnsavedChangesWarning } from './unsaved-changes-warning';\nexport { default as WordCount } from './word-count';\nexport { default as TimeToRead } from './time-to-read';\nexport { default as CharacterCount } from './character-count';\n\n// State Related Components.\nexport { default as EditorProvider } from './provider';\n\nexport * from './deprecated';\nexport const VisualEditorGlobalKeyboardShortcuts = EditorKeyboardShortcuts;\nexport const TextEditorGlobalKeyboardShortcuts = EditorKeyboardShortcuts;\n"],"mappings":"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"}
@@ -148,6 +148,7 @@ export class PostPublishButton extends Component {
148
148
  className: 'editor-post-publish-panel__toggle',
149
149
  isBusy: isSaving && isPublished,
150
150
  variant: 'primary',
151
+ size: 'compact',
151
152
  onClick: this.createOnClick(onClickToggle)
152
153
  };
153
154
  const toggleChildren = isBeingScheduled ? __('Schedule…') : __('Publish');
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","Button","Component","createRef","withSelect","withDispatch","compose","__","PublishButtonLabel","store","editorStore","noop","PostPublishButton","constructor","props","buttonNode","createOnClick","bind","closeEntitiesSavedStates","state","entitiesSavedStatesCallback","componentDidMount","focusOnMount","timeoutID","setTimeout","current","focus","componentWillUnmount","clearTimeout","callback","args","hasNonPostEntityChanges","setEntitiesSavedStatesCallback","setState","savedEntities","postType","postId","some","elt","kind","name","key","render","forceIsDirty","hasPublishAction","isBeingScheduled","isOpen","isPostSavingLocked","isPublishable","isPublished","isSaveable","isSaving","isAutoSaving","isToggle","onSave","onStatusChange","onSubmit","onToggle","visibility","isSavingNonPostEntityChanges","isButtonDisabled","isToggleDisabled","publishStatus","onClickButton","onClickToggle","buttonProps","className","isBusy","variant","onClick","toggleProps","toggleChildren","buttonChildren","createElement","componentProps","componentChildren","Fragment","ref","select","_getCurrentPost$_link","isSavingPost","isAutosavingPost","isEditedPostBeingScheduled","getEditedPostVisibility","isCurrentPostPublished","isEditedPostSaveable","isEditedPostPublishable","getCurrentPost","getCurrentPostType","getCurrentPostId","_links","dispatch","editPost","savePost","status","undoIgnore"],"sources":["@wordpress/editor/src/components/post-publish-button/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PublishButtonLabel from './label';\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\nexport class PostPublishButton extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.buttonNode = createRef();\n\n\t\tthis.createOnClick = this.createOnClick.bind( this );\n\t\tthis.closeEntitiesSavedStates =\n\t\t\tthis.closeEntitiesSavedStates.bind( this );\n\n\t\tthis.state = {\n\t\t\tentitiesSavedStatesCallback: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\t// This timeout is necessary to make sure the `useEffect` hook of\n\t\t\t// `useFocusReturn` gets the correct element (the button that opens the\n\t\t\t// PostPublishPanel) otherwise it will get this button.\n\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\tthis.buttonNode.current.focus();\n\t\t\t}, 0 );\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timeoutID );\n\t}\n\n\tcreateOnClick( callback ) {\n\t\treturn ( ...args ) => {\n\t\t\tconst { hasNonPostEntityChanges, setEntitiesSavedStatesCallback } =\n\t\t\t\tthis.props;\n\t\t\t// If a post with non-post entities is published, but the user\n\t\t\t// elects to not save changes to the non-post entities, those\n\t\t\t// entities will still be dirty when the Publish button is clicked.\n\t\t\t// We also need to check that the `setEntitiesSavedStatesCallback`\n\t\t\t// prop was passed. See https://github.com/WordPress/gutenberg/pull/37383\n\t\t\tif ( hasNonPostEntityChanges && setEntitiesSavedStatesCallback ) {\n\t\t\t\t// The modal for multiple entity saving will open,\n\t\t\t\t// hold the callback for saving/publishing the post\n\t\t\t\t// so that we can call it if the post entity is checked.\n\t\t\t\tthis.setState( {\n\t\t\t\t\tentitiesSavedStatesCallback: () => callback( ...args ),\n\t\t\t\t} );\n\n\t\t\t\t// Open the save panel by setting its callback.\n\t\t\t\t// To set a function on the useState hook, we must set it\n\t\t\t\t// with another function (() => myFunction). Passing the\n\t\t\t\t// function on its own will cause an error when called.\n\t\t\t\tsetEntitiesSavedStatesCallback(\n\t\t\t\t\t() => this.closeEntitiesSavedStates\n\t\t\t\t);\n\t\t\t\treturn noop;\n\t\t\t}\n\n\t\t\treturn callback( ...args );\n\t\t};\n\t}\n\n\tcloseEntitiesSavedStates( savedEntities ) {\n\t\tconst { postType, postId } = this.props;\n\t\tconst { entitiesSavedStatesCallback } = this.state;\n\t\tthis.setState( { entitiesSavedStatesCallback: false }, () => {\n\t\t\tif (\n\t\t\t\tsavedEntities &&\n\t\t\t\tsavedEntities.some(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === 'postType' &&\n\t\t\t\t\t\telt.name === postType &&\n\t\t\t\t\t\telt.key === postId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// The post entity was checked, call the held callback from `createOnClick`.\n\t\t\t\tentitiesSavedStatesCallback();\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\thasPublishAction,\n\t\t\tisBeingScheduled,\n\t\t\tisOpen,\n\t\t\tisPostSavingLocked,\n\t\t\tisPublishable,\n\t\t\tisPublished,\n\t\t\tisSaveable,\n\t\t\tisSaving,\n\t\t\tisAutoSaving,\n\t\t\tisToggle,\n\t\t\tonSave,\n\t\t\tonStatusChange,\n\t\t\tonSubmit = noop,\n\t\t\tonToggle,\n\t\t\tvisibility,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = this.props;\n\n\t\tconst isButtonDisabled =\n\t\t\t( isSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\tisPostSavingLocked ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tconst isToggleDisabled =\n\t\t\t( isPublished ||\n\t\t\t\tisSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tlet publishStatus;\n\t\tif ( ! hasPublishAction ) {\n\t\t\tpublishStatus = 'pending';\n\t\t} else if ( visibility === 'private' ) {\n\t\t\tpublishStatus = 'private';\n\t\t} else if ( isBeingScheduled ) {\n\t\t\tpublishStatus = 'future';\n\t\t} else {\n\t\t\tpublishStatus = 'publish';\n\t\t}\n\n\t\tconst onClickButton = () => {\n\t\t\tif ( isButtonDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSubmit();\n\t\t\tonStatusChange( publishStatus );\n\t\t\tonSave();\n\t\t};\n\n\t\tconst onClickToggle = () => {\n\t\t\tif ( isToggleDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonToggle();\n\t\t};\n\n\t\tconst buttonProps = {\n\t\t\t'aria-disabled': isButtonDisabled,\n\t\t\tclassName: 'editor-post-publish-button',\n\t\t\tisBusy: ! isAutoSaving && isSaving,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickButton ),\n\t\t};\n\n\t\tconst toggleProps = {\n\t\t\t'aria-disabled': isToggleDisabled,\n\t\t\t'aria-expanded': isOpen,\n\t\t\tclassName: 'editor-post-publish-panel__toggle',\n\t\t\tisBusy: isSaving && isPublished,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickToggle ),\n\t\t};\n\n\t\tconst toggleChildren = isBeingScheduled\n\t\t\t? __( 'Schedule…' )\n\t\t\t: __( 'Publish' );\n\t\tconst buttonChildren = (\n\t\t\t<PublishButtonLabel\n\t\t\t\thasNonPostEntityChanges={ hasNonPostEntityChanges }\n\t\t\t/>\n\t\t);\n\n\t\tconst componentProps = isToggle ? toggleProps : buttonProps;\n\t\tconst componentChildren = isToggle ? toggleChildren : buttonChildren;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ this.buttonNode }\n\t\t\t\t\t{ ...componentProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tcomponentProps.className,\n\t\t\t\t\t\t'editor-post-publish-button__button',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-changes-dot': hasNonPostEntityChanges,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ componentChildren }\n\t\t\t\t</Button>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisSavingPost,\n\t\t\tisAutosavingPost,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tgetEditedPostVisibility,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostPublishable,\n\t\t\tisPostSavingLocked,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentPostId,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\treturn {\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisAutoSaving: isAutosavingPost(),\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tvisibility: getEditedPostVisibility(),\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisPostSavingLocked: isPostSavingLocked(),\n\t\t\tisPublishable: isEditedPostPublishable(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\thasNonPostEntityChanges: hasNonPostEntityChanges(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonStatusChange: ( status ) =>\n\t\t\t\teditPost( { status }, { undoIgnore: true } ),\n\t\t\tonSave: savePost,\n\t\t};\n\t} ),\n] )( PostPublishButton );\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","Button","Component","createRef","withSelect","withDispatch","compose","__","PublishButtonLabel","store","editorStore","noop","PostPublishButton","constructor","props","buttonNode","createOnClick","bind","closeEntitiesSavedStates","state","entitiesSavedStatesCallback","componentDidMount","focusOnMount","timeoutID","setTimeout","current","focus","componentWillUnmount","clearTimeout","callback","args","hasNonPostEntityChanges","setEntitiesSavedStatesCallback","setState","savedEntities","postType","postId","some","elt","kind","name","key","render","forceIsDirty","hasPublishAction","isBeingScheduled","isOpen","isPostSavingLocked","isPublishable","isPublished","isSaveable","isSaving","isAutoSaving","isToggle","onSave","onStatusChange","onSubmit","onToggle","visibility","isSavingNonPostEntityChanges","isButtonDisabled","isToggleDisabled","publishStatus","onClickButton","onClickToggle","buttonProps","className","isBusy","variant","onClick","toggleProps","size","toggleChildren","buttonChildren","createElement","componentProps","componentChildren","Fragment","ref","select","_getCurrentPost$_link","isSavingPost","isAutosavingPost","isEditedPostBeingScheduled","getEditedPostVisibility","isCurrentPostPublished","isEditedPostSaveable","isEditedPostPublishable","getCurrentPost","getCurrentPostType","getCurrentPostId","_links","dispatch","editPost","savePost","status","undoIgnore"],"sources":["@wordpress/editor/src/components/post-publish-button/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PublishButtonLabel from './label';\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\nexport class PostPublishButton extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.buttonNode = createRef();\n\n\t\tthis.createOnClick = this.createOnClick.bind( this );\n\t\tthis.closeEntitiesSavedStates =\n\t\t\tthis.closeEntitiesSavedStates.bind( this );\n\n\t\tthis.state = {\n\t\t\tentitiesSavedStatesCallback: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\t// This timeout is necessary to make sure the `useEffect` hook of\n\t\t\t// `useFocusReturn` gets the correct element (the button that opens the\n\t\t\t// PostPublishPanel) otherwise it will get this button.\n\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\tthis.buttonNode.current.focus();\n\t\t\t}, 0 );\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timeoutID );\n\t}\n\n\tcreateOnClick( callback ) {\n\t\treturn ( ...args ) => {\n\t\t\tconst { hasNonPostEntityChanges, setEntitiesSavedStatesCallback } =\n\t\t\t\tthis.props;\n\t\t\t// If a post with non-post entities is published, but the user\n\t\t\t// elects to not save changes to the non-post entities, those\n\t\t\t// entities will still be dirty when the Publish button is clicked.\n\t\t\t// We also need to check that the `setEntitiesSavedStatesCallback`\n\t\t\t// prop was passed. See https://github.com/WordPress/gutenberg/pull/37383\n\t\t\tif ( hasNonPostEntityChanges && setEntitiesSavedStatesCallback ) {\n\t\t\t\t// The modal for multiple entity saving will open,\n\t\t\t\t// hold the callback for saving/publishing the post\n\t\t\t\t// so that we can call it if the post entity is checked.\n\t\t\t\tthis.setState( {\n\t\t\t\t\tentitiesSavedStatesCallback: () => callback( ...args ),\n\t\t\t\t} );\n\n\t\t\t\t// Open the save panel by setting its callback.\n\t\t\t\t// To set a function on the useState hook, we must set it\n\t\t\t\t// with another function (() => myFunction). Passing the\n\t\t\t\t// function on its own will cause an error when called.\n\t\t\t\tsetEntitiesSavedStatesCallback(\n\t\t\t\t\t() => this.closeEntitiesSavedStates\n\t\t\t\t);\n\t\t\t\treturn noop;\n\t\t\t}\n\n\t\t\treturn callback( ...args );\n\t\t};\n\t}\n\n\tcloseEntitiesSavedStates( savedEntities ) {\n\t\tconst { postType, postId } = this.props;\n\t\tconst { entitiesSavedStatesCallback } = this.state;\n\t\tthis.setState( { entitiesSavedStatesCallback: false }, () => {\n\t\t\tif (\n\t\t\t\tsavedEntities &&\n\t\t\t\tsavedEntities.some(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === 'postType' &&\n\t\t\t\t\t\telt.name === postType &&\n\t\t\t\t\t\telt.key === postId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// The post entity was checked, call the held callback from `createOnClick`.\n\t\t\t\tentitiesSavedStatesCallback();\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\thasPublishAction,\n\t\t\tisBeingScheduled,\n\t\t\tisOpen,\n\t\t\tisPostSavingLocked,\n\t\t\tisPublishable,\n\t\t\tisPublished,\n\t\t\tisSaveable,\n\t\t\tisSaving,\n\t\t\tisAutoSaving,\n\t\t\tisToggle,\n\t\t\tonSave,\n\t\t\tonStatusChange,\n\t\t\tonSubmit = noop,\n\t\t\tonToggle,\n\t\t\tvisibility,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = this.props;\n\n\t\tconst isButtonDisabled =\n\t\t\t( isSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\tisPostSavingLocked ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tconst isToggleDisabled =\n\t\t\t( isPublished ||\n\t\t\t\tisSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tlet publishStatus;\n\t\tif ( ! hasPublishAction ) {\n\t\t\tpublishStatus = 'pending';\n\t\t} else if ( visibility === 'private' ) {\n\t\t\tpublishStatus = 'private';\n\t\t} else if ( isBeingScheduled ) {\n\t\t\tpublishStatus = 'future';\n\t\t} else {\n\t\t\tpublishStatus = 'publish';\n\t\t}\n\n\t\tconst onClickButton = () => {\n\t\t\tif ( isButtonDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSubmit();\n\t\t\tonStatusChange( publishStatus );\n\t\t\tonSave();\n\t\t};\n\n\t\tconst onClickToggle = () => {\n\t\t\tif ( isToggleDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonToggle();\n\t\t};\n\n\t\tconst buttonProps = {\n\t\t\t'aria-disabled': isButtonDisabled,\n\t\t\tclassName: 'editor-post-publish-button',\n\t\t\tisBusy: ! isAutoSaving && isSaving,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickButton ),\n\t\t};\n\n\t\tconst toggleProps = {\n\t\t\t'aria-disabled': isToggleDisabled,\n\t\t\t'aria-expanded': isOpen,\n\t\t\tclassName: 'editor-post-publish-panel__toggle',\n\t\t\tisBusy: isSaving && isPublished,\n\t\t\tvariant: 'primary',\n\t\t\tsize: 'compact',\n\t\t\tonClick: this.createOnClick( onClickToggle ),\n\t\t};\n\n\t\tconst toggleChildren = isBeingScheduled\n\t\t\t? __( 'Schedule…' )\n\t\t\t: __( 'Publish' );\n\t\tconst buttonChildren = (\n\t\t\t<PublishButtonLabel\n\t\t\t\thasNonPostEntityChanges={ hasNonPostEntityChanges }\n\t\t\t/>\n\t\t);\n\n\t\tconst componentProps = isToggle ? toggleProps : buttonProps;\n\t\tconst componentChildren = isToggle ? toggleChildren : buttonChildren;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ this.buttonNode }\n\t\t\t\t\t{ ...componentProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tcomponentProps.className,\n\t\t\t\t\t\t'editor-post-publish-button__button',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-changes-dot': hasNonPostEntityChanges,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ componentChildren }\n\t\t\t\t</Button>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisSavingPost,\n\t\t\tisAutosavingPost,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tgetEditedPostVisibility,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostPublishable,\n\t\t\tisPostSavingLocked,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentPostId,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\treturn {\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisAutoSaving: isAutosavingPost(),\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tvisibility: getEditedPostVisibility(),\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisPostSavingLocked: isPostSavingLocked(),\n\t\t\tisPublishable: isEditedPostPublishable(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\thasNonPostEntityChanges: hasNonPostEntityChanges(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonStatusChange: ( status ) =>\n\t\t\t\teditPost( { status }, { undoIgnore: true } ),\n\t\t\tonSave: savePost,\n\t\t};\n\t} ),\n] )( PostPublishButton );\n"],"mappings":"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"}
@@ -5,7 +5,6 @@ import { createElement } from "react";
5
5
  import { PanelBody, Button, Spinner, __unstableMotion as motion, __unstableAnimatePresence as AnimatePresence } from '@wordpress/components';
6
6
  import { useSelect, useDispatch } from '@wordpress/data';
7
7
  import { __ } from '@wordpress/i18n';
8
- import { upload } from '@wordpress/icons';
9
8
  import { store as blockEditorStore } from '@wordpress/block-editor';
10
9
  import { useState } from '@wordpress/element';
11
10
  import { isBlobURL } from '@wordpress/blob';
@@ -107,7 +106,7 @@ export default function PostFormatPanel() {
107
106
  return createElement(PanelBody, {
108
107
  initialOpen: true,
109
108
  title: panelBodyTitle
110
- }, createElement("p", null, __('There are some external images in the post which can be uploaded to the media library. Images coming from different domains may not always display correctly, load slowly for visitors, or be removed unexpectedly.')), createElement("div", {
109
+ }, createElement("p", null, __('Upload external images to the Media Library. Images from different domains may load slowly, display incorrectly, or be removed unexpectedly.')), createElement("div", {
111
110
  style: {
112
111
  display: 'inline-flex',
113
112
  flexWrap: 'wrap',
@@ -119,9 +118,8 @@ export default function PostFormatPanel() {
119
118
  ...image
120
119
  });
121
120
  })), isUploading ? createElement(Spinner, null) : createElement(Button, {
122
- icon: upload,
123
121
  variant: "primary",
124
122
  onClick: uploadImages
125
- }, __('Upload all'))));
123
+ }, __('Upload'))));
126
124
  }
127
125
  //# sourceMappingURL=maybe-upload-media.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PanelBody","Button","Spinner","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","useSelect","useDispatch","__","upload","store","blockEditorStore","useState","isBlobURL","editorStore","flattenBlocks","blocks","result","forEach","block","push","innerBlocks","Image","selectBlock","createElement","img","tabIndex","role","onClick","clientId","onKeyDown","event","key","preventDefault","alt","attributes","src","url","animate","opacity","exit","scale","style","width","height","objectFit","borderRadius","cursor","whileHover","PostFormatPanel","isUploading","setIsUploading","editorBlocks","mediaUpload","select","getEditorBlocks","getSettings","externalImages","filter","name","id","updateBlockAttributes","length","panelBodyTitle","className","uploadImages","Promise","all","map","image","window","fetch","includes","then","response","blob","resolve","reject","filesList","onFileChange","media","onError","finally","initialOpen","title","display","flexWrap","gap","icon","variant"],"sources":["@wordpress/editor/src/components/post-publish-panel/maybe-upload-media.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tButton,\n\tSpinner,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction flattenBlocks( blocks ) {\n\tconst result = [];\n\n\tblocks.forEach( ( block ) => {\n\t\tresult.push( block );\n\t\tresult.push( ...flattenBlocks( block.innerBlocks ) );\n\t} );\n\n\treturn result;\n}\n\nfunction Image( block ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<motion.img\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"button\"\n\t\t\taria-label={ __( 'Select image block.' ) }\n\t\t\tonClick={ () => {\n\t\t\t\tselectBlock( block.clientId );\n\t\t\t} }\n\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\t\t\t\tselectBlock( block.clientId );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} }\n\t\t\tkey={ block.clientId }\n\t\t\talt={ block.attributes.alt }\n\t\t\tsrc={ block.attributes.url }\n\t\t\tanimate={ { opacity: 1 } }\n\t\t\texit={ { opacity: 0, scale: 0 } }\n\t\t\tstyle={ {\n\t\t\t\twidth: '36px',\n\t\t\t\theight: '36px',\n\t\t\t\tobjectFit: 'cover',\n\t\t\t\tborderRadius: '2px',\n\t\t\t\tcursor: 'pointer',\n\t\t\t} }\n\t\t\twhileHover={ { scale: 1.08 } }\n\t\t/>\n\t);\n}\n\nexport default function PostFormatPanel() {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst { editorBlocks, mediaUpload } = useSelect(\n\t\t( select ) => ( {\n\t\t\teditorBlocks: select( editorStore ).getEditorBlocks(),\n\t\t\tmediaUpload: select( blockEditorStore ).getSettings().mediaUpload,\n\t\t} ),\n\t\t[]\n\t);\n\tconst externalImages = flattenBlocks( editorBlocks ).filter(\n\t\t( block ) =>\n\t\t\tblock.name === 'core/image' &&\n\t\t\tblock.attributes.url &&\n\t\t\t! block.attributes.id\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tif ( ! mediaUpload || ! externalImages.length ) {\n\t\treturn null;\n\t}\n\n\tconst panelBodyTitle = [\n\t\t__( 'Suggestion:' ),\n\t\t<span className=\"editor-post-publish-panel__link\" key=\"label\">\n\t\t\t{ __( 'External media' ) }\n\t\t</span>,\n\t];\n\n\tfunction uploadImages() {\n\t\tsetIsUploading( true );\n\t\tPromise.all(\n\t\t\texternalImages.map( ( image ) =>\n\t\t\t\twindow\n\t\t\t\t\t.fetch(\n\t\t\t\t\t\timage.attributes.url.includes( '?' )\n\t\t\t\t\t\t\t? image.attributes.url\n\t\t\t\t\t\t\t: image.attributes.url + '?'\n\t\t\t\t\t)\n\t\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t\t.then(\n\t\t\t\t\t\t( blob ) =>\n\t\t\t\t\t\t\tnew Promise( ( resolve, reject ) => {\n\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\t\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\t\t\t\t\t\t\tif ( isBlobURL( media.url ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tupdateBlockAttributes( image.clientId, {\n\t\t\t\t\t\t\t\t\t\t\tid: media.id,\n\t\t\t\t\t\t\t\t\t\t\turl: media.url,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tonError() {\n\t\t\t\t\t\t\t\t\t\treject();\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t)\n\t\t).finally( () => {\n\t\t\tsetIsUploading( false );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PanelBody initialOpen={ true } title={ panelBodyTitle }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'There are some external images in the post which can be uploaded to the media library. Images coming from different domains may not always display correctly, load slowly for visitors, or be removed unexpectedly.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<div\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\tflexWrap: 'wrap',\n\t\t\t\t\tgap: '8px',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<AnimatePresence>\n\t\t\t\t\t{ externalImages.map( ( image ) => {\n\t\t\t\t\t\treturn <Image key={ image.clientId } { ...image } />;\n\t\t\t\t\t} ) }\n\t\t\t\t</AnimatePresence>\n\t\t\t\t{ isUploading ? (\n\t\t\t\t\t<Spinner />\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ uploadImages }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Upload all' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["PanelBody","Button","Spinner","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","useSelect","useDispatch","__","store","blockEditorStore","useState","isBlobURL","editorStore","flattenBlocks","blocks","result","forEach","block","push","innerBlocks","Image","selectBlock","createElement","img","tabIndex","role","onClick","clientId","onKeyDown","event","key","preventDefault","alt","attributes","src","url","animate","opacity","exit","scale","style","width","height","objectFit","borderRadius","cursor","whileHover","PostFormatPanel","isUploading","setIsUploading","editorBlocks","mediaUpload","select","getEditorBlocks","getSettings","externalImages","filter","name","id","updateBlockAttributes","length","panelBodyTitle","className","uploadImages","Promise","all","map","image","window","fetch","includes","then","response","blob","resolve","reject","filesList","onFileChange","media","onError","finally","initialOpen","title","display","flexWrap","gap","variant"],"sources":["@wordpress/editor/src/components/post-publish-panel/maybe-upload-media.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tButton,\n\tSpinner,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction flattenBlocks( blocks ) {\n\tconst result = [];\n\n\tblocks.forEach( ( block ) => {\n\t\tresult.push( block );\n\t\tresult.push( ...flattenBlocks( block.innerBlocks ) );\n\t} );\n\n\treturn result;\n}\n\nfunction Image( block ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<motion.img\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"button\"\n\t\t\taria-label={ __( 'Select image block.' ) }\n\t\t\tonClick={ () => {\n\t\t\t\tselectBlock( block.clientId );\n\t\t\t} }\n\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\t\t\t\tselectBlock( block.clientId );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} }\n\t\t\tkey={ block.clientId }\n\t\t\talt={ block.attributes.alt }\n\t\t\tsrc={ block.attributes.url }\n\t\t\tanimate={ { opacity: 1 } }\n\t\t\texit={ { opacity: 0, scale: 0 } }\n\t\t\tstyle={ {\n\t\t\t\twidth: '36px',\n\t\t\t\theight: '36px',\n\t\t\t\tobjectFit: 'cover',\n\t\t\t\tborderRadius: '2px',\n\t\t\t\tcursor: 'pointer',\n\t\t\t} }\n\t\t\twhileHover={ { scale: 1.08 } }\n\t\t/>\n\t);\n}\n\nexport default function PostFormatPanel() {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst { editorBlocks, mediaUpload } = useSelect(\n\t\t( select ) => ( {\n\t\t\teditorBlocks: select( editorStore ).getEditorBlocks(),\n\t\t\tmediaUpload: select( blockEditorStore ).getSettings().mediaUpload,\n\t\t} ),\n\t\t[]\n\t);\n\tconst externalImages = flattenBlocks( editorBlocks ).filter(\n\t\t( block ) =>\n\t\t\tblock.name === 'core/image' &&\n\t\t\tblock.attributes.url &&\n\t\t\t! block.attributes.id\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tif ( ! mediaUpload || ! externalImages.length ) {\n\t\treturn null;\n\t}\n\n\tconst panelBodyTitle = [\n\t\t__( 'Suggestion:' ),\n\t\t<span className=\"editor-post-publish-panel__link\" key=\"label\">\n\t\t\t{ __( 'External media' ) }\n\t\t</span>,\n\t];\n\n\tfunction uploadImages() {\n\t\tsetIsUploading( true );\n\t\tPromise.all(\n\t\t\texternalImages.map( ( image ) =>\n\t\t\t\twindow\n\t\t\t\t\t.fetch(\n\t\t\t\t\t\timage.attributes.url.includes( '?' )\n\t\t\t\t\t\t\t? image.attributes.url\n\t\t\t\t\t\t\t: image.attributes.url + '?'\n\t\t\t\t\t)\n\t\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t\t.then(\n\t\t\t\t\t\t( blob ) =>\n\t\t\t\t\t\t\tnew Promise( ( resolve, reject ) => {\n\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\t\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\t\t\t\t\t\t\tif ( isBlobURL( media.url ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tupdateBlockAttributes( image.clientId, {\n\t\t\t\t\t\t\t\t\t\t\tid: media.id,\n\t\t\t\t\t\t\t\t\t\t\turl: media.url,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tonError() {\n\t\t\t\t\t\t\t\t\t\treject();\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t)\n\t\t).finally( () => {\n\t\t\tsetIsUploading( false );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PanelBody initialOpen={ true } title={ panelBodyTitle }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'Upload external images to the Media Library. Images from different domains may load slowly, display incorrectly, or be removed unexpectedly.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<div\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\tflexWrap: 'wrap',\n\t\t\t\t\tgap: '8px',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<AnimatePresence>\n\t\t\t\t\t{ externalImages.map( ( image ) => {\n\t\t\t\t\t\treturn <Image key={ image.clientId } { ...image } />;\n\t\t\t\t\t} ) }\n\t\t\t\t</AnimatePresence>\n\t\t\t\t{ isUploading ? (\n\t\t\t\t\t<Spinner />\n\t\t\t\t) : (\n\t\t\t\t\t<Button variant=\"primary\" onClick={ uploadImages }>\n\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":"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"}
@@ -146,6 +146,7 @@ export default function PostSavedState({
146
146
  }) : undefined,
147
147
  onClick: isDisabled ? undefined : () => savePost(),
148
148
  variant: "tertiary",
149
+ size: "compact",
149
150
  icon: isLargeViewport ? undefined : cloudUpload
150
151
  // Make sure the aria-label has always a value, as the default `text` is undefined on small screens.
151
152
  ,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__unstableGetAnimateClassName","getAnimateClassName","Button","Tooltip","usePrevious","useViewportMatch","useDispatch","useSelect","useEffect","useState","__","Icon","check","cloud","cloudUpload","displayShortcut","store","editorStore","PostSavedState","forceIsDirty","showIconLabels","forceSavedMessage","setForceSavedMessage","isLargeViewport","isAutosaving","isDirty","isNew","isPending","isPublished","isSaveable","isSaving","isScheduled","hasPublishAction","select","_getCurrentPost$_link","isEditedPostNew","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostDirty","isSavingPost","isEditedPostSaveable","getCurrentPost","isAutosavingPost","getEditedPostAttribute","_links","savePost","wasSaving","timeoutId","setTimeout","clearTimeout","label","shortLabel","isSaved","isSavedState","isDisabled","text","buttonAccessibleLabel","tooltipProps","undefined","shortcut","primary","createElement","className","type","onClick","variant","icon"],"sources":["@wordpress/editor/src/components/post-saved-state/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tButton,\n\tTooltip,\n} from '@wordpress/components';\nimport { usePrevious, useViewportMatch } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, check, cloud, cloudUpload } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Component showing whether the post is saved or not and providing save\n * buttons.\n *\n * @param {Object} props Component props.\n * @param {?boolean} props.forceIsDirty Whether to force the post to be marked\n * as dirty.\n * @param {?boolean} props.showIconLabels Whether interface buttons show labels instead of icons\n * @return {import('react').ComponentType} The component.\n */\nexport default function PostSavedState( {\n\tforceIsDirty,\n\tshowIconLabels = false,\n} ) {\n\tconst [ forceSavedMessage, setForceSavedMessage ] = useState( false );\n\tconst isLargeViewport = useViewportMatch( 'small' );\n\n\tconst {\n\t\tisAutosaving,\n\t\tisDirty,\n\t\tisNew,\n\t\tisPending,\n\t\tisPublished,\n\t\tisSaveable,\n\t\tisSaving,\n\t\tisScheduled,\n\t\thasPublishAction,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisEditedPostNew,\n\t\t\t\tisCurrentPostPublished,\n\t\t\t\tisCurrentPostScheduled,\n\t\t\t\tisEditedPostDirty,\n\t\t\t\tisSavingPost,\n\t\t\t\tisEditedPostSaveable,\n\t\t\t\tgetCurrentPost,\n\t\t\t\tisAutosavingPost,\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t} = select( editorStore );\n\n\t\t\treturn {\n\t\t\t\tisAutosaving: isAutosavingPost(),\n\t\t\t\tisDirty: forceIsDirty || isEditedPostDirty(),\n\t\t\t\tisNew: isEditedPostNew(),\n\t\t\t\tisPending: 'pending' === getEditedPostAttribute( 'status' ),\n\t\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\t\tisSaving: isSavingPost(),\n\t\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t\t\thasPublishAction:\n\t\t\t\t\tgetCurrentPost()?._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t};\n\t\t},\n\t\t[ forceIsDirty ]\n\t);\n\n\tconst { savePost } = useDispatch( editorStore );\n\n\tconst wasSaving = usePrevious( isSaving );\n\n\tuseEffect( () => {\n\t\tlet timeoutId;\n\n\t\tif ( wasSaving && ! isSaving ) {\n\t\t\tsetForceSavedMessage( true );\n\t\t\ttimeoutId = setTimeout( () => {\n\t\t\t\tsetForceSavedMessage( false );\n\t\t\t}, 1000 );\n\t\t}\n\n\t\treturn () => clearTimeout( timeoutId );\n\t}, [ isSaving ] );\n\n\t// Once the post has been submitted for review this button\n\t// is not needed for the contributor role.\n\tif ( ! hasPublishAction && isPending ) {\n\t\treturn null;\n\t}\n\n\tif ( isPublished || isScheduled ) {\n\t\treturn null;\n\t}\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst label = isPending ? __( 'Save as pending' ) : __( 'Save draft' );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst shortLabel = __( 'Save' );\n\n\tconst isSaved = forceSavedMessage || ( ! isNew && ! isDirty );\n\tconst isSavedState = isSaving || isSaved;\n\tconst isDisabled = isSaving || isSaved || ! isSaveable;\n\n\tlet text;\n\n\tif ( isSaving ) {\n\t\ttext = isAutosaving ? __( 'Autosaving' ) : __( 'Saving' );\n\t} else if ( isSaved ) {\n\t\ttext = __( 'Saved' );\n\t} else if ( isLargeViewport ) {\n\t\ttext = label;\n\t} else if ( showIconLabels ) {\n\t\ttext = shortLabel;\n\t}\n\n\tconst buttonAccessibleLabel = text || label;\n\n\t/**\n\t * The tooltip needs to be enabled only if the button is not disabled. When\n\t * relying on the internal Button tooltip functionality, this causes the\n\t * resulting `button` element to be always removed and re-added to the DOM,\n\t * causing focus loss. An alternative approach to circumvent the issue\n\t * is not to use the `label` and `shortcut` props on `Button` (which would\n\t * trigger the tooltip), and instead manually wrap the `Button` in a separate\n\t * `Tooltip` component.\n\t */\n\tconst tooltipProps = isDisabled\n\t\t? undefined\n\t\t: {\n\t\t\t\ttext: buttonAccessibleLabel,\n\t\t\t\tshortcut: displayShortcut.primary( 's' ),\n\t\t };\n\n\t// Use common Button instance for all saved states so that focus is not\n\t// lost.\n\treturn (\n\t\t<Tooltip { ...tooltipProps }>\n\t\t\t<Button\n\t\t\t\tclassName={\n\t\t\t\t\tisSaveable || isSaving\n\t\t\t\t\t\t? classnames( {\n\t\t\t\t\t\t\t\t'editor-post-save-draft': ! isSavedState,\n\t\t\t\t\t\t\t\t'editor-post-saved-state': isSavedState,\n\t\t\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t\t\t\t'is-autosaving': isAutosaving,\n\t\t\t\t\t\t\t\t'is-saved': isSaved,\n\t\t\t\t\t\t\t\t[ getAnimateClassName( {\n\t\t\t\t\t\t\t\t\ttype: 'loading',\n\t\t\t\t\t\t\t\t} ) ]: isSaving,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tonClick={ isDisabled ? undefined : () => savePost() }\n\t\t\t\tvariant=\"tertiary\"\n\t\t\t\ticon={ isLargeViewport ? undefined : cloudUpload }\n\t\t\t\t// Make sure the aria-label has always a value, as the default `text` is undefined on small screens.\n\t\t\t\taria-label={ buttonAccessibleLabel }\n\t\t\t\taria-disabled={ isDisabled }\n\t\t\t>\n\t\t\t\t{ isSavedState && <Icon icon={ isSaved ? check : cloud } /> }\n\t\t\t\t{ text }\n\t\t\t</Button>\n\t\t</Tooltip>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","__unstableGetAnimateClassName","getAnimateClassName","Button","Tooltip","usePrevious","useViewportMatch","useDispatch","useSelect","useEffect","useState","__","Icon","check","cloud","cloudUpload","displayShortcut","store","editorStore","PostSavedState","forceIsDirty","showIconLabels","forceSavedMessage","setForceSavedMessage","isLargeViewport","isAutosaving","isDirty","isNew","isPending","isPublished","isSaveable","isSaving","isScheduled","hasPublishAction","select","_getCurrentPost$_link","isEditedPostNew","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostDirty","isSavingPost","isEditedPostSaveable","getCurrentPost","isAutosavingPost","getEditedPostAttribute","_links","savePost","wasSaving","timeoutId","setTimeout","clearTimeout","label","shortLabel","isSaved","isSavedState","isDisabled","text","buttonAccessibleLabel","tooltipProps","undefined","shortcut","primary","createElement","className","type","onClick","variant","size","icon"],"sources":["@wordpress/editor/src/components/post-saved-state/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tButton,\n\tTooltip,\n} from '@wordpress/components';\nimport { usePrevious, useViewportMatch } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, check, cloud, cloudUpload } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Component showing whether the post is saved or not and providing save\n * buttons.\n *\n * @param {Object} props Component props.\n * @param {?boolean} props.forceIsDirty Whether to force the post to be marked\n * as dirty.\n * @param {?boolean} props.showIconLabels Whether interface buttons show labels instead of icons\n * @return {import('react').ComponentType} The component.\n */\nexport default function PostSavedState( {\n\tforceIsDirty,\n\tshowIconLabels = false,\n} ) {\n\tconst [ forceSavedMessage, setForceSavedMessage ] = useState( false );\n\tconst isLargeViewport = useViewportMatch( 'small' );\n\n\tconst {\n\t\tisAutosaving,\n\t\tisDirty,\n\t\tisNew,\n\t\tisPending,\n\t\tisPublished,\n\t\tisSaveable,\n\t\tisSaving,\n\t\tisScheduled,\n\t\thasPublishAction,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisEditedPostNew,\n\t\t\t\tisCurrentPostPublished,\n\t\t\t\tisCurrentPostScheduled,\n\t\t\t\tisEditedPostDirty,\n\t\t\t\tisSavingPost,\n\t\t\t\tisEditedPostSaveable,\n\t\t\t\tgetCurrentPost,\n\t\t\t\tisAutosavingPost,\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t} = select( editorStore );\n\n\t\t\treturn {\n\t\t\t\tisAutosaving: isAutosavingPost(),\n\t\t\t\tisDirty: forceIsDirty || isEditedPostDirty(),\n\t\t\t\tisNew: isEditedPostNew(),\n\t\t\t\tisPending: 'pending' === getEditedPostAttribute( 'status' ),\n\t\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\t\tisSaving: isSavingPost(),\n\t\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t\t\thasPublishAction:\n\t\t\t\t\tgetCurrentPost()?._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t};\n\t\t},\n\t\t[ forceIsDirty ]\n\t);\n\n\tconst { savePost } = useDispatch( editorStore );\n\n\tconst wasSaving = usePrevious( isSaving );\n\n\tuseEffect( () => {\n\t\tlet timeoutId;\n\n\t\tif ( wasSaving && ! isSaving ) {\n\t\t\tsetForceSavedMessage( true );\n\t\t\ttimeoutId = setTimeout( () => {\n\t\t\t\tsetForceSavedMessage( false );\n\t\t\t}, 1000 );\n\t\t}\n\n\t\treturn () => clearTimeout( timeoutId );\n\t}, [ isSaving ] );\n\n\t// Once the post has been submitted for review this button\n\t// is not needed for the contributor role.\n\tif ( ! hasPublishAction && isPending ) {\n\t\treturn null;\n\t}\n\n\tif ( isPublished || isScheduled ) {\n\t\treturn null;\n\t}\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst label = isPending ? __( 'Save as pending' ) : __( 'Save draft' );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst shortLabel = __( 'Save' );\n\n\tconst isSaved = forceSavedMessage || ( ! isNew && ! isDirty );\n\tconst isSavedState = isSaving || isSaved;\n\tconst isDisabled = isSaving || isSaved || ! isSaveable;\n\n\tlet text;\n\n\tif ( isSaving ) {\n\t\ttext = isAutosaving ? __( 'Autosaving' ) : __( 'Saving' );\n\t} else if ( isSaved ) {\n\t\ttext = __( 'Saved' );\n\t} else if ( isLargeViewport ) {\n\t\ttext = label;\n\t} else if ( showIconLabels ) {\n\t\ttext = shortLabel;\n\t}\n\n\tconst buttonAccessibleLabel = text || label;\n\n\t/**\n\t * The tooltip needs to be enabled only if the button is not disabled. When\n\t * relying on the internal Button tooltip functionality, this causes the\n\t * resulting `button` element to be always removed and re-added to the DOM,\n\t * causing focus loss. An alternative approach to circumvent the issue\n\t * is not to use the `label` and `shortcut` props on `Button` (which would\n\t * trigger the tooltip), and instead manually wrap the `Button` in a separate\n\t * `Tooltip` component.\n\t */\n\tconst tooltipProps = isDisabled\n\t\t? undefined\n\t\t: {\n\t\t\t\ttext: buttonAccessibleLabel,\n\t\t\t\tshortcut: displayShortcut.primary( 's' ),\n\t\t };\n\n\t// Use common Button instance for all saved states so that focus is not\n\t// lost.\n\treturn (\n\t\t<Tooltip { ...tooltipProps }>\n\t\t\t<Button\n\t\t\t\tclassName={\n\t\t\t\t\tisSaveable || isSaving\n\t\t\t\t\t\t? classnames( {\n\t\t\t\t\t\t\t\t'editor-post-save-draft': ! isSavedState,\n\t\t\t\t\t\t\t\t'editor-post-saved-state': isSavedState,\n\t\t\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t\t\t\t'is-autosaving': isAutosaving,\n\t\t\t\t\t\t\t\t'is-saved': isSaved,\n\t\t\t\t\t\t\t\t[ getAnimateClassName( {\n\t\t\t\t\t\t\t\t\ttype: 'loading',\n\t\t\t\t\t\t\t\t} ) ]: isSaving,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tonClick={ isDisabled ? undefined : () => savePost() }\n\t\t\t\tvariant=\"tertiary\"\n\t\t\t\tsize=\"compact\"\n\t\t\t\ticon={ isLargeViewport ? undefined : cloudUpload }\n\t\t\t\t// Make sure the aria-label has always a value, as the default `text` is undefined on small screens.\n\t\t\t\taria-label={ buttonAccessibleLabel }\n\t\t\t\taria-disabled={ isDisabled }\n\t\t\t>\n\t\t\t\t{ isSavedState && <Icon icon={ isSaved ? check : cloud } /> }\n\t\t\t\t{ text }\n\t\t\t</Button>\n\t\t</Tooltip>\n\t);\n}\n"],"mappings":"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"}
@@ -46,7 +46,7 @@ export default function PostSchedulePanel() {
46
46
  // translators: %s: Current post date.
47
47
  __('Change date: %s'), label),
48
48
  label: fullLabel,
49
- showTooltip: true,
49
+ showTooltip: label !== fullLabel,
50
50
  "aria-expanded": isOpen
51
51
  }, label),
52
52
  renderContent: ({
@@ -1 +1 @@
1
- {"version":3,"names":["Button","Dropdown","__","sprintf","useState","useMemo","PostScheduleCheck","PostScheduleForm","usePostScheduleLabel","PostPanelRow","PostSchedulePanel","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","label","fullLabel","full","createElement","ref","focusOnMount","className","contentClassName","renderToggle","onToggle","isOpen","variant","onClick","showTooltip","renderContent","onClose"],"sources":["@wordpress/editor/src/components/post-schedule/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Dropdown } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PostScheduleCheck from './check';\nimport PostScheduleForm from './index';\nimport { usePostScheduleLabel } from './label';\nimport PostPanelRow from '../post-panel-row';\n\nexport default function PostSchedulePanel() {\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': __( 'Change publish date' ),\n\t\t\tplacement: 'bottom-end',\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst label = usePostScheduleLabel();\n\tconst fullLabel = usePostScheduleLabel( { full: true } );\n\n\treturn (\n\t\t<PostScheduleCheck>\n\t\t\t<PostPanelRow label={ __( 'Publish' ) } ref={ setPopoverAnchor }>\n\t\t\t\t<Dropdown\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\tclassName=\"editor-post-schedule__panel-dropdown\"\n\t\t\t\t\tcontentClassName=\"editor-post-schedule__dialog\"\n\t\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"editor-post-schedule__dialog-toggle\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Current post date.\n\t\t\t\t\t\t\t\t__( 'Change date: %s' ),\n\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tlabel={ fullLabel }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<PostScheduleForm onClose={ onClose } />\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PostPanelRow>\n\t\t</PostScheduleCheck>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,MAAM,EAAEC,QAAQ,QAAQ,uBAAuB;AACxD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,QAAQ,EAAEC,OAAO,QAAQ,oBAAoB;;AAEtD;AACA;AACA;AACA,OAAOC,iBAAiB,MAAM,SAAS;AACvC,OAAOC,gBAAgB,MAAM,SAAS;AACtC,SAASC,oBAAoB,QAAQ,SAAS;AAC9C,OAAOC,YAAY,MAAM,mBAAmB;AAE5C,eAAe,SAASC,iBAAiBA,CAAA,EAAG;EAC3C,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGR,QAAQ,CAAE,IAAK,CAAC;EAC5D;EACA,MAAMS,YAAY,GAAGR,OAAO,CAC3B,OAAQ;IACP;IACA;IACAS,MAAM,EAAEH,aAAa;IACrB,YAAY,EAAET,EAAE,CAAE,qBAAsB,CAAC;IACzCa,SAAS,EAAE;EACZ,CAAC,CAAE,EACH,CAAEJ,aAAa,CAChB,CAAC;EAED,MAAMK,KAAK,GAAGR,oBAAoB,CAAC,CAAC;EACpC,MAAMS,SAAS,GAAGT,oBAAoB,CAAE;IAAEU,IAAI,EAAE;EAAK,CAAE,CAAC;EAExD,OACCC,aAAA,CAACb,iBAAiB,QACjBa,aAAA,CAACV,YAAY;IAACO,KAAK,EAAGd,EAAE,CAAE,SAAU,CAAG;IAACkB,GAAG,EAAGR;EAAkB,GAC/DO,aAAA,CAAClB,QAAQ;IACRY,YAAY,EAAGA,YAAc;IAC7BQ,YAAY;IACZC,SAAS,EAAC,sCAAsC;IAChDC,gBAAgB,EAAC,8BAA8B;IAC/CC,YAAY,EAAGA,CAAE;MAAEC,QAAQ;MAAEC;IAAO,CAAC,KACpCP,aAAA,CAACnB,MAAM;MACNsB,SAAS,EAAC,qCAAqC;MAC/CK,OAAO,EAAC,UAAU;MAClBC,OAAO,EAAGH,QAAU;MACpB,cAAatB,OAAO;MACnB;MACAD,EAAE,CAAE,iBAAkB,CAAC,EACvBc,KACD,CAAG;MACHA,KAAK,EAAGC,SAAW;MACnBY,WAAW;MACX,iBAAgBH;IAAQ,GAEtBV,KACK,CACN;IACHc,aAAa,EAAGA,CAAE;MAAEC;IAAQ,CAAC,KAC5BZ,aAAA,CAACZ,gBAAgB;MAACwB,OAAO,EAAGA;IAAS,CAAE;EACrC,CACH,CACY,CACI,CAAC;AAEtB"}
1
+ {"version":3,"names":["Button","Dropdown","__","sprintf","useState","useMemo","PostScheduleCheck","PostScheduleForm","usePostScheduleLabel","PostPanelRow","PostSchedulePanel","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","label","fullLabel","full","createElement","ref","focusOnMount","className","contentClassName","renderToggle","onToggle","isOpen","variant","onClick","showTooltip","renderContent","onClose"],"sources":["@wordpress/editor/src/components/post-schedule/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Dropdown } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PostScheduleCheck from './check';\nimport PostScheduleForm from './index';\nimport { usePostScheduleLabel } from './label';\nimport PostPanelRow from '../post-panel-row';\n\nexport default function PostSchedulePanel() {\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': __( 'Change publish date' ),\n\t\t\tplacement: 'bottom-end',\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst label = usePostScheduleLabel();\n\tconst fullLabel = usePostScheduleLabel( { full: true } );\n\n\treturn (\n\t\t<PostScheduleCheck>\n\t\t\t<PostPanelRow label={ __( 'Publish' ) } ref={ setPopoverAnchor }>\n\t\t\t\t<Dropdown\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\tclassName=\"editor-post-schedule__panel-dropdown\"\n\t\t\t\t\tcontentClassName=\"editor-post-schedule__dialog\"\n\t\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"editor-post-schedule__dialog-toggle\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Current post date.\n\t\t\t\t\t\t\t\t__( 'Change date: %s' ),\n\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tlabel={ fullLabel }\n\t\t\t\t\t\t\tshowTooltip={ label !== fullLabel }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<PostScheduleForm onClose={ onClose } />\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PostPanelRow>\n\t\t</PostScheduleCheck>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,MAAM,EAAEC,QAAQ,QAAQ,uBAAuB;AACxD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,QAAQ,EAAEC,OAAO,QAAQ,oBAAoB;;AAEtD;AACA;AACA;AACA,OAAOC,iBAAiB,MAAM,SAAS;AACvC,OAAOC,gBAAgB,MAAM,SAAS;AACtC,SAASC,oBAAoB,QAAQ,SAAS;AAC9C,OAAOC,YAAY,MAAM,mBAAmB;AAE5C,eAAe,SAASC,iBAAiBA,CAAA,EAAG;EAC3C,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGR,QAAQ,CAAE,IAAK,CAAC;EAC5D;EACA,MAAMS,YAAY,GAAGR,OAAO,CAC3B,OAAQ;IACP;IACA;IACAS,MAAM,EAAEH,aAAa;IACrB,YAAY,EAAET,EAAE,CAAE,qBAAsB,CAAC;IACzCa,SAAS,EAAE;EACZ,CAAC,CAAE,EACH,CAAEJ,aAAa,CAChB,CAAC;EAED,MAAMK,KAAK,GAAGR,oBAAoB,CAAC,CAAC;EACpC,MAAMS,SAAS,GAAGT,oBAAoB,CAAE;IAAEU,IAAI,EAAE;EAAK,CAAE,CAAC;EAExD,OACCC,aAAA,CAACb,iBAAiB,QACjBa,aAAA,CAACV,YAAY;IAACO,KAAK,EAAGd,EAAE,CAAE,SAAU,CAAG;IAACkB,GAAG,EAAGR;EAAkB,GAC/DO,aAAA,CAAClB,QAAQ;IACRY,YAAY,EAAGA,YAAc;IAC7BQ,YAAY;IACZC,SAAS,EAAC,sCAAsC;IAChDC,gBAAgB,EAAC,8BAA8B;IAC/CC,YAAY,EAAGA,CAAE;MAAEC,QAAQ;MAAEC;IAAO,CAAC,KACpCP,aAAA,CAACnB,MAAM;MACNsB,SAAS,EAAC,qCAAqC;MAC/CK,OAAO,EAAC,UAAU;MAClBC,OAAO,EAAGH,QAAU;MACpB,cAAatB,OAAO;MACnB;MACAD,EAAE,CAAE,iBAAkB,CAAC,EACvBc,KACD,CAAG;MACHA,KAAK,EAAGC,SAAW;MACnBY,WAAW,EAAGb,KAAK,KAAKC,SAAW;MACnC,iBAAgBS;IAAQ,GAEtBV,KACK,CACN;IACHc,aAAa,EAAGA,CAAE;MAAEC;IAAQ,CAAC,KAC5BZ,aAAA,CAACZ,gBAAgB;MAACwB,OAAO,EAAGA;IAAS,CAAE;EACrC,CACH,CACY,CACI,CAAC;AAEtB"}
@@ -0,0 +1,91 @@
1
+ import { createElement, Fragment } from "react";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { useSelect, useDispatch } from '@wordpress/data';
6
+ import { decodeEntities } from '@wordpress/html-entities';
7
+ import { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';
8
+ import { __ } from '@wordpress/i18n';
9
+ import { useEntityRecord } from '@wordpress/core-data';
10
+ import { check } from '@wordpress/icons';
11
+ import { store as noticesStore } from '@wordpress/notices';
12
+
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+ import { store as editorStore } from '../../store';
17
+ import SwapTemplateButton from './swap-template-button';
18
+ import ResetDefaultTemplate from './reset-default-template';
19
+ import { unlock } from '../../lock-unlock';
20
+ import CreateNewTemplate from './create-new-template';
21
+ const POPOVER_PROPS = {
22
+ className: 'editor-post-template__dropdown',
23
+ placement: 'bottom-start'
24
+ };
25
+ export default function BlockThemeControl({
26
+ id
27
+ }) {
28
+ const {
29
+ isTemplateHidden
30
+ } = useSelect(select => {
31
+ const {
32
+ getRenderingMode
33
+ } = unlock(select(editorStore));
34
+ return {
35
+ isTemplateHidden: getRenderingMode() === 'post-only'
36
+ };
37
+ }, []);
38
+ const {
39
+ editedRecord: template,
40
+ hasResolved
41
+ } = useEntityRecord('postType', 'wp_template', id);
42
+ const {
43
+ getEditorSettings
44
+ } = useSelect(editorStore);
45
+ const {
46
+ createSuccessNotice
47
+ } = useDispatch(noticesStore);
48
+ const {
49
+ setRenderingMode
50
+ } = useDispatch(editorStore);
51
+ if (!hasResolved) {
52
+ return null;
53
+ }
54
+ return createElement(DropdownMenu, {
55
+ popoverProps: POPOVER_PROPS,
56
+ focusOnMount: true,
57
+ toggleProps: {
58
+ variant: 'tertiary'
59
+ },
60
+ label: __('Template options'),
61
+ text: decodeEntities(template.title),
62
+ icon: null
63
+ }, ({
64
+ onClose
65
+ }) => createElement(Fragment, null, createElement(MenuGroup, null, createElement(MenuItem, {
66
+ onClick: () => {
67
+ setRenderingMode('template-only');
68
+ onClose();
69
+ createSuccessNotice(__('Editing template. Changes made here affect all posts and pages that use the template.'), {
70
+ type: 'snackbar',
71
+ actions: [{
72
+ label: __('Go back'),
73
+ onClick: () => setRenderingMode(getEditorSettings().defaultRenderingMode)
74
+ }]
75
+ });
76
+ }
77
+ }, __('Edit template')), createElement(SwapTemplateButton, {
78
+ onClick: onClose
79
+ }), createElement(ResetDefaultTemplate, {
80
+ onClick: onClose
81
+ }), createElement(CreateNewTemplate, {
82
+ onClick: onClose
83
+ })), createElement(MenuGroup, null, createElement(MenuItem, {
84
+ icon: !isTemplateHidden ? check : undefined,
85
+ isPressed: !isTemplateHidden,
86
+ onClick: () => {
87
+ setRenderingMode(isTemplateHidden ? 'template-locked' : 'post-only');
88
+ }
89
+ }, __('Template preview')))));
90
+ }
91
+ //# sourceMappingURL=block-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSelect","useDispatch","decodeEntities","DropdownMenu","MenuGroup","MenuItem","__","useEntityRecord","check","store","noticesStore","editorStore","SwapTemplateButton","ResetDefaultTemplate","unlock","CreateNewTemplate","POPOVER_PROPS","className","placement","BlockThemeControl","id","isTemplateHidden","select","getRenderingMode","editedRecord","template","hasResolved","getEditorSettings","createSuccessNotice","setRenderingMode","createElement","popoverProps","focusOnMount","toggleProps","variant","label","text","title","icon","onClose","Fragment","onClick","type","actions","defaultRenderingMode","undefined","isPressed"],"sources":["@wordpress/editor/src/components/post-template/block-theme.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecord } from '@wordpress/core-data';\nimport { check } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport SwapTemplateButton from './swap-template-button';\nimport ResetDefaultTemplate from './reset-default-template';\nimport { unlock } from '../../lock-unlock';\nimport CreateNewTemplate from './create-new-template';\n\nconst POPOVER_PROPS = {\n\tclassName: 'editor-post-template__dropdown',\n\tplacement: 'bottom-start',\n};\n\nexport default function BlockThemeControl( { id } ) {\n\tconst { isTemplateHidden } = useSelect( ( select ) => {\n\t\tconst { getRenderingMode } = unlock( select( editorStore ) );\n\t\treturn {\n\t\t\tisTemplateHidden: getRenderingMode() === 'post-only',\n\t\t};\n\t}, [] );\n\tconst { editedRecord: template, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_template',\n\t\tid\n\t);\n\tconst { getEditorSettings } = useSelect( editorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { setRenderingMode } = useDispatch( editorStore );\n\n\tif ( ! hasResolved ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tfocusOnMount\n\t\t\ttoggleProps={ {\n\t\t\t\tvariant: 'tertiary',\n\t\t\t} }\n\t\t\tlabel={ __( 'Template options' ) }\n\t\t\ttext={ decodeEntities( template.title ) }\n\t\t\ticon={ null }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetRenderingMode( 'template-only' );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'Editing template. Changes made here affect all posts and pages that use the template.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: __( 'Go back' ),\n\t\t\t\t\t\t\t\t\t\t\t\tonClick: () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetRenderingMode(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgetEditorSettings()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.defaultRenderingMode\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Edit template' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<SwapTemplateButton onClick={ onClose } />\n\t\t\t\t\t\t<ResetDefaultTemplate onClick={ onClose } />\n\t\t\t\t\t\t<CreateNewTemplate onClick={ onClose } />\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ ! isTemplateHidden ? check : undefined }\n\t\t\t\t\t\t\tisPressed={ ! isTemplateHidden }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetRenderingMode(\n\t\t\t\t\t\t\t\t\tisTemplateHidden\n\t\t\t\t\t\t\t\t\t\t? 'template-locked'\n\t\t\t\t\t\t\t\t\t\t: 'post-only'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Template preview' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { __ } from '@wordpress/i18n';
6
+ import { SelectControl, Dropdown, Button, Notice } from '@wordpress/components';
7
+ import { useSelect, useDispatch } from '@wordpress/data';
8
+ import { store as coreStore } from '@wordpress/core-data';
9
+ import { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';
10
+ import { useState, useMemo } from '@wordpress/element';
11
+ import { addTemplate } from '@wordpress/icons';
12
+ import { store as noticesStore } from '@wordpress/notices';
13
+
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+ import { store as editorStore } from '../../store';
18
+ import CreateNewTemplateModal from './create-new-template-modal';
19
+ import { useAllowSwitchingTemplates } from './hooks';
20
+ const POPOVER_PROPS = {
21
+ className: 'editor-post-template__dropdown',
22
+ placement: 'bottom-start'
23
+ };
24
+ function PostTemplateToggle({
25
+ isOpen,
26
+ onClick
27
+ }) {
28
+ const templateTitle = useSelect(select => {
29
+ const templateSlug = select(editorStore).getEditedPostAttribute('template');
30
+ const {
31
+ supportsTemplateMode,
32
+ availableTemplates
33
+ } = select(editorStore).getEditorSettings();
34
+ if (!supportsTemplateMode && availableTemplates[templateSlug]) {
35
+ return availableTemplates[templateSlug];
36
+ }
37
+ const template = select(coreStore).canUser('create', 'templates') && select(editorStore).getCurrentTemplateId();
38
+ return template?.title || template?.slug || availableTemplates?.[templateSlug];
39
+ }, []);
40
+ return createElement(Button, {
41
+ className: "edit-post-post-template__toggle",
42
+ variant: "tertiary",
43
+ "aria-expanded": isOpen,
44
+ "aria-label": __('Template options'),
45
+ onClick: onClick
46
+ }, templateTitle !== null && templateTitle !== void 0 ? templateTitle : __('Default template'));
47
+ }
48
+ function PostTemplateDropdownContent({
49
+ onClose
50
+ }) {
51
+ var _options$find, _selectedOption$value;
52
+ const allowSwitchingTemplate = useAllowSwitchingTemplates();
53
+ const {
54
+ availableTemplates,
55
+ fetchedTemplates,
56
+ selectedTemplateSlug,
57
+ canCreate,
58
+ canEdit
59
+ } = useSelect(select => {
60
+ const {
61
+ canUser,
62
+ getEntityRecords
63
+ } = select(coreStore);
64
+ const editorSettings = select(editorStore).getEditorSettings();
65
+ const canCreateTemplates = canUser('create', 'templates');
66
+ return {
67
+ availableTemplates: editorSettings.availableTemplates,
68
+ fetchedTemplates: canCreateTemplates ? getEntityRecords('postType', 'wp_template', {
69
+ post_type: select(editorStore).getCurrentPostType(),
70
+ per_page: -1
71
+ }) : undefined,
72
+ selectedTemplateSlug: select(editorStore).getEditedPostAttribute('template'),
73
+ canCreate: allowSwitchingTemplate && canCreateTemplates && editorSettings.supportsTemplateMode,
74
+ canEdit: allowSwitchingTemplate && canCreateTemplates && editorSettings.supportsTemplateMode && !!select(editorStore).getCurrentTemplateId()
75
+ };
76
+ }, [allowSwitchingTemplate]);
77
+ const options = useMemo(() => Object.entries({
78
+ ...availableTemplates,
79
+ ...Object.fromEntries((fetchedTemplates !== null && fetchedTemplates !== void 0 ? fetchedTemplates : []).map(({
80
+ slug,
81
+ title
82
+ }) => [slug, title.rendered]))
83
+ }).map(([slug, title]) => ({
84
+ value: slug,
85
+ label: title
86
+ })), [availableTemplates, fetchedTemplates]);
87
+ const selectedOption = (_options$find = options.find(option => option.value === selectedTemplateSlug)) !== null && _options$find !== void 0 ? _options$find : options.find(option => !option.value); // The default option has '' value.
88
+
89
+ const {
90
+ editPost
91
+ } = useDispatch(editorStore);
92
+ const {
93
+ getEditorSettings
94
+ } = useSelect(editorStore);
95
+ const {
96
+ createSuccessNotice
97
+ } = useDispatch(noticesStore);
98
+ const {
99
+ setRenderingMode
100
+ } = useDispatch(editorStore);
101
+ const [isCreateModalOpen, setIsCreateModalOpen] = useState(false);
102
+ return createElement("div", {
103
+ className: "editor-post-template__classic-theme-dropdown"
104
+ }, createElement(InspectorPopoverHeader, {
105
+ title: __('Template'),
106
+ help: __('Templates define the way content is displayed when viewing your site.'),
107
+ actions: canCreate ? [{
108
+ icon: addTemplate,
109
+ label: __('Add template'),
110
+ onClick: () => setIsCreateModalOpen(true)
111
+ }] : [],
112
+ onClose: onClose
113
+ }), !allowSwitchingTemplate ? createElement(Notice, {
114
+ status: "warning",
115
+ isDismissible: false
116
+ }, __('The posts page template cannot be changed.')) : createElement(SelectControl, {
117
+ __next40pxDefaultSize: true,
118
+ __nextHasNoMarginBottom: true,
119
+ hideLabelFromVision: true,
120
+ label: __('Template'),
121
+ value: (_selectedOption$value = selectedOption?.value) !== null && _selectedOption$value !== void 0 ? _selectedOption$value : '',
122
+ options: options,
123
+ onChange: slug => editPost({
124
+ template: slug || ''
125
+ })
126
+ }), canEdit && createElement("p", null, createElement(Button, {
127
+ variant: "link",
128
+ onClick: () => {
129
+ setRenderingMode('template-only');
130
+ onClose();
131
+ createSuccessNotice(__('Editing template. Changes made here affect all posts and pages that use the template.'), {
132
+ type: 'snackbar',
133
+ actions: [{
134
+ label: __('Go back'),
135
+ onClick: () => setRenderingMode(getEditorSettings().defaultRenderingMode)
136
+ }]
137
+ });
138
+ }
139
+ }, __('Edit template'))), isCreateModalOpen && createElement(CreateNewTemplateModal, {
140
+ onClose: () => setIsCreateModalOpen(false)
141
+ }));
142
+ }
143
+ function ClassicThemeControl() {
144
+ return createElement(Dropdown, {
145
+ popoverProps: POPOVER_PROPS,
146
+ focusOnMount: true,
147
+ renderToggle: ({
148
+ isOpen,
149
+ onToggle
150
+ }) => createElement(PostTemplateToggle, {
151
+ isOpen: isOpen,
152
+ onClick: onToggle
153
+ }),
154
+ renderContent: ({
155
+ onClose
156
+ }) => createElement(PostTemplateDropdownContent, {
157
+ onClose: onClose
158
+ })
159
+ });
160
+ }
161
+ export default ClassicThemeControl;
162
+ //# sourceMappingURL=classic-theme.js.map