@wordpress/editor 14.9.0 → 14.10.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 (338) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/bindings/api.js +0 -29
  3. package/build/bindings/api.js.map +1 -1
  4. package/build/components/autocompleters/user.js.map +1 -1
  5. package/build/components/block-manager/index.js +2 -2
  6. package/build/components/block-manager/index.js.map +1 -1
  7. package/build/components/commands/index.js.map +1 -1
  8. package/build/components/create-template-part-modal/index.js.map +1 -1
  9. package/build/components/create-template-part-modal/utils.js.map +1 -1
  10. package/build/components/document-outline/index.js.map +1 -1
  11. package/build/components/document-outline/item.js.map +1 -1
  12. package/build/components/document-tools/index.js +1 -1
  13. package/build/components/document-tools/index.js.map +1 -1
  14. package/build/components/editor-interface/index.js +1 -12
  15. package/build/components/editor-interface/index.js.map +1 -1
  16. package/build/components/entities-saved-states/index.js +1 -1
  17. package/build/components/entities-saved-states/index.js.map +1 -1
  18. package/build/components/media-categories/index.js.map +1 -1
  19. package/build/components/page-attributes/parent.js +1 -1
  20. package/build/components/page-attributes/parent.js.map +1 -1
  21. package/build/components/plugin-document-setting-panel/index.js.map +1 -1
  22. package/build/components/post-actions/index.js.map +1 -1
  23. package/build/components/post-content-information/index.js +1 -1
  24. package/build/components/post-content-information/index.js.map +1 -1
  25. package/build/components/post-featured-image/index.js.map +1 -1
  26. package/build/components/post-format/index.js +1 -1
  27. package/build/components/post-format/index.js.map +1 -1
  28. package/build/components/post-last-revision/index.js +1 -1
  29. package/build/components/post-last-revision/index.js.map +1 -1
  30. package/build/components/post-locked-modal/index.js +2 -2
  31. package/build/components/post-locked-modal/index.js.map +1 -1
  32. package/build/components/post-preview-button/index.js +1 -1
  33. package/build/components/post-preview-button/index.js.map +1 -1
  34. package/build/components/post-publish-button/index.js.map +1 -1
  35. package/build/components/post-publish-panel/maybe-post-format-panel.js +1 -1
  36. package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  37. package/build/components/post-publish-panel/maybe-upload-media.js +1 -0
  38. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  39. package/build/components/post-publish-panel/media-util.js +1 -0
  40. package/build/components/post-publish-panel/media-util.js.map +1 -1
  41. package/build/components/post-publish-panel/postpublish.js +1 -1
  42. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  43. package/build/components/post-schedule/label.js.map +1 -1
  44. package/build/components/post-taxonomies/flat-term-selector.js +4 -4
  45. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  46. package/build/components/post-taxonomies/hierarchical-term-selector.js +3 -2
  47. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  48. package/build/components/post-taxonomies/index.js +1 -1
  49. package/build/components/post-taxonomies/index.js.map +1 -1
  50. package/build/components/post-taxonomies/panel.js.map +1 -1
  51. package/build/components/post-template/classic-theme.js +2 -4
  52. package/build/components/post-template/classic-theme.js.map +1 -1
  53. package/build/components/post-text-editor/index.js.map +1 -1
  54. package/build/components/post-title/index.js +15 -19
  55. package/build/components/post-title/index.js.map +1 -1
  56. package/build/components/post-title/index.native.js +2 -2
  57. package/build/components/post-title/index.native.js.map +1 -1
  58. package/build/components/post-url/index.js +76 -63
  59. package/build/components/post-url/index.js.map +1 -1
  60. package/build/components/post-url/panel.js +46 -26
  61. package/build/components/post-url/panel.js.map +1 -1
  62. package/build/components/post-visibility/index.js.map +1 -1
  63. package/build/components/preferences-modal/index.js.map +1 -1
  64. package/build/components/preview-dropdown/index.js.map +1 -1
  65. package/build/components/provider/index.js +1 -1
  66. package/build/components/provider/index.js.map +1 -1
  67. package/build/components/resizable-editor/resize-handle.js.map +1 -1
  68. package/build/components/time-to-read/index.js +1 -1
  69. package/build/components/time-to-read/index.js.map +1 -1
  70. package/build/components/visual-editor/edit-template-blocks-notification.js +4 -1
  71. package/build/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  72. package/build/components/visual-editor/index.js +4 -3
  73. package/build/components/visual-editor/index.js.map +1 -1
  74. package/build/components/visual-editor/use-select-nearest-editable-block.js.map +1 -1
  75. package/build/dataviews/actions/duplicate-template-part.js +1 -1
  76. package/build/dataviews/actions/duplicate-template-part.js.map +1 -1
  77. package/build/private-apis.js +0 -1
  78. package/build/private-apis.js.map +1 -1
  79. package/build/store/actions.js +26 -1
  80. package/build/store/actions.js.map +1 -1
  81. package/build/store/constants.js +1 -0
  82. package/build/store/constants.js.map +1 -1
  83. package/build/store/local-autosave.js.map +1 -1
  84. package/build/store/private-actions.js +7 -6
  85. package/build/store/private-actions.js.map +1 -1
  86. package/build/store/selectors.js +21 -0
  87. package/build/store/selectors.js.map +1 -1
  88. package/build/utils/media-upload/index.js.map +1 -1
  89. package/build-module/bindings/api.js +1 -29
  90. package/build-module/bindings/api.js.map +1 -1
  91. package/build-module/components/autocompleters/user.js +1 -3
  92. package/build-module/components/autocompleters/user.js.map +1 -1
  93. package/build-module/components/block-manager/category.js +1 -2
  94. package/build-module/components/block-manager/category.js.map +1 -1
  95. package/build-module/components/block-manager/checklist.js +1 -2
  96. package/build-module/components/block-manager/checklist.js.map +1 -1
  97. package/build-module/components/block-manager/index.js +3 -4
  98. package/build-module/components/block-manager/index.js.map +1 -1
  99. package/build-module/components/block-settings-menu/content-only-settings-menu.js +1 -3
  100. package/build-module/components/block-settings-menu/content-only-settings-menu.js.map +1 -1
  101. package/build-module/components/blog-title/index.js +1 -3
  102. package/build-module/components/blog-title/index.js.map +1 -1
  103. package/build-module/components/collapsible-block-toolbar/index.js +1 -3
  104. package/build-module/components/collapsible-block-toolbar/index.js.map +1 -1
  105. package/build-module/components/commands/index.js.map +1 -1
  106. package/build-module/components/create-template-part-modal/index.js +1 -2
  107. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  108. package/build-module/components/create-template-part-modal/utils.js.map +1 -1
  109. package/build-module/components/document-bar/index.js +1 -2
  110. package/build-module/components/document-bar/index.js.map +1 -1
  111. package/build-module/components/document-outline/index.js +1 -2
  112. package/build-module/components/document-outline/index.js.map +1 -1
  113. package/build-module/components/document-outline/item.js +1 -2
  114. package/build-module/components/document-outline/item.js.map +1 -1
  115. package/build-module/components/document-tools/index.js +2 -4
  116. package/build-module/components/document-tools/index.js.map +1 -1
  117. package/build-module/components/editor/index.js +1 -3
  118. package/build-module/components/editor/index.js.map +1 -1
  119. package/build-module/components/editor-help/add-blocks.native.js +1 -3
  120. package/build-module/components/editor-help/add-blocks.native.js.map +1 -1
  121. package/build-module/components/editor-help/customize-blocks.native.js +1 -3
  122. package/build-module/components/editor-help/customize-blocks.native.js.map +1 -1
  123. package/build-module/components/editor-help/help-detail-navigation-screen.native.js +1 -2
  124. package/build-module/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  125. package/build-module/components/editor-help/index.native.js +1 -3
  126. package/build-module/components/editor-help/index.native.js.map +1 -1
  127. package/build-module/components/editor-help/intro-to-blocks.native.js +1 -3
  128. package/build-module/components/editor-help/intro-to-blocks.native.js.map +1 -1
  129. package/build-module/components/editor-help/move-blocks.native.js +1 -3
  130. package/build-module/components/editor-help/move-blocks.native.js.map +1 -1
  131. package/build-module/components/editor-help/remove-blocks.native.js +1 -3
  132. package/build-module/components/editor-help/remove-blocks.native.js.map +1 -1
  133. package/build-module/components/editor-help/view-sections.native.js +1 -2
  134. package/build-module/components/editor-help/view-sections.native.js.map +1 -1
  135. package/build-module/components/editor-interface/index.js +2 -15
  136. package/build-module/components/editor-interface/index.js.map +1 -1
  137. package/build-module/components/editor-notices/index.js +1 -3
  138. package/build-module/components/editor-notices/index.js.map +1 -1
  139. package/build-module/components/entities-saved-states/entity-record-item.js +1 -3
  140. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  141. package/build-module/components/entities-saved-states/entity-type-list.js +1 -2
  142. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  143. package/build-module/components/entities-saved-states/index.js +2 -3
  144. package/build-module/components/entities-saved-states/index.js.map +1 -1
  145. package/build-module/components/error-boundary/index.native.js +1 -2
  146. package/build-module/components/error-boundary/index.native.js.map +1 -1
  147. package/build-module/components/header/index.js +1 -2
  148. package/build-module/components/header/index.js.map +1 -1
  149. package/build-module/components/keyboard-shortcut-help-modal/index.js +1 -2
  150. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  151. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +1 -3
  152. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
  153. package/build-module/components/list-view-sidebar/list-view-outline.js +1 -3
  154. package/build-module/components/list-view-sidebar/list-view-outline.js.map +1 -1
  155. package/build-module/components/media-categories/index.js.map +1 -1
  156. package/build-module/components/more-menu/index.js +1 -3
  157. package/build-module/components/more-menu/index.js.map +1 -1
  158. package/build-module/components/offline-status/index.native.js +1 -2
  159. package/build-module/components/offline-status/index.native.js.map +1 -1
  160. package/build-module/components/page-attributes/parent.js +2 -3
  161. package/build-module/components/page-attributes/parent.js.map +1 -1
  162. package/build-module/components/plugin-document-setting-panel/index.js +1 -3
  163. package/build-module/components/plugin-document-setting-panel/index.js.map +1 -1
  164. package/build-module/components/post-actions/index.js +1 -3
  165. package/build-module/components/post-actions/index.js.map +1 -1
  166. package/build-module/components/post-author/panel.js +1 -2
  167. package/build-module/components/post-author/panel.js.map +1 -1
  168. package/build-module/components/post-card-panel/index.js +1 -2
  169. package/build-module/components/post-card-panel/index.js.map +1 -1
  170. package/build-module/components/post-content-information/index.js +1 -1
  171. package/build-module/components/post-content-information/index.js.map +1 -1
  172. package/build-module/components/post-discussion/panel.js +1 -2
  173. package/build-module/components/post-discussion/panel.js.map +1 -1
  174. package/build-module/components/post-excerpt/panel.js +1 -3
  175. package/build-module/components/post-excerpt/panel.js.map +1 -1
  176. package/build-module/components/post-featured-image/index.js +1 -2
  177. package/build-module/components/post-featured-image/index.js.map +1 -1
  178. package/build-module/components/post-format/index.js +2 -3
  179. package/build-module/components/post-format/index.js.map +1 -1
  180. package/build-module/components/post-format/panel.js +1 -2
  181. package/build-module/components/post-format/panel.js.map +1 -1
  182. package/build-module/components/post-last-revision/index.js +1 -1
  183. package/build-module/components/post-last-revision/index.js.map +1 -1
  184. package/build-module/components/post-locked-modal/index.js +3 -5
  185. package/build-module/components/post-locked-modal/index.js.map +1 -1
  186. package/build-module/components/post-panel-row/index.js +1 -2
  187. package/build-module/components/post-panel-row/index.js.map +1 -1
  188. package/build-module/components/post-preview-button/index.js +2 -4
  189. package/build-module/components/post-preview-button/index.js.map +1 -1
  190. package/build-module/components/post-publish-button/index.js +1 -2
  191. package/build-module/components/post-publish-button/index.js.map +1 -1
  192. package/build-module/components/post-publish-panel/index.js +1 -3
  193. package/build-module/components/post-publish-panel/index.js.map +1 -1
  194. package/build-module/components/post-publish-panel/maybe-category-panel.js +1 -2
  195. package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  196. package/build-module/components/post-publish-panel/maybe-post-format-panel.js +2 -3
  197. package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  198. package/build-module/components/post-publish-panel/maybe-tags-panel.js +1 -2
  199. package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  200. package/build-module/components/post-publish-panel/maybe-upload-media.js +2 -2
  201. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  202. package/build-module/components/post-publish-panel/media-util.js +1 -0
  203. package/build-module/components/post-publish-panel/media-util.js.map +1 -1
  204. package/build-module/components/post-publish-panel/postpublish.js +2 -4
  205. package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
  206. package/build-module/components/post-publish-panel/prepublish.js +1 -3
  207. package/build-module/components/post-publish-panel/prepublish.js.map +1 -1
  208. package/build-module/components/post-saved-state/index.js +1 -2
  209. package/build-module/components/post-saved-state/index.js.map +1 -1
  210. package/build-module/components/post-schedule/label.js.map +1 -1
  211. package/build-module/components/post-status/index.js +1 -3
  212. package/build-module/components/post-status/index.js.map +1 -1
  213. package/build-module/components/post-switch-to-draft-button/index.js +1 -3
  214. package/build-module/components/post-switch-to-draft-button/index.js.map +1 -1
  215. package/build-module/components/post-taxonomies/flat-term-selector.js +5 -7
  216. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  217. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +4 -4
  218. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  219. package/build-module/components/post-taxonomies/index.js +1 -1
  220. package/build-module/components/post-taxonomies/index.js.map +1 -1
  221. package/build-module/components/post-taxonomies/most-used-terms.js +1 -2
  222. package/build-module/components/post-taxonomies/most-used-terms.js.map +1 -1
  223. package/build-module/components/post-taxonomies/panel.js.map +1 -1
  224. package/build-module/components/post-template/block-theme.js +1 -3
  225. package/build-module/components/post-template/block-theme.js.map +1 -1
  226. package/build-module/components/post-template/classic-theme.js +3 -6
  227. package/build-module/components/post-template/classic-theme.js.map +1 -1
  228. package/build-module/components/post-template/create-new-template-modal.js +1 -2
  229. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  230. package/build-module/components/post-template/create-new-template.js +1 -3
  231. package/build-module/components/post-template/create-new-template.js.map +1 -1
  232. package/build-module/components/post-template/swap-template-button.js +1 -3
  233. package/build-module/components/post-template/swap-template-button.js.map +1 -1
  234. package/build-module/components/post-text-editor/index.js +1 -3
  235. package/build-module/components/post-text-editor/index.js.map +1 -1
  236. package/build-module/components/post-title/index.js +15 -19
  237. package/build-module/components/post-title/index.js.map +1 -1
  238. package/build-module/components/post-title/index.native.js +2 -2
  239. package/build-module/components/post-title/index.native.js.map +1 -1
  240. package/build-module/components/post-trash/index.js +1 -2
  241. package/build-module/components/post-trash/index.js.map +1 -1
  242. package/build-module/components/post-url/index.js +78 -66
  243. package/build-module/components/post-url/index.js.map +1 -1
  244. package/build-module/components/post-url/panel.js +48 -28
  245. package/build-module/components/post-url/panel.js.map +1 -1
  246. package/build-module/components/post-visibility/index.js +1 -2
  247. package/build-module/components/post-visibility/index.js.map +1 -1
  248. package/build-module/components/posts-per-page/index.js +1 -3
  249. package/build-module/components/posts-per-page/index.js.map +1 -1
  250. package/build-module/components/preferences-modal/index.js +1 -3
  251. package/build-module/components/preferences-modal/index.js.map +1 -1
  252. package/build-module/components/preview-dropdown/index.js +1 -3
  253. package/build-module/components/preview-dropdown/index.js.map +1 -1
  254. package/build-module/components/provider/index.js +2 -4
  255. package/build-module/components/provider/index.js.map +1 -1
  256. package/build-module/components/provider/index.native.js +1 -3
  257. package/build-module/components/provider/index.native.js.map +1 -1
  258. package/build-module/components/resizable-editor/resize-handle.js +1 -3
  259. package/build-module/components/resizable-editor/resize-handle.js.map +1 -1
  260. package/build-module/components/save-publish-panels/index.js +1 -3
  261. package/build-module/components/save-publish-panels/index.js.map +1 -1
  262. package/build-module/components/sidebar/header.js +1 -2
  263. package/build-module/components/sidebar/header.js.map +1 -1
  264. package/build-module/components/sidebar/index.js +1 -2
  265. package/build-module/components/sidebar/index.js.map +1 -1
  266. package/build-module/components/sidebar/post-summary.js +1 -3
  267. package/build-module/components/sidebar/post-summary.js.map +1 -1
  268. package/build-module/components/site-discussion/index.js +1 -3
  269. package/build-module/components/site-discussion/index.js.map +1 -1
  270. package/build-module/components/start-template-options/index.js +1 -2
  271. package/build-module/components/start-template-options/index.js.map +1 -1
  272. package/build-module/components/table-of-contents/panel.js +1 -3
  273. package/build-module/components/table-of-contents/panel.js.map +1 -1
  274. package/build-module/components/template-part-menu-items/convert-to-template-part.js +1 -3
  275. package/build-module/components/template-part-menu-items/convert-to-template-part.js.map +1 -1
  276. package/build-module/components/template-validation-notice/index.js +1 -3
  277. package/build-module/components/template-validation-notice/index.js.map +1 -1
  278. package/build-module/components/text-editor/index.js +1 -2
  279. package/build-module/components/text-editor/index.js.map +1 -1
  280. package/build-module/components/time-to-read/index.js +1 -1
  281. package/build-module/components/time-to-read/index.js.map +1 -1
  282. package/build-module/components/visual-editor/edit-template-blocks-notification.js +4 -1
  283. package/build-module/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  284. package/build-module/components/visual-editor/index.js +5 -6
  285. package/build-module/components/visual-editor/index.js.map +1 -1
  286. package/build-module/components/visual-editor/use-select-nearest-editable-block.js.map +1 -1
  287. package/build-module/dataviews/actions/duplicate-template-part.js +1 -1
  288. package/build-module/dataviews/actions/duplicate-template-part.js.map +1 -1
  289. package/build-module/hooks/pattern-overrides.js +1 -3
  290. package/build-module/hooks/pattern-overrides.js.map +1 -1
  291. package/build-module/private-apis.js +1 -2
  292. package/build-module/private-apis.js.map +1 -1
  293. package/build-module/store/actions.js +26 -1
  294. package/build-module/store/actions.js.map +1 -1
  295. package/build-module/store/constants.js +1 -0
  296. package/build-module/store/constants.js.map +1 -1
  297. package/build-module/store/local-autosave.js.map +1 -1
  298. package/build-module/store/private-actions.js +7 -6
  299. package/build-module/store/private-actions.js.map +1 -1
  300. package/build-module/store/selectors.js +21 -0
  301. package/build-module/store/selectors.js.map +1 -1
  302. package/build-module/utils/media-upload/index.js.map +1 -1
  303. package/build-style/style-rtl.css +20 -5
  304. package/build-style/style.css +20 -5
  305. package/build-types/bindings/api.d.ts +0 -13
  306. package/build-types/bindings/api.d.ts.map +1 -1
  307. package/build-types/components/editor-interface/index.d.ts +1 -2
  308. package/build-types/components/editor-interface/index.d.ts.map +1 -1
  309. package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts.map +1 -1
  310. package/build-types/components/post-template/classic-theme.d.ts.map +1 -1
  311. package/build-types/components/post-url/index.d.ts.map +1 -1
  312. package/build-types/components/post-url/panel.d.ts.map +1 -1
  313. package/build-types/components/provider/index.d.ts.map +1 -1
  314. package/build-types/components/visual-editor/edit-template-blocks-notification.d.ts.map +1 -1
  315. package/build-types/components/visual-editor/index.d.ts.map +1 -1
  316. package/build-types/private-apis.d.ts.map +1 -1
  317. package/build-types/store/actions.d.ts +1 -4
  318. package/build-types/store/actions.d.ts.map +1 -1
  319. package/build-types/store/selectors.d.ts +21 -0
  320. package/build-types/store/selectors.d.ts.map +1 -1
  321. package/package.json +38 -38
  322. package/src/bindings/api.js +1 -32
  323. package/src/components/document-tools/index.js +1 -1
  324. package/src/components/editor-interface/index.js +0 -15
  325. package/src/components/header/style.scss +1 -0
  326. package/src/components/post-saved-state/test/__snapshots__/index.js.snap +1 -1
  327. package/src/components/post-taxonomies/hierarchical-term-selector.js +1 -0
  328. package/src/components/post-template/classic-theme.js +1 -2
  329. package/src/components/post-url/index.js +67 -55
  330. package/src/components/post-url/panel.js +57 -33
  331. package/src/components/post-url/style.scss +21 -3
  332. package/src/components/provider/index.js +1 -0
  333. package/src/components/visual-editor/edit-template-blocks-notification.js +5 -1
  334. package/src/components/visual-editor/index.js +3 -1
  335. package/src/private-apis.js +1 -5
  336. package/src/store/actions.js +28 -1
  337. package/src/store/selectors.js +21 -0
  338. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","require","_url","generateUniqueBasenames","urls","basenames","Set","Object","fromEntries","map","url","filename","getFilename","basename","parts","split","length","pop","join","uuid","has","add","fetchMedia","entries","filePromise","window","fetch","includes","then","response","blob","File","type"],"sources":["@wordpress/editor/src/components/post-publish-panel/media-util.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Generate a list of unique basenames given a list of URLs.\n *\n * We want all basenames to be unique, since sometimes the extension\n * doesn't reflect the mime type, and may end up getting changed by\n * the server, on upload.\n *\n * @param {string[]} urls The list of URLs\n * @return {Record< string, string >} A URL => basename record.\n */\nexport function generateUniqueBasenames( urls ) {\n\tconst basenames = new Set();\n\n\treturn Object.fromEntries(\n\t\turls.map( ( url ) => {\n\t\t\t// We prefer to match the remote filename, if possible.\n\t\t\tconst filename = getFilename( url );\n\t\t\tlet basename = '';\n\n\t\t\tif ( filename ) {\n\t\t\t\tconst parts = filename.split( '.' );\n\t\t\t\tif ( parts.length > 1 ) {\n\t\t\t\t\t// Assume the last part is the extension.\n\t\t\t\t\tparts.pop();\n\t\t\t\t}\n\t\t\t\tbasename = parts.join( '.' );\n\t\t\t}\n\n\t\t\tif ( ! basename ) {\n\t\t\t\t// It looks like we don't have a basename, so let's use a UUID.\n\t\t\t\tbasename = uuid();\n\t\t\t}\n\n\t\t\tif ( basenames.has( basename ) ) {\n\t\t\t\t// Append a UUID to deduplicate the basename.\n\t\t\t\t// The server will try to deduplicate on its own if we don't do this,\n\t\t\t\t// but it may run into a race condition\n\t\t\t\t// (see https://github.com/WordPress/gutenberg/issues/64899).\n\t\t\t\t// Deduplicating the filenames before uploading is safer.\n\t\t\t\tbasename = `${ basename }-${ uuid() }`;\n\t\t\t}\n\n\t\t\tbasenames.add( basename );\n\n\t\t\treturn [ url, basename ];\n\t\t} )\n\t);\n}\n\n/**\n * Fetch a list of URLs, turning those into promises for files with\n * unique filenames.\n *\n * @param {string[]} urls The list of URLs\n * @return {Record< string, Promise< File > >} A URL => File promise record.\n */\nexport function fetchMedia( urls ) {\n\treturn Object.fromEntries(\n\t\tObject.entries( generateUniqueBasenames( urls ) ).map(\n\t\t\t( [ url, basename ] ) => {\n\t\t\t\tconst filePromise = window\n\t\t\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\t\t// The server will reject the upload if it doesn't have an extension,\n\t\t\t\t\t\t// even though it'll rewrite the file name to match the mime type.\n\t\t\t\t\t\t// Here we provide it with a safe extension to get it past that check.\n\t\t\t\t\t\treturn new File( [ blob ], `${ basename }.png`, {\n\t\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\n\t\t\t\treturn [ url, filePromise ];\n\t\t\t}\n\t\t)\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,IAAA,GAAAD,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,uBAAuBA,CAAEC,IAAI,EAAG;EAC/C,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC;EAE3B,OAAOC,MAAM,CAACC,WAAW,CACxBJ,IAAI,CAACK,GAAG,CAAIC,GAAG,IAAM;IACpB;IACA,MAAMC,QAAQ,GAAG,IAAAC,gBAAW,EAAEF,GAAI,CAAC;IACnC,IAAIG,QAAQ,GAAG,EAAE;IAEjB,IAAKF,QAAQ,EAAG;MACf,MAAMG,KAAK,GAAGH,QAAQ,CAACI,KAAK,CAAE,GAAI,CAAC;MACnC,IAAKD,KAAK,CAACE,MAAM,GAAG,CAAC,EAAG;QACvB;QACAF,KAAK,CAACG,GAAG,CAAC,CAAC;MACZ;MACAJ,QAAQ,GAAGC,KAAK,CAACI,IAAI,CAAE,GAAI,CAAC;IAC7B;IAEA,IAAK,CAAEL,QAAQ,EAAG;MACjB;MACAA,QAAQ,GAAG,IAAAM,QAAI,EAAC,CAAC;IAClB;IAEA,IAAKd,SAAS,CAACe,GAAG,CAAEP,QAAS,CAAC,EAAG;MAChC;MACA;MACA;MACA;MACA;MACAA,QAAQ,GAAI,GAAGA,QAAU,IAAI,IAAAM,QAAI,EAAC,CAAG,EAAC;IACvC;IAEAd,SAAS,CAACgB,GAAG,CAAER,QAAS,CAAC;IAEzB,OAAO,CAAEH,GAAG,EAAEG,QAAQ,CAAE;EACzB,CAAE,CACH,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASS,UAAUA,CAAElB,IAAI,EAAG;EAClC,OAAOG,MAAM,CAACC,WAAW,CACxBD,MAAM,CAACgB,OAAO,CAAEpB,uBAAuB,CAAEC,IAAK,CAAE,CAAC,CAACK,GAAG,CACpD,CAAE,CAAEC,GAAG,EAAEG,QAAQ,CAAE,KAAM;IACxB,MAAMW,WAAW,GAAGC,MAAM,CACxBC,KAAK,CAAEhB,GAAG,CAACiB,QAAQ,CAAE,GAAI,CAAC,GAAGjB,GAAG,GAAGA,GAAG,GAAG,GAAI,CAAC,CAC9CkB,IAAI,CAAIC,QAAQ,IAAMA,QAAQ,CAACC,IAAI,CAAC,CAAE,CAAC,CACvCF,IAAI,CAAIE,IAAI,IAAM;MAClB;MACA;MACA;MACA,OAAO,IAAIC,IAAI,CAAE,CAAED,IAAI,CAAE,EAAG,GAAGjB,QAAU,MAAK,EAAE;QAC/CmB,IAAI,EAAEF,IAAI,CAACE;MACZ,CAAE,CAAC;IACJ,CAAE,CAAC;IAEJ,OAAO,CAAEtB,GAAG,EAAEc,WAAW,CAAE;EAC5B,CACD,CACD,CAAC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_uuid","require","_url","generateUniqueBasenames","urls","basenames","Set","Object","fromEntries","map","url","filename","getFilename","basename","parts","split","length","pop","join","uuid","has","add","fetchMedia","entries","filePromise","window","fetch","includes","then","response","blob","File","type"],"sources":["@wordpress/editor/src/components/post-publish-panel/media-util.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Generate a list of unique basenames given a list of URLs.\n *\n * We want all basenames to be unique, since sometimes the extension\n * doesn't reflect the mime type, and may end up getting changed by\n * the server, on upload.\n *\n * @param {string[]} urls The list of URLs\n * @return {Record< string, string >} A URL => basename record.\n */\nexport function generateUniqueBasenames( urls ) {\n\tconst basenames = new Set();\n\n\treturn Object.fromEntries(\n\t\turls.map( ( url ) => {\n\t\t\t// We prefer to match the remote filename, if possible.\n\t\t\tconst filename = getFilename( url );\n\t\t\tlet basename = '';\n\n\t\t\tif ( filename ) {\n\t\t\t\tconst parts = filename.split( '.' );\n\t\t\t\tif ( parts.length > 1 ) {\n\t\t\t\t\t// Assume the last part is the extension.\n\t\t\t\t\tparts.pop();\n\t\t\t\t}\n\t\t\t\tbasename = parts.join( '.' );\n\t\t\t}\n\n\t\t\tif ( ! basename ) {\n\t\t\t\t// It looks like we don't have a basename, so let's use a UUID.\n\t\t\t\tbasename = uuid();\n\t\t\t}\n\n\t\t\tif ( basenames.has( basename ) ) {\n\t\t\t\t// Append a UUID to deduplicate the basename.\n\t\t\t\t// The server will try to deduplicate on its own if we don't do this,\n\t\t\t\t// but it may run into a race condition\n\t\t\t\t// (see https://github.com/WordPress/gutenberg/issues/64899).\n\t\t\t\t// Deduplicating the filenames before uploading is safer.\n\t\t\t\tbasename = `${ basename }-${ uuid() }`;\n\t\t\t}\n\n\t\t\tbasenames.add( basename );\n\n\t\t\treturn [ url, basename ];\n\t\t} )\n\t);\n}\n\n/**\n * Fetch a list of URLs, turning those into promises for files with\n * unique filenames.\n *\n * @param {string[]} urls The list of URLs\n * @return {Record< string, Promise< File > >} A URL => File promise record.\n */\nexport function fetchMedia( urls ) {\n\treturn Object.fromEntries(\n\t\tObject.entries( generateUniqueBasenames( urls ) ).map(\n\t\t\t( [ url, basename ] ) => {\n\t\t\t\tconst filePromise = window\n\t\t\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\t\t// The server will reject the upload if it doesn't have an extension,\n\t\t\t\t\t\t// even though it'll rewrite the file name to match the mime type.\n\t\t\t\t\t\t// Here we provide it with a safe extension to get it past that check.\n\t\t\t\t\t\treturn new File( [ blob ], `${ basename }.png`, {\n\t\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\n\t\t\t\treturn [ url, filePromise ];\n\t\t\t}\n\t\t)\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,IAAA,GAAAD,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,uBAAuBA,CAAEC,IAAI,EAAG;EAC/C,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC;EAE3B,OAAOC,MAAM,CAACC,WAAW,CACxBJ,IAAI,CAACK,GAAG,CAAIC,GAAG,IAAM;IACpB;IACA,MAAMC,QAAQ,GAAG,IAAAC,gBAAW,EAAEF,GAAI,CAAC;IACnC,IAAIG,QAAQ,GAAG,EAAE;IAEjB,IAAKF,QAAQ,EAAG;MACf,MAAMG,KAAK,GAAGH,QAAQ,CAACI,KAAK,CAAE,GAAI,CAAC;MACnC,IAAKD,KAAK,CAACE,MAAM,GAAG,CAAC,EAAG;QACvB;QACAF,KAAK,CAACG,GAAG,CAAC,CAAC;MACZ;MACAJ,QAAQ,GAAGC,KAAK,CAACI,IAAI,CAAE,GAAI,CAAC;IAC7B;IAEA,IAAK,CAAEL,QAAQ,EAAG;MACjB;MACAA,QAAQ,GAAG,IAAAM,QAAI,EAAC,CAAC;IAClB;IAEA,IAAKd,SAAS,CAACe,GAAG,CAAEP,QAAS,CAAC,EAAG;MAChC;MACA;MACA;MACA;MACA;MACAA,QAAQ,GAAG,GAAIA,QAAQ,IAAM,IAAAM,QAAI,EAAC,CAAC,EAAG;IACvC;IAEAd,SAAS,CAACgB,GAAG,CAAER,QAAS,CAAC;IAEzB,OAAO,CAAEH,GAAG,EAAEG,QAAQ,CAAE;EACzB,CAAE,CACH,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASS,UAAUA,CAAElB,IAAI,EAAG;EAClC,OAAOG,MAAM,CAACC,WAAW,CACxBD,MAAM,CAACgB,OAAO,CAAEpB,uBAAuB,CAAEC,IAAK,CAAE,CAAC,CAACK,GAAG,CACpD,CAAE,CAAEC,GAAG,EAAEG,QAAQ,CAAE,KAAM;IACxB,MAAMW,WAAW,GAAGC,MAAM,CACxBC,KAAK,CAAEhB,GAAG,CAACiB,QAAQ,CAAE,GAAI,CAAC,GAAGjB,GAAG,GAAGA,GAAG,GAAG,GAAI,CAAC,CAC9CkB,IAAI,CAAIC,QAAQ,IAAMA,QAAQ,CAACC,IAAI,CAAC,CAAE,CAAC,CACvCF,IAAI,CAAIE,IAAI,IAAM;MAClB;MACA;MACA;MACA,OAAO,IAAIC,IAAI,CAAE,CAAED,IAAI,CAAE,EAAE,GAAIjB,QAAQ,MAAO,EAAE;QAC/CmB,IAAI,EAAEF,IAAI,CAACE;MACZ,CAAE,CAAC;IACJ,CAAE,CAAC;IAEJ,OAAO,CAAEtB,GAAG,EAAEc,WAAW,CAAE;EAC5B,CACD,CACD,CAAC;AACF","ignoreList":[]}
@@ -131,7 +131,7 @@ class PostPublishPanelPostpublish extends _element.Component {
131
131
  __nextHasNoMarginBottom: true,
132
132
  className: "post-publish-panel__postpublish-post-address",
133
133
  readOnly: true,
134
- label: (0, _i18n.sprintf)( /* translators: %s: post type singular name */
134
+ label: (0, _i18n.sprintf)(/* translators: %s: post type singular name */
135
135
  (0, _i18n.__)('%s address'), postLabel),
136
136
  value: (0, _url.safeDecodeURIComponent)(link),
137
137
  onFocus: this.onSelectInput
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_data","_url","_htmlEntities","_compose","_coreData","_label","_interopRequireDefault","_store","_jsxRuntime","POSTNAME","PAGENAME","getFuturePostUrl","post","slug","permalink_template","includes","replace","CopyButton","text","onCopy","children","ref","useCopyToClipboard","jsx","Button","__next40pxDefaultSize","variant","PostPublishPanelPostpublish","Component","constructor","arguments","state","showCopyConfirmation","bind","onSelectInput","postLink","createRef","componentDidMount","props","focusOnMount","current","focus","componentWillUnmount","clearTimeout","dismissCopyConfirmation","setState","setTimeout","event","target","select","render","isScheduled","postType","postLabel","labels","singular_name","viewPostLabel","view_item","addNewPostLabel","add_new_item","link","status","addLink","addQueryArgs","post_type","type","postPublishNonLinkHeader","jsxs","Fragment","__","default","className","PanelBody","href","decodeEntities","title","TextControl","__nextHasNoMarginBottom","readOnly","label","sprintf","value","safeDecodeURIComponent","onFocus","_default","exports","withSelect","getEditedPostAttribute","getCurrentPost","isCurrentPostScheduled","editorStore","getPostType","coreStore"],"sources":["@wordpress/editor/src/components/post-publish-panel/postpublish.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PanelBody, Button, TextControl } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { addQueryArgs, safeDecodeURIComponent } from '@wordpress/url';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostScheduleLabel from '../post-schedule/label';\nimport { store as editorStore } from '../../store';\n\nconst POSTNAME = '%postname%';\nconst PAGENAME = '%pagename%';\n\n/**\n * Returns URL for a future post.\n *\n * @param {Object} post Post object.\n *\n * @return {string} PostPublish URL.\n */\n\nconst getFuturePostUrl = ( post ) => {\n\tconst { slug } = post;\n\n\tif ( post.permalink_template.includes( POSTNAME ) ) {\n\t\treturn post.permalink_template.replace( POSTNAME, slug );\n\t}\n\n\tif ( post.permalink_template.includes( PAGENAME ) ) {\n\t\treturn post.permalink_template.replace( PAGENAME, slug );\n\t}\n\n\treturn post.permalink_template;\n};\n\nfunction CopyButton( { text, onCopy, children } ) {\n\tconst ref = useCopyToClipboard( text, onCopy );\n\treturn (\n\t\t<Button __next40pxDefaultSize variant=\"secondary\" ref={ ref }>\n\t\t\t{ children }\n\t\t</Button>\n\t);\n}\n\nclass PostPublishPanelPostpublish extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\tshowCopyConfirmation: false,\n\t\t};\n\t\tthis.onCopy = this.onCopy.bind( this );\n\t\tthis.onSelectInput = this.onSelectInput.bind( this );\n\t\tthis.postLink = createRef();\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\tthis.postLink.current.focus();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.dismissCopyConfirmation );\n\t}\n\n\tonCopy() {\n\t\tthis.setState( {\n\t\t\tshowCopyConfirmation: true,\n\t\t} );\n\n\t\tclearTimeout( this.dismissCopyConfirmation );\n\t\tthis.dismissCopyConfirmation = setTimeout( () => {\n\t\t\tthis.setState( {\n\t\t\t\tshowCopyConfirmation: false,\n\t\t\t} );\n\t\t}, 4000 );\n\t}\n\n\tonSelectInput( event ) {\n\t\tevent.target.select();\n\t}\n\n\trender() {\n\t\tconst { children, isScheduled, post, postType } = this.props;\n\t\tconst postLabel = postType?.labels?.singular_name;\n\t\tconst viewPostLabel = postType?.labels?.view_item;\n\t\tconst addNewPostLabel = postType?.labels?.add_new_item;\n\t\tconst link =\n\t\t\tpost.status === 'future' ? getFuturePostUrl( post ) : post.link;\n\t\tconst addLink = addQueryArgs( 'post-new.php', {\n\t\t\tpost_type: post.type,\n\t\t} );\n\n\t\tconst postPublishNonLinkHeader = isScheduled ? (\n\t\t\t<>\n\t\t\t\t{ __( 'is now scheduled. It will go live on' ) }{ ' ' }\n\t\t\t\t<PostScheduleLabel />.\n\t\t\t</>\n\t\t) : (\n\t\t\t__( 'is now live.' )\n\t\t);\n\n\t\treturn (\n\t\t\t<div className=\"post-publish-panel__postpublish\">\n\t\t\t\t<PanelBody className=\"post-publish-panel__postpublish-header\">\n\t\t\t\t\t<a ref={ this.postLink } href={ link }>\n\t\t\t\t\t\t{ decodeEntities( post.title ) || __( '(no title)' ) }\n\t\t\t\t\t</a>{ ' ' }\n\t\t\t\t\t{ postPublishNonLinkHeader }\n\t\t\t\t</PanelBody>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<p className=\"post-publish-panel__postpublish-subheader\">\n\t\t\t\t\t\t<strong>{ __( 'What’s next?' ) }</strong>\n\t\t\t\t\t</p>\n\t\t\t\t\t<div className=\"post-publish-panel__postpublish-post-address-container\">\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=\"post-publish-panel__postpublish-post-address\"\n\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: post type singular name */\n\t\t\t\t\t\t\t\t__( '%s address' ),\n\t\t\t\t\t\t\t\tpostLabel\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ safeDecodeURIComponent( link ) }\n\t\t\t\t\t\t\tonFocus={ this.onSelectInput }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<div className=\"post-publish-panel__postpublish-post-address__copy-button-wrap\">\n\t\t\t\t\t\t\t<CopyButton text={ link } onCopy={ this.onCopy }>\n\t\t\t\t\t\t\t\t{ this.state.showCopyConfirmation\n\t\t\t\t\t\t\t\t\t? __( 'Copied!' )\n\t\t\t\t\t\t\t\t\t: __( 'Copy' ) }\n\t\t\t\t\t\t\t</CopyButton>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"post-publish-panel__postpublish-buttons\">\n\t\t\t\t\t\t{ ! isScheduled && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\thref={ link }\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ viewPostLabel }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant={ isScheduled ? 'primary' : 'secondary' }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\thref={ addLink }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ addNewPostLabel }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</PanelBody>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getEditedPostAttribute, getCurrentPost, isCurrentPostScheduled } =\n\t\tselect( editorStore );\n\tconst { getPostType } = select( coreStore );\n\n\treturn {\n\t\tpost: getCurrentPost(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tisScheduled: isCurrentPostScheduled(),\n\t};\n} )( PostPublishPanelPostpublish );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_data","_url","_htmlEntities","_compose","_coreData","_label","_interopRequireDefault","_store","_jsxRuntime","POSTNAME","PAGENAME","getFuturePostUrl","post","slug","permalink_template","includes","replace","CopyButton","text","onCopy","children","ref","useCopyToClipboard","jsx","Button","__next40pxDefaultSize","variant","PostPublishPanelPostpublish","Component","constructor","arguments","state","showCopyConfirmation","bind","onSelectInput","postLink","createRef","componentDidMount","props","focusOnMount","current","focus","componentWillUnmount","clearTimeout","dismissCopyConfirmation","setState","setTimeout","event","target","select","render","isScheduled","postType","postLabel","labels","singular_name","viewPostLabel","view_item","addNewPostLabel","add_new_item","link","status","addLink","addQueryArgs","post_type","type","postPublishNonLinkHeader","jsxs","Fragment","__","default","className","PanelBody","href","decodeEntities","title","TextControl","__nextHasNoMarginBottom","readOnly","label","sprintf","value","safeDecodeURIComponent","onFocus","_default","exports","withSelect","getEditedPostAttribute","getCurrentPost","isCurrentPostScheduled","editorStore","getPostType","coreStore"],"sources":["@wordpress/editor/src/components/post-publish-panel/postpublish.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PanelBody, Button, TextControl } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { addQueryArgs, safeDecodeURIComponent } from '@wordpress/url';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostScheduleLabel from '../post-schedule/label';\nimport { store as editorStore } from '../../store';\n\nconst POSTNAME = '%postname%';\nconst PAGENAME = '%pagename%';\n\n/**\n * Returns URL for a future post.\n *\n * @param {Object} post Post object.\n *\n * @return {string} PostPublish URL.\n */\n\nconst getFuturePostUrl = ( post ) => {\n\tconst { slug } = post;\n\n\tif ( post.permalink_template.includes( POSTNAME ) ) {\n\t\treturn post.permalink_template.replace( POSTNAME, slug );\n\t}\n\n\tif ( post.permalink_template.includes( PAGENAME ) ) {\n\t\treturn post.permalink_template.replace( PAGENAME, slug );\n\t}\n\n\treturn post.permalink_template;\n};\n\nfunction CopyButton( { text, onCopy, children } ) {\n\tconst ref = useCopyToClipboard( text, onCopy );\n\treturn (\n\t\t<Button __next40pxDefaultSize variant=\"secondary\" ref={ ref }>\n\t\t\t{ children }\n\t\t</Button>\n\t);\n}\n\nclass PostPublishPanelPostpublish extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\tshowCopyConfirmation: false,\n\t\t};\n\t\tthis.onCopy = this.onCopy.bind( this );\n\t\tthis.onSelectInput = this.onSelectInput.bind( this );\n\t\tthis.postLink = createRef();\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\tthis.postLink.current.focus();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.dismissCopyConfirmation );\n\t}\n\n\tonCopy() {\n\t\tthis.setState( {\n\t\t\tshowCopyConfirmation: true,\n\t\t} );\n\n\t\tclearTimeout( this.dismissCopyConfirmation );\n\t\tthis.dismissCopyConfirmation = setTimeout( () => {\n\t\t\tthis.setState( {\n\t\t\t\tshowCopyConfirmation: false,\n\t\t\t} );\n\t\t}, 4000 );\n\t}\n\n\tonSelectInput( event ) {\n\t\tevent.target.select();\n\t}\n\n\trender() {\n\t\tconst { children, isScheduled, post, postType } = this.props;\n\t\tconst postLabel = postType?.labels?.singular_name;\n\t\tconst viewPostLabel = postType?.labels?.view_item;\n\t\tconst addNewPostLabel = postType?.labels?.add_new_item;\n\t\tconst link =\n\t\t\tpost.status === 'future' ? getFuturePostUrl( post ) : post.link;\n\t\tconst addLink = addQueryArgs( 'post-new.php', {\n\t\t\tpost_type: post.type,\n\t\t} );\n\n\t\tconst postPublishNonLinkHeader = isScheduled ? (\n\t\t\t<>\n\t\t\t\t{ __( 'is now scheduled. It will go live on' ) }{ ' ' }\n\t\t\t\t<PostScheduleLabel />.\n\t\t\t</>\n\t\t) : (\n\t\t\t__( 'is now live.' )\n\t\t);\n\n\t\treturn (\n\t\t\t<div className=\"post-publish-panel__postpublish\">\n\t\t\t\t<PanelBody className=\"post-publish-panel__postpublish-header\">\n\t\t\t\t\t<a ref={ this.postLink } href={ link }>\n\t\t\t\t\t\t{ decodeEntities( post.title ) || __( '(no title)' ) }\n\t\t\t\t\t</a>{ ' ' }\n\t\t\t\t\t{ postPublishNonLinkHeader }\n\t\t\t\t</PanelBody>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<p className=\"post-publish-panel__postpublish-subheader\">\n\t\t\t\t\t\t<strong>{ __( 'What’s next?' ) }</strong>\n\t\t\t\t\t</p>\n\t\t\t\t\t<div className=\"post-publish-panel__postpublish-post-address-container\">\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=\"post-publish-panel__postpublish-post-address\"\n\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: post type singular name */\n\t\t\t\t\t\t\t\t__( '%s address' ),\n\t\t\t\t\t\t\t\tpostLabel\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ safeDecodeURIComponent( link ) }\n\t\t\t\t\t\t\tonFocus={ this.onSelectInput }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<div className=\"post-publish-panel__postpublish-post-address__copy-button-wrap\">\n\t\t\t\t\t\t\t<CopyButton text={ link } onCopy={ this.onCopy }>\n\t\t\t\t\t\t\t\t{ this.state.showCopyConfirmation\n\t\t\t\t\t\t\t\t\t? __( 'Copied!' )\n\t\t\t\t\t\t\t\t\t: __( 'Copy' ) }\n\t\t\t\t\t\t\t</CopyButton>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"post-publish-panel__postpublish-buttons\">\n\t\t\t\t\t\t{ ! isScheduled && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\thref={ link }\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ viewPostLabel }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant={ isScheduled ? 'primary' : 'secondary' }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\thref={ addLink }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ addNewPostLabel }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</PanelBody>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getEditedPostAttribute, getCurrentPost, isCurrentPostScheduled } =\n\t\tselect( editorStore );\n\tconst { getPostType } = select( coreStore );\n\n\treturn {\n\t\tpost: getCurrentPost(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tisScheduled: isCurrentPostScheduled(),\n\t};\n} )( PostPublishPanelPostpublish );\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_date","_data","_store","PostScheduleLabel","props","usePostScheduleLabel","full","date","isFloating","useSelect","select","editorStore","getEditedPostAttribute","isEditedPostDateFloating","getFullPostScheduleLabel","getPostScheduleLabel","dateAttribute","getDate","timezoneAbbreviation","getTimezoneAbbreviation","formattedDate","dateI18n","_x","isRTL","now","Date","__","isTimezoneSameAsSiteTimezone","isSameDay","sprintf","tomorrow","setDate","getFullYear","timezone","getSettings","abbr","isNaN","Number","symbol","offset","offsetFormatted","siteOffset","dateOffset","getTimezoneOffset","left","right","getMonth"],"sources":["@wordpress/editor/src/components/post-schedule/label.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getSettings, getDate, dateI18n } from '@wordpress/date';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Renders the PostScheduleLabel component.\n *\n * @param {Object} props Props.\n *\n * @return {Component} The component to be rendered.\n */\nexport default function PostScheduleLabel( props ) {\n\treturn usePostScheduleLabel( props );\n}\n\n/**\n * Custom hook to get the label for post schedule.\n *\n * @param {Object} options Options for the hook.\n * @param {boolean} options.full Whether to get the full label or not. Default is false.\n *\n * @return {string} The label for post schedule.\n */\nexport function usePostScheduleLabel( { full = false } = {} ) {\n\tconst { date, isFloating } = useSelect(\n\t\t( select ) => ( {\n\t\t\tdate: select( editorStore ).getEditedPostAttribute( 'date' ),\n\t\t\tisFloating: select( editorStore ).isEditedPostDateFloating(),\n\t\t} ),\n\t\t[]\n\t);\n\n\treturn full\n\t\t? getFullPostScheduleLabel( date )\n\t\t: getPostScheduleLabel( date, { isFloating } );\n}\n\nexport function getFullPostScheduleLabel( dateAttribute ) {\n\tconst date = getDate( dateAttribute );\n\n\tconst timezoneAbbreviation = getTimezoneAbbreviation();\n\tconst formattedDate = dateI18n(\n\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking space.\n\t\t_x( 'F j, Y g:i\\xa0a', 'post schedule full date format' ),\n\t\tdate\n\t);\n\treturn isRTL()\n\t\t? `${ timezoneAbbreviation } ${ formattedDate }`\n\t\t: `${ formattedDate } ${ timezoneAbbreviation }`;\n}\n\nexport function getPostScheduleLabel(\n\tdateAttribute,\n\t{ isFloating = false, now = new Date() } = {}\n) {\n\tif ( ! dateAttribute || isFloating ) {\n\t\treturn __( 'Immediately' );\n\t}\n\n\t// If the user timezone does not equal the site timezone then using words\n\t// like 'tomorrow' is confusing, so show the full date.\n\tif ( ! isTimezoneSameAsSiteTimezone( now ) ) {\n\t\treturn getFullPostScheduleLabel( dateAttribute );\n\t}\n\n\tconst date = getDate( dateAttribute );\n\n\tif ( isSameDay( date, now ) ) {\n\t\treturn sprintf(\n\t\t\t// translators: %s: Time of day the post is scheduled for.\n\t\t\t__( 'Today at %s' ),\n\t\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking space.\n\t\t\tdateI18n( _x( 'g:i\\xa0a', 'post schedule time format' ), date )\n\t\t);\n\t}\n\n\tconst tomorrow = new Date( now );\n\ttomorrow.setDate( tomorrow.getDate() + 1 );\n\n\tif ( isSameDay( date, tomorrow ) ) {\n\t\treturn sprintf(\n\t\t\t// translators: %s: Time of day the post is scheduled for.\n\t\t\t__( 'Tomorrow at %s' ),\n\t\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking space.\n\t\t\tdateI18n( _x( 'g:i\\xa0a', 'post schedule time format' ), date )\n\t\t);\n\t}\n\n\tif ( date.getFullYear() === now.getFullYear() ) {\n\t\treturn dateI18n(\n\t\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking space.\n\t\t\t_x( 'F j g:i\\xa0a', 'post schedule date format without year' ),\n\t\t\tdate\n\t\t);\n\t}\n\n\treturn dateI18n(\n\t\t// translators: Use a non-breaking space between 'g:i' and 'a' if appropriate.\n\t\t_x( 'F j, Y g:i\\xa0a', 'post schedule full date format' ),\n\t\tdate\n\t);\n}\n\nfunction getTimezoneAbbreviation() {\n\tconst { timezone } = getSettings();\n\n\tif ( timezone.abbr && isNaN( Number( timezone.abbr ) ) ) {\n\t\treturn timezone.abbr;\n\t}\n\n\tconst symbol = timezone.offset < 0 ? '' : '+';\n\treturn `UTC${ symbol }${ timezone.offsetFormatted }`;\n}\n\nfunction isTimezoneSameAsSiteTimezone( date ) {\n\tconst { timezone } = getSettings();\n\n\tconst siteOffset = Number( timezone.offset );\n\tconst dateOffset = -1 * ( date.getTimezoneOffset() / 60 );\n\treturn siteOffset === dateOffset;\n}\n\nfunction isSameDay( left, right ) {\n\treturn (\n\t\tleft.getDate() === right.getDate() &&\n\t\tleft.getMonth() === right.getMonth() &&\n\t\tleft.getFullYear() === right.getFullYear()\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_date","_data","_store","PostScheduleLabel","props","usePostScheduleLabel","full","date","isFloating","useSelect","select","editorStore","getEditedPostAttribute","isEditedPostDateFloating","getFullPostScheduleLabel","getPostScheduleLabel","dateAttribute","getDate","timezoneAbbreviation","getTimezoneAbbreviation","formattedDate","dateI18n","_x","isRTL","now","Date","__","isTimezoneSameAsSiteTimezone","isSameDay","sprintf","tomorrow","setDate","getFullYear","timezone","getSettings","abbr","isNaN","Number","symbol","offset","offsetFormatted","siteOffset","dateOffset","getTimezoneOffset","left","right","getMonth"],"sources":["@wordpress/editor/src/components/post-schedule/label.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getSettings, getDate, dateI18n } from '@wordpress/date';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Renders the PostScheduleLabel component.\n *\n * @param {Object} props Props.\n *\n * @return {Component} The component to be rendered.\n */\nexport default function PostScheduleLabel( props ) {\n\treturn usePostScheduleLabel( props );\n}\n\n/**\n * Custom hook to get the label for post schedule.\n *\n * @param {Object} options Options for the hook.\n * @param {boolean} options.full Whether to get the full label or not. Default is false.\n *\n * @return {string} The label for post schedule.\n */\nexport function usePostScheduleLabel( { full = false } = {} ) {\n\tconst { date, isFloating } = useSelect(\n\t\t( select ) => ( {\n\t\t\tdate: select( editorStore ).getEditedPostAttribute( 'date' ),\n\t\t\tisFloating: select( editorStore ).isEditedPostDateFloating(),\n\t\t} ),\n\t\t[]\n\t);\n\n\treturn full\n\t\t? getFullPostScheduleLabel( date )\n\t\t: getPostScheduleLabel( date, { isFloating } );\n}\n\nexport function getFullPostScheduleLabel( dateAttribute ) {\n\tconst date = getDate( dateAttribute );\n\n\tconst timezoneAbbreviation = getTimezoneAbbreviation();\n\tconst formattedDate = dateI18n(\n\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking space.\n\t\t_x( 'F j, Y g:i\\xa0a', 'post schedule full date format' ),\n\t\tdate\n\t);\n\treturn isRTL()\n\t\t? `${ timezoneAbbreviation } ${ formattedDate }`\n\t\t: `${ formattedDate } ${ timezoneAbbreviation }`;\n}\n\nexport function getPostScheduleLabel(\n\tdateAttribute,\n\t{ isFloating = false, now = new Date() } = {}\n) {\n\tif ( ! dateAttribute || isFloating ) {\n\t\treturn __( 'Immediately' );\n\t}\n\n\t// If the user timezone does not equal the site timezone then using words\n\t// like 'tomorrow' is confusing, so show the full date.\n\tif ( ! isTimezoneSameAsSiteTimezone( now ) ) {\n\t\treturn getFullPostScheduleLabel( dateAttribute );\n\t}\n\n\tconst date = getDate( dateAttribute );\n\n\tif ( isSameDay( date, now ) ) {\n\t\treturn sprintf(\n\t\t\t// translators: %s: Time of day the post is scheduled for.\n\t\t\t__( 'Today at %s' ),\n\t\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking space.\n\t\t\tdateI18n( _x( 'g:i\\xa0a', 'post schedule time format' ), date )\n\t\t);\n\t}\n\n\tconst tomorrow = new Date( now );\n\ttomorrow.setDate( tomorrow.getDate() + 1 );\n\n\tif ( isSameDay( date, tomorrow ) ) {\n\t\treturn sprintf(\n\t\t\t// translators: %s: Time of day the post is scheduled for.\n\t\t\t__( 'Tomorrow at %s' ),\n\t\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking space.\n\t\t\tdateI18n( _x( 'g:i\\xa0a', 'post schedule time format' ), date )\n\t\t);\n\t}\n\n\tif ( date.getFullYear() === now.getFullYear() ) {\n\t\treturn dateI18n(\n\t\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking space.\n\t\t\t_x( 'F j g:i\\xa0a', 'post schedule date format without year' ),\n\t\t\tdate\n\t\t);\n\t}\n\n\treturn dateI18n(\n\t\t// translators: Use a non-breaking space between 'g:i' and 'a' if appropriate.\n\t\t_x( 'F j, Y g:i\\xa0a', 'post schedule full date format' ),\n\t\tdate\n\t);\n}\n\nfunction getTimezoneAbbreviation() {\n\tconst { timezone } = getSettings();\n\n\tif ( timezone.abbr && isNaN( Number( timezone.abbr ) ) ) {\n\t\treturn timezone.abbr;\n\t}\n\n\tconst symbol = timezone.offset < 0 ? '' : '+';\n\treturn `UTC${ symbol }${ timezone.offsetFormatted }`;\n}\n\nfunction isTimezoneSameAsSiteTimezone( date ) {\n\tconst { timezone } = getSettings();\n\n\tconst siteOffset = Number( timezone.offset );\n\tconst dateOffset = -1 * ( date.getTimezoneOffset() / 60 );\n\treturn siteOffset === dateOffset;\n}\n\nfunction isSameDay( left, right ) {\n\treturn (\n\t\tleft.getDate() === right.getDate() &&\n\t\tleft.getMonth() === right.getMonth() &&\n\t\tleft.getFullYear() === right.getFullYear()\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -210,18 +210,18 @@ function FlatTermSelector({
210
210
  }
211
211
  const newTermIds = [...termIds, newTerm.id];
212
212
  const defaultName = slug === 'post_tag' ? (0, _i18n.__)('Tag') : (0, _i18n.__)('Term');
213
- const termAddedMessage = (0, _i18n.sprintf)( /* translators: %s: term name. */
213
+ const termAddedMessage = (0, _i18n.sprintf)(/* translators: %s: term name. */
214
214
  (0, _i18n._x)('%s added', 'term'), (_taxonomy$labels$sing = taxonomy?.labels?.singular_name) !== null && _taxonomy$labels$sing !== void 0 ? _taxonomy$labels$sing : defaultName);
215
215
  (0, _a11y.speak)(termAddedMessage, 'assertive');
216
216
  onUpdateTerms(newTermIds);
217
217
  }
218
218
  const newTermLabel = (_taxonomy$labels$add_ = taxonomy?.labels?.add_new_item) !== null && _taxonomy$labels$add_ !== void 0 ? _taxonomy$labels$add_ : slug === 'post_tag' ? (0, _i18n.__)('Add new tag') : (0, _i18n.__)('Add new Term');
219
219
  const singularName = (_taxonomy$labels$sing2 = taxonomy?.labels?.singular_name) !== null && _taxonomy$labels$sing2 !== void 0 ? _taxonomy$labels$sing2 : slug === 'post_tag' ? (0, _i18n.__)('Tag') : (0, _i18n.__)('Term');
220
- const termAddedLabel = (0, _i18n.sprintf)( /* translators: %s: term name. */
220
+ const termAddedLabel = (0, _i18n.sprintf)(/* translators: %s: term name. */
221
221
  (0, _i18n._x)('%s added', 'term'), singularName);
222
- const termRemovedLabel = (0, _i18n.sprintf)( /* translators: %s: term name. */
222
+ const termRemovedLabel = (0, _i18n.sprintf)(/* translators: %s: term name. */
223
223
  (0, _i18n._x)('%s removed', 'term'), singularName);
224
- const removeTermLabel = (0, _i18n.sprintf)( /* translators: %s: term name. */
224
+ const removeTermLabel = (0, _i18n.sprintf)(/* translators: %s: term name. */
225
225
  (0, _i18n._x)('Remove %s', 'term'), singularName);
226
226
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
227
227
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FormTokenField, {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_components","_data","_deprecated","_interopRequireDefault","_coreData","_compose","_a11y","_notices","_store","_terms","_mostUsedTerms","_jsxRuntime","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","unescapeString","toLowerCase","termNamesToIds","names","terms","map","termName","find","term","name","id","filter","undefined","FlatTermSelector","slug","__nextHasNoMarginBottom","_taxonomy$labels$add_","_taxonomy$labels$sing2","values","setValues","useState","search","setSearch","debouncedSearch","useDebounce","deprecated","since","version","hint","termIds","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","useSelect","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","editorStore","getEntityRecords","getTaxonomy","hasFinishedResolution","coreStore","post","_taxonomy","_termIds","rest_base","query","include","join","_links","length","searchResults","useEffect","newValues","suggestions","useMemo","editPost","useDispatch","saveEntityRecord","createErrorNotice","noticesStore","findOrCreateTerm","newTerm","throwOnError","unescapeTerm","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","sprintf","_x","labels","singular_name","speak","newTermLabel","add_new_item","singularName","termAddedLabel","termRemovedLabel","removeTermLabel","jsxs","Fragment","children","jsx","FormTokenField","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","default","onSelect","_default","exports","withFilters"],"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 deprecated from '@wordpress/deprecated';\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 * How the max suggestions limit was chosen:\n * - Matches the `per_page` range set by the REST API.\n * - Can't use \"unbound\" query. The `FormTokenField` needs a fixed number.\n * - Matches default for `FormTokenField`.\n */\nconst MAX_TERMS_SUGGESTIONS = 100;\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\n/**\n * Renders a flat term selector component.\n *\n * @param {Object} props The component props.\n * @param {string} props.slug The slug of the taxonomy.\n * @param {boolean} props.__nextHasNoMarginBottom Start opting into the new margin-free styles that will become the default in a future version, currently scheduled to be WordPress 7.0. (The prop can be safely removed once this happens.)\n *\n * @return {JSX.Element} The rendered flat term selector component.\n */\nexport function FlatTermSelector( { slug, __nextHasNoMarginBottom } ) {\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated(\n\t\t\t'Bottom margin styles for wp.editor.PostTaxonomiesFlatTermSelector',\n\t\t\t{\n\t\t\t\tsince: '6.7',\n\t\t\t\tversion: '7.0',\n\t\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.',\n\t\t\t}\n\t\t);\n\t}\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\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\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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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_element","_components","_data","_deprecated","_interopRequireDefault","_coreData","_compose","_a11y","_notices","_store","_terms","_mostUsedTerms","_jsxRuntime","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","unescapeString","toLowerCase","termNamesToIds","names","terms","map","termName","find","term","name","id","filter","undefined","FlatTermSelector","slug","__nextHasNoMarginBottom","_taxonomy$labels$add_","_taxonomy$labels$sing2","values","setValues","useState","search","setSearch","debouncedSearch","useDebounce","deprecated","since","version","hint","termIds","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","useSelect","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","editorStore","getEntityRecords","getTaxonomy","hasFinishedResolution","coreStore","post","_taxonomy","_termIds","rest_base","query","include","join","_links","length","searchResults","useEffect","newValues","suggestions","useMemo","editPost","useDispatch","saveEntityRecord","createErrorNotice","noticesStore","findOrCreateTerm","newTerm","throwOnError","unescapeTerm","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","sprintf","_x","labels","singular_name","speak","newTermLabel","add_new_item","singularName","termAddedLabel","termRemovedLabel","removeTermLabel","jsxs","Fragment","children","jsx","FormTokenField","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","default","onSelect","_default","exports","withFilters"],"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 deprecated from '@wordpress/deprecated';\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 * How the max suggestions limit was chosen:\n * - Matches the `per_page` range set by the REST API.\n * - Can't use \"unbound\" query. The `FormTokenField` needs a fixed number.\n * - Matches default for `FormTokenField`.\n */\nconst MAX_TERMS_SUGGESTIONS = 100;\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\n/**\n * Renders a flat term selector component.\n *\n * @param {Object} props The component props.\n * @param {string} props.slug The slug of the taxonomy.\n * @param {boolean} props.__nextHasNoMarginBottom Start opting into the new margin-free styles that will become the default in a future version, currently scheduled to be WordPress 7.0. (The prop can be safely removed once this happens.)\n *\n * @return {JSX.Element} The rendered flat term selector component.\n */\nexport function FlatTermSelector( { slug, __nextHasNoMarginBottom } ) {\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated(\n\t\t\t'Bottom margin styles for wp.editor.PostTaxonomiesFlatTermSelector',\n\t\t\t{\n\t\t\t\tsince: '6.7',\n\t\t\t\tversion: '7.0',\n\t\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.',\n\t\t\t}\n\t\t);\n\t}\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\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\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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","ignoreList":[]}
@@ -275,7 +275,7 @@ function HierarchicalTermSelector({
275
275
  return;
276
276
  }
277
277
  const defaultName = slug === 'category' ? (0, _i18n.__)('Category') : (0, _i18n.__)('Term');
278
- const termAddedMessage = (0, _i18n.sprintf)( /* translators: %s: taxonomy name */
278
+ const termAddedMessage = (0, _i18n.sprintf)(/* translators: %s: taxonomy name */
279
279
  (0, _i18n._x)('%s added', 'term'), (_taxonomy$labels$sing = taxonomy?.labels?.singular_name) !== null && _taxonomy$labels$sing !== void 0 ? _taxonomy$labels$sing : defaultName);
280
280
  (0, _a11y.speak)(termAddedMessage, 'assertive');
281
281
  setAdding(false);
@@ -298,7 +298,7 @@ function HierarchicalTermSelector({
298
298
  setFilterValue(value);
299
299
  setFilteredTermsTree(newFilteredTermsTree);
300
300
  const resultCount = getResultCount(newFilteredTermsTree);
301
- const resultsFoundMessage = (0, _i18n.sprintf)( /* translators: %d: number of results */
301
+ const resultsFoundMessage = (0, _i18n.sprintf)(/* translators: %d: number of results */
302
302
  (0, _i18n._n)('%d result found.', '%d results found.', resultCount), resultCount);
303
303
  debouncedSpeak(resultsFoundMessage, 'assertive');
304
304
  };
@@ -340,6 +340,7 @@ function HierarchicalTermSelector({
340
340
  __next40pxDefaultSize: true,
341
341
  __nextHasNoMarginBottom: true,
342
342
  label: filterLabel,
343
+ placeholder: filterLabel,
343
344
  value: filterValue,
344
345
  onChange: setFilter
345
346
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_notices","_components","_data","_compose","_coreData","_a11y","_htmlEntities","_terms","_store","_jsxRuntime","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","useState","formName","setFormName","formParent","setFormParent","showForm","setShowForm","setFilterValue","filteredTermsTree","setFilteredTermsTree","debouncedSpeak","useDebounce","speak","hasCreateAction","hasAssignAction","loading","availableTerms","taxonomy","useSelect","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","editorStore","getTaxonomy","getEntityRecords","isResolving","coreStore","_taxonomy","post","_links","rest_base","editPost","useDispatch","saveEntityRecord","availableTermsTree","useMemo","buildTermsTree","createErrorNotice","noticesStore","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","sprintf","_x","labels","singular_name","setFilter","newFilteredTermsTree","getResultCount","count","i","resultCount","resultsFoundMessage","_n","renderTerms","renderedTerms","jsxs","className","jsx","CheckboxControl","__nextHasNoMarginBottom","checked","label","decodeEntities","labelWithFallback","labelProperty","fallbackIsCategory","fallbackIsNotCategory","_taxonomy$labels$labe","newTermButtonLabel","newTermLabel","parentSelectLabel","noParentOption","newTermSubmitLabel","filterLabel","search_items","groupLabel","showFilter","Flex","direction","gap","SearchControl","__next40pxDefaultSize","tabIndex","role","FlexItem","Button","onClick","variant","onSubmit","TextControl","required","TreeSelect","noOptionLabel","selectedId","tree","_default","exports","default","withFilters"],"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\tSearchControl,\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<SearchControl\n\t\t\t\t\t__next40pxDefaultSize\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\t__next40pxDefaultSize\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":[]}
1
+ {"version":3,"names":["_i18n","require","_element","_notices","_components","_data","_compose","_coreData","_a11y","_htmlEntities","_terms","_store","_jsxRuntime","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","useState","formName","setFormName","formParent","setFormParent","showForm","setShowForm","setFilterValue","filteredTermsTree","setFilteredTermsTree","debouncedSpeak","useDebounce","speak","hasCreateAction","hasAssignAction","loading","availableTerms","taxonomy","useSelect","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","editorStore","getTaxonomy","getEntityRecords","isResolving","coreStore","_taxonomy","post","_links","rest_base","editPost","useDispatch","saveEntityRecord","availableTermsTree","useMemo","buildTermsTree","createErrorNotice","noticesStore","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","sprintf","_x","labels","singular_name","setFilter","newFilteredTermsTree","getResultCount","count","i","resultCount","resultsFoundMessage","_n","renderTerms","renderedTerms","jsxs","className","jsx","CheckboxControl","__nextHasNoMarginBottom","checked","label","decodeEntities","labelWithFallback","labelProperty","fallbackIsCategory","fallbackIsNotCategory","_taxonomy$labels$labe","newTermButtonLabel","newTermLabel","parentSelectLabel","noParentOption","newTermSubmitLabel","filterLabel","search_items","groupLabel","showFilter","Flex","direction","gap","SearchControl","__next40pxDefaultSize","placeholder","tabIndex","role","FlexItem","Button","onClick","variant","onSubmit","TextControl","required","TreeSelect","noOptionLabel","selectedId","tree","_default","exports","default","withFilters"],"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\tSearchControl,\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<SearchControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ filterLabel }\n\t\t\t\t\tplaceholder={ 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\t__next40pxDefaultSize\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":[]}
@@ -49,7 +49,7 @@ function PostTaxonomies({
49
49
  })
50
50
  };
51
51
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_element.Fragment, {
52
- children: taxonomyWrapper( /*#__PURE__*/(0, _jsxRuntime.jsx)(TaxonomyComponent, {
52
+ children: taxonomyWrapper(/*#__PURE__*/(0, _jsxRuntime.jsx)(TaxonomyComponent, {
53
53
  ...taxonomyComponentProps
54
54
  }), taxonomy)
55
55
  }, `taxonomy-${taxonomy.slug}`);
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_coreData","_hierarchicalTermSelector","_interopRequireDefault","_flatTermSelector","_store","_jsxRuntime","identity","x","PostTaxonomies","taxonomyWrapper","postType","taxonomies","useSelect","select","editorStore","getCurrentPostType","coreStore","getTaxonomies","per_page","visibleTaxonomies","filter","taxonomy","types","includes","visibility","show_ui","map","TaxonomyComponent","hierarchical","HierarchicalTermSelector","FlatTermSelector","taxonomyComponentProps","slug","__nextHasNoMarginBottom","jsx","Fragment","children","_default","exports","default"],"sources":["@wordpress/editor/src/components/post-taxonomies/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport HierarchicalTermSelector from './hierarchical-term-selector';\nimport FlatTermSelector from './flat-term-selector';\nimport { store as editorStore } from '../../store';\n\nconst identity = ( x ) => x;\n\nexport function PostTaxonomies( { taxonomyWrapper = identity } ) {\n\tconst { postType, taxonomies } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( editorStore ).getCurrentPostType(),\n\t\t\ttaxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t};\n\t}, [] );\n\tconst visibleTaxonomies = ( taxonomies ?? [] ).filter(\n\t\t( taxonomy ) =>\n\t\t\t// In some circumstances .visibility can end up as undefined so optional chaining operator required.\n\t\t\t// https://github.com/WordPress/gutenberg/issues/40326\n\t\t\ttaxonomy.types.includes( postType ) && taxonomy.visibility?.show_ui\n\t);\n\n\treturn visibleTaxonomies.map( ( taxonomy ) => {\n\t\tconst TaxonomyComponent = taxonomy.hierarchical\n\t\t\t? HierarchicalTermSelector\n\t\t\t: FlatTermSelector;\n\t\tconst taxonomyComponentProps = {\n\t\t\tslug: taxonomy.slug,\n\t\t\t...( taxonomy.hierarchical\n\t\t\t\t? {}\n\t\t\t\t: { __nextHasNoMarginBottom: true } ),\n\t\t};\n\n\t\treturn (\n\t\t\t<Fragment key={ `taxonomy-${ taxonomy.slug }` }>\n\t\t\t\t{ taxonomyWrapper(\n\t\t\t\t\t<TaxonomyComponent { ...taxonomyComponentProps } />,\n\t\t\t\t\ttaxonomy\n\t\t\t\t) }\n\t\t\t</Fragment>\n\t\t);\n\t} );\n}\n\n/**\n * Renders the taxonomies associated with a post.\n *\n * @param {Object} props The component props.\n * @param {Function} props.taxonomyWrapper The wrapper function for each taxonomy component.\n *\n * @return {Array} An array of JSX elements representing the visible taxonomies.\n */\nexport default PostTaxonomies;\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAKA,IAAAG,yBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAmD,IAAAO,WAAA,GAAAP,OAAA;AAZnD;AACA;AACA;;AAKA;AACA;AACA;;AAKA,MAAMQ,QAAQ,GAAKC,CAAC,IAAMA,CAAC;AAEpB,SAASC,cAAcA,CAAE;EAAEC,eAAe,GAAGH;AAAS,CAAC,EAAG;EAChE,MAAM;IAAEI,QAAQ;IAAEC;EAAW,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACzD,OAAO;MACNH,QAAQ,EAAEG,MAAM,CAAEC,YAAY,CAAC,CAACC,kBAAkB,CAAC,CAAC;MACpDJ,UAAU,EAAEE,MAAM,CAAEG,eAAU,CAAC,CAACC,aAAa,CAAE;QAAEC,QAAQ,EAAE,CAAC;MAAE,CAAE;IACjE,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAMC,iBAAiB,GAAG,CAAER,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,EAAE,EAAGS,MAAM,CAClDC,QAAQ;EACT;EACA;EACAA,QAAQ,CAACC,KAAK,CAACC,QAAQ,CAAEb,QAAS,CAAC,IAAIW,QAAQ,CAACG,UAAU,EAAEC,OAC9D,CAAC;EAED,OAAON,iBAAiB,CAACO,GAAG,CAAIL,QAAQ,IAAM;IAC7C,MAAMM,iBAAiB,GAAGN,QAAQ,CAACO,YAAY,GAC5CC,iCAAwB,GACxBC,yBAAgB;IACnB,MAAMC,sBAAsB,GAAG;MAC9BC,IAAI,EAAEX,QAAQ,CAACW,IAAI;MACnB,IAAKX,QAAQ,CAACO,YAAY,GACvB,CAAC,CAAC,GACF;QAAEK,uBAAuB,EAAE;MAAK,CAAC;IACrC,CAAC;IAED,oBACC,IAAA5B,WAAA,CAAA6B,GAAA,EAACrC,QAAA,CAAAsC,QAAQ;MAAAC,QAAA,EACN3B,eAAe,eAChB,IAAAJ,WAAA,CAAA6B,GAAA,EAACP,iBAAiB;QAAA,GAAMI;MAAsB,CAAI,CAAC,EACnDV,QACD;IAAC,GAJe,YAAYA,QAAQ,CAACW,IAAM,EAKlC,CAAC;EAEb,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAQe/B,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_data","_coreData","_hierarchicalTermSelector","_interopRequireDefault","_flatTermSelector","_store","_jsxRuntime","identity","x","PostTaxonomies","taxonomyWrapper","postType","taxonomies","useSelect","select","editorStore","getCurrentPostType","coreStore","getTaxonomies","per_page","visibleTaxonomies","filter","taxonomy","types","includes","visibility","show_ui","map","TaxonomyComponent","hierarchical","HierarchicalTermSelector","FlatTermSelector","taxonomyComponentProps","slug","__nextHasNoMarginBottom","jsx","Fragment","children","_default","exports","default"],"sources":["@wordpress/editor/src/components/post-taxonomies/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport HierarchicalTermSelector from './hierarchical-term-selector';\nimport FlatTermSelector from './flat-term-selector';\nimport { store as editorStore } from '../../store';\n\nconst identity = ( x ) => x;\n\nexport function PostTaxonomies( { taxonomyWrapper = identity } ) {\n\tconst { postType, taxonomies } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( editorStore ).getCurrentPostType(),\n\t\t\ttaxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t};\n\t}, [] );\n\tconst visibleTaxonomies = ( taxonomies ?? [] ).filter(\n\t\t( taxonomy ) =>\n\t\t\t// In some circumstances .visibility can end up as undefined so optional chaining operator required.\n\t\t\t// https://github.com/WordPress/gutenberg/issues/40326\n\t\t\ttaxonomy.types.includes( postType ) && taxonomy.visibility?.show_ui\n\t);\n\n\treturn visibleTaxonomies.map( ( taxonomy ) => {\n\t\tconst TaxonomyComponent = taxonomy.hierarchical\n\t\t\t? HierarchicalTermSelector\n\t\t\t: FlatTermSelector;\n\t\tconst taxonomyComponentProps = {\n\t\t\tslug: taxonomy.slug,\n\t\t\t...( taxonomy.hierarchical\n\t\t\t\t? {}\n\t\t\t\t: { __nextHasNoMarginBottom: true } ),\n\t\t};\n\n\t\treturn (\n\t\t\t<Fragment key={ `taxonomy-${ taxonomy.slug }` }>\n\t\t\t\t{ taxonomyWrapper(\n\t\t\t\t\t<TaxonomyComponent { ...taxonomyComponentProps } />,\n\t\t\t\t\ttaxonomy\n\t\t\t\t) }\n\t\t\t</Fragment>\n\t\t);\n\t} );\n}\n\n/**\n * Renders the taxonomies associated with a post.\n *\n * @param {Object} props The component props.\n * @param {Function} props.taxonomyWrapper The wrapper function for each taxonomy component.\n *\n * @return {Array} An array of JSX elements representing the visible taxonomies.\n */\nexport default PostTaxonomies;\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAKA,IAAAG,yBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAmD,IAAAO,WAAA,GAAAP,OAAA;AAZnD;AACA;AACA;;AAKA;AACA;AACA;;AAKA,MAAMQ,QAAQ,GAAKC,CAAC,IAAMA,CAAC;AAEpB,SAASC,cAAcA,CAAE;EAAEC,eAAe,GAAGH;AAAS,CAAC,EAAG;EAChE,MAAM;IAAEI,QAAQ;IAAEC;EAAW,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACzD,OAAO;MACNH,QAAQ,EAAEG,MAAM,CAAEC,YAAY,CAAC,CAACC,kBAAkB,CAAC,CAAC;MACpDJ,UAAU,EAAEE,MAAM,CAAEG,eAAU,CAAC,CAACC,aAAa,CAAE;QAAEC,QAAQ,EAAE,CAAC;MAAE,CAAE;IACjE,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAMC,iBAAiB,GAAG,CAAER,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,EAAE,EAAGS,MAAM,CAClDC,QAAQ;EACT;EACA;EACAA,QAAQ,CAACC,KAAK,CAACC,QAAQ,CAAEb,QAAS,CAAC,IAAIW,QAAQ,CAACG,UAAU,EAAEC,OAC9D,CAAC;EAED,OAAON,iBAAiB,CAACO,GAAG,CAAIL,QAAQ,IAAM;IAC7C,MAAMM,iBAAiB,GAAGN,QAAQ,CAACO,YAAY,GAC5CC,iCAAwB,GACxBC,yBAAgB;IACnB,MAAMC,sBAAsB,GAAG;MAC9BC,IAAI,EAAEX,QAAQ,CAACW,IAAI;MACnB,IAAKX,QAAQ,CAACO,YAAY,GACvB,CAAC,CAAC,GACF;QAAEK,uBAAuB,EAAE;MAAK,CAAC;IACrC,CAAC;IAED,oBACC,IAAA5B,WAAA,CAAA6B,GAAA,EAACrC,QAAA,CAAAsC,QAAQ;MAAAC,QAAA,EACN3B,eAAe,cAChB,IAAAJ,WAAA,CAAA6B,GAAA,EAACP,iBAAiB;QAAA,GAAMI;MAAsB,CAAI,CAAC,EACnDV,QACD;IAAC,GAJc,YAAaA,QAAQ,CAACW,IAAI,EAKhC,CAAC;EAEb,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAQe/B,cAAc","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_data","_store","_index","_interopRequireDefault","_check","_jsxRuntime","TaxonomyPanel","taxonomy","children","slug","panelName","isEnabled","isOpened","useSelect","select","isEditorPanelEnabled","isEditorPanelOpened","editorStore","toggleEditorPanelOpened","useDispatch","taxonomyMenuName","labels","menu_name","jsx","PanelBody","title","opened","onToggle","PostTaxonomies","default","taxonomyWrapper","content","_default","exports"],"sources":["@wordpress/editor/src/components/post-taxonomies/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport PostTaxonomiesForm from './index';\nimport PostTaxonomiesCheck from './check';\n\nfunction TaxonomyPanel( { taxonomy, children } ) {\n\tconst slug = taxonomy?.slug;\n\tconst panelName = slug ? `taxonomy-panel-${ slug }` : '';\n\tconst { isEnabled, isOpened } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isEditorPanelEnabled, isEditorPanelOpened } =\n\t\t\t\tselect( editorStore );\n\t\t\treturn {\n\t\t\t\tisEnabled: slug ? isEditorPanelEnabled( panelName ) : false,\n\t\t\t\tisOpened: slug ? isEditorPanelOpened( panelName ) : false,\n\t\t\t};\n\t\t},\n\t\t[ panelName, slug ]\n\t);\n\tconst { toggleEditorPanelOpened } = useDispatch( editorStore );\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst taxonomyMenuName = taxonomy?.labels?.menu_name;\n\tif ( ! taxonomyMenuName ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\ttitle={ taxonomyMenuName }\n\t\t\topened={ isOpened }\n\t\t\tonToggle={ () => toggleEditorPanelOpened( panelName ) }\n\t\t>\n\t\t\t{ children }\n\t\t</PanelBody>\n\t);\n}\n\nfunction PostTaxonomies() {\n\treturn (\n\t\t<PostTaxonomiesCheck>\n\t\t\t<PostTaxonomiesForm\n\t\t\t\ttaxonomyWrapper={ ( content, taxonomy ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TaxonomyPanel taxonomy={ taxonomy }>\n\t\t\t\t\t\t\t{ content }\n\t\t\t\t\t\t</TaxonomyPanel>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PostTaxonomiesCheck>\n\t);\n}\n\n/**\n * Renders a panel for a specific taxonomy.\n *\n * @param {Object} props The component props.\n * @param {Object} props.taxonomy The taxonomy object.\n * @param {Element} props.children The child components.\n *\n * @return {Component} The rendered taxonomy panel.\n */\nexport default PostTaxonomies;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAD,sBAAA,CAAAJ,OAAA;AAA0C,IAAAM,WAAA,GAAAN,OAAA;AAX1C;AACA;AACA;;AAIA;AACA;AACA;;AAKA,SAASO,aAAaA,CAAE;EAAEC,QAAQ;EAAEC;AAAS,CAAC,EAAG;EAChD,MAAMC,IAAI,GAAGF,QAAQ,EAAEE,IAAI;EAC3B,MAAMC,SAAS,GAAGD,IAAI,GAAI,kBAAkBA,IAAM,EAAC,GAAG,EAAE;EACxD,MAAM;IAAEE,SAAS;IAAEC;EAAS,CAAC,GAAG,IAAAC,eAAS,EACtCC,MAAM,IAAM;IACb,MAAM;MAAEC,oBAAoB;MAAEC;IAAoB,CAAC,GAClDF,MAAM,CAAEG,YAAY,CAAC;IACtB,OAAO;MACNN,SAAS,EAAEF,IAAI,GAAGM,oBAAoB,CAAEL,SAAU,CAAC,GAAG,KAAK;MAC3DE,QAAQ,EAAEH,IAAI,GAAGO,mBAAmB,CAAEN,SAAU,CAAC,GAAG;IACrD,CAAC;EACF,CAAC,EACD,CAAEA,SAAS,EAAED,IAAI,CAClB,CAAC;EACD,MAAM;IAAES;EAAwB,CAAC,GAAG,IAAAC,iBAAW,EAAEF,YAAY,CAAC;EAE9D,IAAK,CAAEN,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMS,gBAAgB,GAAGb,QAAQ,EAAEc,MAAM,EAAEC,SAAS;EACpD,IAAK,CAAEF,gBAAgB,EAAG;IACzB,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAf,WAAA,CAAAkB,GAAA,EAACzB,WAAA,CAAA0B,SAAS;IACTC,KAAK,EAAGL,gBAAkB;IAC1BM,MAAM,EAAGd,QAAU;IACnBe,QAAQ,EAAGA,CAAA,KAAMT,uBAAuB,CAAER,SAAU,CAAG;IAAAF,QAAA,EAErDA;EAAQ,CACA,CAAC;AAEd;AAEA,SAASoB,cAAcA,CAAA,EAAG;EACzB,oBACC,IAAAvB,WAAA,CAAAkB,GAAA,EAACnB,MAAA,CAAAyB,OAAmB;IAAArB,QAAA,eACnB,IAAAH,WAAA,CAAAkB,GAAA,EAACrB,MAAA,CAAA2B,OAAkB;MAClBC,eAAe,EAAGA,CAAEC,OAAO,EAAExB,QAAQ,KAAM;QAC1C,oBACC,IAAAF,WAAA,CAAAkB,GAAA,EAACjB,aAAa;UAACC,QAAQ,EAAGA,QAAU;UAAAC,QAAA,EACjCuB;QAAO,CACK,CAAC;MAElB;IAAG,CACH;EAAC,CACkB,CAAC;AAExB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,IAAAC,QAAA,GAAAC,OAAA,CAAAJ,OAAA,GASeD,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_data","_store","_index","_interopRequireDefault","_check","_jsxRuntime","TaxonomyPanel","taxonomy","children","slug","panelName","isEnabled","isOpened","useSelect","select","isEditorPanelEnabled","isEditorPanelOpened","editorStore","toggleEditorPanelOpened","useDispatch","taxonomyMenuName","labels","menu_name","jsx","PanelBody","title","opened","onToggle","PostTaxonomies","default","taxonomyWrapper","content","_default","exports"],"sources":["@wordpress/editor/src/components/post-taxonomies/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport PostTaxonomiesForm from './index';\nimport PostTaxonomiesCheck from './check';\n\nfunction TaxonomyPanel( { taxonomy, children } ) {\n\tconst slug = taxonomy?.slug;\n\tconst panelName = slug ? `taxonomy-panel-${ slug }` : '';\n\tconst { isEnabled, isOpened } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isEditorPanelEnabled, isEditorPanelOpened } =\n\t\t\t\tselect( editorStore );\n\t\t\treturn {\n\t\t\t\tisEnabled: slug ? isEditorPanelEnabled( panelName ) : false,\n\t\t\t\tisOpened: slug ? isEditorPanelOpened( panelName ) : false,\n\t\t\t};\n\t\t},\n\t\t[ panelName, slug ]\n\t);\n\tconst { toggleEditorPanelOpened } = useDispatch( editorStore );\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst taxonomyMenuName = taxonomy?.labels?.menu_name;\n\tif ( ! taxonomyMenuName ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\ttitle={ taxonomyMenuName }\n\t\t\topened={ isOpened }\n\t\t\tonToggle={ () => toggleEditorPanelOpened( panelName ) }\n\t\t>\n\t\t\t{ children }\n\t\t</PanelBody>\n\t);\n}\n\nfunction PostTaxonomies() {\n\treturn (\n\t\t<PostTaxonomiesCheck>\n\t\t\t<PostTaxonomiesForm\n\t\t\t\ttaxonomyWrapper={ ( content, taxonomy ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TaxonomyPanel taxonomy={ taxonomy }>\n\t\t\t\t\t\t\t{ content }\n\t\t\t\t\t\t</TaxonomyPanel>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PostTaxonomiesCheck>\n\t);\n}\n\n/**\n * Renders a panel for a specific taxonomy.\n *\n * @param {Object} props The component props.\n * @param {Object} props.taxonomy The taxonomy object.\n * @param {Element} props.children The child components.\n *\n * @return {Component} The rendered taxonomy panel.\n */\nexport default PostTaxonomies;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAD,sBAAA,CAAAJ,OAAA;AAA0C,IAAAM,WAAA,GAAAN,OAAA;AAX1C;AACA;AACA;;AAIA;AACA;AACA;;AAKA,SAASO,aAAaA,CAAE;EAAEC,QAAQ;EAAEC;AAAS,CAAC,EAAG;EAChD,MAAMC,IAAI,GAAGF,QAAQ,EAAEE,IAAI;EAC3B,MAAMC,SAAS,GAAGD,IAAI,GAAG,kBAAmBA,IAAI,EAAG,GAAG,EAAE;EACxD,MAAM;IAAEE,SAAS;IAAEC;EAAS,CAAC,GAAG,IAAAC,eAAS,EACtCC,MAAM,IAAM;IACb,MAAM;MAAEC,oBAAoB;MAAEC;IAAoB,CAAC,GAClDF,MAAM,CAAEG,YAAY,CAAC;IACtB,OAAO;MACNN,SAAS,EAAEF,IAAI,GAAGM,oBAAoB,CAAEL,SAAU,CAAC,GAAG,KAAK;MAC3DE,QAAQ,EAAEH,IAAI,GAAGO,mBAAmB,CAAEN,SAAU,CAAC,GAAG;IACrD,CAAC;EACF,CAAC,EACD,CAAEA,SAAS,EAAED,IAAI,CAClB,CAAC;EACD,MAAM;IAAES;EAAwB,CAAC,GAAG,IAAAC,iBAAW,EAAEF,YAAY,CAAC;EAE9D,IAAK,CAAEN,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMS,gBAAgB,GAAGb,QAAQ,EAAEc,MAAM,EAAEC,SAAS;EACpD,IAAK,CAAEF,gBAAgB,EAAG;IACzB,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAf,WAAA,CAAAkB,GAAA,EAACzB,WAAA,CAAA0B,SAAS;IACTC,KAAK,EAAGL,gBAAkB;IAC1BM,MAAM,EAAGd,QAAU;IACnBe,QAAQ,EAAGA,CAAA,KAAMT,uBAAuB,CAAER,SAAU,CAAG;IAAAF,QAAA,EAErDA;EAAQ,CACA,CAAC;AAEd;AAEA,SAASoB,cAAcA,CAAA,EAAG;EACzB,oBACC,IAAAvB,WAAA,CAAAkB,GAAA,EAACnB,MAAA,CAAAyB,OAAmB;IAAArB,QAAA,eACnB,IAAAH,WAAA,CAAAkB,GAAA,EAACrB,MAAA,CAAA2B,OAAkB;MAClBC,eAAe,EAAGA,CAAEC,OAAO,EAAExB,QAAQ,KAAM;QAC1C,oBACC,IAAAF,WAAA,CAAAkB,GAAA,EAACjB,aAAa;UAACC,QAAQ,EAAGA,QAAU;UAAAC,QAAA,EACjCuB;QAAO,CACK,CAAC;MAElB;IAAG,CACH;EAAC,CACkB,CAAC;AAExB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,IAAAC,QAAA,GAAAC,OAAA,CAAAJ,OAAA,GASeD,cAAc","ignoreList":[]}
@@ -150,10 +150,8 @@ function PostTemplateDropdownContent({
150
150
  template: slug || ''
151
151
  })
152
152
  }), canEdit && onNavigateToEntityRecord && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
153
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button
154
- // TODO: Switch to `true` (40px size) if possible
155
- , {
156
- __next40pxDefaultSize: false,
153
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
154
+ __next40pxDefaultSize: true,
157
155
  variant: "link",
158
156
  onClick: () => {
159
157
  onNavigateToEntityRecord({