@wordpress/block-library 9.30.1-next.a730c9c8c.0 → 9.31.1-next.233ccab9b.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 (232) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/accordion/edit.js +6 -5
  3. package/build/accordion/edit.js.map +1 -1
  4. package/build/accordion/index.js +39 -4
  5. package/build/accordion/index.js.map +1 -1
  6. package/build/accordion/save.js +2 -19
  7. package/build/accordion/save.js.map +1 -1
  8. package/build/accordion/view.js +50 -16
  9. package/build/accordion/view.js.map +1 -1
  10. package/build/accordion-content/index.js +17 -3
  11. package/build/accordion-content/index.js.map +1 -1
  12. package/build/accordion-content/save.js +5 -7
  13. package/build/accordion-content/save.js.map +1 -1
  14. package/build/accordion-header/edit.js +13 -47
  15. package/build/accordion-header/edit.js.map +1 -1
  16. package/build/accordion-header/index.js +6 -11
  17. package/build/accordion-header/index.js.map +1 -1
  18. package/build/accordion-header/save.js +11 -44
  19. package/build/accordion-header/save.js.map +1 -1
  20. package/build/accordion-panel/edit.js +2 -1
  21. package/build/accordion-panel/edit.js.map +1 -1
  22. package/build/accordion-panel/index.js +3 -3
  23. package/build/accordion-panel/index.js.map +1 -1
  24. package/build/accordion-panel/save.js +3 -1
  25. package/build/accordion-panel/save.js.map +1 -1
  26. package/build/avatar/hooks.js +7 -17
  27. package/build/avatar/hooks.js.map +1 -1
  28. package/build/group/variations.js +3 -4
  29. package/build/group/variations.js.map +1 -1
  30. package/build/navigation/edit/leaf-more-menu.js +6 -1
  31. package/build/navigation/edit/leaf-more-menu.js.map +1 -1
  32. package/build/navigation/index.js +2 -1
  33. package/build/navigation/index.js.map +1 -1
  34. package/build/navigation-link/index.js +2 -1
  35. package/build/navigation-link/index.js.map +1 -1
  36. package/build/navigation-submenu/edit.js +2 -4
  37. package/build/navigation-submenu/edit.js.map +1 -1
  38. package/build/navigation-submenu/index.js +2 -1
  39. package/build/navigation-submenu/index.js.map +1 -1
  40. package/build/page-list/index.js +2 -1
  41. package/build/page-list/index.js.map +1 -1
  42. package/build/post-author/edit.js +7 -6
  43. package/build/post-author/edit.js.map +1 -1
  44. package/build/post-date/edit.js +16 -3
  45. package/build/post-date/edit.js.map +1 -1
  46. package/build/post-time-to-read/edit.js +111 -11
  47. package/build/post-time-to-read/edit.js.map +1 -1
  48. package/build/post-time-to-read/index.js +17 -1
  49. package/build/post-time-to-read/index.js.map +1 -1
  50. package/build/table-of-contents/index.js +1 -0
  51. package/build/table-of-contents/index.js.map +1 -1
  52. package/build/term-description/edit.js +18 -2
  53. package/build/term-description/edit.js.map +1 -1
  54. package/build/term-description/index.js +1 -0
  55. package/build/term-description/index.js.map +1 -1
  56. package/build/term-description/use-term-description.js +85 -0
  57. package/build/term-description/use-term-description.js.map +1 -0
  58. package/build/term-template/edit.js +11 -7
  59. package/build/term-template/edit.js.map +1 -1
  60. package/build/term-template/index.js +1 -1
  61. package/build/terms-query/index.js +8 -2
  62. package/build/terms-query/index.js.map +1 -1
  63. package/build/terms-query/inspector-controls/advanced-controls.js +51 -0
  64. package/build/terms-query/inspector-controls/advanced-controls.js.map +1 -0
  65. package/build/terms-query/inspector-controls/display-options.js +87 -0
  66. package/build/terms-query/inspector-controls/display-options.js.map +1 -0
  67. package/build/terms-query/inspector-controls/empty-terms-control.js +38 -0
  68. package/build/terms-query/inspector-controls/empty-terms-control.js.map +1 -0
  69. package/build/terms-query/inspector-controls/hierarchy-control.js +40 -0
  70. package/build/terms-query/inspector-controls/hierarchy-control.js.map +1 -0
  71. package/build/terms-query/inspector-controls/index.js +127 -0
  72. package/build/terms-query/inspector-controls/index.js.map +1 -0
  73. package/build/terms-query/inspector-controls/max-terms-control.js +50 -0
  74. package/build/terms-query/inspector-controls/max-terms-control.js.map +1 -0
  75. package/build/terms-query/inspector-controls/ordering-controls.js +57 -0
  76. package/build/terms-query/inspector-controls/ordering-controls.js.map +1 -0
  77. package/build/terms-query/inspector-controls/taxonomy-control.js +52 -0
  78. package/build/terms-query/inspector-controls/taxonomy-control.js.map +1 -0
  79. package/build/utils/hooks.js +15 -0
  80. package/build/utils/hooks.js.map +1 -1
  81. package/build-module/accordion/edit.js +6 -5
  82. package/build-module/accordion/edit.js.map +1 -1
  83. package/build-module/accordion/index.js +40 -4
  84. package/build-module/accordion/index.js.map +1 -1
  85. package/build-module/accordion/save.js +2 -17
  86. package/build-module/accordion/save.js.map +1 -1
  87. package/build-module/accordion/view.js +51 -17
  88. package/build-module/accordion/view.js.map +1 -1
  89. package/build-module/accordion-content/index.js +17 -3
  90. package/build-module/accordion-content/index.js.map +1 -1
  91. package/build-module/accordion-content/save.js +5 -7
  92. package/build-module/accordion-content/save.js.map +1 -1
  93. package/build-module/accordion-header/edit.js +14 -45
  94. package/build-module/accordion-header/edit.js.map +1 -1
  95. package/build-module/accordion-header/index.js +6 -11
  96. package/build-module/accordion-header/index.js.map +1 -1
  97. package/build-module/accordion-header/save.js +12 -42
  98. package/build-module/accordion-header/save.js.map +1 -1
  99. package/build-module/accordion-panel/edit.js +2 -1
  100. package/build-module/accordion-panel/edit.js.map +1 -1
  101. package/build-module/accordion-panel/index.js +3 -3
  102. package/build-module/accordion-panel/index.js.map +1 -1
  103. package/build-module/accordion-panel/save.js +3 -1
  104. package/build-module/accordion-panel/save.js.map +1 -1
  105. package/build-module/avatar/hooks.js +5 -15
  106. package/build-module/avatar/hooks.js.map +1 -1
  107. package/build-module/group/variations.js +3 -4
  108. package/build-module/group/variations.js.map +1 -1
  109. package/build-module/navigation/edit/leaf-more-menu.js +6 -1
  110. package/build-module/navigation/edit/leaf-more-menu.js.map +1 -1
  111. package/build-module/navigation/index.js +2 -1
  112. package/build-module/navigation/index.js.map +1 -1
  113. package/build-module/navigation-link/index.js +2 -1
  114. package/build-module/navigation-link/index.js.map +1 -1
  115. package/build-module/navigation-submenu/edit.js +1 -3
  116. package/build-module/navigation-submenu/edit.js.map +1 -1
  117. package/build-module/navigation-submenu/index.js +2 -1
  118. package/build-module/navigation-submenu/index.js.map +1 -1
  119. package/build-module/page-list/index.js +2 -1
  120. package/build-module/page-list/index.js.map +1 -1
  121. package/build-module/post-author/edit.js +8 -7
  122. package/build-module/post-author/edit.js.map +1 -1
  123. package/build-module/post-date/edit.js +17 -4
  124. package/build-module/post-date/edit.js.map +1 -1
  125. package/build-module/post-time-to-read/edit.js +112 -14
  126. package/build-module/post-time-to-read/edit.js.map +1 -1
  127. package/build-module/post-time-to-read/index.js +17 -1
  128. package/build-module/post-time-to-read/index.js.map +1 -1
  129. package/build-module/table-of-contents/index.js +1 -0
  130. package/build-module/table-of-contents/index.js.map +1 -1
  131. package/build-module/term-description/edit.js +18 -2
  132. package/build-module/term-description/edit.js.map +1 -1
  133. package/build-module/term-description/index.js +1 -0
  134. package/build-module/term-description/index.js.map +1 -1
  135. package/build-module/term-description/use-term-description.js +79 -0
  136. package/build-module/term-description/use-term-description.js.map +1 -0
  137. package/build-module/term-template/edit.js +11 -7
  138. package/build-module/term-template/edit.js.map +1 -1
  139. package/build-module/term-template/index.js +1 -1
  140. package/build-module/terms-query/index.js +8 -2
  141. package/build-module/terms-query/index.js.map +1 -1
  142. package/build-module/terms-query/inspector-controls/advanced-controls.js +44 -0
  143. package/build-module/terms-query/inspector-controls/advanced-controls.js.map +1 -0
  144. package/build-module/terms-query/inspector-controls/display-options.js +80 -0
  145. package/build-module/terms-query/inspector-controls/display-options.js.map +1 -0
  146. package/build-module/terms-query/inspector-controls/empty-terms-control.js +31 -0
  147. package/build-module/terms-query/inspector-controls/empty-terms-control.js.map +1 -0
  148. package/build-module/terms-query/inspector-controls/hierarchy-control.js +33 -0
  149. package/build-module/terms-query/inspector-controls/hierarchy-control.js.map +1 -0
  150. package/build-module/terms-query/inspector-controls/index.js +119 -0
  151. package/build-module/terms-query/inspector-controls/index.js.map +1 -0
  152. package/build-module/terms-query/inspector-controls/max-terms-control.js +43 -0
  153. package/build-module/terms-query/inspector-controls/max-terms-control.js.map +1 -0
  154. package/build-module/terms-query/inspector-controls/ordering-controls.js +50 -0
  155. package/build-module/terms-query/inspector-controls/ordering-controls.js.map +1 -0
  156. package/build-module/terms-query/inspector-controls/taxonomy-control.js +45 -0
  157. package/build-module/terms-query/inspector-controls/taxonomy-control.js.map +1 -0
  158. package/build-module/utils/hooks.js +14 -0
  159. package/build-module/utils/hooks.js.map +1 -1
  160. package/build-style/accordion-content/style-rtl.css +155 -0
  161. package/build-style/accordion-content/style.css +155 -0
  162. package/build-style/{accordion → accordion-header}/style-rtl.css +12 -51
  163. package/build-style/{accordion → accordion-header}/style.css +12 -51
  164. package/build-style/accordion-panel/style-rtl.css +140 -0
  165. package/build-style/accordion-panel/style.css +140 -0
  166. package/build-style/style-rtl.css +25 -38
  167. package/build-style/style.css +25 -38
  168. package/package.json +35 -35
  169. package/src/accordion/block.json +16 -3
  170. package/src/accordion/edit.js +39 -34
  171. package/src/accordion/index.js +35 -1
  172. package/src/accordion/index.php +3 -19
  173. package/src/accordion/save.js +2 -16
  174. package/src/accordion/view.js +64 -15
  175. package/src/accordion-content/block.json +17 -3
  176. package/src/accordion-content/index.php +3 -2
  177. package/src/accordion-content/save.js +4 -10
  178. package/src/accordion-content/style.scss +21 -0
  179. package/src/accordion-header/block.json +6 -11
  180. package/src/accordion-header/edit.js +17 -61
  181. package/src/accordion-header/save.js +24 -54
  182. package/src/accordion-header/style.scss +39 -0
  183. package/src/accordion-panel/block.json +3 -3
  184. package/src/accordion-panel/edit.js +1 -0
  185. package/src/accordion-panel/save.js +3 -1
  186. package/src/accordion-panel/style.scss +8 -0
  187. package/src/avatar/hooks.js +5 -10
  188. package/src/comments/index.php +2 -2
  189. package/src/group/variations.js +3 -14
  190. package/src/navigation/block.json +2 -1
  191. package/src/navigation/edit/leaf-more-menu.js +9 -1
  192. package/src/navigation/index.php +2 -2
  193. package/src/navigation-link/block.json +2 -1
  194. package/src/navigation-submenu/block.json +2 -1
  195. package/src/navigation-submenu/edit.js +1 -4
  196. package/src/page-list/block.json +2 -1
  197. package/src/post-author/edit.js +16 -7
  198. package/src/post-date/edit.js +16 -16
  199. package/src/post-time-to-read/block.json +17 -1
  200. package/src/post-time-to-read/edit.js +167 -20
  201. package/src/post-time-to-read/index.php +47 -15
  202. package/src/social-link/index.php +2 -2
  203. package/src/style.scss +3 -1
  204. package/src/table-of-contents/block.json +1 -0
  205. package/src/table-of-contents/index.php +44 -0
  206. package/src/term-description/block.json +1 -0
  207. package/src/term-description/edit.js +18 -3
  208. package/src/term-description/use-term-description.js +109 -0
  209. package/src/term-template/block.json +1 -1
  210. package/src/term-template/edit.js +11 -6
  211. package/src/term-template/index.php +13 -7
  212. package/src/terms-query/block.json +8 -2
  213. package/src/terms-query/inspector-controls/advanced-controls.js +37 -0
  214. package/src/terms-query/inspector-controls/display-options.js +87 -0
  215. package/src/terms-query/inspector-controls/empty-terms-control.js +30 -0
  216. package/src/terms-query/inspector-controls/hierarchy-control.js +30 -0
  217. package/src/terms-query/inspector-controls/index.js +137 -0
  218. package/src/terms-query/inspector-controls/max-terms-control.js +44 -0
  219. package/src/terms-query/inspector-controls/ordering-controls.js +55 -0
  220. package/src/terms-query/inspector-controls/taxonomy-control.js +41 -0
  221. package/src/utils/hooks.js +9 -0
  222. package/build/accordion-content/icons.js +0 -30
  223. package/build/accordion-content/icons.js.map +0 -1
  224. package/build/terms-query/inspector-controls.js +0 -231
  225. package/build/terms-query/inspector-controls.js.map +0 -1
  226. package/build-module/accordion-content/icons.js +0 -22
  227. package/build-module/accordion-content/icons.js.map +0 -1
  228. package/build-module/terms-query/inspector-controls.js +0 -224
  229. package/build-module/terms-query/inspector-controls.js.map +0 -1
  230. package/src/accordion/style.scss +0 -82
  231. package/src/accordion-content/icons.js +0 -23
  232. package/src/terms-query/inspector-controls.js +0 -239
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_data","_icons","_i18n","_blockEditor","_coreData","_blocks","_jsxRuntime","TEMPLATE","layout","type","orientation","style","spacing","blockGap","metadata","name","__","bindings","content","source","args","key","placeholder","TermTemplateInnerBlocks","classList","innerBlocksProps","useInnerBlocksProps","className","clsx","template","__unstableDisableLayoutClassNames","jsx","TermTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","useBlockPreview","props","handleOnClick","display","undefined","tabIndex","role","onClick","onKeyPress","MemoizedTermTemplateBlockPreview","memo","buildTermsTree","terms","termsById","rootTerms","forEach","term","id","children","parent","push","renderTermNode","termNode","renderTerm","jsxs","length","map","child","isActiveTerm","termId","activeBlockContextId","blockContexts","TermTemplateEdit","clientId","setAttributes","context","termQuery","taxonomy","order","orderBy","hideEmpty","hierarchical","perPage","__unstableLayoutClassNames","useState","replaceInnerBlocks","useDispatch","blockEditorStore","queryArgs","orderby","hide_empty","per_page","records","isResolving","useEntityRecords","filteredTerms","useMemo","filter","variations","defaultVariation","useSelect","select","getBlocks","getBlockVariations","getDefaultBlockVariation","blocksStore","blockProps","useBlockProps","termData","__experimentalBlockVariationPicker","icon","label","instructions","onSelect","nextVariation","attributes","innerBlocks","createBlocksFromInnerBlocksTemplate","allowSkip","blockContext","BlockContextProvider","value","Fragment","slice"],"sources":["@wordpress/block-library/src/term-template/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { layout } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\t__experimentalBlockVariationPicker as BlockVariationPicker,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/group',\n\t\t{\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\torientation: 'horizontal',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tspacing: {\n\t\t\t\t\tblockGap: '0.5rem',\n\t\t\t\t},\n\t\t\t},\n\t\t\tmetadata: {\n\t\t\t\tname: __( 'Term Name with Count' ),\n\t\t\t},\n\t\t},\n\t\t[\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Name' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'name',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tplaceholder: __( '(count)' ),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Count' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'count',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t],\n];\n\nfunction TermTemplateInnerBlocks( { classList } ) {\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: clsx( 'wp-block-term', classList ) },\n\t\t{ template: TEMPLATE, __unstableDisableLayoutClassNames: true }\n\t);\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction TermTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tclassList,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: {\n\t\t\tclassName: clsx( 'wp-block-term', classList ),\n\t\t},\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\n// Prevent re-rendering of the block preview when the terms data changes.\nconst MemoizedTermTemplateBlockPreview = memo( TermTemplateBlockPreview );\n\n/**\n * Builds a hierarchical tree structure from flat terms array.\n *\n * @param {Array} terms Array of term objects.\n * @return {Array} Tree structure with parent/child relationships.\n */\nfunction buildTermsTree( terms ) {\n\tconst termsById = {};\n\tconst rootTerms = [];\n\n\tterms.forEach( ( term ) => {\n\t\ttermsById[ term.id ] = {\n\t\t\tterm,\n\t\t\tchildren: [],\n\t\t};\n\t} );\n\n\tterms.forEach( ( term ) => {\n\t\tif ( term.parent && termsById[ term.parent ] ) {\n\t\t\ttermsById[ term.parent ].children.push( termsById[ term.id ] );\n\t\t} else {\n\t\t\trootTerms.push( termsById[ term.id ] );\n\t\t}\n\t} );\n\n\treturn rootTerms;\n}\n\n/**\n * Renders a single term node and its children recursively.\n *\n * @param {Object} termNode Term node with term object and children.\n * @param {Function} renderTerm Function to render individual terms.\n * @return {JSX.Element} Rendered term node with children.\n */\nfunction renderTermNode( termNode, renderTerm ) {\n\treturn (\n\t\t<li className=\"wp-block-term\">\n\t\t\t{ renderTerm( termNode.term ) }\n\t\t\t{ termNode.children.length > 0 && (\n\t\t\t\t<ul>\n\t\t\t\t\t{ termNode.children.map( ( child ) =>\n\t\t\t\t\t\trenderTermNode( child, renderTerm )\n\t\t\t\t\t) }\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\n/**\n * Checks if a term is the currently active term.\n *\n * @param {number} termId The term ID to check.\n * @param {number} activeBlockContextId The currently active block context ID.\n * @param {Array} blockContexts Array of block contexts.\n * @return {boolean} True if the term is active, false otherwise.\n */\nfunction isActiveTerm( termId, activeBlockContextId, blockContexts ) {\n\treturn termId === ( activeBlockContextId || blockContexts[ 0 ]?.termId );\n}\n\nexport default function TermTemplateEdit( {\n\tclientId,\n\tsetAttributes,\n\tcontext: {\n\t\ttermQuery: {\n\t\t\ttaxonomy,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\thideEmpty,\n\t\t\thierarchical,\n\t\t\tparent,\n\t\t\tperPage = 10,\n\t\t} = {},\n\t},\n\t__unstableLayoutClassNames,\n} ) {\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst queryArgs = {\n\t\torder,\n\t\torderby: orderBy,\n\t\thide_empty: hideEmpty,\n\t\t// To preview the data the closest to the frontend, we fetch the largest number of terms\n\t\t// and limit them during rendering. This is because WP_Term_Query fetches data in hierarchical manner,\n\t\t// while in editor we build the hierarchy manually. It also allows us to avoid re-fetching data when max terms changes.\n\t\tper_page: 100,\n\t};\n\n\tconst { records: terms, isResolving } = useEntityRecords(\n\t\t'taxonomy',\n\t\ttaxonomy,\n\t\tqueryArgs\n\t);\n\n\t// Filter to show only top-level terms if \"Show only top-level terms\" is enabled.\n\tconst filteredTerms = useMemo( () => {\n\t\tif ( ! terms || parent !== 0 ) {\n\t\t\treturn terms;\n\t\t}\n\t\treturn terms.filter( ( term ) => ! term.parent );\n\t}, [ terms, parent ] );\n\n\tconst { blocks, variations, defaultVariation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst { getBlockVariations, getDefaultBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t\tvariations: getBlockVariations( 'core/term-template', 'block' ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation(\n\t\t\t\t\t'core/term-template',\n\t\t\t\t\t'block'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: __unstableLayoutClassNames,\n\t} );\n\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tfilteredTerms?.map( ( term ) => ( {\n\t\t\t\ttaxonomy,\n\t\t\t\ttermId: term.id,\n\t\t\t\tclassList: `term-${ term.id }`,\n\t\t\t\ttermData: term,\n\t\t\t} ) ),\n\t\t[ filteredTerms, taxonomy ]\n\t);\n\n\t// Show variation picker if no blocks exist.\n\tif ( ! blocks?.length ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<BlockVariationPicker\n\t\t\t\t\ticon={ layout }\n\t\t\t\t\tlabel={ __( 'Term Template' ) }\n\t\t\t\t\tvariations={ variations }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Choose a layout for displaying terms:'\n\t\t\t\t\t) }\n\t\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tallowSkip\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isResolving ) {\n\t\treturn (\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t);\n\t}\n\n\tif ( ! filteredTerms?.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No terms found.' ) }</p>;\n\t}\n\n\tconst renderTerm = ( term ) => {\n\t\tconst blockContext = {\n\t\t\ttaxonomy,\n\t\t\ttermId: term.id,\n\t\t\tclassList: `term-${ term.id }`,\n\t\t\ttermData: term,\n\t\t};\n\n\t\treturn (\n\t\t\t<BlockContextProvider key={ term.id } value={ blockContext }>\n\t\t\t\t{ isActiveTerm(\n\t\t\t\t\tterm.id,\n\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\tblockContexts\n\t\t\t\t) ? (\n\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t/>\n\t\t\t\t) : null }\n\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tblockContextId={ term.id }\n\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\tisHidden={ isActiveTerm(\n\t\t\t\t\t\tterm.id,\n\t\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\t\tblockContexts\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</BlockContextProvider>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ hierarchical\n\t\t\t\t\t? buildTermsTree( filteredTerms ).map( ( termNode ) =>\n\t\t\t\t\t\t\trenderTermNode( termNode, renderTerm )\n\t\t\t\t\t )\n\t\t\t\t\t: blockContexts &&\n\t\t\t\t\t blockContexts\n\t\t\t\t\t\t\t.slice( 0, perPage )\n\t\t\t\t\t\t\t.map( ( blockContext ) => (\n\t\t\t\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\t\t\t\tkey={ blockContext.termId }\n\t\t\t\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ blockContext.termId ===\n\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId ) ? (\n\t\t\t\t\t\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tblockContextId={ blockContext.termId }\n\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId={\n\t\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\t\t\t\tblockContext.termId ===\n\t\t\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_data","_icons","_i18n","_blockEditor","_coreData","_blocks","_jsxRuntime","TEMPLATE","layout","type","orientation","style","spacing","blockGap","metadata","name","__","bindings","content","source","args","key","placeholder","TermTemplateInnerBlocks","classList","innerBlocksProps","useInnerBlocksProps","className","clsx","template","__unstableDisableLayoutClassNames","jsx","TermTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","useBlockPreview","props","handleOnClick","display","undefined","tabIndex","role","onClick","onKeyPress","MemoizedTermTemplateBlockPreview","memo","buildTermsTree","terms","termsById","rootTerms","forEach","term","id","children","parent","push","renderTermNode","termNode","renderTerm","jsxs","length","map","child","isActiveTerm","termId","activeBlockContextId","blockContexts","TermTemplateEdit","clientId","setAttributes","context","termsToShow","termQuery","taxonomy","order","orderBy","hideEmpty","hierarchical","perPage","__unstableLayoutClassNames","useState","replaceInnerBlocks","useDispatch","blockEditorStore","queryArgs","orderby","hide_empty","per_page","records","isResolving","useEntityRecords","filteredTerms","useMemo","filter","variations","defaultVariation","useSelect","select","getBlocks","getBlockVariations","getDefaultBlockVariation","blocksStore","blockProps","useBlockProps","termData","__experimentalBlockVariationPicker","icon","label","instructions","onSelect","nextVariation","attributes","innerBlocks","createBlocksFromInnerBlocksTemplate","allowSkip","blockContext","BlockContextProvider","value","Fragment","slice"],"sources":["@wordpress/block-library/src/term-template/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { layout } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\t__experimentalBlockVariationPicker as BlockVariationPicker,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/group',\n\t\t{\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\torientation: 'horizontal',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tspacing: {\n\t\t\t\t\tblockGap: '0.5rem',\n\t\t\t\t},\n\t\t\t},\n\t\t\tmetadata: {\n\t\t\t\tname: __( 'Term Name with Count' ),\n\t\t\t},\n\t\t},\n\t\t[\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Name' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'name',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tplaceholder: __( '(count)' ),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Count' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'count',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t],\n];\n\nfunction TermTemplateInnerBlocks( { classList } ) {\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: clsx( 'wp-block-term', classList ) },\n\t\t{ template: TEMPLATE, __unstableDisableLayoutClassNames: true }\n\t);\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction TermTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tclassList,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: {\n\t\t\tclassName: clsx( 'wp-block-term', classList ),\n\t\t},\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\n// Prevent re-rendering of the block preview when the terms data changes.\nconst MemoizedTermTemplateBlockPreview = memo( TermTemplateBlockPreview );\n\n/**\n * Builds a hierarchical tree structure from flat terms array.\n *\n * @param {Array} terms Array of term objects.\n * @return {Array} Tree structure with parent/child relationships.\n */\nfunction buildTermsTree( terms ) {\n\tconst termsById = {};\n\tconst rootTerms = [];\n\n\tterms.forEach( ( term ) => {\n\t\ttermsById[ term.id ] = {\n\t\t\tterm,\n\t\t\tchildren: [],\n\t\t};\n\t} );\n\n\tterms.forEach( ( term ) => {\n\t\tif ( term.parent && termsById[ term.parent ] ) {\n\t\t\ttermsById[ term.parent ].children.push( termsById[ term.id ] );\n\t\t} else {\n\t\t\trootTerms.push( termsById[ term.id ] );\n\t\t}\n\t} );\n\n\treturn rootTerms;\n}\n\n/**\n * Renders a single term node and its children recursively.\n *\n * @param {Object} termNode Term node with term object and children.\n * @param {Function} renderTerm Function to render individual terms.\n * @return {JSX.Element} Rendered term node with children.\n */\nfunction renderTermNode( termNode, renderTerm ) {\n\treturn (\n\t\t<li className=\"wp-block-term\">\n\t\t\t{ renderTerm( termNode.term ) }\n\t\t\t{ termNode.children.length > 0 && (\n\t\t\t\t<ul>\n\t\t\t\t\t{ termNode.children.map( ( child ) =>\n\t\t\t\t\t\trenderTermNode( child, renderTerm )\n\t\t\t\t\t) }\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\n/**\n * Checks if a term is the currently active term.\n *\n * @param {number} termId The term ID to check.\n * @param {number} activeBlockContextId The currently active block context ID.\n * @param {Array} blockContexts Array of block contexts.\n * @return {boolean} True if the term is active, false otherwise.\n */\nfunction isActiveTerm( termId, activeBlockContextId, blockContexts ) {\n\treturn termId === ( activeBlockContextId || blockContexts[ 0 ]?.termId );\n}\n\nexport default function TermTemplateEdit( {\n\tclientId,\n\tsetAttributes,\n\tcontext: {\n\t\ttermsToShow,\n\t\ttermQuery: {\n\t\t\ttaxonomy,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\thideEmpty,\n\t\t\thierarchical,\n\t\t\tperPage = 10,\n\t\t} = {},\n\t},\n\t__unstableLayoutClassNames,\n} ) {\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst queryArgs = {\n\t\torder,\n\t\torderby: orderBy,\n\t\thide_empty: hideEmpty,\n\t\t// To preview the data the closest to the frontend, we fetch the largest number of terms\n\t\t// and limit them during rendering. This is because WP_Term_Query fetches data in hierarchical manner,\n\t\t// while in editor we build the hierarchy manually. It also allows us to avoid re-fetching data when max terms changes.\n\t\tper_page: 100,\n\t};\n\n\tconst { records: terms, isResolving } = useEntityRecords(\n\t\t'taxonomy',\n\t\ttaxonomy,\n\t\tqueryArgs\n\t);\n\n\tconst filteredTerms = useMemo( () => {\n\t\tif ( ! terms ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( termsToShow === 'top-level' ) {\n\t\t\treturn terms.filter( ( term ) => ! term.parent );\n\t\t}\n\t\tif ( termsToShow === 'subterms' ) {\n\t\t\treturn terms.filter( ( term ) => term.parent );\n\t\t}\n\t\treturn terms;\n\t}, [ terms, termsToShow ] );\n\n\tconst { blocks, variations, defaultVariation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst { getBlockVariations, getDefaultBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t\tvariations: getBlockVariations( 'core/term-template', 'block' ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation(\n\t\t\t\t\t'core/term-template',\n\t\t\t\t\t'block'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: __unstableLayoutClassNames,\n\t} );\n\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tfilteredTerms?.map( ( term ) => ( {\n\t\t\t\ttaxonomy,\n\t\t\t\ttermId: term.id,\n\t\t\t\tclassList: `term-${ term.id }`,\n\t\t\t\ttermData: term,\n\t\t\t} ) ),\n\t\t[ filteredTerms, taxonomy ]\n\t);\n\n\t// Show variation picker if no blocks exist.\n\tif ( ! blocks?.length ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<BlockVariationPicker\n\t\t\t\t\ticon={ layout }\n\t\t\t\t\tlabel={ __( 'Term Template' ) }\n\t\t\t\t\tvariations={ variations }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Choose a layout for displaying terms:'\n\t\t\t\t\t) }\n\t\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tallowSkip\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isResolving ) {\n\t\treturn (\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t);\n\t}\n\n\tif ( ! filteredTerms?.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No terms found.' ) }</p>;\n\t}\n\n\tconst renderTerm = ( term ) => {\n\t\tconst blockContext = {\n\t\t\ttaxonomy,\n\t\t\ttermId: term.id,\n\t\t\tclassList: `term-${ term.id }`,\n\t\t\ttermData: term,\n\t\t};\n\n\t\treturn (\n\t\t\t<BlockContextProvider key={ term.id } value={ blockContext }>\n\t\t\t\t{ isActiveTerm(\n\t\t\t\t\tterm.id,\n\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\tblockContexts\n\t\t\t\t) ? (\n\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t/>\n\t\t\t\t) : null }\n\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tblockContextId={ term.id }\n\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\tisHidden={ isActiveTerm(\n\t\t\t\t\t\tterm.id,\n\t\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\t\tblockContexts\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</BlockContextProvider>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ hierarchical\n\t\t\t\t\t? buildTermsTree( filteredTerms ).map( ( termNode ) =>\n\t\t\t\t\t\t\trenderTermNode( termNode, renderTerm )\n\t\t\t\t\t )\n\t\t\t\t\t: blockContexts &&\n\t\t\t\t\t blockContexts\n\t\t\t\t\t\t\t.slice( 0, perPage )\n\t\t\t\t\t\t\t.map( ( blockContext ) => (\n\t\t\t\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\t\t\t\tkey={ blockContext.termId }\n\t\t\t\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ blockContext.termId ===\n\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId ) ? (\n\t\t\t\t\t\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tblockContextId={ blockContext.termId }\n\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId={\n\t\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\t\t\t\tblockContext.termId ===\n\t\t\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -26,7 +26,7 @@ const metadata = exports.metadata = {
26
26
  ancestor: ["core/terms-query"],
27
27
  description: "Contains the block elements used to render a taxonomy term, like the name, description, and more.",
28
28
  textdomain: "default",
29
- usesContext: ["termQuery"],
29
+ usesContext: ["termQuery", "termsToShow"],
30
30
  attributes: {
31
31
  namespace: {
32
32
  type: "string"
@@ -40,10 +40,15 @@ const metadata = exports.metadata = {
40
40
  hideEmpty: true,
41
41
  include: [],
42
42
  exclude: [],
43
- parent: 0,
43
+ parent: false,
44
44
  hierarchical: false
45
45
  }
46
46
  },
47
+ termsToShow: {
48
+ type: "string",
49
+ "default": "all",
50
+ "enum": ["all", "top-level", "subterms"]
51
+ },
47
52
  tagName: {
48
53
  type: "string",
49
54
  "default": "div"
@@ -54,7 +59,8 @@ const metadata = exports.metadata = {
54
59
  },
55
60
  providesContext: {
56
61
  termQueryId: "termQueryId",
57
- termQuery: "termQuery"
62
+ termQuery: "termQuery",
63
+ termsToShow: "termsToShow"
58
64
  },
59
65
  supports: {
60
66
  align: ["wide", "full"],
@@ -1 +1 @@
1
- {"version":3,"names":["_icons","require","_initBlock","_interopRequireDefault","_edit","_save","metadata","exports","$schema","apiVersion","__experimental","name","title","category","description","keywords","textdomain","attributes","termQueryId","type","termQuery","perPage","pages","taxonomy","order","orderBy","hideEmpty","include","exclude","parent","hierarchical","tagName","namespace","providesContext","supports","align","html","interactivity","allowedBlocks","style","settings","icon","edit","save","example","init","initBlock"],"sources":["@wordpress/block-library/src/terms-query/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { loop as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,KAAA,GAAAF,sBAAA,CAAAF,OAAA;AAXA;AACA;AACA;AAGA;AACA;AACA;AAFA,MAAAK,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,WAAA;MAAAC,IAAA;IAAA;IAAAC,SAAA;MAAAD,IAAA;MAAA;QAAAE,OAAA;QAAAC,KAAA;QAAAC,QAAA;QAAAC,KAAA;QAAAC,OAAA;QAAAC,SAAA;QAAAC,OAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,YAAA;MAAA;IAAA;IAAAC,OAAA;MAAAZ,IAAA;MAAA;IAAA;IAAAa,SAAA;MAAAb,IAAA;IAAA;EAAA;EAAAc,eAAA;IAAAf,WAAA;IAAAE,SAAA;EAAA;EAAAc,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,aAAA;EAAA;EAAAC,aAAA;EAAAC,KAAA;AAAA;AAQA,MAAM;EAAE5B;AAAK,CAAC,GAAGL,QAAQ;AAACC,OAAA,CAAAI,IAAA,GAAAA,IAAA;AAGnB,MAAM6B,QAAQ,GAAAjC,OAAA,CAAAiC,QAAA,GAAG;EACvBC,IAAI,EAAJA,WAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,OAAO,EAAE,CAAC;AACX,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAEnC,IAAI;EAAEL,QAAQ;EAAEkC;AAAS,CAAE,CAAC;AAACjC,OAAA,CAAAsC,IAAA,GAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["_icons","require","_initBlock","_interopRequireDefault","_edit","_save","metadata","exports","$schema","apiVersion","__experimental","name","title","category","description","keywords","textdomain","attributes","termQueryId","type","termQuery","perPage","pages","taxonomy","order","orderBy","hideEmpty","include","exclude","parent","hierarchical","termsToShow","tagName","namespace","providesContext","supports","align","html","interactivity","allowedBlocks","style","settings","icon","edit","save","example","init","initBlock"],"sources":["@wordpress/block-library/src/terms-query/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { loop as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,KAAA,GAAAF,sBAAA,CAAAF,OAAA;AAXA;AACA;AACA;AAGA;AACA;AACA;AAFA,MAAAK,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,WAAA;MAAAC,IAAA;IAAA;IAAAC,SAAA;MAAAD,IAAA;MAAA;QAAAE,OAAA;QAAAC,KAAA;QAAAC,QAAA;QAAAC,KAAA;QAAAC,OAAA;QAAAC,SAAA;QAAAC,OAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,YAAA;MAAA;IAAA;IAAAC,WAAA;MAAAZ,IAAA;MAAA;MAAA;IAAA;IAAAa,OAAA;MAAAb,IAAA;MAAA;IAAA;IAAAc,SAAA;MAAAd,IAAA;IAAA;EAAA;EAAAe,eAAA;IAAAhB,WAAA;IAAAE,SAAA;IAAAW,WAAA;EAAA;EAAAI,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,aAAA;EAAA;EAAAC,aAAA;EAAAC,KAAA;AAAA;AAQA,MAAM;EAAE7B;AAAK,CAAC,GAAGL,QAAQ;AAACC,OAAA,CAAAI,IAAA,GAAAA,IAAA;AAGnB,MAAM8B,QAAQ,GAAAlC,OAAA,CAAAkC,QAAA,GAAG;EACvBC,IAAI,EAAJA,WAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,OAAO,EAAE,CAAC;AACX,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAEpC,IAAI;EAAEL,QAAQ;EAAEmC;AAAS,CAAE,CAAC;AAAClC,OAAA,CAAAuC,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = AdvancedControls;
7
+ var _i18n = require("@wordpress/i18n");
8
+ var _blockEditor = require("@wordpress/block-editor");
9
+ var _lockUnlock = require("../../lock-unlock");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ /**
12
+ * WordPress dependencies
13
+ */
14
+
15
+ /**
16
+ * Internal dependencies
17
+ */
18
+
19
+ const {
20
+ HTMLElementControl
21
+ } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
22
+ function AdvancedControls({
23
+ TagName,
24
+ setAttributes,
25
+ clientId
26
+ }) {
27
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.InspectorControls, {
28
+ group: "advanced",
29
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(HTMLElementControl, {
30
+ tagName: TagName,
31
+ onChange: value => setAttributes({
32
+ tagName: value
33
+ }),
34
+ clientId: clientId,
35
+ options: [{
36
+ label: (0, _i18n.__)('Default (<div>)'),
37
+ value: 'div'
38
+ }, {
39
+ label: '<main>',
40
+ value: 'main'
41
+ }, {
42
+ label: '<section>',
43
+ value: 'section'
44
+ }, {
45
+ label: '<aside>',
46
+ value: 'aside'
47
+ }]
48
+ })
49
+ });
50
+ }
51
+ //# sourceMappingURL=advanced-controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_i18n","require","_blockEditor","_lockUnlock","_jsxRuntime","HTMLElementControl","unlock","blockEditorPrivateApis","AdvancedControls","TagName","setAttributes","clientId","jsx","InspectorControls","group","children","tagName","onChange","value","options","label","__"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/advanced-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nexport default function AdvancedControls( {\n\tTagName,\n\tsetAttributes,\n\tclientId,\n} ) {\n\treturn (\n\t\t<InspectorControls group=\"advanced\">\n\t\t\t<HTMLElementControl\n\t\t\t\ttagName={ TagName }\n\t\t\t\tonChange={ ( value ) => setAttributes( { tagName: value } ) }\n\t\t\t\tclientId={ clientId }\n\t\t\t\toptions={ [\n\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t] }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAQA,IAAAE,WAAA,GAAAF,OAAA;AAA2C,IAAAG,WAAA,GAAAH,OAAA;AAZ3C;AACA;AACA;;AAOA;AACA;AACA;;AAGA,MAAM;EAAEI;AAAmB,CAAC,GAAG,IAAAC,kBAAM,EAAEC,wBAAuB,CAAC;AAEhD,SAASC,gBAAgBA,CAAE;EACzCC,OAAO;EACPC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,oBACC,IAAAP,WAAA,CAAAQ,GAAA,EAACV,YAAA,CAAAW,iBAAiB;IAACC,KAAK,EAAC,UAAU;IAAAC,QAAA,eAClC,IAAAX,WAAA,CAAAQ,GAAA,EAACP,kBAAkB;MAClBW,OAAO,EAAGP,OAAS;MACnBQ,QAAQ,EAAKC,KAAK,IAAMR,aAAa,CAAE;QAAEM,OAAO,EAAEE;MAAM,CAAE,CAAG;MAC7DP,QAAQ,EAAGA,QAAU;MACrBQ,OAAO,EAAG,CACT;QAAEC,KAAK,EAAE,IAAAC,QAAE,EAAE,iBAAkB,CAAC;QAAEH,KAAK,EAAE;MAAM,CAAC,EAChD;QAAEE,KAAK,EAAE,QAAQ;QAAEF,KAAK,EAAE;MAAO,CAAC,EAClC;QAAEE,KAAK,EAAE,WAAW;QAAEF,KAAK,EAAE;MAAU,CAAC,EACxC;QAAEE,KAAK,EAAE,SAAS;QAAEF,KAAK,EAAE;MAAQ,CAAC;IAClC,CACH;EAAC,CACgB,CAAC;AAEtB","ignoreList":[]}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = DisplayOptions;
7
+ var _i18n = require("@wordpress/i18n");
8
+ var _components = require("@wordpress/components");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ const getOptions = (displayTopLevelControl, displaySubtermsControl) => {
15
+ const options = [{
16
+ label: (0, _i18n.__)('Show all'),
17
+ value: 'all'
18
+ }];
19
+ if (displayTopLevelControl) {
20
+ options.push({
21
+ label: (0, _i18n.__)('Show only top level terms'),
22
+ value: 'top-level'
23
+ });
24
+ }
25
+ if (displaySubtermsControl) {
26
+ options.push({
27
+ label: (0, _i18n.__)('Show subterms only'),
28
+ value: 'subterms',
29
+ description: (0, _i18n.__)('Display subterms of the current term. E.g. subcategories of current category.')
30
+ });
31
+ }
32
+ return options;
33
+ };
34
+ const allTermsQuery = {
35
+ include: [],
36
+ exclude: [],
37
+ parent: false
38
+ };
39
+ const topLevelTermsQuery = {
40
+ include: [],
41
+ exclude: [],
42
+ parent: 0,
43
+ hierarchical: false
44
+ };
45
+ const getQueryAttributes = value => {
46
+ if (value === 'top-level') {
47
+ return topLevelTermsQuery;
48
+ }
49
+
50
+ // For 'all' and 'subterms', we fetch all terms and then filter them as the tree is built in Term Template.
51
+ return allTermsQuery;
52
+ };
53
+ function DisplayOptions({
54
+ attributes,
55
+ displayTopLevelControl,
56
+ displaySubtermsControl,
57
+ setAttributes
58
+ }) {
59
+ const {
60
+ termQuery,
61
+ termsToShow
62
+ } = attributes;
63
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
64
+ hasValue: () => termsToShow !== 'all',
65
+ label: (0, _i18n.__)('Terms to show'),
66
+ onDeselect: () => setAttributes({
67
+ termsToShow: 'all'
68
+ }),
69
+ isShownByDefault: true,
70
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.RadioControl, {
71
+ label: (0, _i18n.__)('Terms to show'),
72
+ options: getOptions(displayTopLevelControl, displaySubtermsControl),
73
+ selected: termsToShow,
74
+ onChange: value => {
75
+ const queryAttributes = getQueryAttributes(value);
76
+ setAttributes({
77
+ termsToShow: value,
78
+ termQuery: {
79
+ ...termQuery,
80
+ ...queryAttributes
81
+ }
82
+ });
83
+ }
84
+ })
85
+ });
86
+ }
87
+ //# sourceMappingURL=display-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_i18n","require","_components","_jsxRuntime","getOptions","displayTopLevelControl","displaySubtermsControl","options","label","__","value","push","description","allTermsQuery","include","exclude","parent","topLevelTermsQuery","hierarchical","getQueryAttributes","DisplayOptions","attributes","setAttributes","termQuery","termsToShow","jsx","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","children","RadioControl","selected","onChange","queryAttributes"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/display-options.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tRadioControl,\n} from '@wordpress/components';\n\nconst getOptions = ( displayTopLevelControl, displaySubtermsControl ) => {\n\tconst options = [ { label: __( 'Show all' ), value: 'all' } ];\n\n\tif ( displayTopLevelControl ) {\n\t\toptions.push( {\n\t\t\tlabel: __( 'Show only top level terms' ),\n\t\t\tvalue: 'top-level',\n\t\t} );\n\t}\n\n\tif ( displaySubtermsControl ) {\n\t\toptions.push( {\n\t\t\tlabel: __( 'Show subterms only' ),\n\t\t\tvalue: 'subterms',\n\t\t\tdescription: __(\n\t\t\t\t'Display subterms of the current term. E.g. subcategories of current category.'\n\t\t\t),\n\t\t} );\n\t}\n\n\treturn options;\n};\n\nconst allTermsQuery = {\n\tinclude: [],\n\texclude: [],\n\tparent: false,\n};\n\nconst topLevelTermsQuery = {\n\tinclude: [],\n\texclude: [],\n\tparent: 0,\n\thierarchical: false,\n};\n\nconst getQueryAttributes = ( value ) => {\n\tif ( value === 'top-level' ) {\n\t\treturn topLevelTermsQuery;\n\t}\n\n\t// For 'all' and 'subterms', we fetch all terms and then filter them as the tree is built in Term Template.\n\treturn allTermsQuery;\n};\n\nexport default function DisplayOptions( {\n\tattributes,\n\tdisplayTopLevelControl,\n\tdisplaySubtermsControl,\n\tsetAttributes,\n} ) {\n\tconst { termQuery, termsToShow } = attributes;\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => termsToShow !== 'all' }\n\t\t\tlabel={ __( 'Terms to show' ) }\n\t\t\tonDeselect={ () => setAttributes( { termsToShow: 'all' } ) }\n\t\t\tisShownByDefault\n\t\t>\n\t\t\t<RadioControl\n\t\t\t\tlabel={ __( 'Terms to show' ) }\n\t\t\t\toptions={ getOptions(\n\t\t\t\t\tdisplayTopLevelControl,\n\t\t\t\t\tdisplaySubtermsControl\n\t\t\t\t) }\n\t\t\t\tselected={ termsToShow }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst queryAttributes = getQueryAttributes( value );\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\ttermsToShow: value,\n\t\t\t\t\t\ttermQuery: { ...termQuery, ...queryAttributes },\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAG+B,IAAAE,WAAA,GAAAF,OAAA;AAP/B;AACA;AACA;;AAOA,MAAMG,UAAU,GAAGA,CAAEC,sBAAsB,EAAEC,sBAAsB,KAAM;EACxE,MAAMC,OAAO,GAAG,CAAE;IAAEC,KAAK,EAAE,IAAAC,QAAE,EAAE,UAAW,CAAC;IAAEC,KAAK,EAAE;EAAM,CAAC,CAAE;EAE7D,IAAKL,sBAAsB,EAAG;IAC7BE,OAAO,CAACI,IAAI,CAAE;MACbH,KAAK,EAAE,IAAAC,QAAE,EAAE,2BAA4B,CAAC;MACxCC,KAAK,EAAE;IACR,CAAE,CAAC;EACJ;EAEA,IAAKJ,sBAAsB,EAAG;IAC7BC,OAAO,CAACI,IAAI,CAAE;MACbH,KAAK,EAAE,IAAAC,QAAE,EAAE,oBAAqB,CAAC;MACjCC,KAAK,EAAE,UAAU;MACjBE,WAAW,EAAE,IAAAH,QAAE,EACd,+EACD;IACD,CAAE,CAAC;EACJ;EAEA,OAAOF,OAAO;AACf,CAAC;AAED,MAAMM,aAAa,GAAG;EACrBC,OAAO,EAAE,EAAE;EACXC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE;AACT,CAAC;AAED,MAAMC,kBAAkB,GAAG;EAC1BH,OAAO,EAAE,EAAE;EACXC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE,CAAC;EACTE,YAAY,EAAE;AACf,CAAC;AAED,MAAMC,kBAAkB,GAAKT,KAAK,IAAM;EACvC,IAAKA,KAAK,KAAK,WAAW,EAAG;IAC5B,OAAOO,kBAAkB;EAC1B;;EAEA;EACA,OAAOJ,aAAa;AACrB,CAAC;AAEc,SAASO,cAAcA,CAAE;EACvCC,UAAU;EACVhB,sBAAsB;EACtBC,sBAAsB;EACtBgB;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,SAAS;IAAEC;EAAY,CAAC,GAAGH,UAAU;EAE7C,oBACC,IAAAlB,WAAA,CAAAsB,GAAA,EAACvB,WAAA,CAAAwB,4BAAc;IACdC,QAAQ,EAAGA,CAAA,KAAMH,WAAW,KAAK,KAAO;IACxChB,KAAK,EAAG,IAAAC,QAAE,EAAE,eAAgB,CAAG;IAC/BmB,UAAU,EAAGA,CAAA,KAAMN,aAAa,CAAE;MAAEE,WAAW,EAAE;IAAM,CAAE,CAAG;IAC5DK,gBAAgB;IAAAC,QAAA,eAEhB,IAAA3B,WAAA,CAAAsB,GAAA,EAACvB,WAAA,CAAA6B,YAAY;MACZvB,KAAK,EAAG,IAAAC,QAAE,EAAE,eAAgB,CAAG;MAC/BF,OAAO,EAAGH,UAAU,CACnBC,sBAAsB,EACtBC,sBACD,CAAG;MACH0B,QAAQ,EAAGR,WAAa;MACxBS,QAAQ,EAAKvB,KAAK,IAAM;QACvB,MAAMwB,eAAe,GAAGf,kBAAkB,CAAET,KAAM,CAAC;QACnDY,aAAa,CAAE;UACdE,WAAW,EAAEd,KAAK;UAClBa,SAAS,EAAE;YAAE,GAAGA,SAAS;YAAE,GAAGW;UAAgB;QAC/C,CAAE,CAAC;MACJ;IAAG,CACH;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = EmptyTermsControl;
7
+ var _i18n = require("@wordpress/i18n");
8
+ var _components = require("@wordpress/components");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ function EmptyTermsControl({
15
+ attributes,
16
+ setQuery
17
+ }) {
18
+ const {
19
+ termQuery
20
+ } = attributes;
21
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
22
+ hasValue: () => termQuery.hideEmpty !== true,
23
+ label: (0, _i18n.__)('Show empty terms'),
24
+ onDeselect: () => setQuery({
25
+ hideEmpty: true
26
+ }),
27
+ isShownByDefault: true,
28
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
29
+ __nextHasNoMarginBottom: true,
30
+ label: (0, _i18n.__)('Show empty terms'),
31
+ checked: !termQuery.hideEmpty,
32
+ onChange: showEmpty => setQuery({
33
+ hideEmpty: !showEmpty
34
+ })
35
+ })
36
+ });
37
+ }
38
+ //# sourceMappingURL=empty-terms-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_i18n","require","_components","_jsxRuntime","EmptyTermsControl","attributes","setQuery","termQuery","jsx","__experimentalToolsPanelItem","hasValue","hideEmpty","label","__","onDeselect","isShownByDefault","children","ToggleControl","__nextHasNoMarginBottom","checked","onChange","showEmpty"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/empty-terms-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n} from '@wordpress/components';\n\nexport default function EmptyTermsControl( { attributes, setQuery } ) {\n\tconst { termQuery } = attributes;\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => termQuery.hideEmpty !== true }\n\t\t\tlabel={ __( 'Show empty terms' ) }\n\t\t\tonDeselect={ () => setQuery( { hideEmpty: true } ) }\n\t\t\tisShownByDefault\n\t\t>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Show empty terms' ) }\n\t\t\t\tchecked={ ! termQuery.hideEmpty }\n\t\t\t\tonChange={ ( showEmpty ) =>\n\t\t\t\t\tsetQuery( { hideEmpty: ! showEmpty } )\n\t\t\t\t}\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAG+B,IAAAE,WAAA,GAAAF,OAAA;AAP/B;AACA;AACA;;AAOe,SAASG,iBAAiBA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EACrE,MAAM;IAAEC;EAAU,CAAC,GAAGF,UAAU;EAEhC,oBACC,IAAAF,WAAA,CAAAK,GAAA,EAACN,WAAA,CAAAO,4BAAc;IACdC,QAAQ,EAAGA,CAAA,KAAMH,SAAS,CAACI,SAAS,KAAK,IAAM;IAC/CC,KAAK,EAAG,IAAAC,QAAE,EAAE,kBAAmB,CAAG;IAClCC,UAAU,EAAGA,CAAA,KAAMR,QAAQ,CAAE;MAAEK,SAAS,EAAE;IAAK,CAAE,CAAG;IACpDI,gBAAgB;IAAAC,QAAA,eAEhB,IAAAb,WAAA,CAAAK,GAAA,EAACN,WAAA,CAAAe,aAAa;MACbC,uBAAuB;MACvBN,KAAK,EAAG,IAAAC,QAAE,EAAE,kBAAmB,CAAG;MAClCM,OAAO,EAAG,CAAEZ,SAAS,CAACI,SAAW;MACjCS,QAAQ,EAAKC,SAAS,IACrBf,QAAQ,CAAE;QAAEK,SAAS,EAAE,CAAEU;MAAU,CAAE;IACrC,CACD;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = HierarchyControl;
7
+ var _i18n = require("@wordpress/i18n");
8
+ var _components = require("@wordpress/components");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ function HierarchyControl({
15
+ attributes,
16
+ setQuery
17
+ }) {
18
+ const {
19
+ termQuery
20
+ } = attributes;
21
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
22
+ hasValue: () => termQuery.hierarchical !== false,
23
+ label: (0, _i18n.__)('Show hierarchy'),
24
+ onDeselect: () => setQuery({
25
+ hierarchical: false
26
+ }),
27
+ isShownByDefault: true,
28
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
29
+ __nextHasNoMarginBottom: true,
30
+ label: (0, _i18n.__)('Show hierarchy'),
31
+ checked: termQuery.hierarchical,
32
+ onChange: hierarchical => {
33
+ setQuery({
34
+ hierarchical
35
+ });
36
+ }
37
+ })
38
+ });
39
+ }
40
+ //# sourceMappingURL=hierarchy-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_i18n","require","_components","_jsxRuntime","HierarchyControl","attributes","setQuery","termQuery","jsx","__experimentalToolsPanelItem","hasValue","hierarchical","label","__","onDeselect","isShownByDefault","children","ToggleControl","__nextHasNoMarginBottom","checked","onChange"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/hierarchy-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n} from '@wordpress/components';\n\nexport default function HierarchyControl( { attributes, setQuery } ) {\n\tconst { termQuery } = attributes;\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => termQuery.hierarchical !== false }\n\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\tonDeselect={ () => setQuery( { hierarchical: false } ) }\n\t\t\tisShownByDefault\n\t\t>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\t\tchecked={ termQuery.hierarchical }\n\t\t\t\tonChange={ ( hierarchical ) => {\n\t\t\t\t\tsetQuery( { hierarchical } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAG+B,IAAAE,WAAA,GAAAF,OAAA;AAP/B;AACA;AACA;;AAOe,SAASG,gBAAgBA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EACpE,MAAM;IAAEC;EAAU,CAAC,GAAGF,UAAU;EAEhC,oBACC,IAAAF,WAAA,CAAAK,GAAA,EAACN,WAAA,CAAAO,4BAAc;IACdC,QAAQ,EAAGA,CAAA,KAAMH,SAAS,CAACI,YAAY,KAAK,KAAO;IACnDC,KAAK,EAAG,IAAAC,QAAE,EAAE,gBAAiB,CAAG;IAChCC,UAAU,EAAGA,CAAA,KAAMR,QAAQ,CAAE;MAAEK,YAAY,EAAE;IAAM,CAAE,CAAG;IACxDI,gBAAgB;IAAAC,QAAA,eAEhB,IAAAb,WAAA,CAAAK,GAAA,EAACN,WAAA,CAAAe,aAAa;MACbC,uBAAuB;MACvBN,KAAK,EAAG,IAAAC,QAAE,EAAE,gBAAiB,CAAG;MAChCM,OAAO,EAAGZ,SAAS,CAACI,YAAc;MAClCS,QAAQ,EAAKT,YAAY,IAAM;QAC9BL,QAAQ,CAAE;UAAEK;QAAa,CAAE,CAAC;MAC7B;IAAG,CACH;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = TermsQueryInspectorControls;
8
+ var _i18n = require("@wordpress/i18n");
9
+ var _components = require("@wordpress/components");
10
+ var _blockEditor = require("@wordpress/block-editor");
11
+ var _coreData = require("@wordpress/core-data");
12
+ var _data = require("@wordpress/data");
13
+ var _element = require("@wordpress/element");
14
+ var _hooks = require("../../utils/hooks");
15
+ var _taxonomyControl = _interopRequireDefault(require("./taxonomy-control"));
16
+ var _orderingControls = _interopRequireDefault(require("./ordering-controls"));
17
+ var _displayOptions = _interopRequireDefault(require("./display-options"));
18
+ var _hierarchyControl = _interopRequireDefault(require("./hierarchy-control"));
19
+ var _emptyTermsControl = _interopRequireDefault(require("./empty-terms-control"));
20
+ var _maxTermsControl = _interopRequireDefault(require("./max-terms-control"));
21
+ var _advancedControls = _interopRequireDefault(require("./advanced-controls"));
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+ /**
24
+ * WordPress dependencies
25
+ */
26
+
27
+ /**
28
+ * Internal dependencies
29
+ */
30
+
31
+ const usePublicTaxonomies = () => {
32
+ const taxonomies = (0, _data.useSelect)(select => select(_coreData.store).getTaxonomies({
33
+ per_page: -1
34
+ }), []);
35
+ return (0, _element.useMemo)(() => {
36
+ return taxonomies?.filter(({
37
+ visibility
38
+ }) => visibility?.publicly_queryable) || [];
39
+ }, [taxonomies]);
40
+ };
41
+ function TermsQueryInspectorControls({
42
+ attributes,
43
+ setQuery,
44
+ setAttributes,
45
+ TagName,
46
+ clientId
47
+ }) {
48
+ const {
49
+ termQuery,
50
+ termsToShow
51
+ } = attributes;
52
+ const dropdownMenuProps = (0, _hooks.useToolsPanelDropdownMenuProps)();
53
+ const taxonomies = usePublicTaxonomies();
54
+ const {
55
+ templateSlug
56
+ } = (0, _data.useSelect)(select => {
57
+ // @wordpress/block-library should not depend on @wordpress/editor.
58
+ // Blocks can be loaded into a *non-post* block editor, so to avoid
59
+ // declaring @wordpress/editor as a dependency, we must access its
60
+ // store by string.
61
+ // The solution here is to split WP specific blocks from generic blocks.
62
+ // eslint-disable-next-line @wordpress/data-no-store-string-literals
63
+ const {
64
+ getEditedPostSlug
65
+ } = select('core/editor');
66
+ return {
67
+ templateSlug: getEditedPostSlug()
68
+ };
69
+ }, []);
70
+ const taxonomyOptions = taxonomies.map(taxonomy => ({
71
+ label: taxonomy.name,
72
+ value: taxonomy.slug
73
+ }));
74
+ const isTaxonomyHierarchical = taxonomies.find(taxonomy => taxonomy.slug === termQuery.taxonomy)?.hierarchical;
75
+ const isTaxonomyMatchingTemplate = typeof templateSlug === 'string' && templateSlug.includes(termQuery.taxonomy);
76
+ const displaySubtermsControl = isTaxonomyHierarchical && isTaxonomyMatchingTemplate;
77
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
78
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.InspectorControls, {
79
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalToolsPanel, {
80
+ label: (0, _i18n.__)('Terms Query Settings'),
81
+ resetAll: () => {
82
+ setAttributes({
83
+ termQuery: {
84
+ taxonomy: 'category',
85
+ order: 'asc',
86
+ orderBy: 'name',
87
+ hideEmpty: true,
88
+ hierarchical: false,
89
+ parent: false,
90
+ perPage: 10
91
+ },
92
+ termsToShow: 'all'
93
+ });
94
+ },
95
+ dropdownMenuProps: dropdownMenuProps,
96
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_taxonomyControl.default, {
97
+ attributes: attributes,
98
+ setQuery: setQuery,
99
+ setAttributes: setAttributes,
100
+ taxonomyOptions: taxonomyOptions
101
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_orderingControls.default, {
102
+ attributes: attributes,
103
+ setQuery: setQuery
104
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_emptyTermsControl.default, {
105
+ attributes: attributes,
106
+ setQuery: setQuery
107
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_displayOptions.default, {
108
+ attributes: attributes,
109
+ setAttributes: setAttributes,
110
+ displayTopLevelControl: isTaxonomyHierarchical,
111
+ displaySubtermsControl: displaySubtermsControl
112
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_maxTermsControl.default, {
113
+ attributes: attributes,
114
+ setQuery: setQuery
115
+ }), isTaxonomyHierarchical && termsToShow === 'all' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_hierarchyControl.default, {
116
+ attributes: attributes,
117
+ setQuery: setQuery
118
+ })]
119
+ })
120
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_advancedControls.default, {
121
+ TagName: TagName,
122
+ setAttributes: setAttributes,
123
+ clientId: clientId
124
+ })]
125
+ });
126
+ }
127
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_i18n","require","_components","_blockEditor","_coreData","_data","_element","_hooks","_taxonomyControl","_interopRequireDefault","_orderingControls","_displayOptions","_hierarchyControl","_emptyTermsControl","_maxTermsControl","_advancedControls","_jsxRuntime","usePublicTaxonomies","taxonomies","useSelect","select","coreStore","getTaxonomies","per_page","useMemo","filter","visibility","publicly_queryable","TermsQueryInspectorControls","attributes","setQuery","setAttributes","TagName","clientId","termQuery","termsToShow","dropdownMenuProps","useToolsPanelDropdownMenuProps","templateSlug","getEditedPostSlug","taxonomyOptions","map","taxonomy","label","name","value","slug","isTaxonomyHierarchical","find","hierarchical","isTaxonomyMatchingTemplate","includes","displaySubtermsControl","jsxs","Fragment","children","jsx","InspectorControls","__experimentalToolsPanel","__","resetAll","order","orderBy","hideEmpty","parent","perPage","default","displayTopLevelControl"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../../utils/hooks';\nimport TaxonomyControl from './taxonomy-control';\nimport OrderingControls from './ordering-controls';\nimport DisplayOptions from './display-options';\nimport HierarchyControl from './hierarchy-control';\nimport EmptyTermsControl from './empty-terms-control';\nimport MaxTermsControl from './max-terms-control';\nimport AdvancedControls from './advanced-controls';\n\nconst usePublicTaxonomies = () => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\ttaxonomies?.filter(\n\t\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t\t) || []\n\t\t);\n\t}, [ taxonomies ] );\n};\n\nexport default function TermsQueryInspectorControls( {\n\tattributes,\n\tsetQuery,\n\tsetAttributes,\n\tTagName,\n\tclientId,\n} ) {\n\tconst { termQuery, termsToShow } = attributes;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst taxonomies = usePublicTaxonomies();\n\n\tconst { templateSlug } = useSelect( ( select ) => {\n\t\t// @wordpress/block-library should not depend on @wordpress/editor.\n\t\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t\t// declaring @wordpress/editor as a dependency, we must access its\n\t\t// store by string.\n\t\t// The solution here is to split WP specific blocks from generic blocks.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getEditedPostSlug } = select( 'core/editor' );\n\t\treturn {\n\t\t\ttemplateSlug: getEditedPostSlug(),\n\t\t};\n\t}, [] );\n\n\tconst taxonomyOptions = taxonomies.map( ( taxonomy ) => ( {\n\t\tlabel: taxonomy.name,\n\t\tvalue: taxonomy.slug,\n\t} ) );\n\n\tconst isTaxonomyHierarchical = taxonomies.find(\n\t\t( taxonomy ) => taxonomy.slug === termQuery.taxonomy\n\t)?.hierarchical;\n\n\tconst isTaxonomyMatchingTemplate =\n\t\ttypeof templateSlug === 'string' &&\n\t\ttemplateSlug.includes( termQuery.taxonomy );\n\n\tconst displaySubtermsControl =\n\t\tisTaxonomyHierarchical && isTaxonomyMatchingTemplate;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Terms Query Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttermQuery: {\n\t\t\t\t\t\t\t\ttaxonomy: 'category',\n\t\t\t\t\t\t\t\torder: 'asc',\n\t\t\t\t\t\t\t\torderBy: 'name',\n\t\t\t\t\t\t\t\thideEmpty: true,\n\t\t\t\t\t\t\t\thierarchical: false,\n\t\t\t\t\t\t\t\tparent: false,\n\t\t\t\t\t\t\t\tperPage: 10,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttermsToShow: 'all',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<TaxonomyControl\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetQuery={ setQuery }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\ttaxonomyOptions={ taxonomyOptions }\n\t\t\t\t\t/>\n\t\t\t\t\t<OrderingControls\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetQuery={ setQuery }\n\t\t\t\t\t/>\n\t\t\t\t\t<EmptyTermsControl\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetQuery={ setQuery }\n\t\t\t\t\t/>\n\t\t\t\t\t<DisplayOptions\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tdisplayTopLevelControl={ isTaxonomyHierarchical }\n\t\t\t\t\t\tdisplaySubtermsControl={ displaySubtermsControl }\n\t\t\t\t\t/>\n\t\t\t\t\t<MaxTermsControl\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetQuery={ setQuery }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isTaxonomyHierarchical && termsToShow === 'all' && (\n\t\t\t\t\t\t<HierarchyControl\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tsetQuery={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<AdvancedControls\n\t\t\t\tTagName={ TagName }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = MaxTermsControl;
7
+ var _i18n = require("@wordpress/i18n");
8
+ var _components = require("@wordpress/components");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ function MaxTermsControl({
15
+ attributes,
16
+ setQuery
17
+ }) {
18
+ const {
19
+ termQuery
20
+ } = attributes;
21
+
22
+ // Only show pagination control when not hierarchical.
23
+ if (termQuery.hierarchical) {
24
+ return null;
25
+ }
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
27
+ hasValue: () => termQuery.perPage !== 10,
28
+ label: (0, _i18n.__)('Max terms'),
29
+ onDeselect: () => setQuery({
30
+ perPage: 10
31
+ }),
32
+ isShownByDefault: true,
33
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.RangeControl, {
34
+ __nextHasNoMarginBottom: true,
35
+ __next40pxDefaultSize: true,
36
+ label: (0, _i18n.__)('Max terms'),
37
+ value: termQuery.perPage,
38
+ min: 0,
39
+ max: 100,
40
+ onChange: perPage => {
41
+ // Show all terms (-1) when 0 is selected.
42
+ setQuery({
43
+ perPage: perPage === 0 ? -1 : perPage
44
+ });
45
+ },
46
+ help: (0, _i18n.__)('Limit the number of terms you want to show. To show all terms, use 0 (zero).')
47
+ })
48
+ });
49
+ }
50
+ //# sourceMappingURL=max-terms-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_i18n","require","_components","_jsxRuntime","MaxTermsControl","attributes","setQuery","termQuery","hierarchical","jsx","__experimentalToolsPanelItem","hasValue","perPage","label","__","onDeselect","isShownByDefault","children","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","value","min","max","onChange","help"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/max-terms-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tRangeControl,\n} from '@wordpress/components';\n\nexport default function MaxTermsControl( { attributes, setQuery } ) {\n\tconst { termQuery } = attributes;\n\n\t// Only show pagination control when not hierarchical.\n\tif ( termQuery.hierarchical ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => termQuery.perPage !== 10 }\n\t\t\tlabel={ __( 'Max terms' ) }\n\t\t\tonDeselect={ () => setQuery( { perPage: 10 } ) }\n\t\t\tisShownByDefault\n\t\t>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Max terms' ) }\n\t\t\t\tvalue={ termQuery.perPage }\n\t\t\t\tmin={ 0 }\n\t\t\t\tmax={ 100 }\n\t\t\t\tonChange={ ( perPage ) => {\n\t\t\t\t\t// Show all terms (-1) when 0 is selected.\n\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\tperPage: perPage === 0 ? -1 : perPage,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\thelp={ __(\n\t\t\t\t\t'Limit the number of terms you want to show. To show all terms, use 0 (zero).'\n\t\t\t\t) }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAG+B,IAAAE,WAAA,GAAAF,OAAA;AAP/B;AACA;AACA;;AAOe,SAASG,eAAeA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EACnE,MAAM;IAAEC;EAAU,CAAC,GAAGF,UAAU;;EAEhC;EACA,IAAKE,SAAS,CAACC,YAAY,EAAG;IAC7B,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAL,WAAA,CAAAM,GAAA,EAACP,WAAA,CAAAQ,4BAAc;IACdC,QAAQ,EAAGA,CAAA,KAAMJ,SAAS,CAACK,OAAO,KAAK,EAAI;IAC3CC,KAAK,EAAG,IAAAC,QAAE,EAAE,WAAY,CAAG;IAC3BC,UAAU,EAAGA,CAAA,KAAMT,QAAQ,CAAE;MAAEM,OAAO,EAAE;IAAG,CAAE,CAAG;IAChDI,gBAAgB;IAAAC,QAAA,eAEhB,IAAAd,WAAA,CAAAM,GAAA,EAACP,WAAA,CAAAgB,YAAY;MACZC,uBAAuB;MACvBC,qBAAqB;MACrBP,KAAK,EAAG,IAAAC,QAAE,EAAE,WAAY,CAAG;MAC3BO,KAAK,EAAGd,SAAS,CAACK,OAAS;MAC3BU,GAAG,EAAG,CAAG;MACTC,GAAG,EAAG,GAAK;MACXC,QAAQ,EAAKZ,OAAO,IAAM;QACzB;QACAN,QAAQ,CAAE;UACTM,OAAO,EAAEA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAGA;QAC/B,CAAE,CAAC;MACJ,CAAG;MACHa,IAAI,EAAG,IAAAX,QAAE,EACR,8EACD;IAAG,CACH;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}