@wordpress/editor 13.32.0 → 13.34.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 (733) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +355 -20
  3. package/build/bindings/index.js.map +1 -1
  4. package/build/bindings/pattern-overrides.js.map +1 -1
  5. package/build/bindings/post-meta.js +12 -30
  6. package/build/bindings/post-meta.js.map +1 -1
  7. package/build/components/autocompleters/index.js.map +1 -1
  8. package/build/components/autocompleters/user.js.map +1 -1
  9. package/build/components/autosave-monitor/index.js +24 -11
  10. package/build/components/autosave-monitor/index.js.map +1 -1
  11. package/build/components/block-manager/category.js.map +1 -1
  12. package/build/components/block-manager/checklist.js.map +1 -1
  13. package/build/components/block-manager/index.js.map +1 -1
  14. package/build/components/block-removal-warnings/index.js.map +1 -1
  15. package/build/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
  16. package/build/components/character-count/index.js +5 -0
  17. package/build/components/character-count/index.js.map +1 -1
  18. package/build/components/collapsible-block-toolbar/index.js +73 -0
  19. package/build/components/collapsible-block-toolbar/index.js.map +1 -0
  20. package/build/components/commands/index.js +19 -0
  21. package/build/components/commands/index.js.map +1 -1
  22. package/build/components/commands/index.native.js.map +1 -1
  23. package/build/components/deprecated.js.map +1 -1
  24. package/build/components/deprecated.native.js.map +1 -1
  25. package/build/components/document-bar/index.js.map +1 -1
  26. package/build/components/document-outline/check.js +8 -0
  27. package/build/components/document-outline/check.js.map +1 -1
  28. package/build/components/document-outline/index.js +11 -0
  29. package/build/components/document-outline/index.js.map +1 -1
  30. package/build/components/document-outline/item.js.map +1 -1
  31. package/build/components/document-tools/index.js +1 -8
  32. package/build/components/document-tools/index.js.map +1 -1
  33. package/build/components/editor-canvas/edit-template-blocks-notification.js +13 -2
  34. package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
  35. package/build/components/editor-canvas/index.js +2 -2
  36. package/build/components/editor-canvas/index.js.map +1 -1
  37. package/build/components/editor-help/add-blocks.native.js.map +1 -1
  38. package/build/components/editor-help/customize-blocks.native.js.map +1 -1
  39. package/build/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  40. package/build/components/editor-help/help-get-support-button.native.js.map +1 -1
  41. package/build/components/editor-help/help-section-title.native.js.map +1 -1
  42. package/build/components/editor-help/help-topic-row.native.js.map +1 -1
  43. package/build/components/editor-help/icon-move-blocks.native.js.map +1 -1
  44. package/build/components/editor-help/index.native.js.map +1 -1
  45. package/build/components/editor-help/intro-to-blocks.native.js.map +1 -1
  46. package/build/components/editor-help/move-blocks.native.js.map +1 -1
  47. package/build/components/editor-help/remove-blocks.native.js.map +1 -1
  48. package/build/components/editor-help/view-sections.native.js.map +1 -1
  49. package/build/components/editor-history/redo.js +11 -0
  50. package/build/components/editor-history/redo.js.map +1 -1
  51. package/build/components/editor-history/undo.js +11 -0
  52. package/build/components/editor-history/undo.js.map +1 -1
  53. package/build/components/editor-notices/index.js.map +1 -1
  54. package/build/components/editor-snackbars/index.js +6 -0
  55. package/build/components/editor-snackbars/index.js.map +1 -1
  56. package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
  57. package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
  58. package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  59. package/build/components/entities-saved-states/index.js.map +1 -1
  60. package/build/components/error-boundary/index.js.map +1 -1
  61. package/build/components/error-boundary/index.native.js.map +1 -1
  62. package/build/components/global-keyboard-shortcuts/index.js +31 -0
  63. package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
  64. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +52 -0
  65. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  66. package/build/components/index.js +33 -1
  67. package/build/components/index.js.map +1 -1
  68. package/build/components/index.native.js.map +1 -1
  69. package/build/components/inserter-sidebar/index.js +1 -4
  70. package/build/components/inserter-sidebar/index.js.map +1 -1
  71. package/build/components/keyboard-shortcut-help-modal/config.js +82 -0
  72. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -0
  73. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +49 -0
  74. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -0
  75. package/build/components/keyboard-shortcut-help-modal/index.js +126 -0
  76. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -0
  77. package/build/components/keyboard-shortcut-help-modal/shortcut.js +55 -0
  78. package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -0
  79. package/build/components/list-view-sidebar/index.js +1 -1
  80. package/build/components/list-view-sidebar/index.js.map +1 -1
  81. package/build/components/list-view-sidebar/list-view-outline.js.map +1 -1
  82. package/build/components/local-autosave-monitor/index.js.map +1 -1
  83. package/build/components/media-categories/index.js.map +1 -1
  84. package/build/components/mode-switcher/index.js.map +1 -1
  85. package/build/components/more-menu/copy-content-menu-item.js +59 -0
  86. package/build/components/more-menu/copy-content-menu-item.js.map +1 -0
  87. package/build/components/more-menu/index.js +119 -0
  88. package/build/components/more-menu/index.js.map +1 -0
  89. package/build/components/more-menu/tools-more-menu-group.js +23 -0
  90. package/build/components/more-menu/tools-more-menu-group.js.map +1 -0
  91. package/build/components/more-menu/view-more-menu-group.js +24 -0
  92. package/build/components/more-menu/view-more-menu-group.js.map +1 -0
  93. package/build/components/offline-status/index.native.js.map +1 -1
  94. package/build/components/page-attributes/check.js +8 -0
  95. package/build/components/page-attributes/check.js.map +1 -1
  96. package/build/components/page-attributes/order.js +7 -0
  97. package/build/components/page-attributes/order.js.map +1 -1
  98. package/build/components/page-attributes/panel.js +14 -8
  99. package/build/components/page-attributes/panel.js.map +1 -1
  100. package/build/components/page-attributes/parent.js +7 -0
  101. package/build/components/page-attributes/parent.js.map +1 -1
  102. package/build/components/pattern-overrides-panel/index.js.map +1 -1
  103. package/build/components/plugin-document-setting-panel/index.js.map +1 -1
  104. package/build/components/plugin-more-menu-item/index.js +78 -0
  105. package/build/components/plugin-more-menu-item/index.js.map +1 -0
  106. package/build/components/plugin-post-publish-panel/index.js +1 -1
  107. package/build/components/plugin-post-publish-panel/index.js.map +1 -1
  108. package/build/components/plugin-post-status-info/index.js +73 -0
  109. package/build/components/plugin-post-status-info/index.js.map +1 -0
  110. package/build/components/plugin-pre-publish-panel/index.js +1 -1
  111. package/build/components/plugin-pre-publish-panel/index.js.map +1 -1
  112. package/build/components/plugin-sidebar/index.js +108 -0
  113. package/build/components/plugin-sidebar/index.js.map +1 -0
  114. package/build/components/plugin-sidebar-more-menu-item/index.js +71 -0
  115. package/build/components/plugin-sidebar-more-menu-item/index.js.map +1 -0
  116. package/build/components/post-actions/actions.js +316 -20
  117. package/build/components/post-actions/actions.js.map +1 -1
  118. package/build/components/post-actions/index.js +160 -0
  119. package/build/components/post-actions/index.js.map +1 -0
  120. package/build/components/post-author/check.js +9 -0
  121. package/build/components/post-author/check.js.map +1 -1
  122. package/build/components/post-author/combobox.js.map +1 -1
  123. package/build/components/post-author/constants.js.map +1 -1
  124. package/build/components/post-author/hook.js.map +1 -1
  125. package/build/components/post-author/index.js +6 -0
  126. package/build/components/post-author/index.js.map +1 -1
  127. package/build/components/post-author/panel.js +5 -0
  128. package/build/components/post-author/panel.js.map +1 -1
  129. package/build/components/post-author/select.js.map +1 -1
  130. package/build/components/post-card-panel/index.js +14 -15
  131. package/build/components/post-card-panel/index.js.map +1 -1
  132. package/build/components/post-comments/index.js.map +1 -1
  133. package/build/components/post-content-information/index.js +72 -0
  134. package/build/components/post-content-information/index.js.map +1 -0
  135. package/build/components/post-discussion/panel.js +9 -7
  136. package/build/components/post-discussion/panel.js.map +1 -1
  137. package/build/components/post-excerpt/check.js +7 -18
  138. package/build/components/post-excerpt/check.js.map +1 -1
  139. package/build/components/post-excerpt/index.js +52 -12
  140. package/build/components/post-excerpt/index.js.map +1 -1
  141. package/build/components/post-excerpt/panel.js +118 -7
  142. package/build/components/post-excerpt/panel.js.map +1 -1
  143. package/build/components/post-excerpt/plugin.js +2 -2
  144. package/build/components/post-excerpt/plugin.js.map +1 -1
  145. package/build/components/post-featured-image/check.js.map +1 -1
  146. package/build/components/post-featured-image/index.js +1 -1
  147. package/build/components/post-featured-image/index.js.map +1 -1
  148. package/build/components/post-featured-image/panel.js.map +1 -1
  149. package/build/components/post-format/check.js.map +1 -1
  150. package/build/components/post-format/index.js.map +1 -1
  151. package/build/components/post-last-edited-panel/index.js +33 -0
  152. package/build/components/post-last-edited-panel/index.js.map +1 -0
  153. package/build/components/post-last-revision/check.js.map +1 -1
  154. package/build/components/post-last-revision/index.js.map +1 -1
  155. package/build/components/post-last-revision/panel.js.map +1 -1
  156. package/build/components/post-locked-modal/index.js.map +1 -1
  157. package/build/components/post-panel-row/index.js.map +1 -1
  158. package/build/components/post-pending-status/check.js.map +1 -1
  159. package/build/components/post-pending-status/index.js.map +1 -1
  160. package/build/components/post-pingbacks/index.js.map +1 -1
  161. package/build/components/post-preview-button/index.js.map +1 -1
  162. package/build/components/post-publish-button/index.js +31 -31
  163. package/build/components/post-publish-button/index.js.map +1 -1
  164. package/build/components/post-publish-button/label.js +51 -43
  165. package/build/components/post-publish-button/label.js.map +1 -1
  166. package/build/components/post-publish-button/post-publish-button-or-toggle.js +100 -0
  167. package/build/components/post-publish-button/post-publish-button-or-toggle.js.map +1 -0
  168. package/build/components/post-publish-panel/index.js.map +1 -1
  169. package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  170. package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  171. package/build/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  172. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  173. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  174. package/build/components/post-publish-panel/prepublish.js.map +1 -1
  175. package/build/components/post-saved-state/index.js +10 -6
  176. package/build/components/post-saved-state/index.js.map +1 -1
  177. package/build/components/post-schedule/check.js.map +1 -1
  178. package/build/components/post-schedule/index.js.map +1 -1
  179. package/build/components/post-schedule/label.js.map +1 -1
  180. package/build/components/post-schedule/panel.js +9 -1
  181. package/build/components/post-schedule/panel.js.map +1 -1
  182. package/build/components/post-slug/check.js.map +1 -1
  183. package/build/components/post-slug/index.js +43 -68
  184. package/build/components/post-slug/index.js.map +1 -1
  185. package/build/components/post-status/index.js +239 -0
  186. package/build/components/post-status/index.js.map +1 -0
  187. package/build/components/post-sticky/check.js.map +1 -1
  188. package/build/components/post-sticky/index.js.map +1 -1
  189. package/build/components/post-switch-to-draft-button/index.js +6 -1
  190. package/build/components/post-switch-to-draft-button/index.js.map +1 -1
  191. package/build/components/post-sync-status/index.js.map +1 -1
  192. package/build/components/post-taxonomies/check.js.map +1 -1
  193. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  194. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  195. package/build/components/post-taxonomies/index.js.map +1 -1
  196. package/build/components/post-taxonomies/most-used-terms.js.map +1 -1
  197. package/build/components/post-taxonomies/panel.js.map +1 -1
  198. package/build/components/post-template/block-theme.js +8 -4
  199. package/build/components/post-template/block-theme.js.map +1 -1
  200. package/build/components/post-template/classic-theme.js +0 -1
  201. package/build/components/post-template/classic-theme.js.map +1 -1
  202. package/build/components/post-template/create-new-template-modal.js.map +1 -1
  203. package/build/components/post-template/create-new-template.js.map +1 -1
  204. package/build/components/post-template/hooks.js.map +1 -1
  205. package/build/components/post-template/panel.js.map +1 -1
  206. package/build/components/post-template/reset-default-template.js.map +1 -1
  207. package/build/components/post-template/swap-template-button.js +2 -5
  208. package/build/components/post-template/swap-template-button.js.map +1 -1
  209. package/build/components/post-text-editor/index.js.map +1 -1
  210. package/build/components/post-title/constants.js.map +1 -1
  211. package/build/components/post-title/index.js.map +1 -1
  212. package/build/components/post-title/index.native.js.map +1 -1
  213. package/build/components/post-title/post-title-raw.js.map +1 -1
  214. package/build/components/post-title/use-post-title-focus.js.map +1 -1
  215. package/build/components/post-title/use-post-title.js.map +1 -1
  216. package/build/components/post-trash/check.js +23 -25
  217. package/build/components/post-trash/check.js.map +1 -1
  218. package/build/components/post-trash/index.js +2 -1
  219. package/build/components/post-trash/index.js.map +1 -1
  220. package/build/components/post-type-support-check/index.js.map +1 -1
  221. package/build/components/post-url/check.js.map +1 -1
  222. package/build/components/post-url/index.js +45 -19
  223. package/build/components/post-url/index.js.map +1 -1
  224. package/build/components/post-url/label.js.map +1 -1
  225. package/build/components/post-url/panel.js +15 -8
  226. package/build/components/post-url/panel.js.map +1 -1
  227. package/build/components/post-view-link/index.js.map +1 -1
  228. package/build/components/post-visibility/check.js.map +1 -1
  229. package/build/components/post-visibility/index.js +2 -1
  230. package/build/components/post-visibility/index.js.map +1 -1
  231. package/build/components/post-visibility/label.js.map +1 -1
  232. package/build/components/post-visibility/utils.js.map +1 -1
  233. package/build/components/preferences-modal/enable-panel.js.map +1 -1
  234. package/build/components/preferences-modal/enable-plugin-document-setting-panel.js.map +1 -1
  235. package/build/components/preferences-modal/enable-publish-sidebar.js +34 -0
  236. package/build/components/preferences-modal/enable-publish-sidebar.js.map +1 -0
  237. package/build/components/preferences-modal/index.js +26 -18
  238. package/build/components/preferences-modal/index.js.map +1 -1
  239. package/build/components/preview-dropdown/index.js +3 -1
  240. package/build/components/preview-dropdown/index.js.map +1 -1
  241. package/build/components/provider/disable-non-page-content-blocks.js +23 -16
  242. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
  243. package/build/components/provider/index.js +4 -2
  244. package/build/components/provider/index.js.map +1 -1
  245. package/build/components/provider/index.native.js +6 -1
  246. package/build/components/provider/index.native.js.map +1 -1
  247. package/build/components/provider/navigation-block-editing-mode.js.map +1 -1
  248. package/build/components/provider/use-auto-switch-editor-sidebars.js +52 -0
  249. package/build/components/provider/use-auto-switch-editor-sidebars.js.map +1 -0
  250. package/build/components/provider/use-block-editor-settings.js +64 -43
  251. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  252. package/build/components/provider/use-block-editor-settings.native.js.map +1 -1
  253. package/build/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  254. package/build/components/provider/with-registry-provider.js +1 -0
  255. package/build/components/provider/with-registry-provider.js.map +1 -1
  256. package/build/components/save-publish-panels/index.js +89 -0
  257. package/build/components/save-publish-panels/index.js.map +1 -0
  258. package/build/components/start-page-options/index.js +143 -0
  259. package/build/components/start-page-options/index.js.map +1 -0
  260. package/build/components/table-of-contents/index.js.map +1 -1
  261. package/build/components/table-of-contents/panel.js.map +1 -1
  262. package/build/components/template-areas/index.js.map +1 -1
  263. package/build/components/template-validation-notice/index.js +23 -29
  264. package/build/components/template-validation-notice/index.js.map +1 -1
  265. package/build/components/theme-support-check/index.js +10 -16
  266. package/build/components/theme-support-check/index.js.map +1 -1
  267. package/build/components/time-to-read/index.js.map +1 -1
  268. package/build/components/unsaved-changes-warning/index.js.map +1 -1
  269. package/build/components/word-count/index.js.map +1 -1
  270. package/build/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  271. package/build/hooks/default-autocompleters.js.map +1 -1
  272. package/build/hooks/index.js.map +1 -1
  273. package/build/hooks/index.native.js.map +1 -1
  274. package/build/hooks/pattern-overrides.js +22 -10
  275. package/build/hooks/pattern-overrides.js.map +1 -1
  276. package/build/hooks/use-select-nearest-editable-block.js.map +1 -1
  277. package/build/index.js.map +1 -1
  278. package/build/index.native.js.map +1 -1
  279. package/build/lock-unlock.js.map +1 -1
  280. package/build/private-apis.js +38 -3
  281. package/build/private-apis.js.map +1 -1
  282. package/build/store/actions.js.map +1 -1
  283. package/build/store/actions.native.js.map +1 -1
  284. package/build/store/constants.js +8 -1
  285. package/build/store/constants.js.map +1 -1
  286. package/build/store/defaults.js.map +1 -1
  287. package/build/store/index.js +1 -1
  288. package/build/store/index.js.map +1 -1
  289. package/build/store/local-autosave.js.map +1 -1
  290. package/build/store/private-actions.js +177 -4
  291. package/build/store/private-actions.js.map +1 -1
  292. package/build/store/private-selectors.js +1 -7
  293. package/build/store/private-selectors.js.map +1 -1
  294. package/build/store/reducer.js.map +1 -1
  295. package/build/store/reducer.native.js.map +1 -1
  296. package/build/store/selectors.js +8 -11
  297. package/build/store/selectors.js.map +1 -1
  298. package/build/store/selectors.native.js.map +1 -1
  299. package/build/store/utils/get-filtered-template-parts.js.map +1 -1
  300. package/build/store/utils/is-template-revertable.js +28 -0
  301. package/build/store/utils/is-template-revertable.js.map +1 -0
  302. package/build/store/utils/notice-builder.js.map +1 -1
  303. package/build/utils/get-template-part-icon.js.map +1 -1
  304. package/build/utils/index.js.map +1 -1
  305. package/build/utils/index.native.js.map +1 -1
  306. package/build/utils/media-upload/index.js.map +1 -1
  307. package/build/utils/media-upload/index.native.js.map +1 -1
  308. package/build/utils/terms.js.map +1 -1
  309. package/build/utils/url.js.map +1 -1
  310. package/build-module/bindings/index.js.map +1 -1
  311. package/build-module/bindings/pattern-overrides.js.map +1 -1
  312. package/build-module/bindings/post-meta.js +14 -31
  313. package/build-module/bindings/post-meta.js.map +1 -1
  314. package/build-module/components/autocompleters/index.js.map +1 -1
  315. package/build-module/components/autocompleters/user.js.map +1 -1
  316. package/build-module/components/autosave-monitor/index.js +24 -12
  317. package/build-module/components/autosave-monitor/index.js.map +1 -1
  318. package/build-module/components/block-manager/category.js.map +1 -1
  319. package/build-module/components/block-manager/checklist.js.map +1 -1
  320. package/build-module/components/block-manager/index.js.map +1 -1
  321. package/build-module/components/block-removal-warnings/index.js.map +1 -1
  322. package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
  323. package/build-module/components/character-count/index.js +6 -0
  324. package/build-module/components/character-count/index.js.map +1 -1
  325. package/build-module/components/collapsible-block-toolbar/index.js +65 -0
  326. package/build-module/components/collapsible-block-toolbar/index.js.map +1 -0
  327. package/build-module/components/commands/index.js +20 -1
  328. package/build-module/components/commands/index.js.map +1 -1
  329. package/build-module/components/commands/index.native.js.map +1 -1
  330. package/build-module/components/deprecated.js.map +1 -1
  331. package/build-module/components/deprecated.native.js.map +1 -1
  332. package/build-module/components/document-bar/index.js.map +1 -1
  333. package/build-module/components/document-outline/check.js +9 -0
  334. package/build-module/components/document-outline/check.js.map +1 -1
  335. package/build-module/components/document-outline/index.js +11 -0
  336. package/build-module/components/document-outline/index.js.map +1 -1
  337. package/build-module/components/document-outline/item.js.map +1 -1
  338. package/build-module/components/document-tools/index.js +2 -9
  339. package/build-module/components/document-tools/index.js.map +1 -1
  340. package/build-module/components/editor-canvas/edit-template-blocks-notification.js +13 -2
  341. package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
  342. package/build-module/components/editor-canvas/index.js +2 -2
  343. package/build-module/components/editor-canvas/index.js.map +1 -1
  344. package/build-module/components/editor-help/add-blocks.native.js.map +1 -1
  345. package/build-module/components/editor-help/customize-blocks.native.js.map +1 -1
  346. package/build-module/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  347. package/build-module/components/editor-help/help-get-support-button.native.js.map +1 -1
  348. package/build-module/components/editor-help/help-section-title.native.js.map +1 -1
  349. package/build-module/components/editor-help/help-topic-row.native.js.map +1 -1
  350. package/build-module/components/editor-help/icon-move-blocks.native.js.map +1 -1
  351. package/build-module/components/editor-help/index.native.js.map +1 -1
  352. package/build-module/components/editor-help/intro-to-blocks.native.js.map +1 -1
  353. package/build-module/components/editor-help/move-blocks.native.js.map +1 -1
  354. package/build-module/components/editor-help/remove-blocks.native.js.map +1 -1
  355. package/build-module/components/editor-help/view-sections.native.js.map +1 -1
  356. package/build-module/components/editor-history/redo.js +11 -0
  357. package/build-module/components/editor-history/redo.js.map +1 -1
  358. package/build-module/components/editor-history/undo.js +11 -0
  359. package/build-module/components/editor-history/undo.js.map +1 -1
  360. package/build-module/components/editor-notices/index.js.map +1 -1
  361. package/build-module/components/editor-snackbars/index.js +6 -0
  362. package/build-module/components/editor-snackbars/index.js.map +1 -1
  363. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  364. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  365. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  366. package/build-module/components/entities-saved-states/index.js.map +1 -1
  367. package/build-module/components/error-boundary/index.js.map +1 -1
  368. package/build-module/components/error-boundary/index.native.js.map +1 -1
  369. package/build-module/components/global-keyboard-shortcuts/index.js +32 -0
  370. package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
  371. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +53 -0
  372. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  373. package/build-module/components/index.js +4 -0
  374. package/build-module/components/index.js.map +1 -1
  375. package/build-module/components/index.native.js.map +1 -1
  376. package/build-module/components/inserter-sidebar/index.js +2 -5
  377. package/build-module/components/inserter-sidebar/index.js.map +1 -1
  378. package/build-module/components/keyboard-shortcut-help-modal/config.js +75 -0
  379. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -0
  380. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +41 -0
  381. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -0
  382. package/build-module/components/keyboard-shortcut-help-modal/index.js +118 -0
  383. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -0
  384. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +48 -0
  385. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -0
  386. package/build-module/components/list-view-sidebar/index.js +1 -1
  387. package/build-module/components/list-view-sidebar/index.js.map +1 -1
  388. package/build-module/components/list-view-sidebar/list-view-outline.js.map +1 -1
  389. package/build-module/components/local-autosave-monitor/index.js.map +1 -1
  390. package/build-module/components/media-categories/index.js.map +1 -1
  391. package/build-module/components/mode-switcher/index.js.map +1 -1
  392. package/build-module/components/more-menu/copy-content-menu-item.js +52 -0
  393. package/build-module/components/more-menu/copy-content-menu-item.js.map +1 -0
  394. package/build-module/components/more-menu/index.js +111 -0
  395. package/build-module/components/more-menu/index.js.map +1 -0
  396. package/build-module/components/more-menu/tools-more-menu-group.js +16 -0
  397. package/build-module/components/more-menu/tools-more-menu-group.js.map +1 -0
  398. package/build-module/components/more-menu/view-more-menu-group.js +17 -0
  399. package/build-module/components/more-menu/view-more-menu-group.js.map +1 -0
  400. package/build-module/components/offline-status/index.native.js.map +1 -1
  401. package/build-module/components/page-attributes/check.js +9 -0
  402. package/build-module/components/page-attributes/check.js.map +1 -1
  403. package/build-module/components/page-attributes/order.js +7 -0
  404. package/build-module/components/page-attributes/order.js.map +1 -1
  405. package/build-module/components/page-attributes/panel.js +13 -6
  406. package/build-module/components/page-attributes/panel.js.map +1 -1
  407. package/build-module/components/page-attributes/parent.js +7 -0
  408. package/build-module/components/page-attributes/parent.js.map +1 -1
  409. package/build-module/components/pattern-overrides-panel/index.js.map +1 -1
  410. package/build-module/components/plugin-document-setting-panel/index.js.map +1 -1
  411. package/build-module/components/plugin-more-menu-item/index.js +73 -0
  412. package/build-module/components/plugin-more-menu-item/index.js.map +1 -0
  413. package/build-module/components/plugin-post-publish-panel/index.js +1 -1
  414. package/build-module/components/plugin-post-publish-panel/index.js.map +1 -1
  415. package/build-module/components/plugin-post-status-info/index.js +66 -0
  416. package/build-module/components/plugin-post-status-info/index.js.map +1 -0
  417. package/build-module/components/plugin-pre-publish-panel/index.js +1 -1
  418. package/build-module/components/plugin-pre-publish-panel/index.js.map +1 -1
  419. package/build-module/components/plugin-sidebar/index.js +102 -0
  420. package/build-module/components/plugin-sidebar/index.js.map +1 -0
  421. package/build-module/components/plugin-sidebar-more-menu-item/index.js +65 -0
  422. package/build-module/components/plugin-sidebar-more-menu-item/index.js.map +1 -0
  423. package/build-module/components/post-actions/actions.js +317 -19
  424. package/build-module/components/post-actions/actions.js.map +1 -1
  425. package/build-module/components/post-actions/index.js +153 -0
  426. package/build-module/components/post-actions/index.js.map +1 -0
  427. package/build-module/components/post-author/check.js +10 -0
  428. package/build-module/components/post-author/check.js.map +1 -1
  429. package/build-module/components/post-author/combobox.js.map +1 -1
  430. package/build-module/components/post-author/constants.js.map +1 -1
  431. package/build-module/components/post-author/hook.js.map +1 -1
  432. package/build-module/components/post-author/index.js +6 -0
  433. package/build-module/components/post-author/index.js.map +1 -1
  434. package/build-module/components/post-author/panel.js +6 -0
  435. package/build-module/components/post-author/panel.js.map +1 -1
  436. package/build-module/components/post-author/select.js.map +1 -1
  437. package/build-module/components/post-card-panel/index.js +16 -17
  438. package/build-module/components/post-card-panel/index.js.map +1 -1
  439. package/build-module/components/post-comments/index.js.map +1 -1
  440. package/build-module/components/post-content-information/index.js +66 -0
  441. package/build-module/components/post-content-information/index.js.map +1 -0
  442. package/build-module/components/post-discussion/panel.js +8 -6
  443. package/build-module/components/post-discussion/panel.js.map +1 -1
  444. package/build-module/components/post-excerpt/check.js +8 -18
  445. package/build-module/components/post-excerpt/check.js.map +1 -1
  446. package/build-module/components/post-excerpt/index.js +52 -11
  447. package/build-module/components/post-excerpt/index.js.map +1 -1
  448. package/build-module/components/post-excerpt/panel.js +118 -8
  449. package/build-module/components/post-excerpt/panel.js.map +1 -1
  450. package/build-module/components/post-excerpt/plugin.js +2 -2
  451. package/build-module/components/post-excerpt/plugin.js.map +1 -1
  452. package/build-module/components/post-featured-image/check.js.map +1 -1
  453. package/build-module/components/post-featured-image/index.js +1 -1
  454. package/build-module/components/post-featured-image/index.js.map +1 -1
  455. package/build-module/components/post-featured-image/panel.js.map +1 -1
  456. package/build-module/components/post-format/check.js.map +1 -1
  457. package/build-module/components/post-format/index.js.map +1 -1
  458. package/build-module/components/post-last-edited-panel/index.js +26 -0
  459. package/build-module/components/post-last-edited-panel/index.js.map +1 -0
  460. package/build-module/components/post-last-revision/check.js.map +1 -1
  461. package/build-module/components/post-last-revision/index.js.map +1 -1
  462. package/build-module/components/post-last-revision/panel.js.map +1 -1
  463. package/build-module/components/post-locked-modal/index.js.map +1 -1
  464. package/build-module/components/post-panel-row/index.js.map +1 -1
  465. package/build-module/components/post-pending-status/check.js.map +1 -1
  466. package/build-module/components/post-pending-status/index.js.map +1 -1
  467. package/build-module/components/post-pingbacks/index.js.map +1 -1
  468. package/build-module/components/post-preview-button/index.js.map +1 -1
  469. package/build-module/components/post-publish-button/index.js +31 -31
  470. package/build-module/components/post-publish-button/index.js.map +1 -1
  471. package/build-module/components/post-publish-button/label.js +51 -42
  472. package/build-module/components/post-publish-button/label.js.map +1 -1
  473. package/build-module/components/post-publish-button/post-publish-button-or-toggle.js +91 -0
  474. package/build-module/components/post-publish-button/post-publish-button-or-toggle.js.map +1 -0
  475. package/build-module/components/post-publish-panel/index.js.map +1 -1
  476. package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  477. package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  478. package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  479. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  480. package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
  481. package/build-module/components/post-publish-panel/prepublish.js.map +1 -1
  482. package/build-module/components/post-saved-state/index.js +10 -6
  483. package/build-module/components/post-saved-state/index.js.map +1 -1
  484. package/build-module/components/post-schedule/check.js.map +1 -1
  485. package/build-module/components/post-schedule/index.js.map +1 -1
  486. package/build-module/components/post-schedule/label.js.map +1 -1
  487. package/build-module/components/post-schedule/panel.js +9 -1
  488. package/build-module/components/post-schedule/panel.js.map +1 -1
  489. package/build-module/components/post-slug/check.js.map +1 -1
  490. package/build-module/components/post-slug/index.js +44 -68
  491. package/build-module/components/post-slug/index.js.map +1 -1
  492. package/build-module/components/post-status/index.js +231 -0
  493. package/build-module/components/post-status/index.js.map +1 -0
  494. package/build-module/components/post-sticky/check.js.map +1 -1
  495. package/build-module/components/post-sticky/index.js.map +1 -1
  496. package/build-module/components/post-switch-to-draft-button/index.js +7 -1
  497. package/build-module/components/post-switch-to-draft-button/index.js.map +1 -1
  498. package/build-module/components/post-sync-status/index.js.map +1 -1
  499. package/build-module/components/post-taxonomies/check.js.map +1 -1
  500. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  501. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  502. package/build-module/components/post-taxonomies/index.js.map +1 -1
  503. package/build-module/components/post-taxonomies/most-used-terms.js.map +1 -1
  504. package/build-module/components/post-taxonomies/panel.js.map +1 -1
  505. package/build-module/components/post-template/block-theme.js +9 -5
  506. package/build-module/components/post-template/block-theme.js.map +1 -1
  507. package/build-module/components/post-template/classic-theme.js +0 -1
  508. package/build-module/components/post-template/classic-theme.js.map +1 -1
  509. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  510. package/build-module/components/post-template/create-new-template.js.map +1 -1
  511. package/build-module/components/post-template/hooks.js.map +1 -1
  512. package/build-module/components/post-template/panel.js.map +1 -1
  513. package/build-module/components/post-template/reset-default-template.js.map +1 -1
  514. package/build-module/components/post-template/swap-template-button.js +3 -6
  515. package/build-module/components/post-template/swap-template-button.js.map +1 -1
  516. package/build-module/components/post-text-editor/index.js.map +1 -1
  517. package/build-module/components/post-title/constants.js.map +1 -1
  518. package/build-module/components/post-title/index.js.map +1 -1
  519. package/build-module/components/post-title/index.native.js.map +1 -1
  520. package/build-module/components/post-title/post-title-raw.js.map +1 -1
  521. package/build-module/components/post-title/use-post-title-focus.js.map +1 -1
  522. package/build-module/components/post-title/use-post-title.js.map +1 -1
  523. package/build-module/components/post-trash/check.js +24 -26
  524. package/build-module/components/post-trash/check.js.map +1 -1
  525. package/build-module/components/post-trash/index.js +2 -1
  526. package/build-module/components/post-trash/index.js.map +1 -1
  527. package/build-module/components/post-type-support-check/index.js.map +1 -1
  528. package/build-module/components/post-url/check.js.map +1 -1
  529. package/build-module/components/post-url/index.js +47 -21
  530. package/build-module/components/post-url/index.js.map +1 -1
  531. package/build-module/components/post-url/label.js.map +1 -1
  532. package/build-module/components/post-url/panel.js +15 -8
  533. package/build-module/components/post-url/panel.js.map +1 -1
  534. package/build-module/components/post-view-link/index.js.map +1 -1
  535. package/build-module/components/post-visibility/check.js.map +1 -1
  536. package/build-module/components/post-visibility/index.js +2 -1
  537. package/build-module/components/post-visibility/index.js.map +1 -1
  538. package/build-module/components/post-visibility/label.js.map +1 -1
  539. package/build-module/components/post-visibility/utils.js.map +1 -1
  540. package/build-module/components/preferences-modal/enable-panel.js.map +1 -1
  541. package/build-module/components/preferences-modal/enable-plugin-document-setting-panel.js.map +1 -1
  542. package/build-module/components/preferences-modal/enable-publish-sidebar.js +27 -0
  543. package/build-module/components/preferences-modal/enable-publish-sidebar.js.map +1 -0
  544. package/build-module/components/preferences-modal/index.js +26 -18
  545. package/build-module/components/preferences-modal/index.js.map +1 -1
  546. package/build-module/components/preview-dropdown/index.js +3 -1
  547. package/build-module/components/preview-dropdown/index.js.map +1 -1
  548. package/build-module/components/provider/disable-non-page-content-blocks.js +24 -17
  549. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
  550. package/build-module/components/provider/index.js +5 -3
  551. package/build-module/components/provider/index.js.map +1 -1
  552. package/build-module/components/provider/index.native.js.map +1 -1
  553. package/build-module/components/provider/navigation-block-editing-mode.js.map +1 -1
  554. package/build-module/components/provider/use-auto-switch-editor-sidebars.js +46 -0
  555. package/build-module/components/provider/use-auto-switch-editor-sidebars.js.map +1 -0
  556. package/build-module/components/provider/use-block-editor-settings.js +66 -45
  557. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  558. package/build-module/components/provider/use-block-editor-settings.native.js.map +1 -1
  559. package/build-module/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  560. package/build-module/components/provider/with-registry-provider.js +1 -0
  561. package/build-module/components/provider/with-registry-provider.js.map +1 -1
  562. package/build-module/components/save-publish-panels/index.js +80 -0
  563. package/build-module/components/save-publish-panels/index.js.map +1 -0
  564. package/build-module/components/start-page-options/index.js +136 -0
  565. package/build-module/components/start-page-options/index.js.map +1 -0
  566. package/build-module/components/table-of-contents/index.js.map +1 -1
  567. package/build-module/components/table-of-contents/panel.js.map +1 -1
  568. package/build-module/components/template-areas/index.js.map +1 -1
  569. package/build-module/components/template-validation-notice/index.js +25 -31
  570. package/build-module/components/template-validation-notice/index.js.map +1 -1
  571. package/build-module/components/theme-support-check/index.js +11 -16
  572. package/build-module/components/theme-support-check/index.js.map +1 -1
  573. package/build-module/components/time-to-read/index.js.map +1 -1
  574. package/build-module/components/unsaved-changes-warning/index.js.map +1 -1
  575. package/build-module/components/word-count/index.js.map +1 -1
  576. package/build-module/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  577. package/build-module/hooks/default-autocompleters.js.map +1 -1
  578. package/build-module/hooks/index.js.map +1 -1
  579. package/build-module/hooks/index.native.js.map +1 -1
  580. package/build-module/hooks/pattern-overrides.js +22 -10
  581. package/build-module/hooks/pattern-overrides.js.map +1 -1
  582. package/build-module/hooks/use-select-nearest-editable-block.js.map +1 -1
  583. package/build-module/index.js.map +1 -1
  584. package/build-module/index.native.js.map +1 -1
  585. package/build-module/lock-unlock.js.map +1 -1
  586. package/build-module/private-apis.js +36 -3
  587. package/build-module/private-apis.js.map +1 -1
  588. package/build-module/store/actions.js.map +1 -1
  589. package/build-module/store/actions.native.js.map +1 -1
  590. package/build-module/store/constants.js +7 -0
  591. package/build-module/store/constants.js.map +1 -1
  592. package/build-module/store/defaults.js.map +1 -1
  593. package/build-module/store/index.js.map +1 -1
  594. package/build-module/store/local-autosave.js.map +1 -1
  595. package/build-module/store/private-actions.js +174 -4
  596. package/build-module/store/private-actions.js.map +1 -1
  597. package/build-module/store/private-selectors.js +1 -6
  598. package/build-module/store/private-selectors.js.map +1 -1
  599. package/build-module/store/reducer.js.map +1 -1
  600. package/build-module/store/reducer.native.js.map +1 -1
  601. package/build-module/store/selectors.js +4 -7
  602. package/build-module/store/selectors.js.map +1 -1
  603. package/build-module/store/selectors.native.js.map +1 -1
  604. package/build-module/store/utils/get-filtered-template-parts.js.map +1 -1
  605. package/build-module/store/utils/is-template-revertable.js +22 -0
  606. package/build-module/store/utils/is-template-revertable.js.map +1 -0
  607. package/build-module/store/utils/notice-builder.js.map +1 -1
  608. package/build-module/utils/get-template-part-icon.js.map +1 -1
  609. package/build-module/utils/index.js.map +1 -1
  610. package/build-module/utils/index.native.js.map +1 -1
  611. package/build-module/utils/media-upload/index.js.map +1 -1
  612. package/build-module/utils/media-upload/index.native.js.map +1 -1
  613. package/build-module/utils/terms.js.map +1 -1
  614. package/build-module/utils/url.js.map +1 -1
  615. package/build-style/style-rtl.css +703 -53
  616. package/build-style/style.css +703 -53
  617. package/package.json +35 -35
  618. package/src/bindings/post-meta.js +11 -27
  619. package/src/components/autosave-monitor/index.js +23 -11
  620. package/src/components/character-count/index.js +5 -0
  621. package/src/components/collapsible-block-toolbar/index.js +77 -0
  622. package/src/components/collapsible-block-toolbar/style.scss +80 -0
  623. package/src/components/commands/index.js +20 -1
  624. package/src/components/document-outline/check.js +8 -0
  625. package/src/components/document-outline/index.js +10 -0
  626. package/src/components/document-tools/index.js +16 -19
  627. package/src/components/editor-canvas/edit-template-blocks-notification.js +16 -2
  628. package/src/components/editor-canvas/index.js +4 -4
  629. package/src/components/editor-history/redo.js +10 -0
  630. package/src/components/editor-history/undo.js +10 -0
  631. package/src/components/editor-snackbars/index.js +5 -0
  632. package/src/components/entities-saved-states/style.scss +7 -0
  633. package/src/components/error-boundary/style.native.scss +1 -1
  634. package/src/components/global-keyboard-shortcuts/index.js +32 -0
  635. package/src/components/global-keyboard-shortcuts/register-shortcuts.js +61 -0
  636. package/src/components/index.js +4 -0
  637. package/src/components/inserter-sidebar/index.js +2 -5
  638. package/src/components/keyboard-shortcut-help-modal/config.js +62 -0
  639. package/src/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +43 -0
  640. package/src/components/keyboard-shortcut-help-modal/index.js +160 -0
  641. package/src/components/keyboard-shortcut-help-modal/shortcut.js +67 -0
  642. package/src/components/keyboard-shortcut-help-modal/style.scss +61 -0
  643. package/src/components/list-view-sidebar/index.js +1 -1
  644. package/src/components/list-view-sidebar/style.scss +2 -2
  645. package/src/components/more-menu/copy-content-menu-item.js +51 -0
  646. package/src/components/more-menu/index.js +158 -0
  647. package/src/components/more-menu/tools-more-menu-group.js +11 -0
  648. package/src/components/more-menu/view-more-menu-group.js +13 -0
  649. package/src/components/page-attributes/check.js +8 -0
  650. package/src/components/page-attributes/order.js +6 -0
  651. package/src/components/page-attributes/panel.js +21 -17
  652. package/src/components/page-attributes/parent.js +6 -0
  653. package/src/components/plugin-more-menu-item/index.js +73 -0
  654. package/src/components/plugin-post-publish-panel/index.js +1 -1
  655. package/src/components/plugin-post-status-info/index.js +63 -0
  656. package/src/components/plugin-pre-publish-panel/index.js +1 -1
  657. package/src/components/plugin-sidebar/index.js +98 -0
  658. package/src/components/plugin-sidebar-more-menu-item/index.js +64 -0
  659. package/src/components/post-actions/actions.js +413 -18
  660. package/src/components/post-actions/index.js +190 -0
  661. package/src/components/post-actions/style.scss +3 -0
  662. package/src/components/post-author/check.js +9 -0
  663. package/src/components/post-author/index.js +5 -0
  664. package/src/components/post-author/panel.js +5 -0
  665. package/src/components/post-card-panel/index.js +28 -23
  666. package/src/components/post-card-panel/style.scss +2 -6
  667. package/src/components/post-content-information/index.js +83 -0
  668. package/src/components/post-content-information/style.scss +6 -0
  669. package/src/components/post-discussion/panel.js +24 -20
  670. package/src/components/post-excerpt/check.js +8 -18
  671. package/src/components/post-excerpt/index.js +66 -15
  672. package/src/components/post-excerpt/panel.js +196 -19
  673. package/src/components/post-excerpt/plugin.js +2 -2
  674. package/src/components/post-excerpt/style.scss +24 -0
  675. package/src/components/post-featured-image/index.js +1 -1
  676. package/src/components/post-featured-image/style.scss +2 -8
  677. package/src/components/post-last-edited-panel/index.js +35 -0
  678. package/src/components/post-last-edited-panel/style.scss +6 -0
  679. package/src/components/post-panel-row/style.scss +3 -3
  680. package/src/components/post-publish-button/index.js +23 -36
  681. package/src/components/post-publish-button/label.js +54 -39
  682. package/src/components/post-publish-button/post-publish-button-or-toggle.js +102 -0
  683. package/src/components/post-publish-button/test/index.js +15 -26
  684. package/src/components/post-publish-button/test/label.js +44 -21
  685. package/src/components/post-publish-button/test/post-publish-button-or-toggle.js +63 -0
  686. package/src/components/post-publish-panel/style.scss +43 -0
  687. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +225 -75
  688. package/src/components/post-saved-state/index.js +13 -6
  689. package/src/components/post-saved-state/test/index.js +4 -0
  690. package/src/components/post-schedule/panel.js +23 -1
  691. package/src/components/post-schedule/style.scss +2 -4
  692. package/src/components/post-slug/index.js +50 -68
  693. package/src/components/post-slug/test/index.js +29 -6
  694. package/src/components/post-status/index.js +318 -0
  695. package/src/components/post-status/style.scss +74 -0
  696. package/src/components/post-switch-to-draft-button/index.js +5 -0
  697. package/src/components/post-template/block-theme.js +33 -24
  698. package/src/components/post-template/classic-theme.js +0 -1
  699. package/src/components/post-template/swap-template-button.js +3 -6
  700. package/src/components/post-text-editor/style.scss +1 -1
  701. package/src/components/post-title/style.scss +1 -1
  702. package/src/components/post-trash/check.js +19 -19
  703. package/src/components/post-trash/index.js +1 -0
  704. package/src/components/post-url/index.js +132 -101
  705. package/src/components/post-url/panel.js +21 -8
  706. package/src/components/post-url/style.scss +8 -6
  707. package/src/components/post-visibility/index.js +1 -0
  708. package/src/components/preferences-modal/enable-publish-sidebar.js +28 -0
  709. package/src/components/preferences-modal/index.js +40 -22
  710. package/src/components/preview-dropdown/index.js +3 -1
  711. package/src/components/provider/disable-non-page-content-blocks.js +23 -21
  712. package/src/components/provider/index.js +17 -8
  713. package/src/components/provider/use-auto-switch-editor-sidebars.js +49 -0
  714. package/src/components/provider/use-block-editor-settings.js +59 -33
  715. package/src/components/provider/with-registry-provider.js +1 -0
  716. package/src/components/save-publish-panels/index.js +96 -0
  717. package/src/components/save-publish-panels/style.scss +36 -0
  718. package/src/components/start-page-options/index.js +140 -0
  719. package/src/components/start-page-options/style.scss +26 -0
  720. package/src/components/template-validation-notice/index.js +48 -50
  721. package/src/components/theme-support-check/index.js +9 -16
  722. package/src/components/theme-support-check/test/index.js +44 -43
  723. package/src/hooks/pattern-overrides.js +25 -14
  724. package/src/private-apis.js +33 -2
  725. package/src/store/constants.js +7 -0
  726. package/src/store/private-actions.js +269 -4
  727. package/src/store/private-selectors.js +1 -6
  728. package/src/store/selectors.js +4 -7
  729. package/src/store/utils/is-template-revertable.js +23 -0
  730. package/src/style.scss +10 -2
  731. package/src/components/post-publish-button/style.scss +0 -8
  732. package/src/components/provider/test/disable-non-page-content-blocks.js +0 -111
  733. package/src/components/template-validation-notice/style.scss +0 -9
@@ -0,0 +1,231 @@
1
+ import { createElement, Fragment } from "react";
2
+ /**
3
+ * External dependencies
4
+ */
5
+ import classnames from 'classnames';
6
+
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+ import { Button, CheckboxControl, Dropdown, __experimentalText as Text, __experimentalVStack as VStack, TextControl, RadioControl } from '@wordpress/components';
11
+ import { __ } from '@wordpress/i18n';
12
+ import { useDispatch, useSelect } from '@wordpress/data';
13
+ import { useState, useMemo } from '@wordpress/element';
14
+ import { store as coreStore } from '@wordpress/core-data';
15
+ import { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';
16
+ import { useInstanceId } from '@wordpress/compose';
17
+ import { Icon, chevronDownSmall } from '@wordpress/icons';
18
+
19
+ /**
20
+ * Internal dependencies
21
+ */
22
+ import { TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, PATTERN_POST_TYPE, NAVIGATION_POST_TYPE } from '../../store/constants';
23
+ import PostPanelRow from '../post-panel-row';
24
+ import { store as editorStore } from '../../store';
25
+ function PostStatusLabel({
26
+ canEdit
27
+ }) {
28
+ const status = useSelect(select => select(editorStore).getEditedPostAttribute('status'), []);
29
+ let statusLabel;
30
+ switch (status) {
31
+ case 'publish':
32
+ statusLabel = __('Published');
33
+ break;
34
+ case 'future':
35
+ statusLabel = __('Scheduled');
36
+ break;
37
+ case 'draft':
38
+ case 'auto-draft':
39
+ statusLabel = __('Draft');
40
+ break;
41
+ case 'pending':
42
+ statusLabel = __('Pending review');
43
+ break;
44
+ case 'private':
45
+ statusLabel = __('Published privately');
46
+ break;
47
+ }
48
+ return createElement(Text, {
49
+ className: classnames('editor-post-status-label', {
50
+ [` has-status-${status}`]: !!status,
51
+ 'has-icon': canEdit
52
+ })
53
+ }, statusLabel, canEdit && createElement(Icon, {
54
+ icon: chevronDownSmall
55
+ }));
56
+ }
57
+ const STATUS_OPTIONS = [{
58
+ label: createElement(Fragment, null, __('Draft'), createElement(Text, {
59
+ variant: "muted",
60
+ size: 12
61
+ }, __('Not ready to publish.'))),
62
+ value: 'draft'
63
+ }, {
64
+ label: createElement(Fragment, null, __('Pending'), createElement(Text, {
65
+ variant: "muted",
66
+ size: 12
67
+ }, __('Waiting for review before publishing.'))),
68
+ value: 'pending'
69
+ }, {
70
+ label: createElement(Fragment, null, __('Private'), createElement(Text, {
71
+ variant: "muted",
72
+ size: 12
73
+ }, __('Only visible to site admins and editors.'))),
74
+ value: 'private'
75
+ }, {
76
+ label: createElement(Fragment, null, __('Scheduled'), createElement(Text, {
77
+ variant: "muted",
78
+ size: 12
79
+ }, __('Publish automatically on a chosen date.'))),
80
+ value: 'future'
81
+ }, {
82
+ label: createElement(Fragment, null, __('Published'), createElement(Text, {
83
+ variant: "muted",
84
+ size: 12
85
+ }, __('Visible to everyone.'))),
86
+ value: 'publish'
87
+ }];
88
+ const DESIGN_POST_TYPES = [TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, PATTERN_POST_TYPE, NAVIGATION_POST_TYPE];
89
+ export default function PostStatus() {
90
+ const {
91
+ status,
92
+ date,
93
+ password,
94
+ postId,
95
+ postType,
96
+ canEdit
97
+ } = useSelect(select => {
98
+ var _getCurrentPost$_link;
99
+ const {
100
+ getEditedPostAttribute,
101
+ getCurrentPostId,
102
+ getCurrentPostType,
103
+ getCurrentPost
104
+ } = select(editorStore);
105
+ return {
106
+ status: getEditedPostAttribute('status'),
107
+ date: getEditedPostAttribute('date'),
108
+ password: getEditedPostAttribute('password'),
109
+ postId: getCurrentPostId(),
110
+ postType: getCurrentPostType(),
111
+ canEdit: (_getCurrentPost$_link = getCurrentPost()._links?.['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false
112
+ };
113
+ }, []);
114
+ const [showPassword, setShowPassword] = useState(!!password);
115
+ const passwordInputId = useInstanceId(PostStatus, 'editor-change-status__password-input');
116
+ const {
117
+ editEntityRecord
118
+ } = useDispatch(coreStore);
119
+ const [popoverAnchor, setPopoverAnchor] = useState(null);
120
+ // Memoize popoverProps to avoid returning a new object every time.
121
+ const popoverProps = useMemo(() => ({
122
+ // Anchor the popover to the middle of the entire row so that it doesn't
123
+ // move around when the label changes.
124
+ anchor: popoverAnchor,
125
+ 'aria-label': __('Status & visibility'),
126
+ headerTitle: __('Status & visibility'),
127
+ placement: 'left-start',
128
+ offset: 36,
129
+ shift: true
130
+ }), [popoverAnchor]);
131
+ if (DESIGN_POST_TYPES.includes(postType)) {
132
+ return null;
133
+ }
134
+ const updatePost = ({
135
+ status: newStatus = status,
136
+ password: newPassword = password,
137
+ date: newDate = date
138
+ }) => {
139
+ editEntityRecord('postType', postType, postId, {
140
+ status: newStatus,
141
+ date: newDate,
142
+ password: newPassword
143
+ });
144
+ };
145
+ const handleTogglePassword = value => {
146
+ setShowPassword(value);
147
+ if (!value) {
148
+ updatePost({
149
+ password: ''
150
+ });
151
+ }
152
+ };
153
+ const handleStatus = value => {
154
+ let newDate = date;
155
+ let newPassword = password;
156
+ if (status === 'future' && new Date(date) > new Date()) {
157
+ newDate = null;
158
+ } else if (value === 'future') {
159
+ if (!date || new Date(date) < new Date()) {
160
+ newDate = new Date();
161
+ newDate.setDate(newDate.getDate() + 7);
162
+ }
163
+ }
164
+ if (value === 'private' && password) {
165
+ newPassword = '';
166
+ }
167
+ updatePost({
168
+ status: value,
169
+ date: newDate,
170
+ password: newPassword
171
+ });
172
+ };
173
+ return createElement(PostPanelRow, {
174
+ label: __('Status'),
175
+ ref: setPopoverAnchor
176
+ }, canEdit ? createElement(Dropdown, {
177
+ className: "editor-post-status",
178
+ contentClassName: "editor-change-status__content",
179
+ popoverProps: popoverProps,
180
+ focusOnMount: true,
181
+ renderToggle: ({
182
+ onToggle
183
+ }) => createElement(Button, {
184
+ className: "editor-post-status-trigger",
185
+ onClick: onToggle
186
+ }, createElement(PostStatusLabel, {
187
+ canEdit: canEdit
188
+ })),
189
+ renderContent: ({
190
+ onClose
191
+ }) => createElement(Fragment, null, createElement(InspectorPopoverHeader, {
192
+ title: __('Status & visibility'),
193
+ onClose: onClose
194
+ }), createElement("form", null, createElement(VStack, {
195
+ spacing: 4
196
+ }, createElement(RadioControl, {
197
+ className: "editor-change-status__options",
198
+ hideLabelFromVision: true,
199
+ label: __('Status'),
200
+ options: STATUS_OPTIONS,
201
+ onChange: handleStatus,
202
+ selected: status === 'auto-draft' ? 'draft' : status
203
+ }), status !== 'private' && createElement(VStack, {
204
+ as: "fieldset",
205
+ spacing: 4,
206
+ className: "editor-change-status__password-fieldset"
207
+ }, createElement(CheckboxControl, {
208
+ __nextHasNoMarginBottom: true,
209
+ label: __('Password protected'),
210
+ help: __('Only visible to those who know the password'),
211
+ checked: showPassword,
212
+ onChange: handleTogglePassword
213
+ }), showPassword && createElement("div", {
214
+ className: "editor-change-status__password-input"
215
+ }, createElement(TextControl, {
216
+ label: __('Password'),
217
+ onChange: value => updatePost({
218
+ password: value
219
+ }),
220
+ value: password,
221
+ placeholder: __('Use a secure password'),
222
+ type: "text",
223
+ id: passwordInputId,
224
+ __next40pxDefaultSize: true,
225
+ __nextHasNoMarginBottom: true
226
+ }))))))
227
+ }) : createElement("div", {
228
+ className: "editor-post-status"
229
+ }, createElement(PostStatusLabel, null)));
230
+ }
231
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["classnames","Button","CheckboxControl","Dropdown","__experimentalText","Text","__experimentalVStack","VStack","TextControl","RadioControl","__","useDispatch","useSelect","useState","useMemo","store","coreStore","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","useInstanceId","Icon","chevronDownSmall","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","PATTERN_POST_TYPE","NAVIGATION_POST_TYPE","PostPanelRow","editorStore","PostStatusLabel","canEdit","status","select","getEditedPostAttribute","statusLabel","createElement","className","icon","STATUS_OPTIONS","label","Fragment","variant","size","value","DESIGN_POST_TYPES","PostStatus","date","password","postId","postType","_getCurrentPost$_link","getCurrentPostId","getCurrentPostType","getCurrentPost","_links","showPassword","setShowPassword","passwordInputId","editEntityRecord","popoverAnchor","setPopoverAnchor","popoverProps","anchor","headerTitle","placement","offset","shift","includes","updatePost","newStatus","newPassword","newDate","handleTogglePassword","handleStatus","Date","setDate","getDate","ref","contentClassName","focusOnMount","renderToggle","onToggle","onClick","renderContent","onClose","title","spacing","hideLabelFromVision","options","onChange","selected","as","__nextHasNoMarginBottom","help","checked","placeholder","type","id","__next40pxDefaultSize"],"sources":["@wordpress/editor/src/components/post-status/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\tDropdown,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tTextControl,\n\tRadioControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Icon, chevronDownSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n} from '../../store/constants';\nimport PostPanelRow from '../post-panel-row';\nimport { store as editorStore } from '../../store';\n\nfunction PostStatusLabel( { canEdit } ) {\n\tconst status = useSelect(\n\t\t( select ) => select( editorStore ).getEditedPostAttribute( 'status' ),\n\t\t[]\n\t);\n\tlet statusLabel;\n\tswitch ( status ) {\n\t\tcase 'publish':\n\t\t\tstatusLabel = __( 'Published' );\n\t\t\tbreak;\n\t\tcase 'future':\n\t\t\tstatusLabel = __( 'Scheduled' );\n\t\t\tbreak;\n\t\tcase 'draft':\n\t\tcase 'auto-draft':\n\t\t\tstatusLabel = __( 'Draft' );\n\t\t\tbreak;\n\t\tcase 'pending':\n\t\t\tstatusLabel = __( 'Pending review' );\n\t\t\tbreak;\n\t\tcase 'private':\n\t\t\tstatusLabel = __( 'Published privately' );\n\t\t\tbreak;\n\t}\n\treturn (\n\t\t<Text\n\t\t\tclassName={ classnames( 'editor-post-status-label', {\n\t\t\t\t[ ` has-status-${ status }` ]: !! status,\n\t\t\t\t'has-icon': canEdit,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ statusLabel }\n\t\t\t{ canEdit && <Icon icon={ chevronDownSmall } /> }\n\t\t</Text>\n\t);\n}\n\nconst STATUS_OPTIONS = [\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Draft' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Not ready to publish.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'draft',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Pending' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Waiting for review before publishing.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'pending',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Private' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Only visible to site admins and editors.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'private',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Scheduled' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Publish automatically on a chosen date.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'future',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Published' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Visible to everyone.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'publish',\n\t},\n];\n\nconst DESIGN_POST_TYPES = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n];\n\nexport default function PostStatus() {\n\tconst { status, date, password, postId, postType, canEdit } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetCurrentPostId,\n\t\t\t\tgetCurrentPostType,\n\t\t\t\tgetCurrentPost,\n\t\t\t} = select( editorStore );\n\t\t\treturn {\n\t\t\t\tstatus: getEditedPostAttribute( 'status' ),\n\t\t\t\tdate: getEditedPostAttribute( 'date' ),\n\t\t\t\tpassword: getEditedPostAttribute( 'password' ),\n\t\t\t\tpostId: getCurrentPostId(),\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t\tcanEdit:\n\t\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst [ showPassword, setShowPassword ] = useState( !! password );\n\tconst passwordInputId = useInstanceId(\n\t\tPostStatus,\n\t\t'editor-change-status__password-input'\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\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': __( 'Status & visibility' ),\n\t\t\theaderTitle: __( 'Status & visibility' ),\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tif ( DESIGN_POST_TYPES.includes( postType ) ) {\n\t\treturn null;\n\t}\n\n\tconst updatePost = ( {\n\t\tstatus: newStatus = status,\n\t\tpassword: newPassword = password,\n\t\tdate: newDate = date,\n\t} ) => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tstatus: newStatus,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\tconst handleTogglePassword = ( value ) => {\n\t\tsetShowPassword( value );\n\t\tif ( ! value ) {\n\t\t\tupdatePost( { password: '' } );\n\t\t}\n\t};\n\n\tconst handleStatus = ( value ) => {\n\t\tlet newDate = date;\n\t\tlet newPassword = password;\n\t\tif ( status === 'future' && new Date( date ) > new Date() ) {\n\t\t\tnewDate = null;\n\t\t} else if ( value === 'future' ) {\n\t\t\tif ( ! date || new Date( date ) < new Date() ) {\n\t\t\t\tnewDate = new Date();\n\t\t\t\tnewDate.setDate( newDate.getDate() + 7 );\n\t\t\t}\n\t\t}\n\t\tif ( value === 'private' && password ) {\n\t\t\tnewPassword = '';\n\t\t}\n\t\tupdatePost( {\n\t\t\tstatus: value,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Status' ) } ref={ setPopoverAnchor }>\n\t\t\t{ canEdit ? (\n\t\t\t\t<Dropdown\n\t\t\t\t\tclassName=\"editor-post-status\"\n\t\t\t\t\tcontentClassName=\"editor-change-status__content\"\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\trenderToggle={ ( { onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"editor-post-status-trigger\"\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PostStatusLabel canEdit={ canEdit } />\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<>\n\t\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\t\ttitle={ __( 'Status & visibility' ) }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<form>\n\t\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t\t<RadioControl\n\t\t\t\t\t\t\t\t\t\tclassName=\"editor-change-status__options\"\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Status' ) }\n\t\t\t\t\t\t\t\t\t\toptions={ STATUS_OPTIONS }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleStatus }\n\t\t\t\t\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\t\t\t\t\tstatus === 'auto-draft'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'draft'\n\t\t\t\t\t\t\t\t\t\t\t\t: status\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\t{ status !== 'private' && (\n\t\t\t\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\t\t\t\tas=\"fieldset\"\n\t\t\t\t\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-change-status__password-fieldset\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Password protected'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Only visible to those who know the password'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={ showPassword }\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleTogglePassword\n\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\t{ showPassword && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"editor-change-status__password-input\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Password'\n\t\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\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePost( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpassword: value,\n\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ password }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Use a secure password'\n\t\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\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={ passwordInputId }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div className=\"editor-post-status\">\n\t\t\t\t\t<PostStatusLabel />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</PostPanelRow>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","store","editorStore","PostStickyCheck","children","hasStickyAction","postType","select","_post$_links$wpActio","post","getCurrentPost","_links","getCurrentPostType"],"sources":["@wordpress/editor/src/components/post-sticky/check.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostStickyCheck( { children } ) {\n\tconst { hasStickyAction, postType } = useSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\treturn {\n\t\t\thasStickyAction: post._links?.[ 'wp:action-sticky' ] ?? false,\n\t\t\tpostType: select( editorStore ).getCurrentPostType(),\n\t\t};\n\t}, [] );\n\n\tif ( postType !== 'post' || ! hasStickyAction ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,eAAeA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACvD,MAAM;IAAEC,eAAe;IAAEC;EAAS,CAAC,GAAGN,SAAS,CAAIO,MAAM,IAAM;IAAA,IAAAC,oBAAA;IAC9D,MAAMC,IAAI,GAAGF,MAAM,CAAEL,WAAY,CAAC,CAACQ,cAAc,CAAC,CAAC;IACnD,OAAO;MACNL,eAAe,GAAAG,oBAAA,GAAEC,IAAI,CAACE,MAAM,GAAI,kBAAkB,CAAE,cAAAH,oBAAA,cAAAA,oBAAA,GAAI,KAAK;MAC7DF,QAAQ,EAAEC,MAAM,CAAEL,WAAY,CAAC,CAACU,kBAAkB,CAAC;IACpD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAKN,QAAQ,KAAK,MAAM,IAAI,CAAED,eAAe,EAAG;IAC/C,OAAO,IAAI;EACZ;EAEA,OAAOD,QAAQ;AAChB"}
1
+ {"version":3,"names":["useSelect","store","editorStore","PostStickyCheck","children","hasStickyAction","postType","select","_post$_links$wpActio","post","getCurrentPost","_links","getCurrentPostType"],"sources":["@wordpress/editor/src/components/post-sticky/check.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostStickyCheck( { children } ) {\n\tconst { hasStickyAction, postType } = useSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\treturn {\n\t\t\thasStickyAction: post._links?.[ 'wp:action-sticky' ] ?? false,\n\t\t\tpostType: select( editorStore ).getCurrentPostType(),\n\t\t};\n\t}, [] );\n\n\tif ( postType !== 'post' || ! hasStickyAction ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,eAAeA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACvD,MAAM;IAAEC,eAAe;IAAEC;EAAS,CAAC,GAAGN,SAAS,CAAIO,MAAM,IAAM;IAAA,IAAAC,oBAAA;IAC9D,MAAMC,IAAI,GAAGF,MAAM,CAAEL,WAAY,CAAC,CAACQ,cAAc,CAAC,CAAC;IACnD,OAAO;MACNL,eAAe,GAAAG,oBAAA,GAAEC,IAAI,CAACE,MAAM,GAAI,kBAAkB,CAAE,cAAAH,oBAAA,cAAAA,oBAAA,GAAI,KAAK;MAC7DF,QAAQ,EAAEC,MAAM,CAAEL,WAAY,CAAC,CAACU,kBAAkB,CAAC;IACpD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAKN,QAAQ,KAAK,MAAM,IAAI,CAAED,eAAe,EAAG;IAC/C,OAAO,IAAI;EACZ;EAEA,OAAOD,QAAQ;AAChB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__","CheckboxControl","useDispatch","useSelect","PostStickyCheck","store","editorStore","PostSticky","postSticky","select","_select$getEditedPost","getEditedPostAttribute","editPost","createElement","__nextHasNoMarginBottom","label","checked","onChange","sticky"],"sources":["@wordpress/editor/src/components/post-sticky/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport PostStickyCheck from './check';\nimport { store as editorStore } from '../../store';\n\nexport default function PostSticky() {\n\tconst postSticky = useSelect( ( select ) => {\n\t\treturn (\n\t\t\tselect( editorStore ).getEditedPostAttribute( 'sticky' ) ?? false\n\t\t);\n\t}, [] );\n\tconst { editPost } = useDispatch( editorStore );\n\n\treturn (\n\t\t<PostStickyCheck>\n\t\t\t<CheckboxControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stick to the top of the blog' ) }\n\t\t\t\tchecked={ postSticky }\n\t\t\t\tonChange={ () => editPost( { sticky: ! postSticky } ) }\n\t\t\t/>\n\t\t</PostStickyCheck>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;;AAExD;AACA;AACA;AACA,OAAOC,eAAe,MAAM,SAAS;AACrC,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,UAAUA,CAAA,EAAG;EACpC,MAAMC,UAAU,GAAGL,SAAS,CAAIM,MAAM,IAAM;IAAA,IAAAC,qBAAA;IAC3C,QAAAA,qBAAA,GACCD,MAAM,CAAEH,WAAY,CAAC,CAACK,sBAAsB,CAAE,QAAS,CAAC,cAAAD,qBAAA,cAAAA,qBAAA,GAAI,KAAK;EAEnE,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEE;EAAS,CAAC,GAAGV,WAAW,CAAEI,WAAY,CAAC;EAE/C,OACCO,aAAA,CAACT,eAAe,QACfS,aAAA,CAACZ,eAAe;IACfa,uBAAuB;IACvBC,KAAK,EAAGf,EAAE,CAAE,8BAA+B,CAAG;IAC9CgB,OAAO,EAAGR,UAAY;IACtBS,QAAQ,EAAGA,CAAA,KAAML,QAAQ,CAAE;MAAEM,MAAM,EAAE,CAAEV;IAAW,CAAE;EAAG,CACvD,CACe,CAAC;AAEpB"}
1
+ {"version":3,"names":["__","CheckboxControl","useDispatch","useSelect","PostStickyCheck","store","editorStore","PostSticky","postSticky","select","_select$getEditedPost","getEditedPostAttribute","editPost","createElement","__nextHasNoMarginBottom","label","checked","onChange","sticky"],"sources":["@wordpress/editor/src/components/post-sticky/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport PostStickyCheck from './check';\nimport { store as editorStore } from '../../store';\n\nexport default function PostSticky() {\n\tconst postSticky = useSelect( ( select ) => {\n\t\treturn (\n\t\t\tselect( editorStore ).getEditedPostAttribute( 'sticky' ) ?? false\n\t\t);\n\t}, [] );\n\tconst { editPost } = useDispatch( editorStore );\n\n\treturn (\n\t\t<PostStickyCheck>\n\t\t\t<CheckboxControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stick to the top of the blog' ) }\n\t\t\t\tchecked={ postSticky }\n\t\t\t\tonChange={ () => editPost( { sticky: ! postSticky } ) }\n\t\t\t/>\n\t\t</PostStickyCheck>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;;AAExD;AACA;AACA;AACA,OAAOC,eAAe,MAAM,SAAS;AACrC,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,UAAUA,CAAA,EAAG;EACpC,MAAMC,UAAU,GAAGL,SAAS,CAAIM,MAAM,IAAM;IAAA,IAAAC,qBAAA;IAC3C,QAAAA,qBAAA,GACCD,MAAM,CAAEH,WAAY,CAAC,CAACK,sBAAsB,CAAE,QAAS,CAAC,cAAAD,qBAAA,cAAAA,qBAAA,GAAI,KAAK;EAEnE,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEE;EAAS,CAAC,GAAGV,WAAW,CAAEI,WAAY,CAAC;EAE/C,OACCO,aAAA,CAACT,eAAe,QACfS,aAAA,CAACZ,eAAe;IACfa,uBAAuB;IACvBC,KAAK,EAAGf,EAAE,CAAE,8BAA+B,CAAG;IAC9CgB,OAAO,EAAGR,UAAY;IACtBS,QAAQ,EAAGA,CAAA,KAAML,QAAQ,CAAE;MAAEM,MAAM,EAAE,CAAEV;IAAW,CAAE;EAAG,CACvD,CACe,CAAC;AAEpB","ignoreList":[]}
@@ -11,6 +11,8 @@ import { useState } from '@wordpress/element';
11
11
  * Internal dependencies
12
12
  */
13
13
  import { store as editorStore } from '../../store';
14
+
15
+ // TODO: deprecate..
14
16
  export default function PostSwitchToDraftButton() {
15
17
  const [showConfirmDialog, setShowConfirmDialog] = useState(false);
16
18
  const {
@@ -35,10 +37,13 @@ export default function PostSwitchToDraftButton() {
35
37
  }, []);
36
38
  const isDisabled = isSaving || !isPublished && !isScheduled;
37
39
  let alertMessage;
40
+ let confirmButtonText;
38
41
  if (isPublished) {
39
42
  alertMessage = __('Are you sure you want to unpublish this post?');
43
+ confirmButtonText = __('Unpublish');
40
44
  } else if (isScheduled) {
41
45
  alertMessage = __('Are you sure you want to unschedule this post?');
46
+ confirmButtonText = __('Unschedule');
42
47
  }
43
48
  const handleConfirm = () => {
44
49
  setShowConfirmDialog(false);
@@ -64,7 +69,8 @@ export default function PostSwitchToDraftButton() {
64
69
  }, __('Switch to draft')), createElement(ConfirmDialog, {
65
70
  isOpen: showConfirmDialog,
66
71
  onConfirm: handleConfirm,
67
- onCancel: () => setShowConfirmDialog(false)
72
+ onCancel: () => setShowConfirmDialog(false),
73
+ confirmButtonText: confirmButtonText
68
74
  }, alertMessage));
69
75
  }
70
76
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Button","__experimentalConfirmDialog","ConfirmDialog","__","useDispatch","useSelect","useState","store","editorStore","PostSwitchToDraftButton","showConfirmDialog","setShowConfirmDialog","editPost","savePost","isSaving","isPublished","isScheduled","select","isSavingPost","isCurrentPostPublished","isCurrentPostScheduled","isDisabled","alertMessage","handleConfirm","status","createElement","Fragment","__next40pxDefaultSize","className","onClick","variant","style","flexGrow","justifyContent","isOpen","onConfirm","onCancel"],"sources":["@wordpress/editor/src/components/post-switch-to-draft-button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostSwitchToDraftButton() {\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\n\tconst { editPost, savePost } = useDispatch( editorStore );\n\tconst { isSaving, isPublished, isScheduled } = useSelect( ( select ) => {\n\t\tconst { isSavingPost, isCurrentPostPublished, isCurrentPostScheduled } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t}, [] );\n\n\tconst isDisabled = isSaving || ( ! isPublished && ! isScheduled );\n\n\tlet alertMessage;\n\tif ( isPublished ) {\n\t\talertMessage = __( 'Are you sure you want to unpublish this post?' );\n\t} else if ( isScheduled ) {\n\t\talertMessage = __( 'Are you sure you want to unschedule this post?' );\n\t}\n\n\tconst handleConfirm = () => {\n\t\tsetShowConfirmDialog( false );\n\t\teditPost( { status: 'draft' } );\n\t\tsavePost();\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tclassName=\"editor-post-switch-to-draft\"\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( ! isDisabled ) {\n\t\t\t\t\t\tsetShowConfirmDialog( true );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\taria-disabled={ isDisabled }\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tstyle={ { flexGrow: '1', justifyContent: 'center' } }\n\t\t\t>\n\t\t\t\t{ __( 'Switch to draft' ) }\n\t\t\t</Button>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ showConfirmDialog }\n\t\t\t\tonConfirm={ handleConfirm }\n\t\t\t\tonCancel={ () => setShowConfirmDialog( false ) }\n\t\t\t>\n\t\t\t\t{ alertMessage }\n\t\t\t</ConfirmDialog>\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,MAAM,EACNC,2BAA2B,IAAIC,aAAa,QACtC,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,uBAAuBA,CAAA,EAAG;EACjD,MAAM,CAAEC,iBAAiB,EAAEC,oBAAoB,CAAE,GAAGL,QAAQ,CAAE,KAAM,CAAC;EAErE,MAAM;IAAEM,QAAQ;IAAEC;EAAS,CAAC,GAAGT,WAAW,CAAEI,WAAY,CAAC;EACzD,MAAM;IAAEM,QAAQ;IAAEC,WAAW;IAAEC;EAAY,CAAC,GAAGX,SAAS,CAAIY,MAAM,IAAM;IACvE,MAAM;MAAEC,YAAY;MAAEC,sBAAsB;MAAEC;IAAuB,CAAC,GACrEH,MAAM,CAAET,WAAY,CAAC;IACtB,OAAO;MACNM,QAAQ,EAAEI,YAAY,CAAC,CAAC;MACxBH,WAAW,EAAEI,sBAAsB,CAAC,CAAC;MACrCH,WAAW,EAAEI,sBAAsB,CAAC;IACrC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,UAAU,GAAGP,QAAQ,IAAM,CAAEC,WAAW,IAAI,CAAEC,WAAa;EAEjE,IAAIM,YAAY;EAChB,IAAKP,WAAW,EAAG;IAClBO,YAAY,GAAGnB,EAAE,CAAE,+CAAgD,CAAC;EACrE,CAAC,MAAM,IAAKa,WAAW,EAAG;IACzBM,YAAY,GAAGnB,EAAE,CAAE,gDAAiD,CAAC;EACtE;EAEA,MAAMoB,aAAa,GAAGA,CAAA,KAAM;IAC3BZ,oBAAoB,CAAE,KAAM,CAAC;IAC7BC,QAAQ,CAAE;MAAEY,MAAM,EAAE;IAAQ,CAAE,CAAC;IAC/BX,QAAQ,CAAC,CAAC;EACX,CAAC;EAED,OACCY,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACzB,MAAM;IACN2B,qBAAqB;IACrBC,SAAS,EAAC,6BAA6B;IACvCC,OAAO,EAAGA,CAAA,KAAM;MACf,IAAK,CAAER,UAAU,EAAG;QACnBV,oBAAoB,CAAE,IAAK,CAAC;MAC7B;IACD,CAAG;IACH,iBAAgBU,UAAY;IAC5BS,OAAO,EAAC,WAAW;IACnBC,KAAK,EAAG;MAAEC,QAAQ,EAAE,GAAG;MAAEC,cAAc,EAAE;IAAS;EAAG,GAEnD9B,EAAE,CAAE,iBAAkB,CACjB,CAAC,EACTsB,aAAA,CAACvB,aAAa;IACbgC,MAAM,EAAGxB,iBAAmB;IAC5ByB,SAAS,EAAGZ,aAAe;IAC3Ba,QAAQ,EAAGA,CAAA,KAAMzB,oBAAoB,CAAE,KAAM;EAAG,GAE9CW,YACY,CACd,CAAC;AAEL"}
1
+ {"version":3,"names":["Button","__experimentalConfirmDialog","ConfirmDialog","__","useDispatch","useSelect","useState","store","editorStore","PostSwitchToDraftButton","showConfirmDialog","setShowConfirmDialog","editPost","savePost","isSaving","isPublished","isScheduled","select","isSavingPost","isCurrentPostPublished","isCurrentPostScheduled","isDisabled","alertMessage","confirmButtonText","handleConfirm","status","createElement","Fragment","__next40pxDefaultSize","className","onClick","variant","style","flexGrow","justifyContent","isOpen","onConfirm","onCancel"],"sources":["@wordpress/editor/src/components/post-switch-to-draft-button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n// TODO: deprecate..\nexport default function PostSwitchToDraftButton() {\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\n\tconst { editPost, savePost } = useDispatch( editorStore );\n\tconst { isSaving, isPublished, isScheduled } = useSelect( ( select ) => {\n\t\tconst { isSavingPost, isCurrentPostPublished, isCurrentPostScheduled } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t}, [] );\n\n\tconst isDisabled = isSaving || ( ! isPublished && ! isScheduled );\n\n\tlet alertMessage;\n\tlet confirmButtonText;\n\tif ( isPublished ) {\n\t\talertMessage = __( 'Are you sure you want to unpublish this post?' );\n\t\tconfirmButtonText = __( 'Unpublish' );\n\t} else if ( isScheduled ) {\n\t\talertMessage = __( 'Are you sure you want to unschedule this post?' );\n\t\tconfirmButtonText = __( 'Unschedule' );\n\t}\n\n\tconst handleConfirm = () => {\n\t\tsetShowConfirmDialog( false );\n\t\teditPost( { status: 'draft' } );\n\t\tsavePost();\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tclassName=\"editor-post-switch-to-draft\"\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( ! isDisabled ) {\n\t\t\t\t\t\tsetShowConfirmDialog( true );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\taria-disabled={ isDisabled }\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tstyle={ { flexGrow: '1', justifyContent: 'center' } }\n\t\t\t>\n\t\t\t\t{ __( 'Switch to draft' ) }\n\t\t\t</Button>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ showConfirmDialog }\n\t\t\t\tonConfirm={ handleConfirm }\n\t\t\t\tonCancel={ () => setShowConfirmDialog( false ) }\n\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t>\n\t\t\t\t{ alertMessage }\n\t\t\t</ConfirmDialog>\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,MAAM,EACNC,2BAA2B,IAAIC,aAAa,QACtC,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;;AAElD;AACA,eAAe,SAASC,uBAAuBA,CAAA,EAAG;EACjD,MAAM,CAAEC,iBAAiB,EAAEC,oBAAoB,CAAE,GAAGL,QAAQ,CAAE,KAAM,CAAC;EAErE,MAAM;IAAEM,QAAQ;IAAEC;EAAS,CAAC,GAAGT,WAAW,CAAEI,WAAY,CAAC;EACzD,MAAM;IAAEM,QAAQ;IAAEC,WAAW;IAAEC;EAAY,CAAC,GAAGX,SAAS,CAAIY,MAAM,IAAM;IACvE,MAAM;MAAEC,YAAY;MAAEC,sBAAsB;MAAEC;IAAuB,CAAC,GACrEH,MAAM,CAAET,WAAY,CAAC;IACtB,OAAO;MACNM,QAAQ,EAAEI,YAAY,CAAC,CAAC;MACxBH,WAAW,EAAEI,sBAAsB,CAAC,CAAC;MACrCH,WAAW,EAAEI,sBAAsB,CAAC;IACrC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,UAAU,GAAGP,QAAQ,IAAM,CAAEC,WAAW,IAAI,CAAEC,WAAa;EAEjE,IAAIM,YAAY;EAChB,IAAIC,iBAAiB;EACrB,IAAKR,WAAW,EAAG;IAClBO,YAAY,GAAGnB,EAAE,CAAE,+CAAgD,CAAC;IACpEoB,iBAAiB,GAAGpB,EAAE,CAAE,WAAY,CAAC;EACtC,CAAC,MAAM,IAAKa,WAAW,EAAG;IACzBM,YAAY,GAAGnB,EAAE,CAAE,gDAAiD,CAAC;IACrEoB,iBAAiB,GAAGpB,EAAE,CAAE,YAAa,CAAC;EACvC;EAEA,MAAMqB,aAAa,GAAGA,CAAA,KAAM;IAC3Bb,oBAAoB,CAAE,KAAM,CAAC;IAC7BC,QAAQ,CAAE;MAAEa,MAAM,EAAE;IAAQ,CAAE,CAAC;IAC/BZ,QAAQ,CAAC,CAAC;EACX,CAAC;EAED,OACCa,aAAA,CAAAC,QAAA,QACCD,aAAA,CAAC1B,MAAM;IACN4B,qBAAqB;IACrBC,SAAS,EAAC,6BAA6B;IACvCC,OAAO,EAAGA,CAAA,KAAM;MACf,IAAK,CAAET,UAAU,EAAG;QACnBV,oBAAoB,CAAE,IAAK,CAAC;MAC7B;IACD,CAAG;IACH,iBAAgBU,UAAY;IAC5BU,OAAO,EAAC,WAAW;IACnBC,KAAK,EAAG;MAAEC,QAAQ,EAAE,GAAG;MAAEC,cAAc,EAAE;IAAS;EAAG,GAEnD/B,EAAE,CAAE,iBAAkB,CACjB,CAAC,EACTuB,aAAA,CAACxB,aAAa;IACbiC,MAAM,EAAGzB,iBAAmB;IAC5B0B,SAAS,EAAGZ,aAAe;IAC3Ba,QAAQ,EAAGA,CAAA,KAAM1B,oBAAoB,CAAE,KAAM,CAAG;IAChDY,iBAAiB,EAAGA;EAAmB,GAErCD,YACY,CACd,CAAC;AAEL","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","__","_x","PostPanelRow","store","editorStore","PostSyncStatus","syncStatus","postType","select","getEditedPostAttribute","meta","currentSyncStatus","wp_pattern_sync_status","createElement","label","className"],"sources":["@wordpress/editor/src/components/post-sync-status/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PostPanelRow from '../post-panel-row';\nimport { store as editorStore } from '../../store';\n\nexport default function PostSyncStatus() {\n\tconst { syncStatus, postType } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst meta = getEditedPostAttribute( 'meta' );\n\n\t\t// When the post is first created, the top level wp_pattern_sync_status is not set so get meta value instead.\n\t\tconst currentSyncStatus =\n\t\t\tmeta?.wp_pattern_sync_status === 'unsynced'\n\t\t\t\t? 'unsynced'\n\t\t\t\t: getEditedPostAttribute( 'wp_pattern_sync_status' );\n\n\t\treturn {\n\t\t\tsyncStatus: currentSyncStatus,\n\t\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\t};\n\t} );\n\n\tif ( postType !== 'wp_block' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Sync status' ) }>\n\t\t\t<div className=\"editor-post-sync-status__value\">\n\t\t\t\t{ syncStatus === 'unsynced'\n\t\t\t\t\t? _x(\n\t\t\t\t\t\t\t'Not synced',\n\t\t\t\t\t\t\t'Text that indicates that the pattern is not synchronized'\n\t\t\t\t\t )\n\t\t\t\t\t: _x(\n\t\t\t\t\t\t\t'Synced',\n\t\t\t\t\t\t\t'Text that indicates that the pattern is synchronized'\n\t\t\t\t\t ) }\n\t\t\t</div>\n\t\t</PostPanelRow>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,EAAE,EAAEC,EAAE,QAAQ,iBAAiB;;AAExC;AACA;AACA;AACA,OAAOC,YAAY,MAAM,mBAAmB;AAC5C,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,cAAcA,CAAA,EAAG;EACxC,MAAM;IAAEC,UAAU;IAAEC;EAAS,CAAC,GAAGR,SAAS,CAAIS,MAAM,IAAM;IACzD,MAAM;MAAEC;IAAuB,CAAC,GAAGD,MAAM,CAAEJ,WAAY,CAAC;IACxD,MAAMM,IAAI,GAAGD,sBAAsB,CAAE,MAAO,CAAC;;IAE7C;IACA,MAAME,iBAAiB,GACtBD,IAAI,EAAEE,sBAAsB,KAAK,UAAU,GACxC,UAAU,GACVH,sBAAsB,CAAE,wBAAyB,CAAC;IAEtD,OAAO;MACNH,UAAU,EAAEK,iBAAiB;MAC7BJ,QAAQ,EAAEE,sBAAsB,CAAE,MAAO;IAC1C,CAAC;EACF,CAAE,CAAC;EAEH,IAAKF,QAAQ,KAAK,UAAU,EAAG;IAC9B,OAAO,IAAI;EACZ;EAEA,OACCM,aAAA,CAACX,YAAY;IAACY,KAAK,EAAGd,EAAE,CAAE,aAAc;EAAG,GAC1Ca,aAAA;IAAKE,SAAS,EAAC;EAAgC,GAC5CT,UAAU,KAAK,UAAU,GACxBL,EAAE,CACF,YAAY,EACZ,0DACA,CAAC,GACDA,EAAE,CACF,QAAQ,EACR,sDACA,CACC,CACQ,CAAC;AAEjB"}
1
+ {"version":3,"names":["useSelect","__","_x","PostPanelRow","store","editorStore","PostSyncStatus","syncStatus","postType","select","getEditedPostAttribute","meta","currentSyncStatus","wp_pattern_sync_status","createElement","label","className"],"sources":["@wordpress/editor/src/components/post-sync-status/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PostPanelRow from '../post-panel-row';\nimport { store as editorStore } from '../../store';\n\nexport default function PostSyncStatus() {\n\tconst { syncStatus, postType } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst meta = getEditedPostAttribute( 'meta' );\n\n\t\t// When the post is first created, the top level wp_pattern_sync_status is not set so get meta value instead.\n\t\tconst currentSyncStatus =\n\t\t\tmeta?.wp_pattern_sync_status === 'unsynced'\n\t\t\t\t? 'unsynced'\n\t\t\t\t: getEditedPostAttribute( 'wp_pattern_sync_status' );\n\n\t\treturn {\n\t\t\tsyncStatus: currentSyncStatus,\n\t\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\t};\n\t} );\n\n\tif ( postType !== 'wp_block' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Sync status' ) }>\n\t\t\t<div className=\"editor-post-sync-status__value\">\n\t\t\t\t{ syncStatus === 'unsynced'\n\t\t\t\t\t? _x(\n\t\t\t\t\t\t\t'Not synced',\n\t\t\t\t\t\t\t'Text that indicates that the pattern is not synchronized'\n\t\t\t\t\t )\n\t\t\t\t\t: _x(\n\t\t\t\t\t\t\t'Synced',\n\t\t\t\t\t\t\t'Text that indicates that the pattern is synchronized'\n\t\t\t\t\t ) }\n\t\t\t</div>\n\t\t</PostPanelRow>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,EAAE,EAAEC,EAAE,QAAQ,iBAAiB;;AAExC;AACA;AACA;AACA,OAAOC,YAAY,MAAM,mBAAmB;AAC5C,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,cAAcA,CAAA,EAAG;EACxC,MAAM;IAAEC,UAAU;IAAEC;EAAS,CAAC,GAAGR,SAAS,CAAIS,MAAM,IAAM;IACzD,MAAM;MAAEC;IAAuB,CAAC,GAAGD,MAAM,CAAEJ,WAAY,CAAC;IACxD,MAAMM,IAAI,GAAGD,sBAAsB,CAAE,MAAO,CAAC;;IAE7C;IACA,MAAME,iBAAiB,GACtBD,IAAI,EAAEE,sBAAsB,KAAK,UAAU,GACxC,UAAU,GACVH,sBAAsB,CAAE,wBAAyB,CAAC;IAEtD,OAAO;MACNH,UAAU,EAAEK,iBAAiB;MAC7BJ,QAAQ,EAAEE,sBAAsB,CAAE,MAAO;IAC1C,CAAC;EACF,CAAE,CAAC;EAEH,IAAKF,QAAQ,KAAK,UAAU,EAAG;IAC9B,OAAO,IAAI;EACZ;EAEA,OACCM,aAAA,CAACX,YAAY;IAACY,KAAK,EAAGd,EAAE,CAAE,aAAc;EAAG,GAC1Ca,aAAA;IAAKE,SAAS,EAAC;EAAgC,GAC5CT,UAAU,KAAK,UAAU,GACxBL,EAAE,CACF,YAAY,EACZ,0DACA,CAAC,GACDA,EAAE,CACF,QAAQ,EACR,sDACA,CACC,CACQ,CAAC;AAEjB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","store","coreStore","editorStore","PostTaxonomiesCheck","children","hasTaxonomies","select","postType","getCurrentPostType","taxonomies","getTaxonomies","per_page","some","taxonomy","types","includes"],"sources":["@wordpress/editor/src/components/post-taxonomies/check.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostTaxonomiesCheck( { children } ) {\n\tconst hasTaxonomies = useSelect( ( select ) => {\n\t\tconst postType = select( editorStore ).getCurrentPostType();\n\t\tconst taxonomies = select( coreStore ).getTaxonomies( {\n\t\t\tper_page: -1,\n\t\t} );\n\t\treturn taxonomies?.some( ( taxonomy ) =>\n\t\t\ttaxonomy.types.includes( postType )\n\t\t);\n\t}, [] );\n\tif ( ! hasTaxonomies ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASD,KAAK,IAAIE,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,mBAAmBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC3D,MAAMC,aAAa,GAAGN,SAAS,CAAIO,MAAM,IAAM;IAC9C,MAAMC,QAAQ,GAAGD,MAAM,CAAEJ,WAAY,CAAC,CAACM,kBAAkB,CAAC,CAAC;IAC3D,MAAMC,UAAU,GAAGH,MAAM,CAAEL,SAAU,CAAC,CAACS,aAAa,CAAE;MACrDC,QAAQ,EAAE,CAAC;IACZ,CAAE,CAAC;IACH,OAAOF,UAAU,EAAEG,IAAI,CAAIC,QAAQ,IAClCA,QAAQ,CAACC,KAAK,CAACC,QAAQ,CAAER,QAAS,CACnC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,IAAK,CAAEF,aAAa,EAAG;IACtB,OAAO,IAAI;EACZ;EAEA,OAAOD,QAAQ;AAChB"}
1
+ {"version":3,"names":["useSelect","store","coreStore","editorStore","PostTaxonomiesCheck","children","hasTaxonomies","select","postType","getCurrentPostType","taxonomies","getTaxonomies","per_page","some","taxonomy","types","includes"],"sources":["@wordpress/editor/src/components/post-taxonomies/check.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostTaxonomiesCheck( { children } ) {\n\tconst hasTaxonomies = useSelect( ( select ) => {\n\t\tconst postType = select( editorStore ).getCurrentPostType();\n\t\tconst taxonomies = select( coreStore ).getTaxonomies( {\n\t\t\tper_page: -1,\n\t\t} );\n\t\treturn taxonomies?.some( ( taxonomy ) =>\n\t\t\ttaxonomy.types.includes( postType )\n\t\t);\n\t}, [] );\n\tif ( ! hasTaxonomies ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASD,KAAK,IAAIE,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,mBAAmBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC3D,MAAMC,aAAa,GAAGN,SAAS,CAAIO,MAAM,IAAM;IAC9C,MAAMC,QAAQ,GAAGD,MAAM,CAAEJ,WAAY,CAAC,CAACM,kBAAkB,CAAC,CAAC;IAC3D,MAAMC,UAAU,GAAGH,MAAM,CAAEL,SAAU,CAAC,CAACS,aAAa,CAAE;MACrDC,QAAQ,EAAE,CAAC;IACZ,CAAE,CAAC;IACH,OAAOF,UAAU,EAAEG,IAAI,CAAIC,QAAQ,IAClCA,QAAQ,CAACC,KAAK,CAACC,QAAQ,CAAER,QAAS,CACnC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,IAAK,CAAEF,aAAa,EAAG;IACtB,OAAO,IAAI;EACZ;EAEA,OAAOD,QAAQ;AAChB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__","_x","sprintf","useEffect","useMemo","useState","FormTokenField","withFilters","useSelect","useDispatch","store","coreStore","useDebounce","speak","noticesStore","editorStore","unescapeString","unescapeTerm","MostUsedTerms","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","term","name","id","filter","undefined","FlatTermSelector","slug","_taxonomy$labels$add_","_taxonomy$labels$sing2","values","setValues","search","setSearch","debouncedSearch","termIds","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","getEntityRecords","getTaxonomy","hasFinishedResolution","post","_taxonomy","_termIds","rest_base","query","include","join","_links","length","searchResults","newValues","suggestions","editPost","saveEntityRecord","createErrorNotice","findOrCreateTerm","newTerm","throwOnError","error","code","data","term_id","onUpdateTerms","newTermIds","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","Promise","all","then","newTerms","newAvailableTerms","concat","catch","message","type","appendTerm","_taxonomy$labels$sing","includes","defaultName","termAddedMessage","labels","singular_name","newTermLabel","add_new_item","singularName","termAddedLabel","termRemovedLabel","removeTermLabel","createElement","Fragment","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","onSelect"],"sources":["@wordpress/editor/src/components/post-taxonomies/flat-term-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { FormTokenField, withFilters } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unescapeString, unescapeTerm } from '../../utils/terms';\nimport MostUsedTerms from './most-used-terms';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * Module constants\n */\nconst MAX_TERMS_SUGGESTIONS = 20;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names\n\t\t.map(\n\t\t\t( termName ) =>\n\t\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) )\n\t\t\t\t\t?.id\n\t\t)\n\t\t.filter( ( id ) => id !== undefined );\n};\n\nexport function FlatTermSelector( { slug } ) {\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst {\n\t\tterms,\n\t\ttermIds,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getEntityRecords, getTaxonomy, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst post = getCurrentPost();\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst _termIds = _taxonomy\n\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t: EMPTY_ARRAY;\n\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search, slug ]\n\t);\n\n\t// Update terms state only after the selectors are resolved.\n\t// We're using this to avoid terms temporarily disappearing on slow networks\n\t// while core data makes REST API requests.\n\tuseEffect( () => {\n\t\tif ( hasResolvedTerms ) {\n\t\t\tconst newValues = ( terms ?? [] ).map( ( term ) =>\n\t\t\t\tunescapeString( term.name )\n\t\t\t);\n\n\t\t\tsetValues( newValues );\n\t\t}\n\t}, [ terms, hasResolvedTerms ] );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn ( searchResults ?? [] ).map( ( term ) =>\n\t\t\tunescapeString( term.name )\n\t\t);\n\t}, [ searchResults ] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\t\t\treturn unescapeTerm( newTerm );\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: term.name,\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction onUpdateTerms( newTermIds ) {\n\t\teditPost( { [ taxonomy.rest_base ]: newTermIds } );\n\t}\n\n\tfunction onChange( termNames ) {\n\t\tconst availableTerms = [\n\t\t\t...( terms ?? [] ),\n\t\t\t...( searchResults ?? [] ),\n\t\t];\n\t\tconst uniqueTerms = termNames.reduce( ( acc, name ) => {\n\t\t\tif (\n\t\t\t\t! acc.some( ( n ) => n.toLowerCase() === name.toLowerCase() )\n\t\t\t) {\n\t\t\t\tacc.push( name );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\t\tconst newTermNames = uniqueTerms.filter(\n\t\t\t( termName ) =>\n\t\t\t\t! availableTerms.find( ( term ) =>\n\t\t\t\t\tisSameTermName( term.name, termName )\n\t\t\t\t)\n\t\t);\n\n\t\t// Optimistically update term values.\n\t\t// The selector will always re-fetch terms later.\n\t\tsetValues( uniqueTerms );\n\n\t\tif ( newTermNames.length === 0 ) {\n\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( { name: termName } )\n\t\t\t)\n\t\t)\n\t\t\t.then( ( newTerms ) => {\n\t\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\t\tonUpdateTerms(\n\t\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\t// In case of a failure, try assigning available terms.\n\t\t\t\t// This will invalidate the optimistic update.\n\t\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\t} );\n\t}\n\n\tfunction appendTerm( newTerm ) {\n\t\tif ( termIds.includes( newTerm.id ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newTermIds = [ ...termIds, newTerm.id ];\n\t\tconst defaultName = slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' );\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: term name. */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\ttaxonomy?.labels?.singular_name ?? defaultName\n\t\t);\n\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tonUpdateTerms( newTermIds );\n\t}\n\n\tconst newTermLabel =\n\t\ttaxonomy?.labels?.add_new_item ??\n\t\t( slug === 'post_tag' ? __( 'Add new tag' ) : __( 'Add new Term' ) );\n\tconst singularName =\n\t\ttaxonomy?.labels?.singular_name ??\n\t\t( slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' ) );\n\tconst termAddedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s added', 'term' ),\n\t\tsingularName\n\t);\n\tconst termRemovedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s removed', 'term' ),\n\t\tsingularName\n\t);\n\tconst removeTermLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( 'Remove %s', 'term' ),\n\t\tsingularName\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<FormTokenField\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ values }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\tlabel={ newTermLabel }\n\t\t\t\tmessages={ {\n\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<MostUsedTerms taxonomy={ taxonomy } onSelect={ appendTerm } />\n\t\t</>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )( FlatTermSelector );\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","_x","sprintf","useEffect","useMemo","useState","FormTokenField","withFilters","useSelect","useDispatch","store","coreStore","useDebounce","speak","noticesStore","editorStore","unescapeString","unescapeTerm","MostUsedTerms","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","term","name","id","filter","undefined","FlatTermSelector","slug","_taxonomy$labels$add_","_taxonomy$labels$sing2","values","setValues","search","setSearch","debouncedSearch","termIds","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","getEntityRecords","getTaxonomy","hasFinishedResolution","post","_taxonomy","_termIds","rest_base","query","include","join","_links","length","searchResults","newValues","suggestions","editPost","saveEntityRecord","createErrorNotice","findOrCreateTerm","newTerm","throwOnError","error","code","data","term_id","onUpdateTerms","newTermIds","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","Promise","all","then","newTerms","newAvailableTerms","concat","catch","message","type","appendTerm","_taxonomy$labels$sing","includes","defaultName","termAddedMessage","labels","singular_name","newTermLabel","add_new_item","singularName","termAddedLabel","termRemovedLabel","removeTermLabel","createElement","Fragment","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","onSelect"],"sources":["@wordpress/editor/src/components/post-taxonomies/flat-term-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { FormTokenField, withFilters } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unescapeString, unescapeTerm } from '../../utils/terms';\nimport MostUsedTerms from './most-used-terms';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * Module constants\n */\nconst MAX_TERMS_SUGGESTIONS = 20;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names\n\t\t.map(\n\t\t\t( termName ) =>\n\t\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) )\n\t\t\t\t\t?.id\n\t\t)\n\t\t.filter( ( id ) => id !== undefined );\n};\n\nexport function FlatTermSelector( { slug } ) {\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst {\n\t\tterms,\n\t\ttermIds,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getEntityRecords, getTaxonomy, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst post = getCurrentPost();\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst _termIds = _taxonomy\n\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t: EMPTY_ARRAY;\n\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search, slug ]\n\t);\n\n\t// Update terms state only after the selectors are resolved.\n\t// We're using this to avoid terms temporarily disappearing on slow networks\n\t// while core data makes REST API requests.\n\tuseEffect( () => {\n\t\tif ( hasResolvedTerms ) {\n\t\t\tconst newValues = ( terms ?? [] ).map( ( term ) =>\n\t\t\t\tunescapeString( term.name )\n\t\t\t);\n\n\t\t\tsetValues( newValues );\n\t\t}\n\t}, [ terms, hasResolvedTerms ] );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn ( searchResults ?? [] ).map( ( term ) =>\n\t\t\tunescapeString( term.name )\n\t\t);\n\t}, [ searchResults ] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\t\t\treturn unescapeTerm( newTerm );\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: term.name,\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction onUpdateTerms( newTermIds ) {\n\t\teditPost( { [ taxonomy.rest_base ]: newTermIds } );\n\t}\n\n\tfunction onChange( termNames ) {\n\t\tconst availableTerms = [\n\t\t\t...( terms ?? [] ),\n\t\t\t...( searchResults ?? [] ),\n\t\t];\n\t\tconst uniqueTerms = termNames.reduce( ( acc, name ) => {\n\t\t\tif (\n\t\t\t\t! acc.some( ( n ) => n.toLowerCase() === name.toLowerCase() )\n\t\t\t) {\n\t\t\t\tacc.push( name );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\t\tconst newTermNames = uniqueTerms.filter(\n\t\t\t( termName ) =>\n\t\t\t\t! availableTerms.find( ( term ) =>\n\t\t\t\t\tisSameTermName( term.name, termName )\n\t\t\t\t)\n\t\t);\n\n\t\t// Optimistically update term values.\n\t\t// The selector will always re-fetch terms later.\n\t\tsetValues( uniqueTerms );\n\n\t\tif ( newTermNames.length === 0 ) {\n\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( { name: termName } )\n\t\t\t)\n\t\t)\n\t\t\t.then( ( newTerms ) => {\n\t\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\t\tonUpdateTerms(\n\t\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\t// In case of a failure, try assigning available terms.\n\t\t\t\t// This will invalidate the optimistic update.\n\t\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\t} );\n\t}\n\n\tfunction appendTerm( newTerm ) {\n\t\tif ( termIds.includes( newTerm.id ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newTermIds = [ ...termIds, newTerm.id ];\n\t\tconst defaultName = slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' );\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: term name. */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\ttaxonomy?.labels?.singular_name ?? defaultName\n\t\t);\n\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tonUpdateTerms( newTermIds );\n\t}\n\n\tconst newTermLabel =\n\t\ttaxonomy?.labels?.add_new_item ??\n\t\t( slug === 'post_tag' ? __( 'Add new tag' ) : __( 'Add new Term' ) );\n\tconst singularName =\n\t\ttaxonomy?.labels?.singular_name ??\n\t\t( slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' ) );\n\tconst termAddedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s added', 'term' ),\n\t\tsingularName\n\t);\n\tconst termRemovedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s removed', 'term' ),\n\t\tsingularName\n\t);\n\tconst removeTermLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( 'Remove %s', 'term' ),\n\t\tsingularName\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<FormTokenField\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ values }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\tlabel={ newTermLabel }\n\t\t\t\tmessages={ {\n\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<MostUsedTerms taxonomy={ taxonomy } onSelect={ appendTerm } />\n\t\t</>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )( FlatTermSelector );\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AACjD,SAASC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;AACjE,SAASC,cAAc,EAAEC,WAAW,QAAQ,uBAAuB;AACnE,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,WAAW,QAAQ,oBAAoB;AAChD,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASH,KAAK,IAAII,YAAY,QAAQ,oBAAoB;;AAE1D;AACA;AACA;AACA,SAASJ,KAAK,IAAIK,WAAW,QAAQ,aAAa;AAClD,SAASC,cAAc,EAAEC,YAAY,QAAQ,mBAAmB;AAChE,OAAOC,aAAa,MAAM,mBAAmB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAG,EAAE;;AAEtB;AACA;AACA;AACA,MAAMC,qBAAqB,GAAG,EAAE;AAChC,MAAMC,aAAa,GAAG;EACrBC,QAAQ,EAAEF,qBAAqB;EAC/BG,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;AACV,CAAC;AAED,MAAMC,cAAc,GAAGA,CAAEC,KAAK,EAAEC,KAAK,KACpCX,cAAc,CAAEU,KAAM,CAAC,CAACE,WAAW,CAAC,CAAC,KACrCZ,cAAc,CAAEW,KAAM,CAAC,CAACC,WAAW,CAAC,CAAC;AAEtC,MAAMC,cAAc,GAAGA,CAAEC,KAAK,EAAEC,KAAK,KAAM;EAC1C,OAAOD,KAAK,CACVE,GAAG,CACDC,QAAQ,IACTF,KAAK,CAACG,IAAI,CAAIC,IAAI,IAAMV,cAAc,CAAEU,IAAI,CAACC,IAAI,EAAEH,QAAS,CAAE,CAAC,EAC5DI,EACL,CAAC,CACAC,MAAM,CAAID,EAAE,IAAMA,EAAE,KAAKE,SAAU,CAAC;AACvC,CAAC;AAED,OAAO,SAASC,gBAAgBA,CAAE;EAAEC;AAAK,CAAC,EAAG;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EAC5C,MAAM,CAAEC,MAAM,EAAEC,SAAS,CAAE,GAAGxC,QAAQ,CAAE,EAAG,CAAC;EAC5C,MAAM,CAAEyC,MAAM,EAAEC,SAAS,CAAE,GAAG1C,QAAQ,CAAE,EAAG,CAAC;EAC5C,MAAM2C,eAAe,GAAGpC,WAAW,CAAEmC,SAAS,EAAE,GAAI,CAAC;EAErD,MAAM;IACLhB,KAAK;IACLkB,OAAO;IACPC,QAAQ;IACRC,eAAe;IACfC,eAAe;IACfC;EACD,CAAC,GAAG7C,SAAS,CACV8C,MAAM,IAAM;IAAA,IAAAC,YAAA,EAAAC,aAAA;IACb,MAAM;MAAEC,cAAc;MAAEC;IAAuB,CAAC,GAC/CJ,MAAM,CAAEvC,WAAY,CAAC;IACtB,MAAM;MAAE4C,gBAAgB;MAAEC,WAAW;MAAEC;IAAsB,CAAC,GAC7DP,MAAM,CAAE3C,SAAU,CAAC;IACpB,MAAMmD,IAAI,GAAGL,cAAc,CAAC,CAAC;IAC7B,MAAMM,SAAS,GAAGH,WAAW,CAAEnB,IAAK,CAAC;IACrC,MAAMuB,QAAQ,GAAGD,SAAS,GACvBL,sBAAsB,CAAEK,SAAS,CAACE,SAAU,CAAC,GAC7C9C,WAAW;IAEd,MAAM+C,KAAK,GAAG;MACb,GAAG7C,aAAa;MAChB8C,OAAO,EAAEH,QAAQ,CAACI,IAAI,CAAE,GAAI,CAAC;MAC7B9C,QAAQ,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;MACN8B,eAAe,EAAEW,SAAS,IAAAR,YAAA,GACvBO,IAAI,CAACO,MAAM,GACX,mBAAmB,GAAGN,SAAS,CAACE,SAAS,CACxC,cAAAV,YAAA,cAAAA,YAAA,GAAI,KAAK,GACV,KAAK;MACRJ,eAAe,EAAEY,SAAS,IAAAP,aAAA,GACvBM,IAAI,CAACO,MAAM,GACX,mBAAmB,GAAGN,SAAS,CAACE,SAAS,CACxC,cAAAT,aAAA,cAAAA,aAAA,GAAI,KAAK,GACV,KAAK;MACRN,QAAQ,EAAEa,SAAS;MACnBd,OAAO,EAAEe,QAAQ;MACjBjC,KAAK,EAAEiC,QAAQ,CAACM,MAAM,GACnBX,gBAAgB,CAAE,UAAU,EAAElB,IAAI,EAAEyB,KAAM,CAAC,GAC3C/C,WAAW;MACdkC,gBAAgB,EAAEQ,qBAAqB,CAAE,kBAAkB,EAAE,CAC5D,UAAU,EACVpB,IAAI,EACJyB,KAAK,CACJ;IACH,CAAC;EACF,CAAC,EACD,CAAEzB,IAAI,CACP,CAAC;EAED,MAAM;IAAE8B;EAAc,CAAC,GAAG/D,SAAS,CAChC8C,MAAM,IAAM;IACb,MAAM;MAAEK;IAAiB,CAAC,GAAGL,MAAM,CAAE3C,SAAU,CAAC;IAEhD,OAAO;MACN4D,aAAa,EAAE,CAAC,CAAEzB,MAAM,GACrBa,gBAAgB,CAAE,UAAU,EAAElB,IAAI,EAAE;QACpC,GAAGpB,aAAa;QAChByB;MACA,CAAE,CAAC,GACH3B;IACJ,CAAC;EACF,CAAC,EACD,CAAE2B,MAAM,EAAEL,IAAI,CACf,CAAC;;EAED;EACA;EACA;EACAtC,SAAS,CAAE,MAAM;IAChB,IAAKkD,gBAAgB,EAAG;MACvB,MAAMmB,SAAS,GAAG,CAAEzC,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,EAAGC,GAAG,CAAIG,IAAI,IAC5CnB,cAAc,CAAEmB,IAAI,CAACC,IAAK,CAC3B,CAAC;MAEDS,SAAS,CAAE2B,SAAU,CAAC;IACvB;EACD,CAAC,EAAE,CAAEzC,KAAK,EAAEsB,gBAAgB,CAAG,CAAC;EAEhC,MAAMoB,WAAW,GAAGrE,OAAO,CAAE,MAAM;IAClC,OAAO,CAAEmE,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,EAAE,EAAGvC,GAAG,CAAIG,IAAI,IACzCnB,cAAc,CAAEmB,IAAI,CAACC,IAAK,CAC3B,CAAC;EACF,CAAC,EAAE,CAAEmC,aAAa,CAAG,CAAC;EAEtB,MAAM;IAAEG;EAAS,CAAC,GAAGjE,WAAW,CAAEM,WAAY,CAAC;EAC/C,MAAM;IAAE4D;EAAiB,CAAC,GAAGlE,WAAW,CAAEE,SAAU,CAAC;EACrD,MAAM;IAAEiE;EAAkB,CAAC,GAAGnE,WAAW,CAAEK,YAAa,CAAC;EAEzD,IAAK,CAAEqC,eAAe,EAAG;IACxB,OAAO,IAAI;EACZ;EAEA,eAAe0B,gBAAgBA,CAAE1C,IAAI,EAAG;IACvC,IAAI;MACH,MAAM2C,OAAO,GAAG,MAAMH,gBAAgB,CAAE,UAAU,EAAElC,IAAI,EAAEN,IAAI,EAAE;QAC/D4C,YAAY,EAAE;MACf,CAAE,CAAC;MACH,OAAO9D,YAAY,CAAE6D,OAAQ,CAAC;IAC/B,CAAC,CAAC,OAAQE,KAAK,EAAG;MACjB,IAAKA,KAAK,CAACC,IAAI,KAAK,aAAa,EAAG;QACnC,MAAMD,KAAK;MACZ;MAEA,OAAO;QACN3C,EAAE,EAAE2C,KAAK,CAACE,IAAI,CAACC,OAAO;QACtB/C,IAAI,EAAED,IAAI,CAACC;MACZ,CAAC;IACF;EACD;EAEA,SAASgD,aAAaA,CAAEC,UAAU,EAAG;IACpCX,QAAQ,CAAE;MAAE,CAAExB,QAAQ,CAACe,SAAS,GAAIoB;IAAW,CAAE,CAAC;EACnD;EAEA,SAASC,QAAQA,CAAEC,SAAS,EAAG;IAC9B,MAAMC,cAAc,GAAG,CACtB,IAAKzD,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,CAAE,EAClB,IAAKwC,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,EAAE,CAAE,CAC1B;IACD,MAAMkB,WAAW,GAAGF,SAAS,CAACG,MAAM,CAAE,CAAEC,GAAG,EAAEvD,IAAI,KAAM;MACtD,IACC,CAAEuD,GAAG,CAACC,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACjE,WAAW,CAAC,CAAC,KAAKQ,IAAI,CAACR,WAAW,CAAC,CAAE,CAAC,EAC5D;QACD+D,GAAG,CAACG,IAAI,CAAE1D,IAAK,CAAC;MACjB;MACA,OAAOuD,GAAG;IACX,CAAC,EAAE,EAAG,CAAC;IAEP,MAAMI,YAAY,GAAGN,WAAW,CAACnD,MAAM,CACpCL,QAAQ,IACT,CAAEuD,cAAc,CAACtD,IAAI,CAAIC,IAAI,IAC5BV,cAAc,CAAEU,IAAI,CAACC,IAAI,EAAEH,QAAS,CACrC,CACF,CAAC;;IAED;IACA;IACAY,SAAS,CAAE4C,WAAY,CAAC;IAExB,IAAKM,YAAY,CAACzB,MAAM,KAAK,CAAC,EAAG;MAChCc,aAAa,CAAEvD,cAAc,CAAE4D,WAAW,EAAED,cAAe,CAAE,CAAC;MAC9D;IACD;IAEA,IAAK,CAAEpC,eAAe,EAAG;MACxB;IACD;IAEA4C,OAAO,CAACC,GAAG,CACVF,YAAY,CAAC/D,GAAG,CAAIC,QAAQ,IAC3B4C,gBAAgB,CAAE;MAAEzC,IAAI,EAAEH;IAAS,CAAE,CACtC,CACD,CAAC,CACCiE,IAAI,CAAIC,QAAQ,IAAM;MACtB,MAAMC,iBAAiB,GAAGZ,cAAc,CAACa,MAAM,CAAEF,QAAS,CAAC;MAC3Df,aAAa,CACZvD,cAAc,CAAE4D,WAAW,EAAEW,iBAAkB,CAChD,CAAC;IACF,CAAE,CAAC,CACFE,KAAK,CAAItB,KAAK,IAAM;MACpBJ,iBAAiB,CAAEI,KAAK,CAACuB,OAAO,EAAE;QACjCC,IAAI,EAAE;MACP,CAAE,CAAC;MACH;MACA;MACApB,aAAa,CAAEvD,cAAc,CAAE4D,WAAW,EAAED,cAAe,CAAE,CAAC;IAC/D,CAAE,CAAC;EACL;EAEA,SAASiB,UAAUA,CAAE3B,OAAO,EAAG;IAAA,IAAA4B,qBAAA;IAC9B,IAAKzD,OAAO,CAAC0D,QAAQ,CAAE7B,OAAO,CAACzC,EAAG,CAAC,EAAG;MACrC;IACD;IAEA,MAAMgD,UAAU,GAAG,CAAE,GAAGpC,OAAO,EAAE6B,OAAO,CAACzC,EAAE,CAAE;IAC7C,MAAMuE,WAAW,GAAGnE,IAAI,KAAK,UAAU,GAAGzC,EAAE,CAAE,KAAM,CAAC,GAAGA,EAAE,CAAE,MAAO,CAAC;IACpE,MAAM6G,gBAAgB,GAAG3G,OAAO,EAC/B;IACAD,EAAE,CAAE,UAAU,EAAE,MAAO,CAAC,GAAAyG,qBAAA,GACxBxD,QAAQ,EAAE4D,MAAM,EAAEC,aAAa,cAAAL,qBAAA,cAAAA,qBAAA,GAAIE,WACpC,CAAC;IAED/F,KAAK,CAAEgG,gBAAgB,EAAE,WAAY,CAAC;IACtCzB,aAAa,CAAEC,UAAW,CAAC;EAC5B;EAEA,MAAM2B,YAAY,IAAAtE,qBAAA,GACjBQ,QAAQ,EAAE4D,MAAM,EAAEG,YAAY,cAAAvE,qBAAA,cAAAA,qBAAA,GAC5BD,IAAI,KAAK,UAAU,GAAGzC,EAAE,CAAE,aAAc,CAAC,GAAGA,EAAE,CAAE,cAAe,CAAG;EACrE,MAAMkH,YAAY,IAAAvE,sBAAA,GACjBO,QAAQ,EAAE4D,MAAM,EAAEC,aAAa,cAAApE,sBAAA,cAAAA,sBAAA,GAC7BF,IAAI,KAAK,UAAU,GAAGzC,EAAE,CAAE,KAAM,CAAC,GAAGA,EAAE,CAAE,MAAO,CAAG;EACrD,MAAMmH,cAAc,GAAGjH,OAAO,EAC7B;EACAD,EAAE,CAAE,UAAU,EAAE,MAAO,CAAC,EACxBiH,YACD,CAAC;EACD,MAAME,gBAAgB,GAAGlH,OAAO,EAC/B;EACAD,EAAE,CAAE,YAAY,EAAE,MAAO,CAAC,EAC1BiH,YACD,CAAC;EACD,MAAMG,eAAe,GAAGnH,OAAO,EAC9B;EACAD,EAAE,CAAE,WAAW,EAAE,MAAO,CAAC,EACzBiH,YACD,CAAC;EAED,OACCI,aAAA,CAAAC,QAAA,QACCD,aAAA,CAAChH,cAAc;IACdkH,qBAAqB;IACrBC,KAAK,EAAG7E,MAAQ;IAChB6B,WAAW,EAAGA,WAAa;IAC3Ba,QAAQ,EAAGA,QAAU;IACrBoC,aAAa,EAAG1E,eAAiB;IACjC2E,cAAc,EAAGvG,qBAAuB;IACxCwG,KAAK,EAAGZ,YAAc;IACtBa,QAAQ,EAAG;MACVC,KAAK,EAAEX,cAAc;MACrBY,OAAO,EAAEX,gBAAgB;MACzBY,MAAM,EAAEX;IACT;EAAG,CACH,CAAC,EACFC,aAAA,CAACpG,aAAa;IAACgC,QAAQ,EAAGA,QAAU;IAAC+E,QAAQ,EAAGxB;EAAY,CAAE,CAC7D,CAAC;AAEL;AAEA,eAAelG,WAAW,CAAE,yBAA0B,CAAC,CAAEiC,gBAAiB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__","_n","_x","sprintf","useMemo","useState","store","noticesStore","Button","CheckboxControl","TextControl","TreeSelect","withFilters","Flex","FlexItem","useDispatch","useSelect","useDebounce","coreStore","speak","decodeEntities","buildTermsTree","editorStore","DEFAULT_QUERY","per_page","orderby","order","_fields","context","MIN_TERMS_COUNT_FOR_FILTER","EMPTY_ARRAY","sortBySelected","termsTree","terms","treeHasSelection","termTree","indexOf","id","undefined","children","map","filter","child","length","termOrChildIsSelected","termA","termB","termASelected","termBSelected","newTermTree","sort","findTerm","parent","name","find","term","parseInt","toLowerCase","getFilterMatcher","filterValue","matchTermsForFilter","originalTerm","HierarchicalTermSelector","slug","_taxonomy$labels$sear","_taxonomy$name","adding","setAdding","formName","setFormName","formParent","setFormParent","showForm","setShowForm","setFilterValue","filteredTermsTree","setFilteredTermsTree","debouncedSpeak","hasCreateAction","hasAssignAction","loading","availableTerms","taxonomy","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","getTaxonomy","getEntityRecords","isResolving","_taxonomy","post","_links","rest_base","editPost","saveEntityRecord","availableTermsTree","createErrorNotice","addTerm","throwOnError","onUpdateTerms","termIds","onChange","termId","hasTerm","includes","newTerms","onChangeFormName","value","onChangeFormParent","parentId","onToggleForm","onAddTerm","event","_taxonomy$labels$sing","preventDefault","existingTerm","some","newTerm","error","message","type","defaultName","termAddedMessage","labels","singular_name","setFilter","newFilteredTermsTree","getResultCount","count","i","resultCount","resultsFoundMessage","renderTerms","renderedTerms","createElement","key","className","__nextHasNoMarginBottom","checked","label","labelWithFallback","labelProperty","fallbackIsCategory","fallbackIsNotCategory","_taxonomy$labels$labe","newTermButtonLabel","newTermLabel","parentSelectLabel","noParentOption","newTermSubmitLabel","filterLabel","search_items","groupLabel","showFilter","direction","gap","tabIndex","role","onClick","variant","onSubmit","__next40pxDefaultSize","required","noOptionLabel","selectedId","tree"],"sources":["@wordpress/editor/src/components/post-taxonomies/hierarchical-term-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, _x, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tButton,\n\tCheckboxControl,\n\tTextControl,\n\tTreeSelect,\n\twithFilters,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module Constants\n */\nconst DEFAULT_QUERY = {\n\tper_page: -1,\n\torderby: 'name',\n\torder: 'asc',\n\t_fields: 'id,name,parent',\n\tcontext: 'view',\n};\n\nconst MIN_TERMS_COUNT_FOR_FILTER = 8;\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Sort Terms by Selected.\n *\n * @param {Object[]} termsTree Array of terms in tree format.\n * @param {number[]} terms Selected terms.\n *\n * @return {Object[]} Sorted array of terms.\n */\nexport function sortBySelected( termsTree, terms ) {\n\tconst treeHasSelection = ( termTree ) => {\n\t\tif ( terms.indexOf( termTree.id ) !== -1 ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( undefined === termTree.children ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (\n\t\t\ttermTree.children\n\t\t\t\t.map( treeHasSelection )\n\t\t\t\t.filter( ( child ) => child ).length > 0\n\t\t);\n\t};\n\tconst termOrChildIsSelected = ( termA, termB ) => {\n\t\tconst termASelected = treeHasSelection( termA );\n\t\tconst termBSelected = treeHasSelection( termB );\n\n\t\tif ( termASelected === termBSelected ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif ( termASelected && ! termBSelected ) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif ( ! termASelected && termBSelected ) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 0;\n\t};\n\tconst newTermTree = [ ...termsTree ];\n\tnewTermTree.sort( termOrChildIsSelected );\n\treturn newTermTree;\n}\n\n/**\n * Find term by parent id or name.\n *\n * @param {Object[]} terms Array of Terms.\n * @param {number|string} parent id.\n * @param {string} name Term name.\n * @return {Object} Term object.\n */\nexport function findTerm( terms, parent, name ) {\n\treturn terms.find( ( term ) => {\n\t\treturn (\n\t\t\t( ( ! term.parent && ! parent ) ||\n\t\t\t\tparseInt( term.parent ) === parseInt( parent ) ) &&\n\t\t\tterm.name.toLowerCase() === name.toLowerCase()\n\t\t);\n\t} );\n}\n\n/**\n * Get filter matcher function.\n *\n * @param {string} filterValue Filter value.\n * @return {(function(Object): (Object|boolean))} Matcher function.\n */\nexport function getFilterMatcher( filterValue ) {\n\tconst matchTermsForFilter = ( originalTerm ) => {\n\t\tif ( '' === filterValue ) {\n\t\t\treturn originalTerm;\n\t\t}\n\n\t\t// Shallow clone, because we'll be filtering the term's children and\n\t\t// don't want to modify the original term.\n\t\tconst term = { ...originalTerm };\n\n\t\t// Map and filter the children, recursive so we deal with grandchildren\n\t\t// and any deeper levels.\n\t\tif ( term.children.length > 0 ) {\n\t\t\tterm.children = term.children\n\t\t\t\t.map( matchTermsForFilter )\n\t\t\t\t.filter( ( child ) => child );\n\t\t}\n\n\t\t// If the term's name contains the filterValue, or it has children\n\t\t// (i.e. some child matched at some point in the tree) then return it.\n\t\tif (\n\t\t\t-1 !==\n\t\t\t\tterm.name.toLowerCase().indexOf( filterValue.toLowerCase() ) ||\n\t\t\tterm.children.length > 0\n\t\t) {\n\t\t\treturn term;\n\t\t}\n\n\t\t// Otherwise, return false. After mapping, the list of terms will need\n\t\t// to have false values filtered out.\n\t\treturn false;\n\t};\n\treturn matchTermsForFilter;\n}\n\n/**\n * Hierarchical term selector.\n *\n * @param {Object} props Component props.\n * @param {string} props.slug Taxonomy slug.\n * @return {Element} Hierarchical term selector component.\n */\nexport function HierarchicalTermSelector( { slug } ) {\n\tconst [ adding, setAdding ] = useState( false );\n\tconst [ formName, setFormName ] = useState( '' );\n\t/**\n\t * @type {[number|'', Function]}\n\t */\n\tconst [ formParent, setFormParent ] = useState( '' );\n\tconst [ showForm, setShowForm ] = useState( false );\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ filteredTermsTree, setFilteredTermsTree ] = useState( [] );\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\n\tconst {\n\t\thasCreateAction,\n\t\thasAssignAction,\n\t\tterms,\n\t\tloading,\n\t\tavailableTerms,\n\t\ttaxonomy,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getTaxonomy, getEntityRecords, isResolving } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst post = getCurrentPost();\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\tterms: _taxonomy\n\t\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\tloading: isResolving( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tDEFAULT_QUERY,\n\t\t\t\t] ),\n\t\t\t\tavailableTerms:\n\t\t\t\t\tgetEntityRecords( 'taxonomy', slug, DEFAULT_QUERY ) ||\n\t\t\t\t\tEMPTY_ARRAY,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst availableTermsTree = useMemo(\n\t\t() => sortBySelected( buildTermsTree( availableTerms ), terms ),\n\t\t// Remove `terms` from the dependency list to avoid reordering every time\n\t\t// checking or unchecking a term.\n\t\t[ availableTerms ]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Append new term.\n\t *\n\t * @param {Object} term Term object.\n\t * @return {Promise} A promise that resolves to save term object.\n\t */\n\tconst addTerm = ( term ) => {\n\t\treturn saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\tthrowOnError: true,\n\t\t} );\n\t};\n\n\t/**\n\t * Update terms for post.\n\t *\n\t * @param {number[]} termIds Term ids.\n\t */\n\tconst onUpdateTerms = ( termIds ) => {\n\t\teditPost( { [ taxonomy.rest_base ]: termIds } );\n\t};\n\n\t/**\n\t * Handler for checking term.\n\t *\n\t * @param {number} termId\n\t */\n\tconst onChange = ( termId ) => {\n\t\tconst hasTerm = terms.includes( termId );\n\t\tconst newTerms = hasTerm\n\t\t\t? terms.filter( ( id ) => id !== termId )\n\t\t\t: [ ...terms, termId ];\n\t\tonUpdateTerms( newTerms );\n\t};\n\n\tconst onChangeFormName = ( value ) => {\n\t\tsetFormName( value );\n\t};\n\n\t/**\n\t * Handler for changing form parent.\n\t *\n\t * @param {number|''} parentId Parent post id.\n\t */\n\tconst onChangeFormParent = ( parentId ) => {\n\t\tsetFormParent( parentId );\n\t};\n\n\tconst onToggleForm = () => {\n\t\tsetShowForm( ! showForm );\n\t};\n\n\tconst onAddTerm = async ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( formName === '' || adding ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if the term we are adding already exists.\n\t\tconst existingTerm = findTerm( availableTerms, formParent, formName );\n\t\tif ( existingTerm ) {\n\t\t\t// If the term we are adding exists but is not selected select it.\n\t\t\tif ( ! terms.some( ( term ) => term === existingTerm.id ) ) {\n\t\t\t\tonUpdateTerms( [ ...terms, existingTerm.id ] );\n\t\t\t}\n\n\t\t\tsetFormName( '' );\n\t\t\tsetFormParent( '' );\n\n\t\t\treturn;\n\t\t}\n\t\tsetAdding( true );\n\t\tlet newTerm;\n\t\ttry {\n\t\t\tnewTerm = await addTerm( {\n\t\t\t\tname: formName,\n\t\t\t\tparent: formParent ? formParent : undefined,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\tconst defaultName =\n\t\t\tslug === 'category' ? __( 'Category' ) : __( 'Term' );\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: taxonomy name */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\ttaxonomy?.labels?.singular_name ?? defaultName\n\t\t);\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tsetAdding( false );\n\t\tsetFormName( '' );\n\t\tsetFormParent( '' );\n\t\tonUpdateTerms( [ ...terms, newTerm.id ] );\n\t};\n\n\tconst setFilter = ( value ) => {\n\t\tconst newFilteredTermsTree = availableTermsTree\n\t\t\t.map( getFilterMatcher( value ) )\n\t\t\t.filter( ( term ) => term );\n\t\tconst getResultCount = ( termsTree ) => {\n\t\t\tlet count = 0;\n\t\t\tfor ( let i = 0; i < termsTree.length; i++ ) {\n\t\t\t\tcount++;\n\t\t\t\tif ( undefined !== termsTree[ i ].children ) {\n\t\t\t\t\tcount += getResultCount( termsTree[ i ].children );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t};\n\n\t\tsetFilterValue( value );\n\t\tsetFilteredTermsTree( newFilteredTermsTree );\n\n\t\tconst resultCount = getResultCount( newFilteredTermsTree );\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results */\n\t\t\t_n( '%d result found.', '%d results found.', resultCount ),\n\t\t\tresultCount\n\t\t);\n\n\t\tdebouncedSpeak( resultsFoundMessage, 'assertive' );\n\t};\n\n\tconst renderTerms = ( renderedTerms ) => {\n\t\treturn renderedTerms.map( ( term ) => {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={ term.id }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-choice\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tchecked={ terms.indexOf( term.id ) !== -1 }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tconst termId = parseInt( term.id, 10 );\n\t\t\t\t\t\t\tonChange( termId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ decodeEntities( term.name ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! term.children.length && (\n\t\t\t\t\t\t<div className=\"editor-post-taxonomies__hierarchical-terms-subchoices\">\n\t\t\t\t\t\t\t{ renderTerms( term.children ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t} );\n\t};\n\n\tconst labelWithFallback = (\n\t\tlabelProperty,\n\t\tfallbackIsCategory,\n\t\tfallbackIsNotCategory\n\t) =>\n\t\ttaxonomy?.labels?.[ labelProperty ] ??\n\t\t( slug === 'category' ? fallbackIsCategory : fallbackIsNotCategory );\n\n\tconst newTermButtonLabel = labelWithFallback(\n\t\t'add_new_item',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst newTermLabel = labelWithFallback(\n\t\t'new_item_name',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst parentSelectLabel = labelWithFallback(\n\t\t'parent_item',\n\t\t__( 'Parent Category' ),\n\t\t__( 'Parent Term' )\n\t);\n\tconst noParentOption = `— ${ parentSelectLabel } —`;\n\tconst newTermSubmitLabel = newTermButtonLabel;\n\tconst filterLabel = taxonomy?.labels?.search_items ?? __( 'Search Terms' );\n\tconst groupLabel = taxonomy?.name ?? __( 'Terms' );\n\tconst showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;\n\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t{ showFilter && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ filterLabel }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ setFilter }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-list\"\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\trole=\"group\"\n\t\t\t\taria-label={ groupLabel }\n\t\t\t>\n\t\t\t\t{ renderTerms(\n\t\t\t\t\t'' !== filterValue ? filteredTermsTree : availableTermsTree\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! loading && hasCreateAction && (\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ onToggleForm }\n\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-add\"\n\t\t\t\t\t\taria-expanded={ showForm }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ newTermButtonLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t) }\n\t\t\t{ showForm && (\n\t\t\t\t<form onSubmit={ onAddTerm }>\n\t\t\t\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-input\"\n\t\t\t\t\t\t\tlabel={ newTermLabel }\n\t\t\t\t\t\t\tvalue={ formName }\n\t\t\t\t\t\t\tonChange={ onChangeFormName }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ !! availableTerms.length && (\n\t\t\t\t\t\t\t<TreeSelect\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ parentSelectLabel }\n\t\t\t\t\t\t\t\tnoOptionLabel={ noParentOption }\n\t\t\t\t\t\t\t\tonChange={ onChangeFormParent }\n\t\t\t\t\t\t\t\tselectedId={ formParent }\n\t\t\t\t\t\t\t\ttree={ availableTermsTree }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-submit\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ newTermSubmitLabel }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</form>\n\t\t\t) }\n\t\t</Flex>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )(\n\tHierarchicalTermSelector\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","_n","_x","sprintf","useMemo","useState","store","noticesStore","Button","CheckboxControl","TextControl","TreeSelect","withFilters","Flex","FlexItem","useDispatch","useSelect","useDebounce","coreStore","speak","decodeEntities","buildTermsTree","editorStore","DEFAULT_QUERY","per_page","orderby","order","_fields","context","MIN_TERMS_COUNT_FOR_FILTER","EMPTY_ARRAY","sortBySelected","termsTree","terms","treeHasSelection","termTree","indexOf","id","undefined","children","map","filter","child","length","termOrChildIsSelected","termA","termB","termASelected","termBSelected","newTermTree","sort","findTerm","parent","name","find","term","parseInt","toLowerCase","getFilterMatcher","filterValue","matchTermsForFilter","originalTerm","HierarchicalTermSelector","slug","_taxonomy$labels$sear","_taxonomy$name","adding","setAdding","formName","setFormName","formParent","setFormParent","showForm","setShowForm","setFilterValue","filteredTermsTree","setFilteredTermsTree","debouncedSpeak","hasCreateAction","hasAssignAction","loading","availableTerms","taxonomy","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","getTaxonomy","getEntityRecords","isResolving","_taxonomy","post","_links","rest_base","editPost","saveEntityRecord","availableTermsTree","createErrorNotice","addTerm","throwOnError","onUpdateTerms","termIds","onChange","termId","hasTerm","includes","newTerms","onChangeFormName","value","onChangeFormParent","parentId","onToggleForm","onAddTerm","event","_taxonomy$labels$sing","preventDefault","existingTerm","some","newTerm","error","message","type","defaultName","termAddedMessage","labels","singular_name","setFilter","newFilteredTermsTree","getResultCount","count","i","resultCount","resultsFoundMessage","renderTerms","renderedTerms","createElement","key","className","__nextHasNoMarginBottom","checked","label","labelWithFallback","labelProperty","fallbackIsCategory","fallbackIsNotCategory","_taxonomy$labels$labe","newTermButtonLabel","newTermLabel","parentSelectLabel","noParentOption","newTermSubmitLabel","filterLabel","search_items","groupLabel","showFilter","direction","gap","tabIndex","role","onClick","variant","onSubmit","__next40pxDefaultSize","required","noOptionLabel","selectedId","tree"],"sources":["@wordpress/editor/src/components/post-taxonomies/hierarchical-term-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, _x, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tButton,\n\tCheckboxControl,\n\tTextControl,\n\tTreeSelect,\n\twithFilters,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module Constants\n */\nconst DEFAULT_QUERY = {\n\tper_page: -1,\n\torderby: 'name',\n\torder: 'asc',\n\t_fields: 'id,name,parent',\n\tcontext: 'view',\n};\n\nconst MIN_TERMS_COUNT_FOR_FILTER = 8;\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Sort Terms by Selected.\n *\n * @param {Object[]} termsTree Array of terms in tree format.\n * @param {number[]} terms Selected terms.\n *\n * @return {Object[]} Sorted array of terms.\n */\nexport function sortBySelected( termsTree, terms ) {\n\tconst treeHasSelection = ( termTree ) => {\n\t\tif ( terms.indexOf( termTree.id ) !== -1 ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( undefined === termTree.children ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (\n\t\t\ttermTree.children\n\t\t\t\t.map( treeHasSelection )\n\t\t\t\t.filter( ( child ) => child ).length > 0\n\t\t);\n\t};\n\tconst termOrChildIsSelected = ( termA, termB ) => {\n\t\tconst termASelected = treeHasSelection( termA );\n\t\tconst termBSelected = treeHasSelection( termB );\n\n\t\tif ( termASelected === termBSelected ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif ( termASelected && ! termBSelected ) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif ( ! termASelected && termBSelected ) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 0;\n\t};\n\tconst newTermTree = [ ...termsTree ];\n\tnewTermTree.sort( termOrChildIsSelected );\n\treturn newTermTree;\n}\n\n/**\n * Find term by parent id or name.\n *\n * @param {Object[]} terms Array of Terms.\n * @param {number|string} parent id.\n * @param {string} name Term name.\n * @return {Object} Term object.\n */\nexport function findTerm( terms, parent, name ) {\n\treturn terms.find( ( term ) => {\n\t\treturn (\n\t\t\t( ( ! term.parent && ! parent ) ||\n\t\t\t\tparseInt( term.parent ) === parseInt( parent ) ) &&\n\t\t\tterm.name.toLowerCase() === name.toLowerCase()\n\t\t);\n\t} );\n}\n\n/**\n * Get filter matcher function.\n *\n * @param {string} filterValue Filter value.\n * @return {(function(Object): (Object|boolean))} Matcher function.\n */\nexport function getFilterMatcher( filterValue ) {\n\tconst matchTermsForFilter = ( originalTerm ) => {\n\t\tif ( '' === filterValue ) {\n\t\t\treturn originalTerm;\n\t\t}\n\n\t\t// Shallow clone, because we'll be filtering the term's children and\n\t\t// don't want to modify the original term.\n\t\tconst term = { ...originalTerm };\n\n\t\t// Map and filter the children, recursive so we deal with grandchildren\n\t\t// and any deeper levels.\n\t\tif ( term.children.length > 0 ) {\n\t\t\tterm.children = term.children\n\t\t\t\t.map( matchTermsForFilter )\n\t\t\t\t.filter( ( child ) => child );\n\t\t}\n\n\t\t// If the term's name contains the filterValue, or it has children\n\t\t// (i.e. some child matched at some point in the tree) then return it.\n\t\tif (\n\t\t\t-1 !==\n\t\t\t\tterm.name.toLowerCase().indexOf( filterValue.toLowerCase() ) ||\n\t\t\tterm.children.length > 0\n\t\t) {\n\t\t\treturn term;\n\t\t}\n\n\t\t// Otherwise, return false. After mapping, the list of terms will need\n\t\t// to have false values filtered out.\n\t\treturn false;\n\t};\n\treturn matchTermsForFilter;\n}\n\n/**\n * Hierarchical term selector.\n *\n * @param {Object} props Component props.\n * @param {string} props.slug Taxonomy slug.\n * @return {Element} Hierarchical term selector component.\n */\nexport function HierarchicalTermSelector( { slug } ) {\n\tconst [ adding, setAdding ] = useState( false );\n\tconst [ formName, setFormName ] = useState( '' );\n\t/**\n\t * @type {[number|'', Function]}\n\t */\n\tconst [ formParent, setFormParent ] = useState( '' );\n\tconst [ showForm, setShowForm ] = useState( false );\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ filteredTermsTree, setFilteredTermsTree ] = useState( [] );\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\n\tconst {\n\t\thasCreateAction,\n\t\thasAssignAction,\n\t\tterms,\n\t\tloading,\n\t\tavailableTerms,\n\t\ttaxonomy,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getTaxonomy, getEntityRecords, isResolving } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst post = getCurrentPost();\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\tterms: _taxonomy\n\t\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\tloading: isResolving( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tDEFAULT_QUERY,\n\t\t\t\t] ),\n\t\t\t\tavailableTerms:\n\t\t\t\t\tgetEntityRecords( 'taxonomy', slug, DEFAULT_QUERY ) ||\n\t\t\t\t\tEMPTY_ARRAY,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst availableTermsTree = useMemo(\n\t\t() => sortBySelected( buildTermsTree( availableTerms ), terms ),\n\t\t// Remove `terms` from the dependency list to avoid reordering every time\n\t\t// checking or unchecking a term.\n\t\t[ availableTerms ]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Append new term.\n\t *\n\t * @param {Object} term Term object.\n\t * @return {Promise} A promise that resolves to save term object.\n\t */\n\tconst addTerm = ( term ) => {\n\t\treturn saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\tthrowOnError: true,\n\t\t} );\n\t};\n\n\t/**\n\t * Update terms for post.\n\t *\n\t * @param {number[]} termIds Term ids.\n\t */\n\tconst onUpdateTerms = ( termIds ) => {\n\t\teditPost( { [ taxonomy.rest_base ]: termIds } );\n\t};\n\n\t/**\n\t * Handler for checking term.\n\t *\n\t * @param {number} termId\n\t */\n\tconst onChange = ( termId ) => {\n\t\tconst hasTerm = terms.includes( termId );\n\t\tconst newTerms = hasTerm\n\t\t\t? terms.filter( ( id ) => id !== termId )\n\t\t\t: [ ...terms, termId ];\n\t\tonUpdateTerms( newTerms );\n\t};\n\n\tconst onChangeFormName = ( value ) => {\n\t\tsetFormName( value );\n\t};\n\n\t/**\n\t * Handler for changing form parent.\n\t *\n\t * @param {number|''} parentId Parent post id.\n\t */\n\tconst onChangeFormParent = ( parentId ) => {\n\t\tsetFormParent( parentId );\n\t};\n\n\tconst onToggleForm = () => {\n\t\tsetShowForm( ! showForm );\n\t};\n\n\tconst onAddTerm = async ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( formName === '' || adding ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if the term we are adding already exists.\n\t\tconst existingTerm = findTerm( availableTerms, formParent, formName );\n\t\tif ( existingTerm ) {\n\t\t\t// If the term we are adding exists but is not selected select it.\n\t\t\tif ( ! terms.some( ( term ) => term === existingTerm.id ) ) {\n\t\t\t\tonUpdateTerms( [ ...terms, existingTerm.id ] );\n\t\t\t}\n\n\t\t\tsetFormName( '' );\n\t\t\tsetFormParent( '' );\n\n\t\t\treturn;\n\t\t}\n\t\tsetAdding( true );\n\t\tlet newTerm;\n\t\ttry {\n\t\t\tnewTerm = await addTerm( {\n\t\t\t\tname: formName,\n\t\t\t\tparent: formParent ? formParent : undefined,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\tconst defaultName =\n\t\t\tslug === 'category' ? __( 'Category' ) : __( 'Term' );\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: taxonomy name */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\ttaxonomy?.labels?.singular_name ?? defaultName\n\t\t);\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tsetAdding( false );\n\t\tsetFormName( '' );\n\t\tsetFormParent( '' );\n\t\tonUpdateTerms( [ ...terms, newTerm.id ] );\n\t};\n\n\tconst setFilter = ( value ) => {\n\t\tconst newFilteredTermsTree = availableTermsTree\n\t\t\t.map( getFilterMatcher( value ) )\n\t\t\t.filter( ( term ) => term );\n\t\tconst getResultCount = ( termsTree ) => {\n\t\t\tlet count = 0;\n\t\t\tfor ( let i = 0; i < termsTree.length; i++ ) {\n\t\t\t\tcount++;\n\t\t\t\tif ( undefined !== termsTree[ i ].children ) {\n\t\t\t\t\tcount += getResultCount( termsTree[ i ].children );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t};\n\n\t\tsetFilterValue( value );\n\t\tsetFilteredTermsTree( newFilteredTermsTree );\n\n\t\tconst resultCount = getResultCount( newFilteredTermsTree );\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results */\n\t\t\t_n( '%d result found.', '%d results found.', resultCount ),\n\t\t\tresultCount\n\t\t);\n\n\t\tdebouncedSpeak( resultsFoundMessage, 'assertive' );\n\t};\n\n\tconst renderTerms = ( renderedTerms ) => {\n\t\treturn renderedTerms.map( ( term ) => {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={ term.id }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-choice\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tchecked={ terms.indexOf( term.id ) !== -1 }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tconst termId = parseInt( term.id, 10 );\n\t\t\t\t\t\t\tonChange( termId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ decodeEntities( term.name ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! term.children.length && (\n\t\t\t\t\t\t<div className=\"editor-post-taxonomies__hierarchical-terms-subchoices\">\n\t\t\t\t\t\t\t{ renderTerms( term.children ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t} );\n\t};\n\n\tconst labelWithFallback = (\n\t\tlabelProperty,\n\t\tfallbackIsCategory,\n\t\tfallbackIsNotCategory\n\t) =>\n\t\ttaxonomy?.labels?.[ labelProperty ] ??\n\t\t( slug === 'category' ? fallbackIsCategory : fallbackIsNotCategory );\n\n\tconst newTermButtonLabel = labelWithFallback(\n\t\t'add_new_item',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst newTermLabel = labelWithFallback(\n\t\t'new_item_name',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst parentSelectLabel = labelWithFallback(\n\t\t'parent_item',\n\t\t__( 'Parent Category' ),\n\t\t__( 'Parent Term' )\n\t);\n\tconst noParentOption = `— ${ parentSelectLabel } —`;\n\tconst newTermSubmitLabel = newTermButtonLabel;\n\tconst filterLabel = taxonomy?.labels?.search_items ?? __( 'Search Terms' );\n\tconst groupLabel = taxonomy?.name ?? __( 'Terms' );\n\tconst showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;\n\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t{ showFilter && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ filterLabel }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ setFilter }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-list\"\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\trole=\"group\"\n\t\t\t\taria-label={ groupLabel }\n\t\t\t>\n\t\t\t\t{ renderTerms(\n\t\t\t\t\t'' !== filterValue ? filteredTermsTree : availableTermsTree\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! loading && hasCreateAction && (\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ onToggleForm }\n\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-add\"\n\t\t\t\t\t\taria-expanded={ showForm }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ newTermButtonLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t) }\n\t\t\t{ showForm && (\n\t\t\t\t<form onSubmit={ onAddTerm }>\n\t\t\t\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-input\"\n\t\t\t\t\t\t\tlabel={ newTermLabel }\n\t\t\t\t\t\t\tvalue={ formName }\n\t\t\t\t\t\t\tonChange={ onChangeFormName }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ !! availableTerms.length && (\n\t\t\t\t\t\t\t<TreeSelect\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ parentSelectLabel }\n\t\t\t\t\t\t\t\tnoOptionLabel={ noParentOption }\n\t\t\t\t\t\t\t\tonChange={ onChangeFormParent }\n\t\t\t\t\t\t\t\tselectedId={ formParent }\n\t\t\t\t\t\t\t\ttree={ availableTermsTree }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-submit\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ newTermSubmitLabel }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</form>\n\t\t\t) }\n\t\t</Flex>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )(\n\tHierarchicalTermSelector\n);\n"],"mappings":"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","ignoreList":[]}