@wordpress/block-library 9.31.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 (231) hide show
  1. package/build/accordion/edit.js +6 -5
  2. package/build/accordion/edit.js.map +1 -1
  3. package/build/accordion/index.js +39 -4
  4. package/build/accordion/index.js.map +1 -1
  5. package/build/accordion/save.js +2 -19
  6. package/build/accordion/save.js.map +1 -1
  7. package/build/accordion/view.js +50 -16
  8. package/build/accordion/view.js.map +1 -1
  9. package/build/accordion-content/index.js +17 -3
  10. package/build/accordion-content/index.js.map +1 -1
  11. package/build/accordion-content/save.js +5 -7
  12. package/build/accordion-content/save.js.map +1 -1
  13. package/build/accordion-header/edit.js +13 -47
  14. package/build/accordion-header/edit.js.map +1 -1
  15. package/build/accordion-header/index.js +6 -11
  16. package/build/accordion-header/index.js.map +1 -1
  17. package/build/accordion-header/save.js +11 -44
  18. package/build/accordion-header/save.js.map +1 -1
  19. package/build/accordion-panel/edit.js +2 -1
  20. package/build/accordion-panel/edit.js.map +1 -1
  21. package/build/accordion-panel/index.js +3 -3
  22. package/build/accordion-panel/index.js.map +1 -1
  23. package/build/accordion-panel/save.js +3 -1
  24. package/build/accordion-panel/save.js.map +1 -1
  25. package/build/avatar/hooks.js +7 -17
  26. package/build/avatar/hooks.js.map +1 -1
  27. package/build/group/variations.js +3 -4
  28. package/build/group/variations.js.map +1 -1
  29. package/build/navigation/edit/leaf-more-menu.js +6 -1
  30. package/build/navigation/edit/leaf-more-menu.js.map +1 -1
  31. package/build/navigation/index.js +2 -1
  32. package/build/navigation/index.js.map +1 -1
  33. package/build/navigation-link/index.js +2 -1
  34. package/build/navigation-link/index.js.map +1 -1
  35. package/build/navigation-submenu/edit.js +2 -4
  36. package/build/navigation-submenu/edit.js.map +1 -1
  37. package/build/navigation-submenu/index.js +2 -1
  38. package/build/navigation-submenu/index.js.map +1 -1
  39. package/build/page-list/index.js +2 -1
  40. package/build/page-list/index.js.map +1 -1
  41. package/build/post-author/edit.js +7 -6
  42. package/build/post-author/edit.js.map +1 -1
  43. package/build/post-date/edit.js +16 -3
  44. package/build/post-date/edit.js.map +1 -1
  45. package/build/post-time-to-read/edit.js +111 -11
  46. package/build/post-time-to-read/edit.js.map +1 -1
  47. package/build/post-time-to-read/index.js +17 -1
  48. package/build/post-time-to-read/index.js.map +1 -1
  49. package/build/table-of-contents/index.js +1 -0
  50. package/build/table-of-contents/index.js.map +1 -1
  51. package/build/term-description/edit.js +18 -2
  52. package/build/term-description/edit.js.map +1 -1
  53. package/build/term-description/index.js +1 -0
  54. package/build/term-description/index.js.map +1 -1
  55. package/build/term-description/use-term-description.js +85 -0
  56. package/build/term-description/use-term-description.js.map +1 -0
  57. package/build/term-template/edit.js +11 -7
  58. package/build/term-template/edit.js.map +1 -1
  59. package/build/term-template/index.js +1 -1
  60. package/build/terms-query/index.js +8 -2
  61. package/build/terms-query/index.js.map +1 -1
  62. package/build/terms-query/inspector-controls/advanced-controls.js +51 -0
  63. package/build/terms-query/inspector-controls/advanced-controls.js.map +1 -0
  64. package/build/terms-query/inspector-controls/display-options.js +87 -0
  65. package/build/terms-query/inspector-controls/display-options.js.map +1 -0
  66. package/build/terms-query/inspector-controls/empty-terms-control.js +38 -0
  67. package/build/terms-query/inspector-controls/empty-terms-control.js.map +1 -0
  68. package/build/terms-query/inspector-controls/hierarchy-control.js +40 -0
  69. package/build/terms-query/inspector-controls/hierarchy-control.js.map +1 -0
  70. package/build/terms-query/inspector-controls/index.js +127 -0
  71. package/build/terms-query/inspector-controls/index.js.map +1 -0
  72. package/build/terms-query/inspector-controls/max-terms-control.js +50 -0
  73. package/build/terms-query/inspector-controls/max-terms-control.js.map +1 -0
  74. package/build/terms-query/inspector-controls/ordering-controls.js +57 -0
  75. package/build/terms-query/inspector-controls/ordering-controls.js.map +1 -0
  76. package/build/terms-query/inspector-controls/taxonomy-control.js +52 -0
  77. package/build/terms-query/inspector-controls/taxonomy-control.js.map +1 -0
  78. package/build/utils/hooks.js +15 -0
  79. package/build/utils/hooks.js.map +1 -1
  80. package/build-module/accordion/edit.js +6 -5
  81. package/build-module/accordion/edit.js.map +1 -1
  82. package/build-module/accordion/index.js +40 -4
  83. package/build-module/accordion/index.js.map +1 -1
  84. package/build-module/accordion/save.js +2 -17
  85. package/build-module/accordion/save.js.map +1 -1
  86. package/build-module/accordion/view.js +51 -17
  87. package/build-module/accordion/view.js.map +1 -1
  88. package/build-module/accordion-content/index.js +17 -3
  89. package/build-module/accordion-content/index.js.map +1 -1
  90. package/build-module/accordion-content/save.js +5 -7
  91. package/build-module/accordion-content/save.js.map +1 -1
  92. package/build-module/accordion-header/edit.js +14 -45
  93. package/build-module/accordion-header/edit.js.map +1 -1
  94. package/build-module/accordion-header/index.js +6 -11
  95. package/build-module/accordion-header/index.js.map +1 -1
  96. package/build-module/accordion-header/save.js +12 -42
  97. package/build-module/accordion-header/save.js.map +1 -1
  98. package/build-module/accordion-panel/edit.js +2 -1
  99. package/build-module/accordion-panel/edit.js.map +1 -1
  100. package/build-module/accordion-panel/index.js +3 -3
  101. package/build-module/accordion-panel/index.js.map +1 -1
  102. package/build-module/accordion-panel/save.js +3 -1
  103. package/build-module/accordion-panel/save.js.map +1 -1
  104. package/build-module/avatar/hooks.js +5 -15
  105. package/build-module/avatar/hooks.js.map +1 -1
  106. package/build-module/group/variations.js +3 -4
  107. package/build-module/group/variations.js.map +1 -1
  108. package/build-module/navigation/edit/leaf-more-menu.js +6 -1
  109. package/build-module/navigation/edit/leaf-more-menu.js.map +1 -1
  110. package/build-module/navigation/index.js +2 -1
  111. package/build-module/navigation/index.js.map +1 -1
  112. package/build-module/navigation-link/index.js +2 -1
  113. package/build-module/navigation-link/index.js.map +1 -1
  114. package/build-module/navigation-submenu/edit.js +1 -3
  115. package/build-module/navigation-submenu/edit.js.map +1 -1
  116. package/build-module/navigation-submenu/index.js +2 -1
  117. package/build-module/navigation-submenu/index.js.map +1 -1
  118. package/build-module/page-list/index.js +2 -1
  119. package/build-module/page-list/index.js.map +1 -1
  120. package/build-module/post-author/edit.js +8 -7
  121. package/build-module/post-author/edit.js.map +1 -1
  122. package/build-module/post-date/edit.js +17 -4
  123. package/build-module/post-date/edit.js.map +1 -1
  124. package/build-module/post-time-to-read/edit.js +112 -14
  125. package/build-module/post-time-to-read/edit.js.map +1 -1
  126. package/build-module/post-time-to-read/index.js +17 -1
  127. package/build-module/post-time-to-read/index.js.map +1 -1
  128. package/build-module/table-of-contents/index.js +1 -0
  129. package/build-module/table-of-contents/index.js.map +1 -1
  130. package/build-module/term-description/edit.js +18 -2
  131. package/build-module/term-description/edit.js.map +1 -1
  132. package/build-module/term-description/index.js +1 -0
  133. package/build-module/term-description/index.js.map +1 -1
  134. package/build-module/term-description/use-term-description.js +79 -0
  135. package/build-module/term-description/use-term-description.js.map +1 -0
  136. package/build-module/term-template/edit.js +11 -7
  137. package/build-module/term-template/edit.js.map +1 -1
  138. package/build-module/term-template/index.js +1 -1
  139. package/build-module/terms-query/index.js +8 -2
  140. package/build-module/terms-query/index.js.map +1 -1
  141. package/build-module/terms-query/inspector-controls/advanced-controls.js +44 -0
  142. package/build-module/terms-query/inspector-controls/advanced-controls.js.map +1 -0
  143. package/build-module/terms-query/inspector-controls/display-options.js +80 -0
  144. package/build-module/terms-query/inspector-controls/display-options.js.map +1 -0
  145. package/build-module/terms-query/inspector-controls/empty-terms-control.js +31 -0
  146. package/build-module/terms-query/inspector-controls/empty-terms-control.js.map +1 -0
  147. package/build-module/terms-query/inspector-controls/hierarchy-control.js +33 -0
  148. package/build-module/terms-query/inspector-controls/hierarchy-control.js.map +1 -0
  149. package/build-module/terms-query/inspector-controls/index.js +119 -0
  150. package/build-module/terms-query/inspector-controls/index.js.map +1 -0
  151. package/build-module/terms-query/inspector-controls/max-terms-control.js +43 -0
  152. package/build-module/terms-query/inspector-controls/max-terms-control.js.map +1 -0
  153. package/build-module/terms-query/inspector-controls/ordering-controls.js +50 -0
  154. package/build-module/terms-query/inspector-controls/ordering-controls.js.map +1 -0
  155. package/build-module/terms-query/inspector-controls/taxonomy-control.js +45 -0
  156. package/build-module/terms-query/inspector-controls/taxonomy-control.js.map +1 -0
  157. package/build-module/utils/hooks.js +14 -0
  158. package/build-module/utils/hooks.js.map +1 -1
  159. package/build-style/accordion-content/style-rtl.css +155 -0
  160. package/build-style/accordion-content/style.css +155 -0
  161. package/build-style/{accordion → accordion-header}/style-rtl.css +12 -51
  162. package/build-style/{accordion → accordion-header}/style.css +12 -51
  163. package/build-style/accordion-panel/style-rtl.css +140 -0
  164. package/build-style/accordion-panel/style.css +140 -0
  165. package/build-style/style-rtl.css +25 -38
  166. package/build-style/style.css +25 -38
  167. package/package.json +35 -35
  168. package/src/accordion/block.json +16 -3
  169. package/src/accordion/edit.js +39 -34
  170. package/src/accordion/index.js +35 -1
  171. package/src/accordion/index.php +3 -19
  172. package/src/accordion/save.js +2 -16
  173. package/src/accordion/view.js +64 -15
  174. package/src/accordion-content/block.json +17 -3
  175. package/src/accordion-content/index.php +3 -2
  176. package/src/accordion-content/save.js +4 -10
  177. package/src/accordion-content/style.scss +21 -0
  178. package/src/accordion-header/block.json +6 -11
  179. package/src/accordion-header/edit.js +17 -61
  180. package/src/accordion-header/save.js +24 -54
  181. package/src/accordion-header/style.scss +39 -0
  182. package/src/accordion-panel/block.json +3 -3
  183. package/src/accordion-panel/edit.js +1 -0
  184. package/src/accordion-panel/save.js +3 -1
  185. package/src/accordion-panel/style.scss +8 -0
  186. package/src/avatar/hooks.js +5 -10
  187. package/src/comments/index.php +2 -2
  188. package/src/group/variations.js +3 -14
  189. package/src/navigation/block.json +2 -1
  190. package/src/navigation/edit/leaf-more-menu.js +9 -1
  191. package/src/navigation/index.php +2 -2
  192. package/src/navigation-link/block.json +2 -1
  193. package/src/navigation-submenu/block.json +2 -1
  194. package/src/navigation-submenu/edit.js +1 -4
  195. package/src/page-list/block.json +2 -1
  196. package/src/post-author/edit.js +16 -7
  197. package/src/post-date/edit.js +16 -16
  198. package/src/post-time-to-read/block.json +17 -1
  199. package/src/post-time-to-read/edit.js +167 -20
  200. package/src/post-time-to-read/index.php +47 -15
  201. package/src/social-link/index.php +2 -2
  202. package/src/style.scss +3 -1
  203. package/src/table-of-contents/block.json +1 -0
  204. package/src/table-of-contents/index.php +44 -0
  205. package/src/term-description/block.json +1 -0
  206. package/src/term-description/edit.js +18 -3
  207. package/src/term-description/use-term-description.js +109 -0
  208. package/src/term-template/block.json +1 -1
  209. package/src/term-template/edit.js +11 -6
  210. package/src/term-template/index.php +13 -7
  211. package/src/terms-query/block.json +8 -2
  212. package/src/terms-query/inspector-controls/advanced-controls.js +37 -0
  213. package/src/terms-query/inspector-controls/display-options.js +87 -0
  214. package/src/terms-query/inspector-controls/empty-terms-control.js +30 -0
  215. package/src/terms-query/inspector-controls/hierarchy-control.js +30 -0
  216. package/src/terms-query/inspector-controls/index.js +137 -0
  217. package/src/terms-query/inspector-controls/max-terms-control.js +44 -0
  218. package/src/terms-query/inspector-controls/ordering-controls.js +55 -0
  219. package/src/terms-query/inspector-controls/taxonomy-control.js +41 -0
  220. package/src/utils/hooks.js +9 -0
  221. package/build/accordion-content/icons.js +0 -30
  222. package/build/accordion-content/icons.js.map +0 -1
  223. package/build/terms-query/inspector-controls.js +0 -231
  224. package/build/terms-query/inspector-controls.js.map +0 -1
  225. package/build-module/accordion-content/icons.js +0 -22
  226. package/build-module/accordion-content/icons.js.map +0 -1
  227. package/build-module/terms-query/inspector-controls.js +0 -224
  228. package/build-module/terms-query/inspector-controls.js.map +0 -1
  229. package/src/accordion/style.scss +0 -82
  230. package/src/accordion-content/icons.js +0 -23
  231. package/src/terms-query/inspector-controls.js +0 -239
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","memo","useMemo","useState","useSelect","useDispatch","layout","__","BlockContextProvider","__experimentalUseBlockPreview","useBlockPreview","__experimentalBlockVariationPicker","BlockVariationPicker","useBlockProps","useInnerBlocksProps","store","blockEditorStore","useEntityRecords","createBlocksFromInnerBlocksTemplate","blocksStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TEMPLATE","type","orientation","style","spacing","blockGap","metadata","name","bindings","content","source","args","key","placeholder","TermTemplateInnerBlocks","classList","innerBlocksProps","className","template","__unstableDisableLayoutClassNames","TermTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","props","handleOnClick","display","undefined","tabIndex","role","onClick","onKeyPress","MemoizedTermTemplateBlockPreview","buildTermsTree","terms","termsById","rootTerms","forEach","term","id","children","parent","push","renderTermNode","termNode","renderTerm","length","map","child","isActiveTerm","termId","activeBlockContextId","blockContexts","TermTemplateEdit","clientId","setAttributes","context","termQuery","taxonomy","order","orderBy","hideEmpty","hierarchical","perPage","__unstableLayoutClassNames","replaceInnerBlocks","queryArgs","orderby","hide_empty","per_page","records","isResolving","filteredTerms","filter","variations","defaultVariation","select","getBlocks","getBlockVariations","getDefaultBlockVariation","blockProps","termData","icon","label","instructions","onSelect","nextVariation","attributes","innerBlocks","allowSkip","blockContext","value","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","memo","useMemo","useState","useSelect","useDispatch","layout","__","BlockContextProvider","__experimentalUseBlockPreview","useBlockPreview","__experimentalBlockVariationPicker","BlockVariationPicker","useBlockProps","useInnerBlocksProps","store","blockEditorStore","useEntityRecords","createBlocksFromInnerBlocksTemplate","blocksStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TEMPLATE","type","orientation","style","spacing","blockGap","metadata","name","bindings","content","source","args","key","placeholder","TermTemplateInnerBlocks","classList","innerBlocksProps","className","template","__unstableDisableLayoutClassNames","TermTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","props","handleOnClick","display","undefined","tabIndex","role","onClick","onKeyPress","MemoizedTermTemplateBlockPreview","buildTermsTree","terms","termsById","rootTerms","forEach","term","id","children","parent","push","renderTermNode","termNode","renderTerm","length","map","child","isActiveTerm","termId","activeBlockContextId","blockContexts","TermTemplateEdit","clientId","setAttributes","context","termsToShow","termQuery","taxonomy","order","orderBy","hideEmpty","hierarchical","perPage","__unstableLayoutClassNames","replaceInnerBlocks","queryArgs","orderby","hide_empty","per_page","records","isResolving","filteredTerms","filter","variations","defaultVariation","select","getBlocks","getBlockVariations","getDefaultBlockVariation","blockProps","termData","icon","label","instructions","onSelect","nextVariation","attributes","innerBlocks","allowSkip","blockContext","value","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":[]}
@@ -17,7 +17,7 @@ const metadata = {
17
17
  ancestor: ["core/terms-query"],
18
18
  description: "Contains the block elements used to render a taxonomy term, like the name, description, and more.",
19
19
  textdomain: "default",
20
- usesContext: ["termQuery"],
20
+ usesContext: ["termQuery", "termsToShow"],
21
21
  attributes: {
22
22
  namespace: {
23
23
  type: "string"
@@ -32,10 +32,15 @@ const metadata = {
32
32
  hideEmpty: true,
33
33
  include: [],
34
34
  exclude: [],
35
- parent: 0,
35
+ parent: false,
36
36
  hierarchical: false
37
37
  }
38
38
  },
39
+ termsToShow: {
40
+ type: "string",
41
+ "default": "all",
42
+ "enum": ["all", "top-level", "subterms"]
43
+ },
39
44
  tagName: {
40
45
  type: "string",
41
46
  "default": "div"
@@ -46,7 +51,8 @@ const metadata = {
46
51
  },
47
52
  providesContext: {
48
53
  termQueryId: "termQueryId",
49
- termQuery: "termQuery"
54
+ termQuery: "termQuery",
55
+ termsToShow: "termsToShow"
50
56
  },
51
57
  supports: {
52
58
  align: ["wide", "full"],
@@ -1 +1 @@
1
- {"version":3,"names":["loop","icon","initBlock","metadata","$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","edit","save","settings","example","init"],"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":"AAAA;AACA;AACA;AACA,SAASA,IAAI,IAAIC,IAAI,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,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;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAE9B;AAAK,CAAC,GAAGJ,QAAQ;AACzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAM+B,QAAQ,GAAG;EACvBrC,IAAI;EACJmC,IAAI;EACJC,IAAI;EACJE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAAMtC,SAAS,CAAE;EAAEK,IAAI;EAAEJ,QAAQ;EAAEmC;AAAS,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["loop","icon","initBlock","metadata","$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","edit","save","settings","example","init"],"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":"AAAA;AACA;AACA;AACA,SAASA,IAAI,IAAIC,IAAI,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,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;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAE/B;AAAK,CAAC,GAAGJ,QAAQ;AACzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAMgC,QAAQ,GAAG;EACvBtC,IAAI;EACJoC,IAAI;EACJC,IAAI;EACJE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAAMvC,SAAS,CAAE;EAAEK,IAAI;EAAEJ,QAAQ;EAAEoC;AAAS,CAAE,CAAC","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { InspectorControls, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
6
+
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import { unlock } from '../../lock-unlock';
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ const {
13
+ HTMLElementControl
14
+ } = unlock(blockEditorPrivateApis);
15
+ export default function AdvancedControls({
16
+ TagName,
17
+ setAttributes,
18
+ clientId
19
+ }) {
20
+ return /*#__PURE__*/_jsx(InspectorControls, {
21
+ group: "advanced",
22
+ children: /*#__PURE__*/_jsx(HTMLElementControl, {
23
+ tagName: TagName,
24
+ onChange: value => setAttributes({
25
+ tagName: value
26
+ }),
27
+ clientId: clientId,
28
+ options: [{
29
+ label: __('Default (<div>)'),
30
+ value: 'div'
31
+ }, {
32
+ label: '<main>',
33
+ value: 'main'
34
+ }, {
35
+ label: '<section>',
36
+ value: 'section'
37
+ }, {
38
+ label: '<aside>',
39
+ value: 'aside'
40
+ }]
41
+ })
42
+ });
43
+ }
44
+ //# sourceMappingURL=advanced-controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","InspectorControls","privateApis","blockEditorPrivateApis","unlock","jsx","_jsx","HTMLElementControl","AdvancedControls","TagName","setAttributes","clientId","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":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,iBAAiB,EACjBC,WAAW,IAAIC,sBAAsB,QAC/B,yBAAyB;;AAEhC;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3C,MAAM;EAAEC;AAAmB,CAAC,GAAGH,MAAM,CAAED,sBAAuB,CAAC;AAE/D,eAAe,SAASK,gBAAgBA,CAAE;EACzCC,OAAO;EACPC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,oBACCL,IAAA,CAACL,iBAAiB;IAACW,KAAK,EAAC,UAAU;IAAAC,QAAA,eAClCP,IAAA,CAACC,kBAAkB;MAClBO,OAAO,EAAGL,OAAS;MACnBM,QAAQ,EAAKC,KAAK,IAAMN,aAAa,CAAE;QAAEI,OAAO,EAAEE;MAAM,CAAE,CAAG;MAC7DL,QAAQ,EAAGA,QAAU;MACrBM,OAAO,EAAG,CACT;QAAEC,KAAK,EAAElB,EAAE,CAAE,iBAAkB,CAAC;QAAEgB,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,80 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { __experimentalToolsPanelItem as ToolsPanelItem, RadioControl } from '@wordpress/components';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const getOptions = (displayTopLevelControl, displaySubtermsControl) => {
8
+ const options = [{
9
+ label: __('Show all'),
10
+ value: 'all'
11
+ }];
12
+ if (displayTopLevelControl) {
13
+ options.push({
14
+ label: __('Show only top level terms'),
15
+ value: 'top-level'
16
+ });
17
+ }
18
+ if (displaySubtermsControl) {
19
+ options.push({
20
+ label: __('Show subterms only'),
21
+ value: 'subterms',
22
+ description: __('Display subterms of the current term. E.g. subcategories of current category.')
23
+ });
24
+ }
25
+ return options;
26
+ };
27
+ const allTermsQuery = {
28
+ include: [],
29
+ exclude: [],
30
+ parent: false
31
+ };
32
+ const topLevelTermsQuery = {
33
+ include: [],
34
+ exclude: [],
35
+ parent: 0,
36
+ hierarchical: false
37
+ };
38
+ const getQueryAttributes = value => {
39
+ if (value === 'top-level') {
40
+ return topLevelTermsQuery;
41
+ }
42
+
43
+ // For 'all' and 'subterms', we fetch all terms and then filter them as the tree is built in Term Template.
44
+ return allTermsQuery;
45
+ };
46
+ export default function DisplayOptions({
47
+ attributes,
48
+ displayTopLevelControl,
49
+ displaySubtermsControl,
50
+ setAttributes
51
+ }) {
52
+ const {
53
+ termQuery,
54
+ termsToShow
55
+ } = attributes;
56
+ return /*#__PURE__*/_jsx(ToolsPanelItem, {
57
+ hasValue: () => termsToShow !== 'all',
58
+ label: __('Terms to show'),
59
+ onDeselect: () => setAttributes({
60
+ termsToShow: 'all'
61
+ }),
62
+ isShownByDefault: true,
63
+ children: /*#__PURE__*/_jsx(RadioControl, {
64
+ label: __('Terms to show'),
65
+ options: getOptions(displayTopLevelControl, displaySubtermsControl),
66
+ selected: termsToShow,
67
+ onChange: value => {
68
+ const queryAttributes = getQueryAttributes(value);
69
+ setAttributes({
70
+ termsToShow: value,
71
+ termQuery: {
72
+ ...termQuery,
73
+ ...queryAttributes
74
+ }
75
+ });
76
+ }
77
+ })
78
+ });
79
+ }
80
+ //# sourceMappingURL=display-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","__experimentalToolsPanelItem","ToolsPanelItem","RadioControl","jsx","_jsx","getOptions","displayTopLevelControl","displaySubtermsControl","options","label","value","push","description","allTermsQuery","include","exclude","parent","topLevelTermsQuery","hierarchical","getQueryAttributes","DisplayOptions","attributes","setAttributes","termQuery","termsToShow","hasValue","onDeselect","isShownByDefault","children","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":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,4BAA4B,IAAIC,cAAc,EAC9CC,YAAY,QACN,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/B,MAAMC,UAAU,GAAGA,CAAEC,sBAAsB,EAAEC,sBAAsB,KAAM;EACxE,MAAMC,OAAO,GAAG,CAAE;IAAEC,KAAK,EAAEV,EAAE,CAAE,UAAW,CAAC;IAAEW,KAAK,EAAE;EAAM,CAAC,CAAE;EAE7D,IAAKJ,sBAAsB,EAAG;IAC7BE,OAAO,CAACG,IAAI,CAAE;MACbF,KAAK,EAAEV,EAAE,CAAE,2BAA4B,CAAC;MACxCW,KAAK,EAAE;IACR,CAAE,CAAC;EACJ;EAEA,IAAKH,sBAAsB,EAAG;IAC7BC,OAAO,CAACG,IAAI,CAAE;MACbF,KAAK,EAAEV,EAAE,CAAE,oBAAqB,CAAC;MACjCW,KAAK,EAAE,UAAU;MACjBE,WAAW,EAAEb,EAAE,CACd,+EACD;IACD,CAAE,CAAC;EACJ;EAEA,OAAOS,OAAO;AACf,CAAC;AAED,MAAMK,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;AAED,eAAe,SAASO,cAAcA,CAAE;EACvCC,UAAU;EACVf,sBAAsB;EACtBC,sBAAsB;EACtBe;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,SAAS;IAAEC;EAAY,CAAC,GAAGH,UAAU;EAE7C,oBACCjB,IAAA,CAACH,cAAc;IACdwB,QAAQ,EAAGA,CAAA,KAAMD,WAAW,KAAK,KAAO;IACxCf,KAAK,EAAGV,EAAE,CAAE,eAAgB,CAAG;IAC/B2B,UAAU,EAAGA,CAAA,KAAMJ,aAAa,CAAE;MAAEE,WAAW,EAAE;IAAM,CAAE,CAAG;IAC5DG,gBAAgB;IAAAC,QAAA,eAEhBxB,IAAA,CAACF,YAAY;MACZO,KAAK,EAAGV,EAAE,CAAE,eAAgB,CAAG;MAC/BS,OAAO,EAAGH,UAAU,CACnBC,sBAAsB,EACtBC,sBACD,CAAG;MACHsB,QAAQ,EAAGL,WAAa;MACxBM,QAAQ,EAAKpB,KAAK,IAAM;QACvB,MAAMqB,eAAe,GAAGZ,kBAAkB,CAAET,KAAM,CAAC;QACnDY,aAAa,CAAE;UACdE,WAAW,EAAEd,KAAK;UAClBa,SAAS,EAAE;YAAE,GAAGA,SAAS;YAAE,GAAGQ;UAAgB;QAC/C,CAAE,CAAC;MACJ;IAAG,CACH;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { __experimentalToolsPanelItem as ToolsPanelItem, ToggleControl } from '@wordpress/components';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export default function EmptyTermsControl({
8
+ attributes,
9
+ setQuery
10
+ }) {
11
+ const {
12
+ termQuery
13
+ } = attributes;
14
+ return /*#__PURE__*/_jsx(ToolsPanelItem, {
15
+ hasValue: () => termQuery.hideEmpty !== true,
16
+ label: __('Show empty terms'),
17
+ onDeselect: () => setQuery({
18
+ hideEmpty: true
19
+ }),
20
+ isShownByDefault: true,
21
+ children: /*#__PURE__*/_jsx(ToggleControl, {
22
+ __nextHasNoMarginBottom: true,
23
+ label: __('Show empty terms'),
24
+ checked: !termQuery.hideEmpty,
25
+ onChange: showEmpty => setQuery({
26
+ hideEmpty: !showEmpty
27
+ })
28
+ })
29
+ });
30
+ }
31
+ //# sourceMappingURL=empty-terms-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","__experimentalToolsPanelItem","ToolsPanelItem","ToggleControl","jsx","_jsx","EmptyTermsControl","attributes","setQuery","termQuery","hasValue","hideEmpty","label","onDeselect","isShownByDefault","children","__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":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,4BAA4B,IAAIC,cAAc,EAC9CC,aAAa,QACP,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/B,eAAe,SAASC,iBAAiBA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EACrE,MAAM;IAAEC;EAAU,CAAC,GAAGF,UAAU;EAEhC,oBACCF,IAAA,CAACH,cAAc;IACdQ,QAAQ,EAAGA,CAAA,KAAMD,SAAS,CAACE,SAAS,KAAK,IAAM;IAC/CC,KAAK,EAAGZ,EAAE,CAAE,kBAAmB,CAAG;IAClCa,UAAU,EAAGA,CAAA,KAAML,QAAQ,CAAE;MAAEG,SAAS,EAAE;IAAK,CAAE,CAAG;IACpDG,gBAAgB;IAAAC,QAAA,eAEhBV,IAAA,CAACF,aAAa;MACba,uBAAuB;MACvBJ,KAAK,EAAGZ,EAAE,CAAE,kBAAmB,CAAG;MAClCiB,OAAO,EAAG,CAAER,SAAS,CAACE,SAAW;MACjCO,QAAQ,EAAKC,SAAS,IACrBX,QAAQ,CAAE;QAAEG,SAAS,EAAE,CAAEQ;MAAU,CAAE;IACrC,CACD;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { __experimentalToolsPanelItem as ToolsPanelItem, ToggleControl } from '@wordpress/components';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export default function HierarchyControl({
8
+ attributes,
9
+ setQuery
10
+ }) {
11
+ const {
12
+ termQuery
13
+ } = attributes;
14
+ return /*#__PURE__*/_jsx(ToolsPanelItem, {
15
+ hasValue: () => termQuery.hierarchical !== false,
16
+ label: __('Show hierarchy'),
17
+ onDeselect: () => setQuery({
18
+ hierarchical: false
19
+ }),
20
+ isShownByDefault: true,
21
+ children: /*#__PURE__*/_jsx(ToggleControl, {
22
+ __nextHasNoMarginBottom: true,
23
+ label: __('Show hierarchy'),
24
+ checked: termQuery.hierarchical,
25
+ onChange: hierarchical => {
26
+ setQuery({
27
+ hierarchical
28
+ });
29
+ }
30
+ })
31
+ });
32
+ }
33
+ //# sourceMappingURL=hierarchy-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","__experimentalToolsPanelItem","ToolsPanelItem","ToggleControl","jsx","_jsx","HierarchyControl","attributes","setQuery","termQuery","hasValue","hierarchical","label","onDeselect","isShownByDefault","children","__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":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,4BAA4B,IAAIC,cAAc,EAC9CC,aAAa,QACP,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/B,eAAe,SAASC,gBAAgBA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EACpE,MAAM;IAAEC;EAAU,CAAC,GAAGF,UAAU;EAEhC,oBACCF,IAAA,CAACH,cAAc;IACdQ,QAAQ,EAAGA,CAAA,KAAMD,SAAS,CAACE,YAAY,KAAK,KAAO;IACnDC,KAAK,EAAGZ,EAAE,CAAE,gBAAiB,CAAG;IAChCa,UAAU,EAAGA,CAAA,KAAML,QAAQ,CAAE;MAAEG,YAAY,EAAE;IAAM,CAAE,CAAG;IACxDG,gBAAgB;IAAAC,QAAA,eAEhBV,IAAA,CAACF,aAAa;MACba,uBAAuB;MACvBJ,KAAK,EAAGZ,EAAE,CAAE,gBAAiB,CAAG;MAChCiB,OAAO,EAAGR,SAAS,CAACE,YAAc;MAClCO,QAAQ,EAAKP,YAAY,IAAM;QAC9BH,QAAQ,CAAE;UAAEG;QAAa,CAAE,CAAC;MAC7B;IAAG,CACH;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';
6
+ import { InspectorControls } from '@wordpress/block-editor';
7
+ import { store as coreStore } from '@wordpress/core-data';
8
+ import { useSelect } from '@wordpress/data';
9
+ import { useMemo } from '@wordpress/element';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import { useToolsPanelDropdownMenuProps } from '../../utils/hooks';
15
+ import TaxonomyControl from './taxonomy-control';
16
+ import OrderingControls from './ordering-controls';
17
+ import DisplayOptions from './display-options';
18
+ import HierarchyControl from './hierarchy-control';
19
+ import EmptyTermsControl from './empty-terms-control';
20
+ import MaxTermsControl from './max-terms-control';
21
+ import AdvancedControls from './advanced-controls';
22
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
23
+ const usePublicTaxonomies = () => {
24
+ const taxonomies = useSelect(select => select(coreStore).getTaxonomies({
25
+ per_page: -1
26
+ }), []);
27
+ return useMemo(() => {
28
+ return taxonomies?.filter(({
29
+ visibility
30
+ }) => visibility?.publicly_queryable) || [];
31
+ }, [taxonomies]);
32
+ };
33
+ export default function TermsQueryInspectorControls({
34
+ attributes,
35
+ setQuery,
36
+ setAttributes,
37
+ TagName,
38
+ clientId
39
+ }) {
40
+ const {
41
+ termQuery,
42
+ termsToShow
43
+ } = attributes;
44
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
45
+ const taxonomies = usePublicTaxonomies();
46
+ const {
47
+ templateSlug
48
+ } = useSelect(select => {
49
+ // @wordpress/block-library should not depend on @wordpress/editor.
50
+ // Blocks can be loaded into a *non-post* block editor, so to avoid
51
+ // declaring @wordpress/editor as a dependency, we must access its
52
+ // store by string.
53
+ // The solution here is to split WP specific blocks from generic blocks.
54
+ // eslint-disable-next-line @wordpress/data-no-store-string-literals
55
+ const {
56
+ getEditedPostSlug
57
+ } = select('core/editor');
58
+ return {
59
+ templateSlug: getEditedPostSlug()
60
+ };
61
+ }, []);
62
+ const taxonomyOptions = taxonomies.map(taxonomy => ({
63
+ label: taxonomy.name,
64
+ value: taxonomy.slug
65
+ }));
66
+ const isTaxonomyHierarchical = taxonomies.find(taxonomy => taxonomy.slug === termQuery.taxonomy)?.hierarchical;
67
+ const isTaxonomyMatchingTemplate = typeof templateSlug === 'string' && templateSlug.includes(termQuery.taxonomy);
68
+ const displaySubtermsControl = isTaxonomyHierarchical && isTaxonomyMatchingTemplate;
69
+ return /*#__PURE__*/_jsxs(_Fragment, {
70
+ children: [/*#__PURE__*/_jsx(InspectorControls, {
71
+ children: /*#__PURE__*/_jsxs(ToolsPanel, {
72
+ label: __('Terms Query Settings'),
73
+ resetAll: () => {
74
+ setAttributes({
75
+ termQuery: {
76
+ taxonomy: 'category',
77
+ order: 'asc',
78
+ orderBy: 'name',
79
+ hideEmpty: true,
80
+ hierarchical: false,
81
+ parent: false,
82
+ perPage: 10
83
+ },
84
+ termsToShow: 'all'
85
+ });
86
+ },
87
+ dropdownMenuProps: dropdownMenuProps,
88
+ children: [/*#__PURE__*/_jsx(TaxonomyControl, {
89
+ attributes: attributes,
90
+ setQuery: setQuery,
91
+ setAttributes: setAttributes,
92
+ taxonomyOptions: taxonomyOptions
93
+ }), /*#__PURE__*/_jsx(OrderingControls, {
94
+ attributes: attributes,
95
+ setQuery: setQuery
96
+ }), /*#__PURE__*/_jsx(EmptyTermsControl, {
97
+ attributes: attributes,
98
+ setQuery: setQuery
99
+ }), /*#__PURE__*/_jsx(DisplayOptions, {
100
+ attributes: attributes,
101
+ setAttributes: setAttributes,
102
+ displayTopLevelControl: isTaxonomyHierarchical,
103
+ displaySubtermsControl: displaySubtermsControl
104
+ }), /*#__PURE__*/_jsx(MaxTermsControl, {
105
+ attributes: attributes,
106
+ setQuery: setQuery
107
+ }), isTaxonomyHierarchical && termsToShow === 'all' && /*#__PURE__*/_jsx(HierarchyControl, {
108
+ attributes: attributes,
109
+ setQuery: setQuery
110
+ })]
111
+ })
112
+ }), /*#__PURE__*/_jsx(AdvancedControls, {
113
+ TagName: TagName,
114
+ setAttributes: setAttributes,
115
+ clientId: clientId
116
+ })]
117
+ });
118
+ }
119
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","__experimentalToolsPanel","ToolsPanel","InspectorControls","store","coreStore","useSelect","useMemo","useToolsPanelDropdownMenuProps","TaxonomyControl","OrderingControls","DisplayOptions","HierarchyControl","EmptyTermsControl","MaxTermsControl","AdvancedControls","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","usePublicTaxonomies","taxonomies","select","getTaxonomies","per_page","filter","visibility","publicly_queryable","TermsQueryInspectorControls","attributes","setQuery","setAttributes","TagName","clientId","termQuery","termsToShow","dropdownMenuProps","templateSlug","getEditedPostSlug","taxonomyOptions","map","taxonomy","label","name","value","slug","isTaxonomyHierarchical","find","hierarchical","isTaxonomyMatchingTemplate","includes","displaySubtermsControl","children","resetAll","order","orderBy","hideEmpty","parent","perPage","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":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,wBAAwB,IAAIC,UAAU,QAAQ,uBAAuB;AAC9E,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA,SAASC,8BAA8B,QAAQ,mBAAmB;AAClE,OAAOC,eAAe,MAAM,oBAAoB;AAChD,OAAOC,gBAAgB,MAAM,qBAAqB;AAClD,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,gBAAgB,MAAM,qBAAqB;AAClD,OAAOC,iBAAiB,MAAM,uBAAuB;AACrD,OAAOC,eAAe,MAAM,qBAAqB;AACjD,OAAOC,gBAAgB,MAAM,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEnD,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACjC,MAAMC,UAAU,GAAGjB,SAAS,CACzBkB,MAAM,IAAMA,MAAM,CAAEnB,SAAU,CAAC,CAACoB,aAAa,CAAE;IAAEC,QAAQ,EAAE,CAAC;EAAE,CAAE,CAAC,EACnE,EACD,CAAC;EACD,OAAOnB,OAAO,CAAE,MAAM;IACrB,OACCgB,UAAU,EAAEI,MAAM,CACjB,CAAE;MAAEC;IAAW,CAAC,KAAMA,UAAU,EAAEC,kBACnC,CAAC,IAAI,EAAE;EAET,CAAC,EAAE,CAAEN,UAAU,CAAG,CAAC;AACpB,CAAC;AAED,eAAe,SAASO,2BAA2BA,CAAE;EACpDC,UAAU;EACVC,QAAQ;EACRC,aAAa;EACbC,OAAO;EACPC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,SAAS;IAAEC;EAAY,CAAC,GAAGN,UAAU;EAC7C,MAAMO,iBAAiB,GAAG9B,8BAA8B,CAAC,CAAC;EAC1D,MAAMe,UAAU,GAAGD,mBAAmB,CAAC,CAAC;EAExC,MAAM;IAAEiB;EAAa,CAAC,GAAGjC,SAAS,CAAIkB,MAAM,IAAM;IACjD;IACA;IACA;IACA;IACA;IACA;IACA,MAAM;MAAEgB;IAAkB,CAAC,GAAGhB,MAAM,CAAE,aAAc,CAAC;IACrD,OAAO;MACNe,YAAY,EAAEC,iBAAiB,CAAC;IACjC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,eAAe,GAAGlB,UAAU,CAACmB,GAAG,CAAIC,QAAQ,KAAQ;IACzDC,KAAK,EAAED,QAAQ,CAACE,IAAI;IACpBC,KAAK,EAAEH,QAAQ,CAACI;EACjB,CAAC,CAAG,CAAC;EAEL,MAAMC,sBAAsB,GAAGzB,UAAU,CAAC0B,IAAI,CAC3CN,QAAQ,IAAMA,QAAQ,CAACI,IAAI,KAAKX,SAAS,CAACO,QAC7C,CAAC,EAAEO,YAAY;EAEf,MAAMC,0BAA0B,GAC/B,OAAOZ,YAAY,KAAK,QAAQ,IAChCA,YAAY,CAACa,QAAQ,CAAEhB,SAAS,CAACO,QAAS,CAAC;EAE5C,MAAMU,sBAAsB,GAC3BL,sBAAsB,IAAIG,0BAA0B;EAErD,oBACChC,KAAA,CAAAE,SAAA;IAAAiC,QAAA,gBACCrC,IAAA,CAACd,iBAAiB;MAAAmD,QAAA,eACjBnC,KAAA,CAACjB,UAAU;QACV0C,KAAK,EAAG5C,EAAE,CAAE,sBAAuB,CAAG;QACtCuD,QAAQ,EAAGA,CAAA,KAAM;UAChBtB,aAAa,CAAE;YACdG,SAAS,EAAE;cACVO,QAAQ,EAAE,UAAU;cACpBa,KAAK,EAAE,KAAK;cACZC,OAAO,EAAE,MAAM;cACfC,SAAS,EAAE,IAAI;cACfR,YAAY,EAAE,KAAK;cACnBS,MAAM,EAAE,KAAK;cACbC,OAAO,EAAE;YACV,CAAC;YACDvB,WAAW,EAAE;UACd,CAAE,CAAC;QACJ,CAAG;QACHC,iBAAiB,EAAGA,iBAAmB;QAAAgB,QAAA,gBAEvCrC,IAAA,CAACR,eAAe;UACfsB,UAAU,EAAGA,UAAY;UACzBC,QAAQ,EAAGA,QAAU;UACrBC,aAAa,EAAGA,aAAe;UAC/BQ,eAAe,EAAGA;QAAiB,CACnC,CAAC,eACFxB,IAAA,CAACP,gBAAgB;UAChBqB,UAAU,EAAGA,UAAY;UACzBC,QAAQ,EAAGA;QAAU,CACrB,CAAC,eACFf,IAAA,CAACJ,iBAAiB;UACjBkB,UAAU,EAAGA,UAAY;UACzBC,QAAQ,EAAGA;QAAU,CACrB,CAAC,eACFf,IAAA,CAACN,cAAc;UACdoB,UAAU,EAAGA,UAAY;UACzBE,aAAa,EAAGA,aAAe;UAC/B4B,sBAAsB,EAAGb,sBAAwB;UACjDK,sBAAsB,EAAGA;QAAwB,CACjD,CAAC,eACFpC,IAAA,CAACH,eAAe;UACfiB,UAAU,EAAGA,UAAY;UACzBC,QAAQ,EAAGA;QAAU,CACrB,CAAC,EACAgB,sBAAsB,IAAIX,WAAW,KAAK,KAAK,iBAChDpB,IAAA,CAACL,gBAAgB;UAChBmB,UAAU,EAAGA,UAAY;UACzBC,QAAQ,EAAGA;QAAU,CACrB,CACD;MAAA,CACU;IAAC,CACK,CAAC,eACpBf,IAAA,CAACF,gBAAgB;MAChBmB,OAAO,EAAGA,OAAS;MACnBD,aAAa,EAAGA,aAAe;MAC/BE,QAAQ,EAAGA;IAAU,CACrB,CAAC;EAAA,CACD,CAAC;AAEL","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { __experimentalToolsPanelItem as ToolsPanelItem, RangeControl } from '@wordpress/components';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export default function MaxTermsControl({
8
+ attributes,
9
+ setQuery
10
+ }) {
11
+ const {
12
+ termQuery
13
+ } = attributes;
14
+
15
+ // Only show pagination control when not hierarchical.
16
+ if (termQuery.hierarchical) {
17
+ return null;
18
+ }
19
+ return /*#__PURE__*/_jsx(ToolsPanelItem, {
20
+ hasValue: () => termQuery.perPage !== 10,
21
+ label: __('Max terms'),
22
+ onDeselect: () => setQuery({
23
+ perPage: 10
24
+ }),
25
+ isShownByDefault: true,
26
+ children: /*#__PURE__*/_jsx(RangeControl, {
27
+ __nextHasNoMarginBottom: true,
28
+ __next40pxDefaultSize: true,
29
+ label: __('Max terms'),
30
+ value: termQuery.perPage,
31
+ min: 0,
32
+ max: 100,
33
+ onChange: perPage => {
34
+ // Show all terms (-1) when 0 is selected.
35
+ setQuery({
36
+ perPage: perPage === 0 ? -1 : perPage
37
+ });
38
+ },
39
+ help: __('Limit the number of terms you want to show. To show all terms, use 0 (zero).')
40
+ })
41
+ });
42
+ }
43
+ //# sourceMappingURL=max-terms-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","__experimentalToolsPanelItem","ToolsPanelItem","RangeControl","jsx","_jsx","MaxTermsControl","attributes","setQuery","termQuery","hierarchical","hasValue","perPage","label","onDeselect","isShownByDefault","children","__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":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,4BAA4B,IAAIC,cAAc,EAC9CC,YAAY,QACN,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/B,eAAe,SAASC,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,oBACCL,IAAA,CAACH,cAAc;IACdS,QAAQ,EAAGA,CAAA,KAAMF,SAAS,CAACG,OAAO,KAAK,EAAI;IAC3CC,KAAK,EAAGb,EAAE,CAAE,WAAY,CAAG;IAC3Bc,UAAU,EAAGA,CAAA,KAAMN,QAAQ,CAAE;MAAEI,OAAO,EAAE;IAAG,CAAE,CAAG;IAChDG,gBAAgB;IAAAC,QAAA,eAEhBX,IAAA,CAACF,YAAY;MACZc,uBAAuB;MACvBC,qBAAqB;MACrBL,KAAK,EAAGb,EAAE,CAAE,WAAY,CAAG;MAC3BmB,KAAK,EAAGV,SAAS,CAACG,OAAS;MAC3BQ,GAAG,EAAG,CAAG;MACTC,GAAG,EAAG,GAAK;MACXC,QAAQ,EAAKV,OAAO,IAAM;QACzB;QACAJ,QAAQ,CAAE;UACTI,OAAO,EAAEA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAGA;QAC/B,CAAE,CAAC;MACJ,CAAG;MACHW,IAAI,EAAGvB,EAAE,CACR,8EACD;IAAG,CACH;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { __experimentalToolsPanelItem as ToolsPanelItem, SelectControl } from '@wordpress/components';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export default function OrderingControls({
8
+ attributes,
9
+ setQuery
10
+ }) {
11
+ const {
12
+ termQuery
13
+ } = attributes;
14
+ return /*#__PURE__*/_jsx(ToolsPanelItem, {
15
+ hasValue: () => termQuery.orderBy !== 'name' || termQuery.order !== 'asc',
16
+ label: __('Order by'),
17
+ onDeselect: () => setQuery({
18
+ orderBy: 'name',
19
+ order: 'asc'
20
+ }),
21
+ isShownByDefault: true,
22
+ children: /*#__PURE__*/_jsx(SelectControl, {
23
+ __nextHasNoMarginBottom: true,
24
+ __next40pxDefaultSize: true,
25
+ label: __('Order by'),
26
+ options: [{
27
+ label: __('Name: A → Z'),
28
+ value: 'name/asc'
29
+ }, {
30
+ label: __('Name: Z → A'),
31
+ value: 'name/desc'
32
+ }, {
33
+ label: __('Count, high to low'),
34
+ value: 'count/desc'
35
+ }, {
36
+ label: __('Count, low to high'),
37
+ value: 'count/asc'
38
+ }],
39
+ value: termQuery.orderBy + '/' + termQuery.order,
40
+ onChange: orderBy => {
41
+ const [newOrderBy, newOrder] = orderBy.split('/');
42
+ setQuery({
43
+ orderBy: newOrderBy,
44
+ order: newOrder
45
+ });
46
+ }
47
+ })
48
+ });
49
+ }
50
+ //# sourceMappingURL=ordering-controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","__experimentalToolsPanelItem","ToolsPanelItem","SelectControl","jsx","_jsx","OrderingControls","attributes","setQuery","termQuery","hasValue","orderBy","order","label","onDeselect","isShownByDefault","children","__nextHasNoMarginBottom","__next40pxDefaultSize","options","value","onChange","newOrderBy","newOrder","split"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/ordering-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tSelectControl,\n} from '@wordpress/components';\n\nexport default function OrderingControls( { attributes, setQuery } ) {\n\tconst { termQuery } = attributes;\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () =>\n\t\t\t\ttermQuery.orderBy !== 'name' || termQuery.order !== 'asc'\n\t\t\t}\n\t\t\tlabel={ __( 'Order by' ) }\n\t\t\tonDeselect={ () => setQuery( { orderBy: 'name', order: 'asc' } ) }\n\t\t\tisShownByDefault\n\t\t>\n\t\t\t<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Order by' ) }\n\t\t\t\toptions={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Name: A → Z' ),\n\t\t\t\t\t\tvalue: 'name/asc',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Name: Z → A' ),\n\t\t\t\t\t\tvalue: 'name/desc',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Count, high to low' ),\n\t\t\t\t\t\tvalue: 'count/desc',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Count, low to high' ),\n\t\t\t\t\t\tvalue: 'count/asc',\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t\tvalue={ termQuery.orderBy + '/' + termQuery.order }\n\t\t\t\tonChange={ ( orderBy ) => {\n\t\t\t\t\tconst [ newOrderBy, newOrder ] = orderBy.split( '/' );\n\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\torderBy: newOrderBy,\n\t\t\t\t\t\torder: newOrder,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,4BAA4B,IAAIC,cAAc,EAC9CC,aAAa,QACP,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/B,eAAe,SAASC,gBAAgBA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EACpE,MAAM;IAAEC;EAAU,CAAC,GAAGF,UAAU;EAEhC,oBACCF,IAAA,CAACH,cAAc;IACdQ,QAAQ,EAAGA,CAAA,KACVD,SAAS,CAACE,OAAO,KAAK,MAAM,IAAIF,SAAS,CAACG,KAAK,KAAK,KACpD;IACDC,KAAK,EAAGb,EAAE,CAAE,UAAW,CAAG;IAC1Bc,UAAU,EAAGA,CAAA,KAAMN,QAAQ,CAAE;MAAEG,OAAO,EAAE,MAAM;MAAEC,KAAK,EAAE;IAAM,CAAE,CAAG;IAClEG,gBAAgB;IAAAC,QAAA,eAEhBX,IAAA,CAACF,aAAa;MACbc,uBAAuB;MACvBC,qBAAqB;MACrBL,KAAK,EAAGb,EAAE,CAAE,UAAW,CAAG;MAC1BmB,OAAO,EAAG,CACT;QACCN,KAAK,EAAEb,EAAE,CAAE,aAAc,CAAC;QAC1BoB,KAAK,EAAE;MACR,CAAC,EACD;QACCP,KAAK,EAAEb,EAAE,CAAE,aAAc,CAAC;QAC1BoB,KAAK,EAAE;MACR,CAAC,EACD;QACCP,KAAK,EAAEb,EAAE,CAAE,oBAAqB,CAAC;QACjCoB,KAAK,EAAE;MACR,CAAC,EACD;QACCP,KAAK,EAAEb,EAAE,CAAE,oBAAqB,CAAC;QACjCoB,KAAK,EAAE;MACR,CAAC,CACC;MACHA,KAAK,EAAGX,SAAS,CAACE,OAAO,GAAG,GAAG,GAAGF,SAAS,CAACG,KAAO;MACnDS,QAAQ,EAAKV,OAAO,IAAM;QACzB,MAAM,CAAEW,UAAU,EAAEC,QAAQ,CAAE,GAAGZ,OAAO,CAACa,KAAK,CAAE,GAAI,CAAC;QACrDhB,QAAQ,CAAE;UACTG,OAAO,EAAEW,UAAU;UACnBV,KAAK,EAAEW;QACR,CAAE,CAAC;MACJ;IAAG,CACH;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}