@wordpress/editor 13.10.0 → 13.12.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 (373) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/autosave-monitor/index.js +1 -2
  3. package/build/components/autosave-monitor/index.js.map +1 -1
  4. package/build/components/deprecated.js +3 -4
  5. package/build/components/deprecated.js.map +1 -1
  6. package/build/components/document-outline/check.js +4 -5
  7. package/build/components/document-outline/check.js.map +1 -1
  8. package/build/components/document-outline/index.js +12 -16
  9. package/build/components/document-outline/index.js.map +1 -1
  10. package/build/components/document-outline/item.js +22 -25
  11. package/build/components/document-outline/item.js.map +1 -1
  12. package/build/components/editor-help/help-detail-navigation-screen.native.js +4 -5
  13. package/build/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  14. package/build/components/editor-help/help-get-support-button.native.js +4 -5
  15. package/build/components/editor-help/help-get-support-button.native.js.map +1 -1
  16. package/build/components/editor-help/help-section-title.native.js +3 -4
  17. package/build/components/editor-help/help-section-title.native.js.map +1 -1
  18. package/build/components/editor-help/help-topic-row.native.js +6 -7
  19. package/build/components/editor-help/help-topic-row.native.js.map +1 -1
  20. package/build/components/editor-help/index.native.js +19 -24
  21. package/build/components/editor-help/index.native.js.map +1 -1
  22. package/build/components/editor-help/view-sections.native.js +16 -20
  23. package/build/components/editor-help/view-sections.native.js.map +1 -1
  24. package/build/components/editor-notices/index.js +12 -19
  25. package/build/components/editor-notices/index.js.map +1 -1
  26. package/build/components/editor-snackbars/index.js +3 -6
  27. package/build/components/editor-snackbars/index.js.map +1 -1
  28. package/build/components/entities-saved-states/entity-record-item.js +7 -10
  29. package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
  30. package/build/components/entities-saved-states/entity-type-list.js +6 -7
  31. package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
  32. package/build/components/entities-saved-states/hooks/use-is-dirty.js +84 -0
  33. package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -0
  34. package/build/components/entities-saved-states/index.js +42 -110
  35. package/build/components/entities-saved-states/index.js.map +1 -1
  36. package/build/components/error-boundary/index.js +4 -5
  37. package/build/components/error-boundary/index.js.map +1 -1
  38. package/build/components/global-keyboard-shortcuts/save-shortcut.js +3 -4
  39. package/build/components/global-keyboard-shortcuts/save-shortcut.js.map +1 -1
  40. package/build/components/index.js +9 -0
  41. package/build/components/index.js.map +1 -1
  42. package/build/components/media-categories/index.js +25 -42
  43. package/build/components/media-categories/index.js.map +1 -1
  44. package/build/components/page-attributes/check.js +4 -7
  45. package/build/components/page-attributes/check.js.map +1 -1
  46. package/build/components/page-attributes/order.js +5 -8
  47. package/build/components/page-attributes/order.js.map +1 -1
  48. package/build/components/page-attributes/parent.js +5 -12
  49. package/build/components/page-attributes/parent.js.map +1 -1
  50. package/build/components/post-author/check.js +6 -7
  51. package/build/components/post-author/check.js.map +1 -1
  52. package/build/components/post-author/combobox.js +3 -6
  53. package/build/components/post-author/combobox.js.map +1 -1
  54. package/build/components/post-author/index.js +1 -1
  55. package/build/components/post-author/index.js.map +1 -1
  56. package/build/components/post-comments/index.js +4 -6
  57. package/build/components/post-comments/index.js.map +1 -1
  58. package/build/components/post-excerpt/index.js +4 -5
  59. package/build/components/post-excerpt/index.js.map +1 -1
  60. package/build/components/post-featured-image/index.js +56 -69
  61. package/build/components/post-featured-image/index.js.map +1 -1
  62. package/build/components/post-format/check.js +4 -5
  63. package/build/components/post-format/check.js.map +1 -1
  64. package/build/components/post-format/index.js +1 -1
  65. package/build/components/post-format/index.js.map +1 -1
  66. package/build/components/post-last-revision/check.js +5 -7
  67. package/build/components/post-last-revision/check.js.map +1 -1
  68. package/build/components/post-last-revision/index.js +4 -5
  69. package/build/components/post-last-revision/index.js.map +1 -1
  70. package/build/components/post-locked-modal/index.js +1 -1
  71. package/build/components/post-locked-modal/index.js.map +1 -1
  72. package/build/components/post-pending-status/check.js +7 -9
  73. package/build/components/post-pending-status/check.js.map +1 -1
  74. package/build/components/post-pending-status/index.js +4 -6
  75. package/build/components/post-pending-status/index.js.map +1 -1
  76. package/build/components/post-pingbacks/index.js +4 -6
  77. package/build/components/post-pingbacks/index.js.map +1 -1
  78. package/build/components/post-preview-button/index.js +8 -12
  79. package/build/components/post-preview-button/index.js.map +1 -1
  80. package/build/components/post-publish-button/index.js +6 -13
  81. package/build/components/post-publish-button/index.js.map +1 -1
  82. package/build/components/post-publish-button/label.js +14 -17
  83. package/build/components/post-publish-button/label.js.map +1 -1
  84. package/build/components/post-publish-panel/index.js +6 -7
  85. package/build/components/post-publish-panel/index.js.map +1 -1
  86. package/build/components/post-publish-panel/maybe-category-panel.js +2 -4
  87. package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  88. package/build/components/post-publish-panel/maybe-post-format-panel.js +9 -12
  89. package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  90. package/build/components/post-publish-panel/maybe-tags-panel.js +4 -7
  91. package/build/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  92. package/build/components/post-publish-panel/postpublish.js +8 -11
  93. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  94. package/build/components/post-publish-panel/prepublish.js +5 -6
  95. package/build/components/post-publish-panel/prepublish.js.map +1 -1
  96. package/build/components/post-saved-state/index.js +13 -8
  97. package/build/components/post-saved-state/index.js.map +1 -1
  98. package/build/components/post-schedule/check.js +6 -8
  99. package/build/components/post-schedule/check.js.map +1 -1
  100. package/build/components/post-schedule/index.js +8 -12
  101. package/build/components/post-schedule/index.js.map +1 -1
  102. package/build/components/post-schedule/label.js +7 -10
  103. package/build/components/post-schedule/label.js.map +1 -1
  104. package/build/components/post-slug/check.js +3 -4
  105. package/build/components/post-slug/check.js.map +1 -1
  106. package/build/components/post-slug/index.js +5 -6
  107. package/build/components/post-slug/index.js.map +1 -1
  108. package/build/components/post-sticky/check.js +7 -9
  109. package/build/components/post-sticky/check.js.map +1 -1
  110. package/build/components/post-sticky/index.js +4 -5
  111. package/build/components/post-sticky/index.js.map +1 -1
  112. package/build/components/post-switch-to-draft-button/index.js +6 -7
  113. package/build/components/post-switch-to-draft-button/index.js.map +1 -1
  114. package/build/components/post-taxonomies/check.js +6 -7
  115. package/build/components/post-taxonomies/check.js.map +1 -1
  116. package/build/components/post-taxonomies/flat-term-selector.js +13 -14
  117. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  118. package/build/components/post-taxonomies/hierarchical-term-selector.js +13 -14
  119. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  120. package/build/components/post-taxonomies/index.js +6 -11
  121. package/build/components/post-taxonomies/index.js.map +1 -1
  122. package/build/components/post-taxonomies/most-used-terms.js +5 -6
  123. package/build/components/post-taxonomies/most-used-terms.js.map +1 -1
  124. package/build/components/post-template/index.js +6 -9
  125. package/build/components/post-template/index.js.map +1 -1
  126. package/build/components/post-title/index.js +2 -6
  127. package/build/components/post-title/index.js.map +1 -1
  128. package/build/components/post-title/index.native.js +8 -11
  129. package/build/components/post-title/index.native.js.map +1 -1
  130. package/build/components/post-trash/check.js +7 -9
  131. package/build/components/post-trash/check.js.map +1 -1
  132. package/build/components/post-type-support-check/index.js +5 -6
  133. package/build/components/post-type-support-check/index.js.map +1 -1
  134. package/build/components/post-url/check.js +4 -5
  135. package/build/components/post-url/check.js.map +1 -1
  136. package/build/components/post-url/index.js +8 -9
  137. package/build/components/post-url/index.js.map +1 -1
  138. package/build/components/post-visibility/check.js +6 -7
  139. package/build/components/post-visibility/check.js.map +1 -1
  140. package/build/components/post-visibility/index.js +10 -12
  141. package/build/components/post-visibility/index.js.map +1 -1
  142. package/build/components/post-visibility/label.js +1 -3
  143. package/build/components/post-visibility/label.js.map +1 -1
  144. package/build/components/provider/index.js +9 -10
  145. package/build/components/provider/index.js.map +1 -1
  146. package/build/components/provider/index.native.js +14 -20
  147. package/build/components/provider/index.native.js.map +1 -1
  148. package/build/components/provider/use-block-editor-settings.js +6 -10
  149. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  150. package/build/components/provider/use-block-editor-settings.native.js +1 -3
  151. package/build/components/provider/use-block-editor-settings.native.js.map +1 -1
  152. package/build/components/table-of-contents/index.js +26 -33
  153. package/build/components/table-of-contents/index.js.map +1 -1
  154. package/build/components/table-of-contents/panel.js +4 -5
  155. package/build/components/table-of-contents/panel.js.map +1 -1
  156. package/build/components/template-validation-notice/index.js +4 -6
  157. package/build/components/template-validation-notice/index.js.map +1 -1
  158. package/build/components/theme-support-check/index.js +7 -8
  159. package/build/components/theme-support-check/index.js.map +1 -1
  160. package/build/hooks/custom-sources-backwards-compatibility.js +16 -35
  161. package/build/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  162. package/build/hooks/default-autocompleters.js +1 -2
  163. package/build/hooks/default-autocompleters.js.map +1 -1
  164. package/build/private-apis.js +4 -1
  165. package/build/private-apis.js.map +1 -1
  166. package/build/store/actions.js +147 -179
  167. package/build/store/actions.js.map +1 -1
  168. package/build/store/actions.native.js +1 -2
  169. package/build/store/actions.native.js.map +1 -1
  170. package/build/store/reducer.js +14 -44
  171. package/build/store/reducer.js.map +1 -1
  172. package/build/store/reducer.native.js +3 -12
  173. package/build/store/reducer.native.js.map +1 -1
  174. package/build/store/selectors.js +23 -54
  175. package/build/store/selectors.js.map +1 -1
  176. package/build/store/utils/notice-builder.js +3 -3
  177. package/build/store/utils/notice-builder.js.map +1 -1
  178. package/build/utils/media-upload/index.js +11 -15
  179. package/build/utils/media-upload/index.js.map +1 -1
  180. package/build/utils/terms.js +3 -6
  181. package/build/utils/terms.js.map +1 -1
  182. package/build-module/components/autosave-monitor/index.js +1 -2
  183. package/build-module/components/autosave-monitor/index.js.map +1 -1
  184. package/build-module/components/deprecated.js +3 -4
  185. package/build-module/components/deprecated.js.map +1 -1
  186. package/build-module/components/document-outline/check.js +4 -5
  187. package/build-module/components/document-outline/check.js.map +1 -1
  188. package/build-module/components/document-outline/index.js +12 -16
  189. package/build-module/components/document-outline/index.js.map +1 -1
  190. package/build-module/components/document-outline/item.js +22 -25
  191. package/build-module/components/document-outline/item.js.map +1 -1
  192. package/build-module/components/editor-help/help-detail-navigation-screen.native.js +4 -5
  193. package/build-module/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  194. package/build-module/components/editor-help/help-get-support-button.native.js +4 -5
  195. package/build-module/components/editor-help/help-get-support-button.native.js.map +1 -1
  196. package/build-module/components/editor-help/help-section-title.native.js +3 -4
  197. package/build-module/components/editor-help/help-section-title.native.js.map +1 -1
  198. package/build-module/components/editor-help/help-topic-row.native.js +6 -7
  199. package/build-module/components/editor-help/help-topic-row.native.js.map +1 -1
  200. package/build-module/components/editor-help/index.native.js +19 -23
  201. package/build-module/components/editor-help/index.native.js.map +1 -1
  202. package/build-module/components/editor-help/view-sections.native.js +16 -20
  203. package/build-module/components/editor-help/view-sections.native.js.map +1 -1
  204. package/build-module/components/editor-notices/index.js +12 -19
  205. package/build-module/components/editor-notices/index.js.map +1 -1
  206. package/build-module/components/editor-snackbars/index.js +3 -6
  207. package/build-module/components/editor-snackbars/index.js.map +1 -1
  208. package/build-module/components/entities-saved-states/entity-record-item.js +7 -10
  209. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  210. package/build-module/components/entities-saved-states/entity-type-list.js +6 -7
  211. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  212. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js +70 -0
  213. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -0
  214. package/build-module/components/entities-saved-states/index.js +43 -113
  215. package/build-module/components/entities-saved-states/index.js.map +1 -1
  216. package/build-module/components/error-boundary/index.js +4 -5
  217. package/build-module/components/error-boundary/index.js.map +1 -1
  218. package/build-module/components/global-keyboard-shortcuts/save-shortcut.js +3 -4
  219. package/build-module/components/global-keyboard-shortcuts/save-shortcut.js.map +1 -1
  220. package/build-module/components/index.js +1 -0
  221. package/build-module/components/index.js.map +1 -1
  222. package/build-module/components/media-categories/index.js +25 -42
  223. package/build-module/components/media-categories/index.js.map +1 -1
  224. package/build-module/components/page-attributes/check.js +4 -7
  225. package/build-module/components/page-attributes/check.js.map +1 -1
  226. package/build-module/components/page-attributes/order.js +5 -8
  227. package/build-module/components/page-attributes/order.js.map +1 -1
  228. package/build-module/components/page-attributes/parent.js +5 -12
  229. package/build-module/components/page-attributes/parent.js.map +1 -1
  230. package/build-module/components/post-author/check.js +6 -7
  231. package/build-module/components/post-author/check.js.map +1 -1
  232. package/build-module/components/post-author/combobox.js +3 -6
  233. package/build-module/components/post-author/combobox.js.map +1 -1
  234. package/build-module/components/post-author/index.js +1 -1
  235. package/build-module/components/post-author/index.js.map +1 -1
  236. package/build-module/components/post-comments/index.js +4 -6
  237. package/build-module/components/post-comments/index.js.map +1 -1
  238. package/build-module/components/post-excerpt/index.js +4 -5
  239. package/build-module/components/post-excerpt/index.js.map +1 -1
  240. package/build-module/components/post-featured-image/index.js +56 -69
  241. package/build-module/components/post-featured-image/index.js.map +1 -1
  242. package/build-module/components/post-format/check.js +4 -5
  243. package/build-module/components/post-format/check.js.map +1 -1
  244. package/build-module/components/post-format/index.js +1 -1
  245. package/build-module/components/post-format/index.js.map +1 -1
  246. package/build-module/components/post-last-revision/check.js +5 -7
  247. package/build-module/components/post-last-revision/check.js.map +1 -1
  248. package/build-module/components/post-last-revision/index.js +4 -5
  249. package/build-module/components/post-last-revision/index.js.map +1 -1
  250. package/build-module/components/post-locked-modal/index.js +1 -1
  251. package/build-module/components/post-locked-modal/index.js.map +1 -1
  252. package/build-module/components/post-pending-status/check.js +7 -9
  253. package/build-module/components/post-pending-status/check.js.map +1 -1
  254. package/build-module/components/post-pending-status/index.js +4 -6
  255. package/build-module/components/post-pending-status/index.js.map +1 -1
  256. package/build-module/components/post-pingbacks/index.js +4 -6
  257. package/build-module/components/post-pingbacks/index.js.map +1 -1
  258. package/build-module/components/post-preview-button/index.js +8 -12
  259. package/build-module/components/post-preview-button/index.js.map +1 -1
  260. package/build-module/components/post-publish-button/index.js +6 -13
  261. package/build-module/components/post-publish-button/index.js.map +1 -1
  262. package/build-module/components/post-publish-button/label.js +14 -17
  263. package/build-module/components/post-publish-button/label.js.map +1 -1
  264. package/build-module/components/post-publish-panel/index.js +6 -7
  265. package/build-module/components/post-publish-panel/index.js.map +1 -1
  266. package/build-module/components/post-publish-panel/maybe-category-panel.js +2 -4
  267. package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  268. package/build-module/components/post-publish-panel/maybe-post-format-panel.js +9 -12
  269. package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  270. package/build-module/components/post-publish-panel/maybe-tags-panel.js +4 -7
  271. package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  272. package/build-module/components/post-publish-panel/postpublish.js +8 -11
  273. package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
  274. package/build-module/components/post-publish-panel/prepublish.js +5 -6
  275. package/build-module/components/post-publish-panel/prepublish.js.map +1 -1
  276. package/build-module/components/post-saved-state/index.js +13 -8
  277. package/build-module/components/post-saved-state/index.js.map +1 -1
  278. package/build-module/components/post-schedule/check.js +6 -8
  279. package/build-module/components/post-schedule/check.js.map +1 -1
  280. package/build-module/components/post-schedule/index.js +8 -12
  281. package/build-module/components/post-schedule/index.js.map +1 -1
  282. package/build-module/components/post-schedule/label.js +7 -10
  283. package/build-module/components/post-schedule/label.js.map +1 -1
  284. package/build-module/components/post-slug/check.js +3 -4
  285. package/build-module/components/post-slug/check.js.map +1 -1
  286. package/build-module/components/post-slug/index.js +5 -6
  287. package/build-module/components/post-slug/index.js.map +1 -1
  288. package/build-module/components/post-sticky/check.js +7 -9
  289. package/build-module/components/post-sticky/check.js.map +1 -1
  290. package/build-module/components/post-sticky/index.js +4 -5
  291. package/build-module/components/post-sticky/index.js.map +1 -1
  292. package/build-module/components/post-switch-to-draft-button/index.js +6 -7
  293. package/build-module/components/post-switch-to-draft-button/index.js.map +1 -1
  294. package/build-module/components/post-taxonomies/check.js +6 -7
  295. package/build-module/components/post-taxonomies/check.js.map +1 -1
  296. package/build-module/components/post-taxonomies/flat-term-selector.js +13 -14
  297. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  298. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +13 -14
  299. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  300. package/build-module/components/post-taxonomies/index.js +6 -11
  301. package/build-module/components/post-taxonomies/index.js.map +1 -1
  302. package/build-module/components/post-taxonomies/most-used-terms.js +5 -6
  303. package/build-module/components/post-taxonomies/most-used-terms.js.map +1 -1
  304. package/build-module/components/post-template/index.js +6 -9
  305. package/build-module/components/post-template/index.js.map +1 -1
  306. package/build-module/components/post-title/index.js +2 -6
  307. package/build-module/components/post-title/index.js.map +1 -1
  308. package/build-module/components/post-title/index.native.js +8 -11
  309. package/build-module/components/post-title/index.native.js.map +1 -1
  310. package/build-module/components/post-trash/check.js +7 -9
  311. package/build-module/components/post-trash/check.js.map +1 -1
  312. package/build-module/components/post-type-support-check/index.js +5 -6
  313. package/build-module/components/post-type-support-check/index.js.map +1 -1
  314. package/build-module/components/post-url/check.js +4 -5
  315. package/build-module/components/post-url/check.js.map +1 -1
  316. package/build-module/components/post-url/index.js +8 -9
  317. package/build-module/components/post-url/index.js.map +1 -1
  318. package/build-module/components/post-visibility/check.js +6 -7
  319. package/build-module/components/post-visibility/check.js.map +1 -1
  320. package/build-module/components/post-visibility/index.js +10 -12
  321. package/build-module/components/post-visibility/index.js.map +1 -1
  322. package/build-module/components/post-visibility/label.js +1 -3
  323. package/build-module/components/post-visibility/label.js.map +1 -1
  324. package/build-module/components/provider/index.js +9 -10
  325. package/build-module/components/provider/index.js.map +1 -1
  326. package/build-module/components/provider/index.native.js +14 -20
  327. package/build-module/components/provider/index.native.js.map +1 -1
  328. package/build-module/components/provider/use-block-editor-settings.js +6 -10
  329. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  330. package/build-module/components/provider/use-block-editor-settings.native.js +1 -3
  331. package/build-module/components/provider/use-block-editor-settings.native.js.map +1 -1
  332. package/build-module/components/table-of-contents/index.js +26 -33
  333. package/build-module/components/table-of-contents/index.js.map +1 -1
  334. package/build-module/components/table-of-contents/panel.js +4 -5
  335. package/build-module/components/table-of-contents/panel.js.map +1 -1
  336. package/build-module/components/template-validation-notice/index.js +4 -6
  337. package/build-module/components/template-validation-notice/index.js.map +1 -1
  338. package/build-module/components/theme-support-check/index.js +7 -8
  339. package/build-module/components/theme-support-check/index.js.map +1 -1
  340. package/build-module/hooks/custom-sources-backwards-compatibility.js +16 -35
  341. package/build-module/hooks/custom-sources-backwards-compatibility.js.map +1 -1
  342. package/build-module/hooks/default-autocompleters.js +1 -2
  343. package/build-module/hooks/default-autocompleters.js.map +1 -1
  344. package/build-module/private-apis.js +3 -1
  345. package/build-module/private-apis.js.map +1 -1
  346. package/build-module/store/actions.js +147 -179
  347. package/build-module/store/actions.js.map +1 -1
  348. package/build-module/store/actions.native.js +1 -2
  349. package/build-module/store/actions.native.js.map +1 -1
  350. package/build-module/store/reducer.js +14 -44
  351. package/build-module/store/reducer.js.map +1 -1
  352. package/build-module/store/reducer.native.js +3 -12
  353. package/build-module/store/reducer.native.js.map +1 -1
  354. package/build-module/store/selectors.js +21 -54
  355. package/build-module/store/selectors.js.map +1 -1
  356. package/build-module/store/utils/notice-builder.js +3 -3
  357. package/build-module/store/utils/notice-builder.js.map +1 -1
  358. package/build-module/utils/media-upload/index.js +11 -15
  359. package/build-module/utils/media-upload/index.js.map +1 -1
  360. package/build-module/utils/terms.js +3 -6
  361. package/build-module/utils/terms.js.map +1 -1
  362. package/build-style/style-rtl.css +1 -1
  363. package/build-style/style.css +1 -1
  364. package/package.json +31 -31
  365. package/src/components/entities-saved-states/hooks/use-is-dirty.js +85 -0
  366. package/src/components/entities-saved-states/index.js +29 -107
  367. package/src/components/entities-saved-states/test/use-is-dirty.js +94 -0
  368. package/src/components/index.js +1 -0
  369. package/src/components/post-saved-state/index.js +6 -0
  370. package/src/components/post-taxonomies/flat-term-selector.js +1 -1
  371. package/src/components/post-title/index.js +2 -1
  372. package/src/components/provider/use-block-editor-settings.js +1 -0
  373. package/src/private-apis.js +2 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-sticky/index.js"],"names":["__","CheckboxControl","withSelect","withDispatch","compose","PostStickyCheck","store","editorStore","PostSticky","onUpdateSticky","postSticky","select","getEditedPostAttribute","dispatch","editPost","sticky"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,eAAT,QAAgC,uBAAhC;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,iBAAzC;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,OAAOC,eAAP,MAA4B,SAA5B;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,UAAT,OAA8D;AAAA,MAAzC;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,UAAU,GAAG;AAA/B,GAAyC;AACpE,SACC,cAAC,eAAD,QACC,cAAC,eAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAGV,EAAE,CAAE,8BAAF,CAFX;AAGC,IAAA,OAAO,EAAGU,UAHX;AAIC,IAAA,QAAQ,EAAG,MAAMD,cAAc,CAAE,CAAEC,UAAJ;AAJhC,IADD,CADD;AAUA;AAED,eAAeN,OAAO,CAAE,CACvBF,UAAU,CAAIS,MAAF,IAAc;AACzB,SAAO;AACND,IAAAA,UAAU,EACTC,MAAM,CAAEJ,WAAF,CAAN,CAAsBK,sBAAtB,CAA8C,QAA9C;AAFK,GAAP;AAIA,CALS,CADa,EAOvBT,YAAY,CAAIU,QAAF,IAAgB;AAC7B,SAAO;AACNJ,IAAAA,cAAc,CAAEC,UAAF,EAAe;AAC5BG,MAAAA,QAAQ,CAAEN,WAAF,CAAR,CAAwBO,QAAxB,CAAkC;AAAEC,QAAAA,MAAM,EAAEL;AAAV,OAAlC;AACA;;AAHK,GAAP;AAKA,CANW,CAPW,CAAF,CAAP,CAcVF,UAdU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PostStickyCheck from './check';\nimport { store as editorStore } from '../../store';\n\nexport function PostSticky( { onUpdateSticky, postSticky = false } ) {\n\treturn (\n\t\t<PostStickyCheck>\n\t\t\t<CheckboxControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stick to the top of the blog' ) }\n\t\t\t\tchecked={ postSticky }\n\t\t\t\tonChange={ () => onUpdateSticky( ! postSticky ) }\n\t\t\t/>\n\t\t</PostStickyCheck>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostSticky:\n\t\t\t\tselect( editorStore ).getEditedPostAttribute( 'sticky' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\treturn {\n\t\t\tonUpdateSticky( postSticky ) {\n\t\t\t\tdispatch( editorStore ).editPost( { sticky: postSticky } );\n\t\t\t},\n\t\t};\n\t} ),\n] )( PostSticky );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-sticky/index.js"],"names":["__","CheckboxControl","withSelect","withDispatch","compose","PostStickyCheck","store","editorStore","PostSticky","onUpdateSticky","postSticky","select","getEditedPostAttribute","dispatch","editPost","sticky"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,eAAT,QAAgC,uBAAhC;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,iBAAzC;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,OAAOC,eAAP,MAA4B,SAA5B;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,UAAT,CAAqB;AAAEC,EAAAA,cAAF;AAAkBC,EAAAA,UAAU,GAAG;AAA/B,CAArB,EAA8D;AACpE,SACC,cAAC,eAAD,QACC,cAAC,eAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAGV,EAAE,CAAE,8BAAF,CAFX;AAGC,IAAA,OAAO,EAAGU,UAHX;AAIC,IAAA,QAAQ,EAAG,MAAMD,cAAc,CAAE,CAAEC,UAAJ;AAJhC,IADD,CADD;AAUA;AAED,eAAeN,OAAO,CAAE,CACvBF,UAAU,CAAIS,MAAF,IAAc;AACzB,SAAO;AACND,IAAAA,UAAU,EACTC,MAAM,CAAEJ,WAAF,CAAN,CAAsBK,sBAAtB,CAA8C,QAA9C;AAFK,GAAP;AAIA,CALS,CADa,EAOvBT,YAAY,CAAIU,QAAF,IAAgB;AAC7B,SAAO;AACNJ,IAAAA,cAAc,CAAEC,UAAF,EAAe;AAC5BG,MAAAA,QAAQ,CAAEN,WAAF,CAAR,CAAwBO,QAAxB,CAAkC;AAAEC,QAAAA,MAAM,EAAEL;AAAV,OAAlC;AACA;;AAHK,GAAP;AAKA,CANW,CAPW,CAAF,CAAP,CAcVF,UAdU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PostStickyCheck from './check';\nimport { store as editorStore } from '../../store';\n\nexport function PostSticky( { onUpdateSticky, postSticky = false } ) {\n\treturn (\n\t\t<PostStickyCheck>\n\t\t\t<CheckboxControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stick to the top of the blog' ) }\n\t\t\t\tchecked={ postSticky }\n\t\t\t\tonChange={ () => onUpdateSticky( ! postSticky ) }\n\t\t\t/>\n\t\t</PostStickyCheck>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostSticky:\n\t\t\t\tselect( editorStore ).getEditedPostAttribute( 'sticky' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\treturn {\n\t\t\tonUpdateSticky( postSticky ) {\n\t\t\t\tdispatch( editorStore ).editPost( { sticky: postSticky } );\n\t\t\t},\n\t\t};\n\t} ),\n] )( PostSticky );\n"]}
@@ -14,13 +14,12 @@ import { useState } from '@wordpress/element';
14
14
 
15
15
  import { store as editorStore } from '../../store';
16
16
 
17
- function PostSwitchToDraftButton(_ref) {
18
- let {
19
- isSaving,
20
- isPublished,
21
- isScheduled,
22
- onClick
23
- } = _ref;
17
+ function PostSwitchToDraftButton({
18
+ isSaving,
19
+ isPublished,
20
+ isScheduled,
21
+ onClick
22
+ }) {
24
23
  const [showConfirmDialog, setShowConfirmDialog] = useState(false);
25
24
 
26
25
  if (!isPublished && !isScheduled) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-switch-to-draft-button/index.js"],"names":["Button","FlexItem","__experimentalConfirmDialog","ConfirmDialog","__","withSelect","withDispatch","compose","useState","store","editorStore","PostSwitchToDraftButton","isSaving","isPublished","isScheduled","onClick","showConfirmDialog","setShowConfirmDialog","alertMessage","handleConfirm","width","display","select","isSavingPost","isCurrentPostPublished","isCurrentPostScheduled","dispatch","editPost","savePost","status"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,MADD,EAECC,QAFD,EAGCC,2BAA2B,IAAIC,aAHhC,QAIO,uBAJP;AAKA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,iBAAzC;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,QAAT,QAAyB,oBAAzB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,aAArC;;AAEA,SAASC,uBAAT,OAKI;AAAA,MAL8B;AACjCC,IAAAA,QADiC;AAEjCC,IAAAA,WAFiC;AAGjCC,IAAAA,WAHiC;AAIjCC,IAAAA;AAJiC,GAK9B;AACH,QAAM,CAAEC,iBAAF,EAAqBC,oBAArB,IAA8CT,QAAQ,CAAE,KAAF,CAA5D;;AAEA,MAAK,CAAEK,WAAF,IAAiB,CAAEC,WAAxB,EAAsC;AACrC,WAAO,IAAP;AACA;;AAED,MAAII,YAAJ;;AACA,MAAKL,WAAL,EAAmB;AAClBK,IAAAA,YAAY,GAAGd,EAAE,CAAE,+CAAF,CAAjB;AACA,GAFD,MAEO,IAAKU,WAAL,EAAmB;AACzBI,IAAAA,YAAY,GAAGd,EAAE,CAAE,gDAAF,CAAjB;AACA;;AAED,QAAMe,aAAa,GAAG,MAAM;AAC3BF,IAAAA,oBAAoB,CAAE,KAAF,CAApB;AACAF,IAAAA,OAAO;AACP,GAHD;;AAKA,SACC,cAAC,QAAD;AAAU,IAAA,OAAO;AAAjB,KACC,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,6BADX;AAEC,IAAA,OAAO,EAAG,MAAM;AACfE,MAAAA,oBAAoB,CAAE,IAAF,CAApB;AACA,KAJF;AAKC,IAAA,QAAQ,EAAGL,QALZ;AAMC,IAAA,OAAO,EAAC,WANT;AAOC,IAAA,KAAK,EAAG;AAAEQ,MAAAA,KAAK,EAAE,MAAT;AAAiBC,MAAAA,OAAO,EAAE;AAA1B;AAPT,KASGjB,EAAE,CAAE,iBAAF,CATL,CADD,EAYC,cAAC,aAAD;AACC,IAAA,MAAM,EAAGY,iBADV;AAEC,IAAA,SAAS,EAAGG,aAFb;AAGC,IAAA,QAAQ,EAAG,MAAMF,oBAAoB,CAAE,KAAF;AAHtC,KAKGC,YALH,CAZD,CADD;AAsBA;;AAED,eAAeX,OAAO,CAAE,CACvBF,UAAU,CAAIiB,MAAF,IAAc;AACzB,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA,sBAAhB;AAAwCC,IAAAA;AAAxC,MACLH,MAAM,CAAEZ,WAAF,CADP;AAEA,SAAO;AACNE,IAAAA,QAAQ,EAAEW,YAAY,EADhB;AAENV,IAAAA,WAAW,EAAEW,sBAAsB,EAF7B;AAGNV,IAAAA,WAAW,EAAEW,sBAAsB;AAH7B,GAAP;AAKA,CARS,CADa,EAUvBnB,YAAY,CAAIoB,QAAF,IAAgB;AAC7B,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAyBF,QAAQ,CAAEhB,WAAF,CAAvC;AACA,SAAO;AACNK,IAAAA,OAAO,EAAE,MAAM;AACdY,MAAAA,QAAQ,CAAE;AAAEE,QAAAA,MAAM,EAAE;AAAV,OAAF,CAAR;AACAD,MAAAA,QAAQ;AACR;AAJK,GAAP;AAMA,CARW,CAVW,CAAF,CAAP,CAmBVjB,uBAnBU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tFlexItem,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction PostSwitchToDraftButton( {\n\tisSaving,\n\tisPublished,\n\tisScheduled,\n\tonClick,\n} ) {\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\n\tif ( ! isPublished && ! isScheduled ) {\n\t\treturn null;\n\t}\n\n\tlet alertMessage;\n\tif ( isPublished ) {\n\t\talertMessage = __( 'Are you sure you want to unpublish this post?' );\n\t} else if ( isScheduled ) {\n\t\talertMessage = __( 'Are you sure you want to unschedule this post?' );\n\t}\n\n\tconst handleConfirm = () => {\n\t\tsetShowConfirmDialog( false );\n\t\tonClick();\n\t};\n\n\treturn (\n\t\t<FlexItem isBlock>\n\t\t\t<Button\n\t\t\t\tclassName=\"editor-post-switch-to-draft\"\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetShowConfirmDialog( true );\n\t\t\t\t} }\n\t\t\t\tdisabled={ isSaving }\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tstyle={ { width: '100%', display: 'block' } }\n\t\t\t>\n\t\t\t\t{ __( 'Switch to draft' ) }\n\t\t\t</Button>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ showConfirmDialog }\n\t\t\t\tonConfirm={ handleConfirm }\n\t\t\t\tonCancel={ () => setShowConfirmDialog( false ) }\n\t\t\t>\n\t\t\t\t{ alertMessage }\n\t\t\t</ConfirmDialog>\n\t\t</FlexItem>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isSavingPost, isCurrentPostPublished, isCurrentPostScheduled } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonClick: () => {\n\t\t\t\teditPost( { status: 'draft' } );\n\t\t\t\tsavePost();\n\t\t\t},\n\t\t};\n\t} ),\n] )( PostSwitchToDraftButton );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-switch-to-draft-button/index.js"],"names":["Button","FlexItem","__experimentalConfirmDialog","ConfirmDialog","__","withSelect","withDispatch","compose","useState","store","editorStore","PostSwitchToDraftButton","isSaving","isPublished","isScheduled","onClick","showConfirmDialog","setShowConfirmDialog","alertMessage","handleConfirm","width","display","select","isSavingPost","isCurrentPostPublished","isCurrentPostScheduled","dispatch","editPost","savePost","status"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,MADD,EAECC,QAFD,EAGCC,2BAA2B,IAAIC,aAHhC,QAIO,uBAJP;AAKA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,iBAAzC;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,QAAT,QAAyB,oBAAzB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,aAArC;;AAEA,SAASC,uBAAT,CAAkC;AACjCC,EAAAA,QADiC;AAEjCC,EAAAA,WAFiC;AAGjCC,EAAAA,WAHiC;AAIjCC,EAAAA;AAJiC,CAAlC,EAKI;AACH,QAAM,CAAEC,iBAAF,EAAqBC,oBAArB,IAA8CT,QAAQ,CAAE,KAAF,CAA5D;;AAEA,MAAK,CAAEK,WAAF,IAAiB,CAAEC,WAAxB,EAAsC;AACrC,WAAO,IAAP;AACA;;AAED,MAAII,YAAJ;;AACA,MAAKL,WAAL,EAAmB;AAClBK,IAAAA,YAAY,GAAGd,EAAE,CAAE,+CAAF,CAAjB;AACA,GAFD,MAEO,IAAKU,WAAL,EAAmB;AACzBI,IAAAA,YAAY,GAAGd,EAAE,CAAE,gDAAF,CAAjB;AACA;;AAED,QAAMe,aAAa,GAAG,MAAM;AAC3BF,IAAAA,oBAAoB,CAAE,KAAF,CAApB;AACAF,IAAAA,OAAO;AACP,GAHD;;AAKA,SACC,cAAC,QAAD;AAAU,IAAA,OAAO;AAAjB,KACC,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,6BADX;AAEC,IAAA,OAAO,EAAG,MAAM;AACfE,MAAAA,oBAAoB,CAAE,IAAF,CAApB;AACA,KAJF;AAKC,IAAA,QAAQ,EAAGL,QALZ;AAMC,IAAA,OAAO,EAAC,WANT;AAOC,IAAA,KAAK,EAAG;AAAEQ,MAAAA,KAAK,EAAE,MAAT;AAAiBC,MAAAA,OAAO,EAAE;AAA1B;AAPT,KASGjB,EAAE,CAAE,iBAAF,CATL,CADD,EAYC,cAAC,aAAD;AACC,IAAA,MAAM,EAAGY,iBADV;AAEC,IAAA,SAAS,EAAGG,aAFb;AAGC,IAAA,QAAQ,EAAG,MAAMF,oBAAoB,CAAE,KAAF;AAHtC,KAKGC,YALH,CAZD,CADD;AAsBA;;AAED,eAAeX,OAAO,CAAE,CACvBF,UAAU,CAAIiB,MAAF,IAAc;AACzB,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA,sBAAhB;AAAwCC,IAAAA;AAAxC,MACLH,MAAM,CAAEZ,WAAF,CADP;AAEA,SAAO;AACNE,IAAAA,QAAQ,EAAEW,YAAY,EADhB;AAENV,IAAAA,WAAW,EAAEW,sBAAsB,EAF7B;AAGNV,IAAAA,WAAW,EAAEW,sBAAsB;AAH7B,GAAP;AAKA,CARS,CADa,EAUvBnB,YAAY,CAAIoB,QAAF,IAAgB;AAC7B,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAyBF,QAAQ,CAAEhB,WAAF,CAAvC;AACA,SAAO;AACNK,IAAAA,OAAO,EAAE,MAAM;AACdY,MAAAA,QAAQ,CAAE;AAAEE,QAAAA,MAAM,EAAE;AAAV,OAAF,CAAR;AACAD,MAAAA,QAAQ;AACR;AAJK,GAAP;AAMA,CARW,CAVW,CAAF,CAAP,CAmBVjB,uBAnBU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tFlexItem,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction PostSwitchToDraftButton( {\n\tisSaving,\n\tisPublished,\n\tisScheduled,\n\tonClick,\n} ) {\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\n\tif ( ! isPublished && ! isScheduled ) {\n\t\treturn null;\n\t}\n\n\tlet alertMessage;\n\tif ( isPublished ) {\n\t\talertMessage = __( 'Are you sure you want to unpublish this post?' );\n\t} else if ( isScheduled ) {\n\t\talertMessage = __( 'Are you sure you want to unschedule this post?' );\n\t}\n\n\tconst handleConfirm = () => {\n\t\tsetShowConfirmDialog( false );\n\t\tonClick();\n\t};\n\n\treturn (\n\t\t<FlexItem isBlock>\n\t\t\t<Button\n\t\t\t\tclassName=\"editor-post-switch-to-draft\"\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetShowConfirmDialog( true );\n\t\t\t\t} }\n\t\t\t\tdisabled={ isSaving }\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tstyle={ { width: '100%', display: 'block' } }\n\t\t\t>\n\t\t\t\t{ __( 'Switch to draft' ) }\n\t\t\t</Button>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ showConfirmDialog }\n\t\t\t\tonConfirm={ handleConfirm }\n\t\t\t\tonCancel={ () => setShowConfirmDialog( false ) }\n\t\t\t>\n\t\t\t\t{ alertMessage }\n\t\t\t</ConfirmDialog>\n\t\t</FlexItem>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isSavingPost, isCurrentPostPublished, isCurrentPostScheduled } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonClick: () => {\n\t\t\t\teditPost( { status: 'draft' } );\n\t\t\t\tsavePost();\n\t\t\t},\n\t\t};\n\t} ),\n] )( PostSwitchToDraftButton );\n"]}
@@ -9,13 +9,12 @@ import { store as coreStore } from '@wordpress/core-data';
9
9
  */
10
10
 
11
11
  import { store as editorStore } from '../../store';
12
- export function PostTaxonomiesCheck(_ref) {
13
- let {
14
- postType,
15
- taxonomies,
16
- children
17
- } = _ref;
18
- const hasTaxonomies = taxonomies === null || taxonomies === void 0 ? void 0 : taxonomies.some(taxonomy => taxonomy.types.includes(postType));
12
+ export function PostTaxonomiesCheck({
13
+ postType,
14
+ taxonomies,
15
+ children
16
+ }) {
17
+ const hasTaxonomies = taxonomies?.some(taxonomy => taxonomy.types.includes(postType));
19
18
 
20
19
  if (!hasTaxonomies) {
21
20
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/check.js"],"names":["compose","withSelect","store","coreStore","editorStore","PostTaxonomiesCheck","postType","taxonomies","children","hasTaxonomies","some","taxonomy","types","includes","select","getCurrentPostType","getTaxonomies","per_page"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,oBAAxB;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,mBAAT,OAAmE;AAAA,MAArC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,UAAZ;AAAwBC,IAAAA;AAAxB,GAAqC;AACzE,QAAMC,aAAa,GAAGF,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEG,IAAZ,CAAoBC,QAAF,IACvCA,QAAQ,CAACC,KAAT,CAAeC,QAAf,CAAyBP,QAAzB,CADqB,CAAtB;;AAGA,MAAK,CAAEG,aAAP,EAAuB;AACtB,WAAO,IAAP;AACA;;AAED,SAAOD,QAAP;AACA;AAED,eAAeR,OAAO,CAAE,CACvBC,UAAU,CAAIa,MAAF,IAAc;AACzB,SAAO;AACNR,IAAAA,QAAQ,EAAEQ,MAAM,CAAEV,WAAF,CAAN,CAAsBW,kBAAtB,EADJ;AAENR,IAAAA,UAAU,EAAEO,MAAM,CAAEX,SAAF,CAAN,CAAoBa,aAApB,CAAmC;AAAEC,MAAAA,QAAQ,EAAE,CAAC;AAAb,KAAnC;AAFN,GAAP;AAIA,CALS,CADa,CAAF,CAAP,CAOVZ,mBAPU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostTaxonomiesCheck( { postType, taxonomies, children } ) {\n\tconst hasTaxonomies = taxonomies?.some( ( taxonomy ) =>\n\t\ttaxonomy.types.includes( postType )\n\t);\n\tif ( ! hasTaxonomies ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default compose( [\n\twithSelect( ( 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] )( PostTaxonomiesCheck );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/check.js"],"names":["compose","withSelect","store","coreStore","editorStore","PostTaxonomiesCheck","postType","taxonomies","children","hasTaxonomies","some","taxonomy","types","includes","select","getCurrentPostType","getTaxonomies","per_page"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,oBAAxB;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,mBAAT,CAA8B;AAAEC,EAAAA,QAAF;AAAYC,EAAAA,UAAZ;AAAwBC,EAAAA;AAAxB,CAA9B,EAAmE;AACzE,QAAMC,aAAa,GAAGF,UAAU,EAAEG,IAAZ,CAAoBC,QAAF,IACvCA,QAAQ,CAACC,KAAT,CAAeC,QAAf,CAAyBP,QAAzB,CADqB,CAAtB;;AAGA,MAAK,CAAEG,aAAP,EAAuB;AACtB,WAAO,IAAP;AACA;;AAED,SAAOD,QAAP;AACA;AAED,eAAeR,OAAO,CAAE,CACvBC,UAAU,CAAIa,MAAF,IAAc;AACzB,SAAO;AACNR,IAAAA,QAAQ,EAAEQ,MAAM,CAAEV,WAAF,CAAN,CAAsBW,kBAAtB,EADJ;AAENR,IAAAA,UAAU,EAAEO,MAAM,CAAEX,SAAF,CAAN,CAAoBa,aAApB,CAAmC;AAAEC,MAAAA,QAAQ,EAAE,CAAC;AAAb,KAAnC;AAFN,GAAP;AAIA,CALS,CADa,CAAF,CAAP,CAOVZ,mBAPU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostTaxonomiesCheck( { postType, taxonomies, children } ) {\n\tconst hasTaxonomies = taxonomies?.some( ( taxonomy ) =>\n\t\ttaxonomy.types.includes( postType )\n\t);\n\tif ( ! hasTaxonomies ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default compose( [\n\twithSelect( ( 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] )( PostTaxonomiesCheck );\n"]}
@@ -69,12 +69,11 @@ function findOrCreateTerm(termName, restBase, namespace) {
69
69
  }).then(unescapeTerm);
70
70
  }
71
71
 
72
- export function FlatTermSelector(_ref) {
73
- var _taxonomy$labels$add_, _taxonomy$labels2, _taxonomy$labels$sing2, _taxonomy$labels3;
72
+ export function FlatTermSelector({
73
+ slug
74
+ }) {
75
+ var _taxonomy$labels$add_, _taxonomy$labels$sing2;
74
76
 
75
- let {
76
- slug
77
- } = _ref;
78
77
  const [values, setValues] = useState([]);
79
78
  const [search, setSearch] = useState('');
80
79
  const debouncedSearch = useDebounce(setSearch, 500);
@@ -86,7 +85,7 @@ export function FlatTermSelector(_ref) {
86
85
  hasCreateAction,
87
86
  hasResolvedTerms
88
87
  } = useSelect(select => {
89
- var _post$_links, _post$_links2, _post$_links3, _post$_links4;
88
+ var _post$_links, _post$_links2;
90
89
 
91
90
  const {
92
91
  getCurrentPost,
@@ -108,8 +107,8 @@ export function FlatTermSelector(_ref) {
108
107
  per_page: -1
109
108
  };
110
109
  return {
111
- hasCreateAction: _taxonomy ? (_post$_links = (_post$_links2 = post._links) === null || _post$_links2 === void 0 ? void 0 : _post$_links2['wp:action-create-' + _taxonomy.rest_base]) !== null && _post$_links !== void 0 ? _post$_links : false : false,
112
- hasAssignAction: _taxonomy ? (_post$_links3 = (_post$_links4 = post._links) === null || _post$_links4 === void 0 ? void 0 : _post$_links4['wp:action-assign-' + _taxonomy.rest_base]) !== null && _post$_links3 !== void 0 ? _post$_links3 : false : false,
110
+ hasCreateAction: _taxonomy ? (_post$_links = post._links?.['wp:action-create-' + _taxonomy.rest_base]) !== null && _post$_links !== void 0 ? _post$_links : false : false,
111
+ hasAssignAction: _taxonomy ? (_post$_links2 = post._links?.['wp:action-assign-' + _taxonomy.rest_base]) !== null && _post$_links2 !== void 0 ? _post$_links2 : false : false,
113
112
  taxonomy: _taxonomy,
114
113
  termIds: _termIds,
115
114
  terms: _termIds.length ? getEntityRecords('taxonomy', slug, query) : EMPTY_ARRAY,
@@ -127,7 +126,7 @@ export function FlatTermSelector(_ref) {
127
126
  search
128
127
  }) : EMPTY_ARRAY
129
128
  };
130
- }, [search]); // Update terms state only after the selectors are resolved.
129
+ }, [search, slug]); // Update terms state only after the selectors are resolved.
131
130
  // We're using this to avoid terms temporarily disappearing on slow networks
132
131
  // while core data makes REST API requests.
133
132
 
@@ -178,7 +177,7 @@ export function FlatTermSelector(_ref) {
178
177
  return;
179
178
  }
180
179
 
181
- const namespace = (_taxonomy$rest_namesp = taxonomy === null || taxonomy === void 0 ? void 0 : taxonomy.rest_namespace) !== null && _taxonomy$rest_namesp !== void 0 ? _taxonomy$rest_namesp : 'wp/v2';
180
+ const namespace = (_taxonomy$rest_namesp = taxonomy?.rest_namespace) !== null && _taxonomy$rest_namesp !== void 0 ? _taxonomy$rest_namesp : 'wp/v2';
182
181
  Promise.all(newTermNames.map(termName => findOrCreateTerm(termName, taxonomy.rest_base, namespace))).then(newTerms => {
183
182
  const newAvailableTerms = availableTerms.concat(newTerms);
184
183
  return onUpdateTerms(termNamesToIds(uniqueTerms, newAvailableTerms));
@@ -186,7 +185,7 @@ export function FlatTermSelector(_ref) {
186
185
  }
187
186
 
188
187
  function appendTerm(newTerm) {
189
- var _taxonomy$labels$sing, _taxonomy$labels;
188
+ var _taxonomy$labels$sing;
190
189
 
191
190
  if (termIds.includes(newTerm.id)) {
192
191
  return;
@@ -196,13 +195,13 @@ export function FlatTermSelector(_ref) {
196
195
  const defaultName = slug === 'post_tag' ? __('Tag') : __('Term');
197
196
  const termAddedMessage = sprintf(
198
197
  /* translators: %s: term name. */
199
- _x('%s added', 'term'), (_taxonomy$labels$sing = taxonomy === null || taxonomy === void 0 ? void 0 : (_taxonomy$labels = taxonomy.labels) === null || _taxonomy$labels === void 0 ? void 0 : _taxonomy$labels.singular_name) !== null && _taxonomy$labels$sing !== void 0 ? _taxonomy$labels$sing : defaultName);
198
+ _x('%s added', 'term'), (_taxonomy$labels$sing = taxonomy?.labels?.singular_name) !== null && _taxonomy$labels$sing !== void 0 ? _taxonomy$labels$sing : defaultName);
200
199
  speak(termAddedMessage, 'assertive');
201
200
  onUpdateTerms(newTermIds);
202
201
  }
203
202
 
204
- const newTermLabel = (_taxonomy$labels$add_ = taxonomy === null || taxonomy === void 0 ? void 0 : (_taxonomy$labels2 = taxonomy.labels) === null || _taxonomy$labels2 === void 0 ? void 0 : _taxonomy$labels2.add_new_item) !== null && _taxonomy$labels$add_ !== void 0 ? _taxonomy$labels$add_ : slug === 'post_tag' ? __('Add new tag') : __('Add new Term');
205
- const singularName = (_taxonomy$labels$sing2 = taxonomy === null || taxonomy === void 0 ? void 0 : (_taxonomy$labels3 = taxonomy.labels) === null || _taxonomy$labels3 === void 0 ? void 0 : _taxonomy$labels3.singular_name) !== null && _taxonomy$labels$sing2 !== void 0 ? _taxonomy$labels$sing2 : slug === 'post_tag' ? __('Tag') : __('Term');
203
+ const newTermLabel = (_taxonomy$labels$add_ = taxonomy?.labels?.add_new_item) !== null && _taxonomy$labels$add_ !== void 0 ? _taxonomy$labels$add_ : slug === 'post_tag' ? __('Add new tag') : __('Add new Term');
204
+ const singularName = (_taxonomy$labels$sing2 = taxonomy?.labels?.singular_name) !== null && _taxonomy$labels$sing2 !== void 0 ? _taxonomy$labels$sing2 : slug === 'post_tag' ? __('Tag') : __('Term');
206
205
  const termAddedLabel = sprintf(
207
206
  /* translators: %s: term name. */
208
207
  _x('%s added', 'term'), singularName);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/flat-term-selector.js"],"names":["escapeHtml","__","_x","sprintf","useEffect","useMemo","useState","FormTokenField","withFilters","useSelect","useDispatch","store","coreStore","useDebounce","apiFetch","speak","editorStore","unescapeString","unescapeTerm","MostUsedTerms","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","term","name","id","findOrCreateTerm","restBase","namespace","escapedTermName","path","method","data","catch","error","code","Promise","reject","resolve","term_id","then","FlatTermSelector","slug","values","setValues","search","setSearch","debouncedSearch","termIds","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","select","getCurrentPost","getEditedPostAttribute","getEntityRecords","getTaxonomy","hasFinishedResolution","post","_taxonomy","_termIds","rest_base","query","include","join","_links","length","searchResults","newValues","suggestions","editPost","onUpdateTerms","newTermIds","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","filter","rest_namespace","all","newTerms","newAvailableTerms","concat","appendTerm","newTerm","includes","defaultName","termAddedMessage","labels","singular_name","newTermLabel","add_new_item","singularName","termAddedLabel","termRemovedLabel","removeTermLabel","added","removed","remove"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport escapeHtml from 'escape-html';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { FormTokenField, withFilters } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport apiFetch from '@wordpress/api-fetch';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unescapeString, unescapeTerm } from '../../utils/terms';\nimport MostUsedTerms from './most-used-terms';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * Module constants\n */\nconst MAX_TERMS_SUGGESTIONS = 20;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names.map(\n\t\t( termName ) =>\n\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) ).id\n\t);\n};\n\n// Tries to create a term or fetch it if it already exists.\nfunction findOrCreateTerm( termName, restBase, namespace ) {\n\tconst escapedTermName = escapeHtml( termName );\n\n\treturn apiFetch( {\n\t\tpath: `/${ namespace }/${ restBase }`,\n\t\tmethod: 'POST',\n\t\tdata: { name: escapedTermName },\n\t} )\n\t\t.catch( ( error ) => {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\treturn Promise.reject( error );\n\t\t\t}\n\n\t\t\treturn Promise.resolve( {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: termName,\n\t\t\t} );\n\t\t} )\n\t\t.then( unescapeTerm );\n}\n\nexport function FlatTermSelector( { slug } ) {\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst {\n\t\tterms,\n\t\ttermIds,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getEntityRecords, getTaxonomy, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst post = getCurrentPost();\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst _termIds = _taxonomy\n\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t: EMPTY_ARRAY;\n\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search ]\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\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\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\treturn onUpdateTerms(\n\t\t\t\ttermNamesToIds( uniqueTerms, availableTerms )\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst namespace = taxonomy?.rest_namespace ?? 'wp/v2';\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( termName, taxonomy.rest_base, namespace )\n\t\t\t)\n\t\t).then( ( newTerms ) => {\n\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\treturn onUpdateTerms(\n\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t);\n\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\tvalue={ values }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\tlabel={ newTermLabel }\n\t\t\t\tmessages={ {\n\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<MostUsedTerms taxonomy={ taxonomy } onSelect={ appendTerm } />\n\t\t</>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )( FlatTermSelector );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/flat-term-selector.js"],"names":["escapeHtml","__","_x","sprintf","useEffect","useMemo","useState","FormTokenField","withFilters","useSelect","useDispatch","store","coreStore","useDebounce","apiFetch","speak","editorStore","unescapeString","unescapeTerm","MostUsedTerms","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","term","name","id","findOrCreateTerm","restBase","namespace","escapedTermName","path","method","data","catch","error","code","Promise","reject","resolve","term_id","then","FlatTermSelector","slug","values","setValues","search","setSearch","debouncedSearch","termIds","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","select","getCurrentPost","getEditedPostAttribute","getEntityRecords","getTaxonomy","hasFinishedResolution","post","_taxonomy","_termIds","rest_base","query","include","join","_links","length","searchResults","newValues","suggestions","editPost","onUpdateTerms","newTermIds","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","filter","rest_namespace","all","newTerms","newAvailableTerms","concat","appendTerm","newTerm","includes","defaultName","termAddedMessage","labels","singular_name","newTermLabel","add_new_item","singularName","termAddedLabel","termRemovedLabel","removeTermLabel","added","removed","remove"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport escapeHtml from 'escape-html';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { FormTokenField, withFilters } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport apiFetch from '@wordpress/api-fetch';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unescapeString, unescapeTerm } from '../../utils/terms';\nimport MostUsedTerms from './most-used-terms';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * Module constants\n */\nconst MAX_TERMS_SUGGESTIONS = 20;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names.map(\n\t\t( termName ) =>\n\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) ).id\n\t);\n};\n\n// Tries to create a term or fetch it if it already exists.\nfunction findOrCreateTerm( termName, restBase, namespace ) {\n\tconst escapedTermName = escapeHtml( termName );\n\n\treturn apiFetch( {\n\t\tpath: `/${ namespace }/${ restBase }`,\n\t\tmethod: 'POST',\n\t\tdata: { name: escapedTermName },\n\t} )\n\t\t.catch( ( error ) => {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\treturn Promise.reject( error );\n\t\t\t}\n\n\t\t\treturn Promise.resolve( {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: termName,\n\t\t\t} );\n\t\t} )\n\t\t.then( unescapeTerm );\n}\n\nexport function FlatTermSelector( { slug } ) {\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst {\n\t\tterms,\n\t\ttermIds,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getEntityRecords, getTaxonomy, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst post = getCurrentPost();\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst _termIds = _taxonomy\n\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t: EMPTY_ARRAY;\n\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search, slug ]\n\t);\n\n\t// Update terms state only after the selectors are resolved.\n\t// We're using this to avoid terms temporarily disappearing on slow networks\n\t// while core data makes REST API requests.\n\tuseEffect( () => {\n\t\tif ( hasResolvedTerms ) {\n\t\t\tconst newValues = ( terms ?? [] ).map( ( term ) =>\n\t\t\t\tunescapeString( term.name )\n\t\t\t);\n\n\t\t\tsetValues( newValues );\n\t\t}\n\t}, [ terms, hasResolvedTerms ] );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn ( searchResults ?? [] ).map( ( term ) =>\n\t\t\tunescapeString( term.name )\n\t\t);\n\t}, [ searchResults ] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\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\treturn onUpdateTerms(\n\t\t\t\ttermNamesToIds( uniqueTerms, availableTerms )\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst namespace = taxonomy?.rest_namespace ?? 'wp/v2';\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( termName, taxonomy.rest_base, namespace )\n\t\t\t)\n\t\t).then( ( newTerms ) => {\n\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\treturn onUpdateTerms(\n\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t);\n\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\tvalue={ values }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\tlabel={ newTermLabel }\n\t\t\t\tmessages={ {\n\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<MostUsedTerms taxonomy={ taxonomy } onSelect={ appendTerm } />\n\t\t</>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )( FlatTermSelector );\n"]}
@@ -133,12 +133,11 @@ export function getFilterMatcher(filterValue) {
133
133
  * @return {WPElement} Hierarchical term selector component.
134
134
  */
135
135
 
136
- export function HierarchicalTermSelector(_ref) {
137
- var _taxonomy$labels$sear, _taxonomy$labels3, _taxonomy$name;
136
+ export function HierarchicalTermSelector({
137
+ slug
138
+ }) {
139
+ var _taxonomy$labels$sear, _taxonomy$name;
138
140
 
139
- let {
140
- slug
141
- } = _ref;
142
141
  const [adding, setAdding] = useState(false);
143
142
  const [formName, setFormName] = useState('');
144
143
  /**
@@ -158,7 +157,7 @@ export function HierarchicalTermSelector(_ref) {
158
157
  availableTerms,
159
158
  taxonomy
160
159
  } = useSelect(select => {
161
- var _post$_links, _post$_links2, _post$_links3, _post$_links4;
160
+ var _post$_links, _post$_links2;
162
161
 
163
162
  const {
164
163
  getCurrentPost,
@@ -174,8 +173,8 @@ export function HierarchicalTermSelector(_ref) {
174
173
 
175
174
  const post = getCurrentPost();
176
175
  return {
177
- hasCreateAction: _taxonomy ? (_post$_links = (_post$_links2 = post._links) === null || _post$_links2 === void 0 ? void 0 : _post$_links2['wp:action-create-' + _taxonomy.rest_base]) !== null && _post$_links !== void 0 ? _post$_links : false : false,
178
- hasAssignAction: _taxonomy ? (_post$_links3 = (_post$_links4 = post._links) === null || _post$_links4 === void 0 ? void 0 : _post$_links4['wp:action-assign-' + _taxonomy.rest_base]) !== null && _post$_links3 !== void 0 ? _post$_links3 : false : false,
176
+ hasCreateAction: _taxonomy ? (_post$_links = post._links?.['wp:action-create-' + _taxonomy.rest_base]) !== null && _post$_links !== void 0 ? _post$_links : false : false,
177
+ hasAssignAction: _taxonomy ? (_post$_links2 = post._links?.['wp:action-assign-' + _taxonomy.rest_base]) !== null && _post$_links2 !== void 0 ? _post$_links2 : false : false,
179
178
  terms: _taxonomy ? getEditedPostAttribute(_taxonomy.rest_base) : EMPTY_ARRAY,
180
179
  loading: isResolving('getEntityRecords', ['taxonomy', slug, DEFAULT_QUERY]),
181
180
  availableTerms: getEntityRecords('taxonomy', slug, DEFAULT_QUERY) || EMPTY_ARRAY,
@@ -250,7 +249,7 @@ export function HierarchicalTermSelector(_ref) {
250
249
  };
251
250
 
252
251
  const onAddTerm = async event => {
253
- var _taxonomy$labels$sing, _taxonomy$labels;
252
+ var _taxonomy$labels$sing;
254
253
 
255
254
  event.preventDefault();
256
255
 
@@ -280,7 +279,7 @@ export function HierarchicalTermSelector(_ref) {
280
279
  const defaultName = slug === 'category' ? __('Category') : __('Term');
281
280
  const termAddedMessage = sprintf(
282
281
  /* translators: %s: taxonomy name */
283
- _x('%s added', 'term'), (_taxonomy$labels$sing = taxonomy === null || taxonomy === void 0 ? void 0 : (_taxonomy$labels = taxonomy.labels) === null || _taxonomy$labels === void 0 ? void 0 : _taxonomy$labels.singular_name) !== null && _taxonomy$labels$sing !== void 0 ? _taxonomy$labels$sing : defaultName);
282
+ _x('%s added', 'term'), (_taxonomy$labels$sing = taxonomy?.labels?.singular_name) !== null && _taxonomy$labels$sing !== void 0 ? _taxonomy$labels$sing : defaultName);
284
283
  speak(termAddedMessage, 'assertive');
285
284
  setAdding(false);
286
285
  setFormName('');
@@ -334,9 +333,9 @@ export function HierarchicalTermSelector(_ref) {
334
333
  };
335
334
 
336
335
  const labelWithFallback = (labelProperty, fallbackIsCategory, fallbackIsNotCategory) => {
337
- var _taxonomy$labels$labe, _taxonomy$labels2;
336
+ var _taxonomy$labels$labe;
338
337
 
339
- return (_taxonomy$labels$labe = taxonomy === null || taxonomy === void 0 ? void 0 : (_taxonomy$labels2 = taxonomy.labels) === null || _taxonomy$labels2 === void 0 ? void 0 : _taxonomy$labels2[labelProperty]) !== null && _taxonomy$labels$labe !== void 0 ? _taxonomy$labels$labe : slug === 'category' ? fallbackIsCategory : fallbackIsNotCategory;
338
+ return (_taxonomy$labels$labe = taxonomy?.labels?.[labelProperty]) !== null && _taxonomy$labels$labe !== void 0 ? _taxonomy$labels$labe : slug === 'category' ? fallbackIsCategory : fallbackIsNotCategory;
340
339
  };
341
340
 
342
341
  const newTermButtonLabel = labelWithFallback('add_new_item', __('Add new category'), __('Add new term'));
@@ -344,8 +343,8 @@ export function HierarchicalTermSelector(_ref) {
344
343
  const parentSelectLabel = labelWithFallback('parent_item', __('Parent Category'), __('Parent Term'));
345
344
  const noParentOption = `— ${parentSelectLabel} —`;
346
345
  const newTermSubmitLabel = newTermButtonLabel;
347
- const filterLabel = (_taxonomy$labels$sear = taxonomy === null || taxonomy === void 0 ? void 0 : (_taxonomy$labels3 = taxonomy.labels) === null || _taxonomy$labels3 === void 0 ? void 0 : _taxonomy$labels3.search_items) !== null && _taxonomy$labels$sear !== void 0 ? _taxonomy$labels$sear : __('Search Terms');
348
- const groupLabel = (_taxonomy$name = taxonomy === null || taxonomy === void 0 ? void 0 : taxonomy.name) !== null && _taxonomy$name !== void 0 ? _taxonomy$name : __('Terms');
346
+ const filterLabel = (_taxonomy$labels$sear = taxonomy?.labels?.search_items) !== null && _taxonomy$labels$sear !== void 0 ? _taxonomy$labels$sear : __('Search Terms');
347
+ const groupLabel = (_taxonomy$name = taxonomy?.name) !== null && _taxonomy$name !== void 0 ? _taxonomy$name : __('Terms');
349
348
  const showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;
350
349
  return createElement(Flex, {
351
350
  direction: "column",
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/hierarchical-term-selector.js"],"names":["__","_n","_x","sprintf","useMemo","useState","Button","CheckboxControl","TextControl","TreeSelect","withFilters","Flex","FlexItem","useDispatch","useSelect","useDebounce","store","coreStore","speak","decodeEntities","buildTermsTree","editorStore","DEFAULT_QUERY","per_page","orderby","order","_fields","context","MIN_TERMS_COUNT_FOR_FILTER","EMPTY_ARRAY","sortBySelected","termsTree","terms","treeHasSelection","termTree","indexOf","id","undefined","children","map","filter","child","length","termOrChildIsSelected","termA","termB","termASelected","termBSelected","newTermTree","sort","findTerm","parent","name","find","term","parseInt","toLowerCase","getFilterMatcher","filterValue","matchTermsForFilter","originalTerm","HierarchicalTermSelector","slug","adding","setAdding","formName","setFormName","formParent","setFormParent","showForm","setShowForm","setFilterValue","filteredTermsTree","setFilteredTermsTree","debouncedSpeak","hasCreateAction","hasAssignAction","loading","availableTerms","taxonomy","select","getCurrentPost","getEditedPostAttribute","getTaxonomy","getEntityRecords","isResolving","_taxonomy","post","_links","rest_base","editPost","saveEntityRecord","availableTermsTree","addTerm","onUpdateTerms","termIds","onChange","termId","hasTerm","includes","newTerms","onChangeFormName","value","onChangeFormParent","parentId","onToggleForm","onAddTerm","event","preventDefault","existingTerm","some","newTerm","defaultName","termAddedMessage","labels","singular_name","setFilter","newFilteredTermsTree","getResultCount","count","i","resultCount","resultsFoundMessage","renderTerms","renderedTerms","labelWithFallback","labelProperty","fallbackIsCategory","fallbackIsNotCategory","newTermButtonLabel","newTermLabel","parentSelectLabel","noParentOption","newTermSubmitLabel","filterLabel","search_items","groupLabel","showFilter"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, _x, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tTextControl,\n\tTreeSelect,\n\twithFilters,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module Constants\n */\nconst DEFAULT_QUERY = {\n\tper_page: -1,\n\torderby: 'name',\n\torder: 'asc',\n\t_fields: 'id,name,parent',\n\tcontext: 'view',\n};\n\nconst MIN_TERMS_COUNT_FOR_FILTER = 8;\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Sort Terms by Selected.\n *\n * @param {Object[]} termsTree Array of terms in tree format.\n * @param {number[]} terms Selected terms.\n *\n * @return {Object[]} Sorted array of terms.\n */\nexport function sortBySelected( termsTree, terms ) {\n\tconst treeHasSelection = ( termTree ) => {\n\t\tif ( terms.indexOf( termTree.id ) !== -1 ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( undefined === termTree.children ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (\n\t\t\ttermTree.children\n\t\t\t\t.map( treeHasSelection )\n\t\t\t\t.filter( ( child ) => child ).length > 0\n\t\t);\n\t};\n\tconst termOrChildIsSelected = ( termA, termB ) => {\n\t\tconst termASelected = treeHasSelection( termA );\n\t\tconst termBSelected = treeHasSelection( termB );\n\n\t\tif ( termASelected === termBSelected ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif ( termASelected && ! termBSelected ) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif ( ! termASelected && termBSelected ) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 0;\n\t};\n\tconst newTermTree = [ ...termsTree ];\n\tnewTermTree.sort( termOrChildIsSelected );\n\treturn newTermTree;\n}\n\n/**\n * Find term by parent id or name.\n *\n * @param {Object[]} terms Array of Terms.\n * @param {number|string} parent id.\n * @param {string} name Term name.\n * @return {Object} Term object.\n */\nexport function findTerm( terms, parent, name ) {\n\treturn terms.find( ( term ) => {\n\t\treturn (\n\t\t\t( ( ! term.parent && ! parent ) ||\n\t\t\t\tparseInt( term.parent ) === parseInt( parent ) ) &&\n\t\t\tterm.name.toLowerCase() === name.toLowerCase()\n\t\t);\n\t} );\n}\n\n/**\n * Get filter matcher function.\n *\n * @param {string} filterValue Filter value.\n * @return {(function(Object): (Object|boolean))} Matcher function.\n */\nexport function getFilterMatcher( filterValue ) {\n\tconst matchTermsForFilter = ( originalTerm ) => {\n\t\tif ( '' === filterValue ) {\n\t\t\treturn originalTerm;\n\t\t}\n\n\t\t// Shallow clone, because we'll be filtering the term's children and\n\t\t// don't want to modify the original term.\n\t\tconst term = { ...originalTerm };\n\n\t\t// Map and filter the children, recursive so we deal with grandchildren\n\t\t// and any deeper levels.\n\t\tif ( term.children.length > 0 ) {\n\t\t\tterm.children = term.children\n\t\t\t\t.map( matchTermsForFilter )\n\t\t\t\t.filter( ( child ) => child );\n\t\t}\n\n\t\t// If the term's name contains the filterValue, or it has children\n\t\t// (i.e. some child matched at some point in the tree) then return it.\n\t\tif (\n\t\t\t-1 !==\n\t\t\t\tterm.name.toLowerCase().indexOf( filterValue.toLowerCase() ) ||\n\t\t\tterm.children.length > 0\n\t\t) {\n\t\t\treturn term;\n\t\t}\n\n\t\t// Otherwise, return false. After mapping, the list of terms will need\n\t\t// to have false values filtered out.\n\t\treturn false;\n\t};\n\treturn matchTermsForFilter;\n}\n\n/**\n * Hierarchical term selector.\n *\n * @param {Object} props Component props.\n * @param {string} props.slug Taxonomy slug.\n * @return {WPElement} 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\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};\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\n\t\tconst newTerm = await addTerm( {\n\t\t\tname: formName,\n\t\t\tparent: formParent ? formParent : undefined,\n\t\t} );\n\n\t\tconst defaultName =\n\t\t\tslug === 'category' ? __( 'Category' ) : __( 'Term' );\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: taxonomy name */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\ttaxonomy?.labels?.singular_name ?? defaultName\n\t\t);\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tsetAdding( false );\n\t\tsetFormName( '' );\n\t\tsetFormParent( '' );\n\t\tonUpdateTerms( [ ...terms, newTerm.id ] );\n\t};\n\n\tconst setFilter = ( value ) => {\n\t\tconst newFilteredTermsTree = availableTermsTree\n\t\t\t.map( getFilterMatcher( value ) )\n\t\t\t.filter( ( term ) => term );\n\t\tconst getResultCount = ( termsTree ) => {\n\t\t\tlet count = 0;\n\t\t\tfor ( let i = 0; i < termsTree.length; i++ ) {\n\t\t\t\tcount++;\n\t\t\t\tif ( undefined !== termsTree[ i ].children ) {\n\t\t\t\t\tcount += getResultCount( termsTree[ i ].children );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t};\n\n\t\tsetFilterValue( value );\n\t\tsetFilteredTermsTree( newFilteredTermsTree );\n\n\t\tconst resultCount = getResultCount( newFilteredTermsTree );\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results */\n\t\t\t_n( '%d result found.', '%d results found.', resultCount ),\n\t\t\tresultCount\n\t\t);\n\n\t\tdebouncedSpeak( resultsFoundMessage, 'assertive' );\n\t};\n\n\tconst renderTerms = ( renderedTerms ) => {\n\t\treturn renderedTerms.map( ( term ) => {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={ term.id }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-choice\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tchecked={ terms.indexOf( term.id ) !== -1 }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tconst termId = parseInt( term.id, 10 );\n\t\t\t\t\t\t\tonChange( termId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ decodeEntities( term.name ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! term.children.length && (\n\t\t\t\t\t\t<div className=\"editor-post-taxonomies__hierarchical-terms-subchoices\">\n\t\t\t\t\t\t\t{ renderTerms( term.children ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t} );\n\t};\n\n\tconst labelWithFallback = (\n\t\tlabelProperty,\n\t\tfallbackIsCategory,\n\t\tfallbackIsNotCategory\n\t) =>\n\t\ttaxonomy?.labels?.[ labelProperty ] ??\n\t\t( slug === 'category' ? fallbackIsCategory : fallbackIsNotCategory );\n\n\tconst newTermButtonLabel = labelWithFallback(\n\t\t'add_new_item',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst newTermLabel = labelWithFallback(\n\t\t'new_item_name',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst parentSelectLabel = labelWithFallback(\n\t\t'parent_item',\n\t\t__( 'Parent Category' ),\n\t\t__( 'Parent Term' )\n\t);\n\tconst noParentOption = `— ${ parentSelectLabel } —`;\n\tconst newTermSubmitLabel = newTermButtonLabel;\n\tconst filterLabel = taxonomy?.labels?.search_items ?? __( 'Search Terms' );\n\tconst groupLabel = taxonomy?.name ?? __( 'Terms' );\n\tconst showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;\n\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t{ showFilter && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ filterLabel }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ setFilter }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-list\"\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\trole=\"group\"\n\t\t\t\taria-label={ groupLabel }\n\t\t\t>\n\t\t\t\t{ renderTerms(\n\t\t\t\t\t'' !== filterValue ? filteredTermsTree : availableTermsTree\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! loading && hasCreateAction && (\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ onToggleForm }\n\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-add\"\n\t\t\t\t\t\taria-expanded={ showForm }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ newTermButtonLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t) }\n\t\t\t{ showForm && (\n\t\t\t\t<form onSubmit={ onAddTerm }>\n\t\t\t\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__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__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\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"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/hierarchical-term-selector.js"],"names":["__","_n","_x","sprintf","useMemo","useState","Button","CheckboxControl","TextControl","TreeSelect","withFilters","Flex","FlexItem","useDispatch","useSelect","useDebounce","store","coreStore","speak","decodeEntities","buildTermsTree","editorStore","DEFAULT_QUERY","per_page","orderby","order","_fields","context","MIN_TERMS_COUNT_FOR_FILTER","EMPTY_ARRAY","sortBySelected","termsTree","terms","treeHasSelection","termTree","indexOf","id","undefined","children","map","filter","child","length","termOrChildIsSelected","termA","termB","termASelected","termBSelected","newTermTree","sort","findTerm","parent","name","find","term","parseInt","toLowerCase","getFilterMatcher","filterValue","matchTermsForFilter","originalTerm","HierarchicalTermSelector","slug","adding","setAdding","formName","setFormName","formParent","setFormParent","showForm","setShowForm","setFilterValue","filteredTermsTree","setFilteredTermsTree","debouncedSpeak","hasCreateAction","hasAssignAction","loading","availableTerms","taxonomy","select","getCurrentPost","getEditedPostAttribute","getTaxonomy","getEntityRecords","isResolving","_taxonomy","post","_links","rest_base","editPost","saveEntityRecord","availableTermsTree","addTerm","onUpdateTerms","termIds","onChange","termId","hasTerm","includes","newTerms","onChangeFormName","value","onChangeFormParent","parentId","onToggleForm","onAddTerm","event","preventDefault","existingTerm","some","newTerm","defaultName","termAddedMessage","labels","singular_name","setFilter","newFilteredTermsTree","getResultCount","count","i","resultCount","resultsFoundMessage","renderTerms","renderedTerms","labelWithFallback","labelProperty","fallbackIsCategory","fallbackIsNotCategory","newTermButtonLabel","newTermLabel","parentSelectLabel","noParentOption","newTermSubmitLabel","filterLabel","search_items","groupLabel","showFilter"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, _x, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tTextControl,\n\tTreeSelect,\n\twithFilters,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module Constants\n */\nconst DEFAULT_QUERY = {\n\tper_page: -1,\n\torderby: 'name',\n\torder: 'asc',\n\t_fields: 'id,name,parent',\n\tcontext: 'view',\n};\n\nconst MIN_TERMS_COUNT_FOR_FILTER = 8;\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Sort Terms by Selected.\n *\n * @param {Object[]} termsTree Array of terms in tree format.\n * @param {number[]} terms Selected terms.\n *\n * @return {Object[]} Sorted array of terms.\n */\nexport function sortBySelected( termsTree, terms ) {\n\tconst treeHasSelection = ( termTree ) => {\n\t\tif ( terms.indexOf( termTree.id ) !== -1 ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( undefined === termTree.children ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (\n\t\t\ttermTree.children\n\t\t\t\t.map( treeHasSelection )\n\t\t\t\t.filter( ( child ) => child ).length > 0\n\t\t);\n\t};\n\tconst termOrChildIsSelected = ( termA, termB ) => {\n\t\tconst termASelected = treeHasSelection( termA );\n\t\tconst termBSelected = treeHasSelection( termB );\n\n\t\tif ( termASelected === termBSelected ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif ( termASelected && ! termBSelected ) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif ( ! termASelected && termBSelected ) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 0;\n\t};\n\tconst newTermTree = [ ...termsTree ];\n\tnewTermTree.sort( termOrChildIsSelected );\n\treturn newTermTree;\n}\n\n/**\n * Find term by parent id or name.\n *\n * @param {Object[]} terms Array of Terms.\n * @param {number|string} parent id.\n * @param {string} name Term name.\n * @return {Object} Term object.\n */\nexport function findTerm( terms, parent, name ) {\n\treturn terms.find( ( term ) => {\n\t\treturn (\n\t\t\t( ( ! term.parent && ! parent ) ||\n\t\t\t\tparseInt( term.parent ) === parseInt( parent ) ) &&\n\t\t\tterm.name.toLowerCase() === name.toLowerCase()\n\t\t);\n\t} );\n}\n\n/**\n * Get filter matcher function.\n *\n * @param {string} filterValue Filter value.\n * @return {(function(Object): (Object|boolean))} Matcher function.\n */\nexport function getFilterMatcher( filterValue ) {\n\tconst matchTermsForFilter = ( originalTerm ) => {\n\t\tif ( '' === filterValue ) {\n\t\t\treturn originalTerm;\n\t\t}\n\n\t\t// Shallow clone, because we'll be filtering the term's children and\n\t\t// don't want to modify the original term.\n\t\tconst term = { ...originalTerm };\n\n\t\t// Map and filter the children, recursive so we deal with grandchildren\n\t\t// and any deeper levels.\n\t\tif ( term.children.length > 0 ) {\n\t\t\tterm.children = term.children\n\t\t\t\t.map( matchTermsForFilter )\n\t\t\t\t.filter( ( child ) => child );\n\t\t}\n\n\t\t// If the term's name contains the filterValue, or it has children\n\t\t// (i.e. some child matched at some point in the tree) then return it.\n\t\tif (\n\t\t\t-1 !==\n\t\t\t\tterm.name.toLowerCase().indexOf( filterValue.toLowerCase() ) ||\n\t\t\tterm.children.length > 0\n\t\t) {\n\t\t\treturn term;\n\t\t}\n\n\t\t// Otherwise, return false. After mapping, the list of terms will need\n\t\t// to have false values filtered out.\n\t\treturn false;\n\t};\n\treturn matchTermsForFilter;\n}\n\n/**\n * Hierarchical term selector.\n *\n * @param {Object} props Component props.\n * @param {string} props.slug Taxonomy slug.\n * @return {WPElement} 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\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};\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\n\t\tconst newTerm = await addTerm( {\n\t\t\tname: formName,\n\t\t\tparent: formParent ? formParent : undefined,\n\t\t} );\n\n\t\tconst defaultName =\n\t\t\tslug === 'category' ? __( 'Category' ) : __( 'Term' );\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: taxonomy name */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\ttaxonomy?.labels?.singular_name ?? defaultName\n\t\t);\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tsetAdding( false );\n\t\tsetFormName( '' );\n\t\tsetFormParent( '' );\n\t\tonUpdateTerms( [ ...terms, newTerm.id ] );\n\t};\n\n\tconst setFilter = ( value ) => {\n\t\tconst newFilteredTermsTree = availableTermsTree\n\t\t\t.map( getFilterMatcher( value ) )\n\t\t\t.filter( ( term ) => term );\n\t\tconst getResultCount = ( termsTree ) => {\n\t\t\tlet count = 0;\n\t\t\tfor ( let i = 0; i < termsTree.length; i++ ) {\n\t\t\t\tcount++;\n\t\t\t\tif ( undefined !== termsTree[ i ].children ) {\n\t\t\t\t\tcount += getResultCount( termsTree[ i ].children );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t};\n\n\t\tsetFilterValue( value );\n\t\tsetFilteredTermsTree( newFilteredTermsTree );\n\n\t\tconst resultCount = getResultCount( newFilteredTermsTree );\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results */\n\t\t\t_n( '%d result found.', '%d results found.', resultCount ),\n\t\t\tresultCount\n\t\t);\n\n\t\tdebouncedSpeak( resultsFoundMessage, 'assertive' );\n\t};\n\n\tconst renderTerms = ( renderedTerms ) => {\n\t\treturn renderedTerms.map( ( term ) => {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={ term.id }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-choice\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tchecked={ terms.indexOf( term.id ) !== -1 }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tconst termId = parseInt( term.id, 10 );\n\t\t\t\t\t\t\tonChange( termId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ decodeEntities( term.name ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! term.children.length && (\n\t\t\t\t\t\t<div className=\"editor-post-taxonomies__hierarchical-terms-subchoices\">\n\t\t\t\t\t\t\t{ renderTerms( term.children ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t} );\n\t};\n\n\tconst labelWithFallback = (\n\t\tlabelProperty,\n\t\tfallbackIsCategory,\n\t\tfallbackIsNotCategory\n\t) =>\n\t\ttaxonomy?.labels?.[ labelProperty ] ??\n\t\t( slug === 'category' ? fallbackIsCategory : fallbackIsNotCategory );\n\n\tconst newTermButtonLabel = labelWithFallback(\n\t\t'add_new_item',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst newTermLabel = labelWithFallback(\n\t\t'new_item_name',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst parentSelectLabel = labelWithFallback(\n\t\t'parent_item',\n\t\t__( 'Parent Category' ),\n\t\t__( 'Parent Term' )\n\t);\n\tconst noParentOption = `— ${ parentSelectLabel } —`;\n\tconst newTermSubmitLabel = newTermButtonLabel;\n\tconst filterLabel = taxonomy?.labels?.search_items ?? __( 'Search Terms' );\n\tconst groupLabel = taxonomy?.name ?? __( 'Terms' );\n\tconst showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;\n\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t{ showFilter && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ filterLabel }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ setFilter }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-list\"\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\trole=\"group\"\n\t\t\t\taria-label={ groupLabel }\n\t\t\t>\n\t\t\t\t{ renderTerms(\n\t\t\t\t\t'' !== filterValue ? filteredTermsTree : availableTermsTree\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! loading && hasCreateAction && (\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ onToggleForm }\n\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-add\"\n\t\t\t\t\t\taria-expanded={ showForm }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ newTermButtonLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t) }\n\t\t\t{ showForm && (\n\t\t\t\t<form onSubmit={ onAddTerm }>\n\t\t\t\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__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__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\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"]}
@@ -17,20 +17,15 @@ import { store as editorStore } from '../../store';
17
17
 
18
18
  const identity = x => x;
19
19
 
20
- export function PostTaxonomies(_ref) {
21
- let {
22
- postType,
23
- taxonomies,
24
- taxonomyWrapper = identity
25
- } = _ref;
20
+ export function PostTaxonomies({
21
+ postType,
22
+ taxonomies,
23
+ taxonomyWrapper = identity
24
+ }) {
26
25
  const availableTaxonomies = (taxonomies !== null && taxonomies !== void 0 ? taxonomies : []).filter(taxonomy => taxonomy.types.includes(postType));
27
26
  const visibleTaxonomies = availableTaxonomies.filter( // In some circumstances .visibility can end up as undefined so optional chaining operator required.
28
27
  // https://github.com/WordPress/gutenberg/issues/40326
29
- taxonomy => {
30
- var _taxonomy$visibility;
31
-
32
- return (_taxonomy$visibility = taxonomy.visibility) === null || _taxonomy$visibility === void 0 ? void 0 : _taxonomy$visibility.show_ui;
33
- });
28
+ taxonomy => taxonomy.visibility?.show_ui);
34
29
  return visibleTaxonomies.map(taxonomy => {
35
30
  const TaxonomyComponent = taxonomy.hierarchical ? HierarchicalTermSelector : FlatTermSelector;
36
31
  return createElement(Fragment, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/index.js"],"names":["Fragment","withSelect","compose","store","coreStore","HierarchicalTermSelector","FlatTermSelector","editorStore","identity","x","PostTaxonomies","postType","taxonomies","taxonomyWrapper","availableTaxonomies","filter","taxonomy","types","includes","visibleTaxonomies","visibility","show_ui","map","TaxonomyComponent","hierarchical","slug","select","getCurrentPostType","getTaxonomies","per_page"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,oBAAzB;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,OAAOC,wBAAP,MAAqC,8BAArC;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,SAASH,KAAK,IAAII,WAAlB,QAAqC,aAArC;;AAEA,MAAMC,QAAQ,GAAKC,CAAF,IAASA,CAA1B;;AAEA,OAAO,SAASC,cAAT,OAIH;AAAA,MAJ4B;AAC/BC,IAAAA,QAD+B;AAE/BC,IAAAA,UAF+B;AAG/BC,IAAAA,eAAe,GAAGL;AAHa,GAI5B;AACH,QAAMM,mBAAmB,GAAG,CAAEF,UAAF,aAAEA,UAAF,cAAEA,UAAF,GAAgB,EAAhB,EAAqBG,MAArB,CAA+BC,QAAF,IACxDA,QAAQ,CAACC,KAAT,CAAeC,QAAf,CAAyBP,QAAzB,CAD2B,CAA5B;AAGA,QAAMQ,iBAAiB,GAAGL,mBAAmB,CAACC,MAApB,EACzB;AACA;AACEC,EAAAA,QAAF;AAAA;;AAAA,mCAAgBA,QAAQ,CAACI,UAAzB,yDAAgB,qBAAqBC,OAArC;AAAA,GAHyB,CAA1B;AAKA,SAAOF,iBAAiB,CAACG,GAAlB,CAAyBN,QAAF,IAAgB;AAC7C,UAAMO,iBAAiB,GAAGP,QAAQ,CAACQ,YAAT,GACvBnB,wBADuB,GAEvBC,gBAFH;AAGA,WACC,cAAC,QAAD;AAAU,MAAA,GAAG,EAAI,YAAYU,QAAQ,CAACS,IAAM;AAA5C,OACGZ,eAAe,CAChB,cAAC,iBAAD;AAAmB,MAAA,IAAI,EAAGG,QAAQ,CAACS;AAAnC,MADgB,EAEhBT,QAFgB,CADlB,CADD;AAQA,GAZM,CAAP;AAaA;AAED,eAAed,OAAO,CAAE,CACvBD,UAAU,CAAIyB,MAAF,IAAc;AACzB,SAAO;AACNf,IAAAA,QAAQ,EAAEe,MAAM,CAAEnB,WAAF,CAAN,CAAsBoB,kBAAtB,EADJ;AAENf,IAAAA,UAAU,EAAEc,MAAM,CAAEtB,SAAF,CAAN,CAAoBwB,aAApB,CAAmC;AAAEC,MAAAA,QAAQ,EAAE,CAAC;AAAb,KAAnC;AAFN,GAAP;AAIA,CALS,CADa,CAAF,CAAP,CAOVnB,cAPU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\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( {\n\tpostType,\n\ttaxonomies,\n\ttaxonomyWrapper = identity,\n} ) {\n\tconst availableTaxonomies = ( taxonomies ?? [] ).filter( ( taxonomy ) =>\n\t\ttaxonomy.types.includes( postType )\n\t);\n\tconst visibleTaxonomies = availableTaxonomies.filter(\n\t\t// In some circumstances .visibility can end up as undefined so optional chaining operator required.\n\t\t// https://github.com/WordPress/gutenberg/issues/40326\n\t\t( taxonomy ) => taxonomy.visibility?.show_ui\n\t);\n\treturn visibleTaxonomies.map( ( taxonomy ) => {\n\t\tconst TaxonomyComponent = taxonomy.hierarchical\n\t\t\t? HierarchicalTermSelector\n\t\t\t: FlatTermSelector;\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 slug={ taxonomy.slug } />,\n\t\t\t\t\ttaxonomy\n\t\t\t\t) }\n\t\t\t</Fragment>\n\t\t);\n\t} );\n}\n\nexport default compose( [\n\twithSelect( ( 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] )( PostTaxonomies );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/index.js"],"names":["Fragment","withSelect","compose","store","coreStore","HierarchicalTermSelector","FlatTermSelector","editorStore","identity","x","PostTaxonomies","postType","taxonomies","taxonomyWrapper","availableTaxonomies","filter","taxonomy","types","includes","visibleTaxonomies","visibility","show_ui","map","TaxonomyComponent","hierarchical","slug","select","getCurrentPostType","getTaxonomies","per_page"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,oBAAzB;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,OAAOC,wBAAP,MAAqC,8BAArC;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,SAASH,KAAK,IAAII,WAAlB,QAAqC,aAArC;;AAEA,MAAMC,QAAQ,GAAKC,CAAF,IAASA,CAA1B;;AAEA,OAAO,SAASC,cAAT,CAAyB;AAC/BC,EAAAA,QAD+B;AAE/BC,EAAAA,UAF+B;AAG/BC,EAAAA,eAAe,GAAGL;AAHa,CAAzB,EAIH;AACH,QAAMM,mBAAmB,GAAG,CAAEF,UAAF,aAAEA,UAAF,cAAEA,UAAF,GAAgB,EAAhB,EAAqBG,MAArB,CAA+BC,QAAF,IACxDA,QAAQ,CAACC,KAAT,CAAeC,QAAf,CAAyBP,QAAzB,CAD2B,CAA5B;AAGA,QAAMQ,iBAAiB,GAAGL,mBAAmB,CAACC,MAApB,EACzB;AACA;AACEC,EAAAA,QAAF,IAAgBA,QAAQ,CAACI,UAAT,EAAqBC,OAHZ,CAA1B;AAKA,SAAOF,iBAAiB,CAACG,GAAlB,CAAyBN,QAAF,IAAgB;AAC7C,UAAMO,iBAAiB,GAAGP,QAAQ,CAACQ,YAAT,GACvBnB,wBADuB,GAEvBC,gBAFH;AAGA,WACC,cAAC,QAAD;AAAU,MAAA,GAAG,EAAI,YAAYU,QAAQ,CAACS,IAAM;AAA5C,OACGZ,eAAe,CAChB,cAAC,iBAAD;AAAmB,MAAA,IAAI,EAAGG,QAAQ,CAACS;AAAnC,MADgB,EAEhBT,QAFgB,CADlB,CADD;AAQA,GAZM,CAAP;AAaA;AAED,eAAed,OAAO,CAAE,CACvBD,UAAU,CAAIyB,MAAF,IAAc;AACzB,SAAO;AACNf,IAAAA,QAAQ,EAAEe,MAAM,CAAEnB,WAAF,CAAN,CAAsBoB,kBAAtB,EADJ;AAENf,IAAAA,UAAU,EAAEc,MAAM,CAAEtB,SAAF,CAAN,CAAoBwB,aAApB,CAAmC;AAAEC,MAAAA,QAAQ,EAAE,CAAC;AAAb,KAAnC;AAFN,GAAP;AAIA,CALS,CADa,CAAF,CAAP,CAOVnB,cAPU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\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( {\n\tpostType,\n\ttaxonomies,\n\ttaxonomyWrapper = identity,\n} ) {\n\tconst availableTaxonomies = ( taxonomies ?? [] ).filter( ( taxonomy ) =>\n\t\ttaxonomy.types.includes( postType )\n\t);\n\tconst visibleTaxonomies = availableTaxonomies.filter(\n\t\t// In some circumstances .visibility can end up as undefined so optional chaining operator required.\n\t\t// https://github.com/WordPress/gutenberg/issues/40326\n\t\t( taxonomy ) => taxonomy.visibility?.show_ui\n\t);\n\treturn visibleTaxonomies.map( ( taxonomy ) => {\n\t\tconst TaxonomyComponent = taxonomy.hierarchical\n\t\t\t? HierarchicalTermSelector\n\t\t\t: FlatTermSelector;\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 slug={ taxonomy.slug } />,\n\t\t\t\t\ttaxonomy\n\t\t\t\t) }\n\t\t\t</Fragment>\n\t\t);\n\t} );\n}\n\nexport default compose( [\n\twithSelect( ( 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] )( PostTaxonomies );\n"]}
@@ -20,11 +20,10 @@ const DEFAULT_QUERY = {
20
20
  _fields: 'id,name,count',
21
21
  context: 'view'
22
22
  };
23
- export default function MostUsedTerms(_ref) {
24
- let {
25
- onSelect,
26
- taxonomy
27
- } = _ref;
23
+ export default function MostUsedTerms({
24
+ onSelect,
25
+ taxonomy
26
+ }) {
28
27
  const {
29
28
  _terms,
30
29
  showTerms
@@ -32,7 +31,7 @@ export default function MostUsedTerms(_ref) {
32
31
  const mostUsedTerms = select(coreStore).getEntityRecords('taxonomy', taxonomy.slug, DEFAULT_QUERY);
33
32
  return {
34
33
  _terms: mostUsedTerms,
35
- showTerms: (mostUsedTerms === null || mostUsedTerms === void 0 ? void 0 : mostUsedTerms.length) >= MIN_MOST_USED_TERMS
34
+ showTerms: mostUsedTerms?.length >= MIN_MOST_USED_TERMS
36
35
  };
37
36
  }, [taxonomy.slug]);
38
37
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/most-used-terms.js"],"names":["BaseControl","Button","useSelect","store","coreStore","unescapeTerms","MIN_MOST_USED_TERMS","DEFAULT_QUERY","per_page","orderby","order","hide_empty","_fields","context","MostUsedTerms","onSelect","taxonomy","_terms","showTerms","select","mostUsedTerms","getEntityRecords","slug","length","terms","labels","most_used","map","term","id","name"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAT,EAAsBC,MAAtB,QAAoC,uBAApC;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASC,aAAT,QAA8B,mBAA9B;AAEA,MAAMC,mBAAmB,GAAG,CAA5B;AACA,MAAMC,aAAa,GAAG;AACrBC,EAAAA,QAAQ,EAAE,EADW;AAErBC,EAAAA,OAAO,EAAE,OAFY;AAGrBC,EAAAA,KAAK,EAAE,MAHc;AAIrBC,EAAAA,UAAU,EAAE,IAJS;AAKrBC,EAAAA,OAAO,EAAE,eALY;AAMrBC,EAAAA,OAAO,EAAE;AANY,CAAtB;AASA,eAAe,SAASC,aAAT,OAAiD;AAAA,MAAzB;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAyB;AAC/D,QAAM;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAwBhB,SAAS,CACpCiB,MAAF,IAAc;AACb,UAAMC,aAAa,GAAGD,MAAM,CAAEf,SAAF,CAAN,CAAoBiB,gBAApB,CACrB,UADqB,EAErBL,QAAQ,CAACM,IAFY,EAGrBf,aAHqB,CAAtB;AAKA,WAAO;AACNU,MAAAA,MAAM,EAAEG,aADF;AAENF,MAAAA,SAAS,EAAE,CAAAE,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEG,MAAf,KAAyBjB;AAF9B,KAAP;AAIA,GAXqC,EAYtC,CAAEU,QAAQ,CAACM,IAAX,CAZsC,CAAvC;;AAeA,MAAK,CAAEJ,SAAP,EAAmB;AAClB,WAAO,IAAP;AACA;;AAED,QAAMM,KAAK,GAAGnB,aAAa,CAAEY,MAAF,CAA3B;AAEA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,WAAD,CAAa,WAAb;AACC,IAAA,EAAE,EAAC,IADJ;AAEC,IAAA,SAAS,EAAC;AAFX,KAIGD,QAAQ,CAACS,MAAT,CAAgBC,SAJnB,CADD,EAYC;AACC,IAAA,IAAI,EAAC,MADN;AAEC,IAAA,SAAS,EAAC;AAFX,KAIGF,KAAK,CAACG,GAAN,CAAaC,IAAF,IACZ;AAAI,IAAA,GAAG,EAAGA,IAAI,CAACC;AAAf,KACC,cAAC,MAAD;AACC,IAAA,OAAO,EAAC,MADT;AAEC,IAAA,OAAO,EAAG,MAAMd,QAAQ,CAAEa,IAAF;AAFzB,KAIGA,IAAI,CAACE,IAJR,CADD,CADC,CAJH,CAZD,CADD;AA+BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BaseControl, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unescapeTerms } from '../../utils/terms';\n\nconst MIN_MOST_USED_TERMS = 3;\nconst DEFAULT_QUERY = {\n\tper_page: 10,\n\torderby: 'count',\n\torder: 'desc',\n\thide_empty: true,\n\t_fields: 'id,name,count',\n\tcontext: 'view',\n};\n\nexport default function MostUsedTerms( { onSelect, taxonomy } ) {\n\tconst { _terms, showTerms } = useSelect(\n\t\t( select ) => {\n\t\t\tconst mostUsedTerms = select( coreStore ).getEntityRecords(\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy.slug,\n\t\t\t\tDEFAULT_QUERY\n\t\t\t);\n\t\t\treturn {\n\t\t\t\t_terms: mostUsedTerms,\n\t\t\t\tshowTerms: mostUsedTerms?.length >= MIN_MOST_USED_TERMS,\n\t\t\t};\n\t\t},\n\t\t[ taxonomy.slug ]\n\t);\n\n\tif ( ! showTerms ) {\n\t\treturn null;\n\t}\n\n\tconst terms = unescapeTerms( _terms );\n\n\treturn (\n\t\t<div className=\"editor-post-taxonomies__flat-term-most-used\">\n\t\t\t<BaseControl.VisualLabel\n\t\t\t\tas=\"h3\"\n\t\t\t\tclassName=\"editor-post-taxonomies__flat-term-most-used-label\"\n\t\t\t>\n\t\t\t\t{ taxonomy.labels.most_used }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t{ /*\n\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t */\n\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t<ul\n\t\t\t\trole=\"list\"\n\t\t\t\tclassName=\"editor-post-taxonomies__flat-term-most-used-list\"\n\t\t\t>\n\t\t\t\t{ terms.map( ( term ) => (\n\t\t\t\t\t<li key={ term.id }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ () => onSelect( term ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ term.name }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</li>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/most-used-terms.js"],"names":["BaseControl","Button","useSelect","store","coreStore","unescapeTerms","MIN_MOST_USED_TERMS","DEFAULT_QUERY","per_page","orderby","order","hide_empty","_fields","context","MostUsedTerms","onSelect","taxonomy","_terms","showTerms","select","mostUsedTerms","getEntityRecords","slug","length","terms","labels","most_used","map","term","id","name"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAT,EAAsBC,MAAtB,QAAoC,uBAApC;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASC,aAAT,QAA8B,mBAA9B;AAEA,MAAMC,mBAAmB,GAAG,CAA5B;AACA,MAAMC,aAAa,GAAG;AACrBC,EAAAA,QAAQ,EAAE,EADW;AAErBC,EAAAA,OAAO,EAAE,OAFY;AAGrBC,EAAAA,KAAK,EAAE,MAHc;AAIrBC,EAAAA,UAAU,EAAE,IAJS;AAKrBC,EAAAA,OAAO,EAAE,eALY;AAMrBC,EAAAA,OAAO,EAAE;AANY,CAAtB;AASA,eAAe,SAASC,aAAT,CAAwB;AAAEC,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAAxB,EAAiD;AAC/D,QAAM;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAwBhB,SAAS,CACpCiB,MAAF,IAAc;AACb,UAAMC,aAAa,GAAGD,MAAM,CAAEf,SAAF,CAAN,CAAoBiB,gBAApB,CACrB,UADqB,EAErBL,QAAQ,CAACM,IAFY,EAGrBf,aAHqB,CAAtB;AAKA,WAAO;AACNU,MAAAA,MAAM,EAAEG,aADF;AAENF,MAAAA,SAAS,EAAEE,aAAa,EAAEG,MAAf,IAAyBjB;AAF9B,KAAP;AAIA,GAXqC,EAYtC,CAAEU,QAAQ,CAACM,IAAX,CAZsC,CAAvC;;AAeA,MAAK,CAAEJ,SAAP,EAAmB;AAClB,WAAO,IAAP;AACA;;AAED,QAAMM,KAAK,GAAGnB,aAAa,CAAEY,MAAF,CAA3B;AAEA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,WAAD,CAAa,WAAb;AACC,IAAA,EAAE,EAAC,IADJ;AAEC,IAAA,SAAS,EAAC;AAFX,KAIGD,QAAQ,CAACS,MAAT,CAAgBC,SAJnB,CADD,EAYC;AACC,IAAA,IAAI,EAAC,MADN;AAEC,IAAA,SAAS,EAAC;AAFX,KAIGF,KAAK,CAACG,GAAN,CAAaC,IAAF,IACZ;AAAI,IAAA,GAAG,EAAGA,IAAI,CAACC;AAAf,KACC,cAAC,MAAD;AACC,IAAA,OAAO,EAAC,MADT;AAEC,IAAA,OAAO,EAAG,MAAMd,QAAQ,CAAEa,IAAF;AAFzB,KAIGA,IAAI,CAACE,IAJR,CADD,CADC,CAJH,CAZD,CADD;AA+BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BaseControl, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unescapeTerms } from '../../utils/terms';\n\nconst MIN_MOST_USED_TERMS = 3;\nconst DEFAULT_QUERY = {\n\tper_page: 10,\n\torderby: 'count',\n\torder: 'desc',\n\thide_empty: true,\n\t_fields: 'id,name,count',\n\tcontext: 'view',\n};\n\nexport default function MostUsedTerms( { onSelect, taxonomy } ) {\n\tconst { _terms, showTerms } = useSelect(\n\t\t( select ) => {\n\t\t\tconst mostUsedTerms = select( coreStore ).getEntityRecords(\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy.slug,\n\t\t\t\tDEFAULT_QUERY\n\t\t\t);\n\t\t\treturn {\n\t\t\t\t_terms: mostUsedTerms,\n\t\t\t\tshowTerms: mostUsedTerms?.length >= MIN_MOST_USED_TERMS,\n\t\t\t};\n\t\t},\n\t\t[ taxonomy.slug ]\n\t);\n\n\tif ( ! showTerms ) {\n\t\treturn null;\n\t}\n\n\tconst terms = unescapeTerms( _terms );\n\n\treturn (\n\t\t<div className=\"editor-post-taxonomies__flat-term-most-used\">\n\t\t\t<BaseControl.VisualLabel\n\t\t\t\tas=\"h3\"\n\t\t\t\tclassName=\"editor-post-taxonomies__flat-term-most-used-label\"\n\t\t\t>\n\t\t\t\t{ taxonomy.labels.most_used }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t{ /*\n\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t */\n\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t<ul\n\t\t\t\trole=\"list\"\n\t\t\t\tclassName=\"editor-post-taxonomies__flat-term-most-used-list\"\n\t\t\t>\n\t\t\t\t{ terms.map( ( term ) => (\n\t\t\t\t\t<li key={ term.id }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ () => onSelect( term ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ term.name }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</li>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t</div>\n\t);\n}\n"]}