@wordpress/block-library 9.31.0 → 9.31.1-next.f56bd8138.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 (179) 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 +40 -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 +15 -2
  10. package/build/accordion-content/index.js.map +1 -1
  11. package/build/accordion-header/edit.js +15 -39
  12. package/build/accordion-header/edit.js.map +1 -1
  13. package/build/accordion-header/index.js +6 -6
  14. package/build/accordion-header/index.js.map +1 -1
  15. package/build/accordion-header/save.js +15 -37
  16. package/build/accordion-header/save.js.map +1 -1
  17. package/build/accordion-panel/index.js +1 -2
  18. package/build/accordion-panel/index.js.map +1 -1
  19. package/build/avatar/hooks.js +7 -17
  20. package/build/avatar/hooks.js.map +1 -1
  21. package/build/navigation/index.js +2 -1
  22. package/build/navigation/index.js.map +1 -1
  23. package/build/navigation-link/index.js +2 -1
  24. package/build/navigation-link/index.js.map +1 -1
  25. package/build/navigation-submenu/index.js +2 -1
  26. package/build/navigation-submenu/index.js.map +1 -1
  27. package/build/page-list/index.js +2 -1
  28. package/build/page-list/index.js.map +1 -1
  29. package/build/post-author/edit.js +7 -6
  30. package/build/post-author/edit.js.map +1 -1
  31. package/build/post-time-to-read/edit.js +50 -7
  32. package/build/post-time-to-read/edit.js.map +1 -1
  33. package/build/post-time-to-read/index.js +8 -0
  34. package/build/post-time-to-read/index.js.map +1 -1
  35. package/build/term-description/edit.js +18 -2
  36. package/build/term-description/edit.js.map +1 -1
  37. package/build/term-description/index.js +1 -0
  38. package/build/term-description/index.js.map +1 -1
  39. package/build/term-description/use-term-description.js +85 -0
  40. package/build/term-description/use-term-description.js.map +1 -0
  41. package/build/term-template/edit.js +11 -7
  42. package/build/term-template/edit.js.map +1 -1
  43. package/build/term-template/index.js +1 -1
  44. package/build/terms-query/index.js +8 -2
  45. package/build/terms-query/index.js.map +1 -1
  46. package/build/terms-query/inspector-controls/advanced-controls.js +51 -0
  47. package/build/terms-query/inspector-controls/advanced-controls.js.map +1 -0
  48. package/build/terms-query/inspector-controls/display-options.js +87 -0
  49. package/build/terms-query/inspector-controls/display-options.js.map +1 -0
  50. package/build/terms-query/inspector-controls/empty-terms-control.js +38 -0
  51. package/build/terms-query/inspector-controls/empty-terms-control.js.map +1 -0
  52. package/build/terms-query/inspector-controls/hierarchy-control.js +40 -0
  53. package/build/terms-query/inspector-controls/hierarchy-control.js.map +1 -0
  54. package/build/terms-query/inspector-controls/index.js +127 -0
  55. package/build/terms-query/inspector-controls/index.js.map +1 -0
  56. package/build/terms-query/inspector-controls/max-terms-control.js +50 -0
  57. package/build/terms-query/inspector-controls/max-terms-control.js.map +1 -0
  58. package/build/terms-query/inspector-controls/ordering-controls.js +57 -0
  59. package/build/terms-query/inspector-controls/ordering-controls.js.map +1 -0
  60. package/build/terms-query/inspector-controls/taxonomy-control.js +52 -0
  61. package/build/terms-query/inspector-controls/taxonomy-control.js.map +1 -0
  62. package/build/utils/hooks.js +15 -0
  63. package/build/utils/hooks.js.map +1 -1
  64. package/build-module/accordion/edit.js +6 -5
  65. package/build-module/accordion/edit.js.map +1 -1
  66. package/build-module/accordion/index.js +41 -4
  67. package/build-module/accordion/index.js.map +1 -1
  68. package/build-module/accordion/save.js +2 -17
  69. package/build-module/accordion/save.js.map +1 -1
  70. package/build-module/accordion/view.js +51 -17
  71. package/build-module/accordion/view.js.map +1 -1
  72. package/build-module/accordion-content/index.js +15 -2
  73. package/build-module/accordion-content/index.js.map +1 -1
  74. package/build-module/accordion-header/edit.js +16 -39
  75. package/build-module/accordion-header/edit.js.map +1 -1
  76. package/build-module/accordion-header/index.js +6 -6
  77. package/build-module/accordion-header/index.js.map +1 -1
  78. package/build-module/accordion-header/save.js +16 -37
  79. package/build-module/accordion-header/save.js.map +1 -1
  80. package/build-module/accordion-panel/index.js +1 -2
  81. package/build-module/accordion-panel/index.js.map +1 -1
  82. package/build-module/avatar/hooks.js +5 -15
  83. package/build-module/avatar/hooks.js.map +1 -1
  84. package/build-module/navigation/index.js +2 -1
  85. package/build-module/navigation/index.js.map +1 -1
  86. package/build-module/navigation-link/index.js +2 -1
  87. package/build-module/navigation-link/index.js.map +1 -1
  88. package/build-module/navigation-submenu/index.js +2 -1
  89. package/build-module/navigation-submenu/index.js.map +1 -1
  90. package/build-module/page-list/index.js +2 -1
  91. package/build-module/page-list/index.js.map +1 -1
  92. package/build-module/post-author/edit.js +8 -7
  93. package/build-module/post-author/edit.js.map +1 -1
  94. package/build-module/post-time-to-read/edit.js +50 -9
  95. package/build-module/post-time-to-read/edit.js.map +1 -1
  96. package/build-module/post-time-to-read/index.js +8 -0
  97. package/build-module/post-time-to-read/index.js.map +1 -1
  98. package/build-module/term-description/edit.js +18 -2
  99. package/build-module/term-description/edit.js.map +1 -1
  100. package/build-module/term-description/index.js +1 -0
  101. package/build-module/term-description/index.js.map +1 -1
  102. package/build-module/term-description/use-term-description.js +79 -0
  103. package/build-module/term-description/use-term-description.js.map +1 -0
  104. package/build-module/term-template/edit.js +11 -7
  105. package/build-module/term-template/edit.js.map +1 -1
  106. package/build-module/term-template/index.js +1 -1
  107. package/build-module/terms-query/index.js +8 -2
  108. package/build-module/terms-query/index.js.map +1 -1
  109. package/build-module/terms-query/inspector-controls/advanced-controls.js +44 -0
  110. package/build-module/terms-query/inspector-controls/advanced-controls.js.map +1 -0
  111. package/build-module/terms-query/inspector-controls/display-options.js +80 -0
  112. package/build-module/terms-query/inspector-controls/display-options.js.map +1 -0
  113. package/build-module/terms-query/inspector-controls/empty-terms-control.js +31 -0
  114. package/build-module/terms-query/inspector-controls/empty-terms-control.js.map +1 -0
  115. package/build-module/terms-query/inspector-controls/hierarchy-control.js +33 -0
  116. package/build-module/terms-query/inspector-controls/hierarchy-control.js.map +1 -0
  117. package/build-module/terms-query/inspector-controls/index.js +119 -0
  118. package/build-module/terms-query/inspector-controls/index.js.map +1 -0
  119. package/build-module/terms-query/inspector-controls/max-terms-control.js +43 -0
  120. package/build-module/terms-query/inspector-controls/max-terms-control.js.map +1 -0
  121. package/build-module/terms-query/inspector-controls/ordering-controls.js +50 -0
  122. package/build-module/terms-query/inspector-controls/ordering-controls.js.map +1 -0
  123. package/build-module/terms-query/inspector-controls/taxonomy-control.js +45 -0
  124. package/build-module/terms-query/inspector-controls/taxonomy-control.js.map +1 -0
  125. package/build-module/utils/hooks.js +14 -0
  126. package/build-module/utils/hooks.js.map +1 -1
  127. package/build-style/accordion/style-rtl.css +15 -8
  128. package/build-style/accordion/style.css +15 -8
  129. package/build-style/style-rtl.css +15 -8
  130. package/build-style/style.css +15 -8
  131. package/package.json +35 -35
  132. package/src/accordion/block.json +17 -3
  133. package/src/accordion/edit.js +39 -34
  134. package/src/accordion/index.js +35 -1
  135. package/src/accordion/index.php +3 -19
  136. package/src/accordion/save.js +2 -16
  137. package/src/accordion/style.scss +16 -8
  138. package/src/accordion/view.js +64 -15
  139. package/src/accordion-content/block.json +15 -2
  140. package/src/accordion-content/index.php +2 -1
  141. package/src/accordion-header/block.json +6 -6
  142. package/src/accordion-header/edit.js +19 -56
  143. package/src/accordion-header/save.js +27 -49
  144. package/src/accordion-panel/block.json +1 -2
  145. package/src/avatar/hooks.js +5 -10
  146. package/src/navigation/block.json +2 -1
  147. package/src/navigation-link/block.json +2 -1
  148. package/src/navigation-submenu/block.json +2 -1
  149. package/src/page-list/block.json +2 -1
  150. package/src/post-author/edit.js +16 -7
  151. package/src/post-time-to-read/block.json +8 -0
  152. package/src/post-time-to-read/edit.js +71 -10
  153. package/src/post-time-to-read/index.php +29 -17
  154. package/src/term-description/block.json +1 -0
  155. package/src/term-description/edit.js +18 -3
  156. package/src/term-description/use-term-description.js +109 -0
  157. package/src/term-template/block.json +1 -1
  158. package/src/term-template/edit.js +11 -6
  159. package/src/term-template/index.php +13 -7
  160. package/src/terms-query/block.json +8 -2
  161. package/src/terms-query/inspector-controls/advanced-controls.js +37 -0
  162. package/src/terms-query/inspector-controls/display-options.js +87 -0
  163. package/src/terms-query/inspector-controls/empty-terms-control.js +30 -0
  164. package/src/terms-query/inspector-controls/hierarchy-control.js +30 -0
  165. package/src/terms-query/inspector-controls/index.js +137 -0
  166. package/src/terms-query/inspector-controls/max-terms-control.js +44 -0
  167. package/src/terms-query/inspector-controls/ordering-controls.js +55 -0
  168. package/src/terms-query/inspector-controls/taxonomy-control.js +41 -0
  169. package/src/utils/hooks.js +9 -0
  170. package/build/accordion-content/icons.js +0 -30
  171. package/build/accordion-content/icons.js.map +0 -1
  172. package/build/terms-query/inspector-controls.js +0 -231
  173. package/build/terms-query/inspector-controls.js.map +0 -1
  174. package/build-module/accordion-content/icons.js +0 -22
  175. package/build-module/accordion-content/icons.js.map +0 -1
  176. package/build-module/terms-query/inspector-controls.js +0 -224
  177. package/build-module/terms-query/inspector-controls.js.map +0 -1
  178. package/src/accordion-content/icons.js +0 -23
  179. package/src/terms-query/inspector-controls.js +0 -239
@@ -15,6 +15,14 @@ const metadata = {
15
15
  attributes: {
16
16
  textAlign: {
17
17
  type: "string"
18
+ },
19
+ displayAsRange: {
20
+ type: "boolean",
21
+ "default": true
22
+ },
23
+ averageReadingSpeed: {
24
+ type: "number",
25
+ "default": 189
18
26
  }
19
27
  },
20
28
  supports: {
@@ -1 +1 @@
1
- {"version":3,"names":["initBlock","metadata","$schema","apiVersion","__experimental","name","title","category","description","textdomain","usesContext","attributes","textAlign","type","supports","color","gradients","__experimentalDefaultControls","background","text","html","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","__experimentalBorder","radius","width","style","edit","icon","settings","example","init"],"sources":["@wordpress/block-library/src/post-time-to-read/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport icon from './icon';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,WAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,KAAA;MAAAC,SAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,IAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAN,6BAAA;QAAAK,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAf,6BAAA;QAAAQ,QAAA;MAAA;IAAA;IAAAQ,aAAA;MAAAC,gBAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAArB,KAAA;MAAAsB,KAAA;MAAAC,KAAA;IAAA;EAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAEnC;AAAK,CAAC,GAAGJ,QAAQ;AACzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAMoC,QAAQ,GAAG;EACvBD,IAAI;EACJD,IAAI;EACJG,OAAO,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAAM3C,SAAS,CAAE;EAAEK,IAAI;EAAEJ,QAAQ;EAAEwC;AAAS,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["initBlock","metadata","$schema","apiVersion","__experimental","name","title","category","description","textdomain","usesContext","attributes","textAlign","type","displayAsRange","averageReadingSpeed","supports","color","gradients","__experimentalDefaultControls","background","text","html","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","__experimentalBorder","radius","width","style","edit","icon","settings","example","init"],"sources":["@wordpress/block-library/src/post-time-to-read/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport icon from './icon';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,WAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;IAAAC,cAAA;MAAAD,IAAA;MAAA;IAAA;IAAAE,mBAAA;MAAAF,IAAA;MAAA;IAAA;EAAA;EAAAG,QAAA;IAAAC,KAAA;MAAAC,SAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,IAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAN,6BAAA;QAAAK,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAf,6BAAA;QAAAQ,QAAA;MAAA;IAAA;IAAAQ,aAAA;MAAAC,gBAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAArB,KAAA;MAAAsB,KAAA;MAAAC,KAAA;IAAA;EAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAErC;AAAK,CAAC,GAAGJ,QAAQ;AACzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAMsC,QAAQ,GAAG;EACvBD,IAAI;EACJD,IAAI;EACJG,OAAO,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAAM7C,SAAS,CAAE;EAAEK,IAAI;EAAEJ,QAAQ;EAAE0C;AAAS,CAAE,CAAC","ignoreList":[]}
@@ -8,15 +8,27 @@ import clsx from 'clsx';
8
8
  */
9
9
  import { __ } from '@wordpress/i18n';
10
10
  import { useBlockProps, BlockControls, AlignmentControl } from '@wordpress/block-editor';
11
+
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+ import { useTermDescription } from './use-term-description';
11
16
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
12
17
  export default function TermDescriptionEdit({
13
18
  attributes,
14
19
  setAttributes,
15
- mergedStyle
20
+ mergedStyle,
21
+ context: {
22
+ termId,
23
+ taxonomy
24
+ }
16
25
  }) {
17
26
  const {
18
27
  textAlign
19
28
  } = attributes;
29
+ const {
30
+ termDescription
31
+ } = useTermDescription(termId, taxonomy);
20
32
  const blockProps = useBlockProps({
21
33
  className: clsx({
22
34
  [`has-text-align-${textAlign}`]: textAlign
@@ -36,7 +48,11 @@ export default function TermDescriptionEdit({
36
48
  })
37
49
  }), /*#__PURE__*/_jsx("div", {
38
50
  ...blockProps,
39
- children: /*#__PURE__*/_jsx("div", {
51
+ children: termDescription ? /*#__PURE__*/_jsx("div", {
52
+ dangerouslySetInnerHTML: {
53
+ __html: termDescription
54
+ }
55
+ }) : /*#__PURE__*/_jsx("div", {
40
56
  className: "wp-block-term-description__placeholder",
41
57
  children: /*#__PURE__*/_jsx("span", {
42
58
  children: __('Term Description')
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__","useBlockProps","BlockControls","AlignmentControl","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","TermDescriptionEdit","attributes","setAttributes","mergedStyle","textAlign","blockProps","className","style","children","group","value","onChange","nextAlign"],"sources":["@wordpress/block-library/src/term-description/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tAlignmentControl,\n} from '@wordpress/block-editor';\n\nexport default function TermDescriptionEdit( {\n\tattributes,\n\tsetAttributes,\n\tmergedStyle,\n} ) {\n\tconst { textAlign } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t\tstyle: mergedStyle,\n\t} );\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<div className=\"wp-block-term-description__placeholder\">\n\t\t\t\t\t<span>{ __( 'Term Description' ) }</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,aAAa,EACbC,aAAa,EACbC,gBAAgB,QACV,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAEjC,eAAe,SAASC,mBAAmBA,CAAE;EAC5CC,UAAU;EACVC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC;EAAU,CAAC,GAAGH,UAAU;EAChC,MAAMI,UAAU,GAAGd,aAAa,CAAE;IACjCe,SAAS,EAAEjB,IAAI,CAAE;MAChB,CAAE,kBAAmBe,SAAS,EAAG,GAAIA;IACtC,CAAE,CAAC;IACHG,KAAK,EAAEJ;EACR,CAAE,CAAC;EACH,oBACCJ,KAAA,CAAAF,SAAA;IAAAW,QAAA,gBACCb,IAAA,CAACH,aAAa;MAACiB,KAAK,EAAC,OAAO;MAAAD,QAAA,eAC3Bb,IAAA,CAACF,gBAAgB;QAChBiB,KAAK,EAAGN,SAAW;QACnBO,QAAQ,EAAKC,SAAS,IAAM;UAC3BV,aAAa,CAAE;YAAEE,SAAS,EAAEQ;UAAU,CAAE,CAAC;QAC1C;MAAG,CACH;IAAC,CACY,CAAC,eAChBjB,IAAA;MAAA,GAAUU,UAAU;MAAAG,QAAA,eACnBb,IAAA;QAAKW,SAAS,EAAC,wCAAwC;QAAAE,QAAA,eACtDb,IAAA;UAAAa,QAAA,EAAQlB,EAAE,CAAE,kBAAmB;QAAC,CAAQ;MAAC,CACrC;IAAC,CACF,CAAC;EAAA,CACL,CAAC;AAEL","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__","useBlockProps","BlockControls","AlignmentControl","useTermDescription","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","TermDescriptionEdit","attributes","setAttributes","mergedStyle","context","termId","taxonomy","textAlign","termDescription","blockProps","className","style","children","group","value","onChange","nextAlign","dangerouslySetInnerHTML","__html"],"sources":["@wordpress/block-library/src/term-description/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tAlignmentControl,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { useTermDescription } from './use-term-description';\n\nexport default function TermDescriptionEdit( {\n\tattributes,\n\tsetAttributes,\n\tmergedStyle,\n\tcontext: { termId, taxonomy },\n} ) {\n\tconst { textAlign } = attributes;\n\tconst { termDescription } = useTermDescription( termId, taxonomy );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t\tstyle: mergedStyle,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ termDescription ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tdangerouslySetInnerHTML={ { __html: termDescription } }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<div className=\"wp-block-term-description__placeholder\">\n\t\t\t\t\t\t<span>{ __( 'Term Description' ) }</span>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,aAAa,EACbC,aAAa,EACbC,gBAAgB,QACV,yBAAyB;;AAEhC;AACA;AACA;AACA,SAASC,kBAAkB,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAE5D,eAAe,SAASC,mBAAmBA,CAAE;EAC5CC,UAAU;EACVC,aAAa;EACbC,WAAW;EACXC,OAAO,EAAE;IAAEC,MAAM;IAAEC;EAAS;AAC7B,CAAC,EAAG;EACH,MAAM;IAAEC;EAAU,CAAC,GAAGN,UAAU;EAChC,MAAM;IAAEO;EAAgB,CAAC,GAAGf,kBAAkB,CAAEY,MAAM,EAAEC,QAAS,CAAC;EAElE,MAAMG,UAAU,GAAGnB,aAAa,CAAE;IACjCoB,SAAS,EAAEtB,IAAI,CAAE;MAChB,CAAE,kBAAmBmB,SAAS,EAAG,GAAIA;IACtC,CAAE,CAAC;IACHI,KAAK,EAAER;EACR,CAAE,CAAC;EAEH,oBACCJ,KAAA,CAAAF,SAAA;IAAAe,QAAA,gBACCjB,IAAA,CAACJ,aAAa;MAACsB,KAAK,EAAC,OAAO;MAAAD,QAAA,eAC3BjB,IAAA,CAACH,gBAAgB;QAChBsB,KAAK,EAAGP,SAAW;QACnBQ,QAAQ,EAAKC,SAAS,IAAM;UAC3Bd,aAAa,CAAE;YAAEK,SAAS,EAAES;UAAU,CAAE,CAAC;QAC1C;MAAG,CACH;IAAC,CACY,CAAC,eAChBrB,IAAA;MAAA,GAAUc,UAAU;MAAAG,QAAA,EACjBJ,eAAe,gBAChBb,IAAA;QACCsB,uBAAuB,EAAG;UAAEC,MAAM,EAAEV;QAAgB;MAAG,CACvD,CAAC,gBAEFb,IAAA;QAAKe,SAAS,EAAC,wCAAwC;QAAAE,QAAA,eACtDjB,IAAA;UAAAiB,QAAA,EAAQvB,EAAE,CAAE,kBAAmB;QAAC,CAAQ;MAAC,CACrC;IACL,CACG,CAAC;EAAA,CACL,CAAC;AAEL","ignoreList":[]}
@@ -15,6 +15,7 @@ const metadata = {
15
15
  category: "theme",
16
16
  description: "Display the description of categories, tags and custom taxonomies when viewing an archive.",
17
17
  textdomain: "default",
18
+ usesContext: ["termId", "taxonomy"],
18
19
  attributes: {
19
20
  textAlign: {
20
21
  type: "string"
@@ -1 +1 @@
1
- {"version":3,"names":["termDescription","icon","initBlock","metadata","$schema","apiVersion","name","title","category","description","textdomain","attributes","textAlign","type","supports","align","html","color","link","__experimentalDefaultControls","background","text","spacing","padding","margin","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","__experimentalBorder","radius","width","style","edit","settings","example","init"],"sources":["@wordpress/block-library/src/term-description/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { termDescription 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';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,IAAIC,IAAI,QAAQ,kBAAkB;;AAE1D;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,KAAA;MAAAC,IAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,OAAA;MAAAC,MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAd,6BAAA;QAAAO,QAAA;MAAA;IAAA;IAAAQ,aAAA;MAAAC,gBAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAApB,KAAA;MAAAqB,KAAA;MAAAC,KAAA;MAAApB,6BAAA;QAAAkB,MAAA;QAAApB,KAAA;QAAAqB,KAAA;QAAAC,KAAA;MAAA;IAAA;EAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAElC;AAAK,CAAC,GAAGH,QAAQ;AACzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAMmC,QAAQ,GAAG;EACvBxC,IAAI;EACJuC,IAAI;EACJE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAAMzC,SAAS,CAAE;EAAEI,IAAI;EAAEH,QAAQ;EAAEsC;AAAS,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["termDescription","icon","initBlock","metadata","$schema","apiVersion","name","title","category","description","textdomain","usesContext","attributes","textAlign","type","supports","align","html","color","link","__experimentalDefaultControls","background","text","spacing","padding","margin","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","__experimentalBorder","radius","width","style","edit","settings","example","init"],"sources":["@wordpress/block-library/src/term-description/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { termDescription 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';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,IAAIC,IAAI,QAAQ,kBAAkB;;AAE1D;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,WAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,KAAA;MAAAC,IAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,OAAA;MAAAC,MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAd,6BAAA;QAAAO,QAAA;MAAA;IAAA;IAAAQ,aAAA;MAAAC,gBAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAApB,KAAA;MAAAqB,KAAA;MAAAC,KAAA;MAAApB,6BAAA;QAAAkB,MAAA;QAAApB,KAAA;QAAAqB,KAAA;QAAAC,KAAA;MAAA;IAAA;EAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAEnC;AAAK,CAAC,GAAGH,QAAQ;AACzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAMoC,QAAQ,GAAG;EACvBzC,IAAI;EACJwC,IAAI;EACJE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAAM1C,SAAS,CAAE;EAAEI,IAAI;EAAEH,QAAQ;EAAEuC;AAAS,CAAE,CAAC","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { store as coreStore, useEntityProp } from '@wordpress/core-data';
5
+ import { useSelect } from '@wordpress/data';
6
+
7
+ /**
8
+ * Hook to fetch term description based on context or fallback to template parsing.
9
+ *
10
+ * This hook prioritizes context-provided termId and taxonomy, but falls back to
11
+ * template-based detection when no context is available.
12
+ *
13
+ * @param {string|number} termId The term ID from context
14
+ * @param {string} taxonomy The taxonomy name from context
15
+ */
16
+ export function useTermDescription(termId, taxonomy) {
17
+ const [description, setDescription, fullDescription] = useEntityProp('taxonomy', taxonomy, 'description', termId);
18
+
19
+ // Fallback approach: Parse template slug when no context is available.
20
+ const templateBasedData = useTemplateBasedTermData();
21
+ const hasContext = Boolean(termId && taxonomy);
22
+ return {
23
+ hasContext,
24
+ setDescription,
25
+ termDescription: hasContext ? fullDescription?.rendered || description || '' : templateBasedData
26
+ };
27
+ }
28
+
29
+ /**
30
+ * Fallback hook to fetch term data from template context (backward compatibility).
31
+ * This maintains the same logic as the original implementation for cases where
32
+ * no termId/taxonomy context is provided.
33
+ */
34
+ function useTemplateBasedTermData() {
35
+ const templateSlug = useSelect(select => {
36
+ // Access core/editor by string to avoid @wordpress/editor dependency.
37
+ // eslint-disable-next-line @wordpress/data-no-store-string-literals
38
+ const {
39
+ getCurrentPostId,
40
+ getCurrentPostType,
41
+ getCurrentTemplateId
42
+ } = select('core/editor');
43
+ const currentPostType = getCurrentPostType();
44
+ const templateId = getCurrentTemplateId() || (currentPostType === 'wp_template' ? getCurrentPostId() : null);
45
+ return templateId ? select(coreStore).getEditedEntityRecord('postType', 'wp_template', templateId)?.slug : null;
46
+ }, []);
47
+ const taxonomyMatches = templateSlug?.match(/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/);
48
+ let taxonomy;
49
+ let termSlug;
50
+ if (taxonomyMatches) {
51
+ // If it's for all taxonomies of a type (e.g., category, tag).
52
+ if (taxonomyMatches[1]) {
53
+ taxonomy = taxonomyMatches[2] ? taxonomyMatches[2] : taxonomyMatches[1];
54
+ }
55
+ // If it's for a specific term (e.g., category-news, tag-featured).
56
+ else if (taxonomyMatches[3]) {
57
+ taxonomy = taxonomyMatches[6] ? taxonomyMatches[6] : taxonomyMatches[4];
58
+ termSlug = taxonomyMatches[7];
59
+ }
60
+ taxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;
61
+ }
62
+ return useSelect(select => {
63
+ if (!taxonomy || !termSlug) {
64
+ return '';
65
+ }
66
+ const {
67
+ getEntityRecords
68
+ } = select(coreStore);
69
+ const termRecords = getEntityRecords('taxonomy', taxonomy, {
70
+ slug: termSlug,
71
+ per_page: 1
72
+ });
73
+ if (termRecords && termRecords[0]) {
74
+ return termRecords[0].description || '';
75
+ }
76
+ return '';
77
+ }, [taxonomy, termSlug]);
78
+ }
79
+ //# sourceMappingURL=use-term-description.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["store","coreStore","useEntityProp","useSelect","useTermDescription","termId","taxonomy","description","setDescription","fullDescription","templateBasedData","useTemplateBasedTermData","hasContext","Boolean","termDescription","rendered","templateSlug","select","getCurrentPostId","getCurrentPostType","getCurrentTemplateId","currentPostType","templateId","getEditedEntityRecord","slug","taxonomyMatches","match","termSlug","getEntityRecords","termRecords","per_page"],"sources":["@wordpress/block-library/src/term-description/use-term-description.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore, useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Hook to fetch term description based on context or fallback to template parsing.\n *\n * This hook prioritizes context-provided termId and taxonomy, but falls back to\n * template-based detection when no context is available.\n *\n * @param {string|number} termId The term ID from context\n * @param {string} taxonomy The taxonomy name from context\n */\nexport function useTermDescription( termId, taxonomy ) {\n\tconst [ description, setDescription, fullDescription ] = useEntityProp(\n\t\t'taxonomy',\n\t\ttaxonomy,\n\t\t'description',\n\t\ttermId\n\t);\n\n\t// Fallback approach: Parse template slug when no context is available.\n\tconst templateBasedData = useTemplateBasedTermData();\n\n\tconst hasContext = Boolean( termId && taxonomy );\n\n\treturn {\n\t\thasContext,\n\t\tsetDescription,\n\t\ttermDescription: hasContext\n\t\t\t? fullDescription?.rendered || description || ''\n\t\t\t: templateBasedData,\n\t};\n}\n\n/**\n * Fallback hook to fetch term data from template context (backward compatibility).\n * This maintains the same logic as the original implementation for cases where\n * no termId/taxonomy context is provided.\n */\nfunction useTemplateBasedTermData() {\n\tconst templateSlug = useSelect( ( select ) => {\n\t\t// Access core/editor by string to avoid @wordpress/editor dependency.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostId, getCurrentPostType, getCurrentTemplateId } =\n\t\t\tselect( 'core/editor' );\n\t\tconst currentPostType = getCurrentPostType();\n\t\tconst templateId =\n\t\t\tgetCurrentTemplateId() ||\n\t\t\t( currentPostType === 'wp_template' ? getCurrentPostId() : null );\n\n\t\treturn templateId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\ttemplateId\n\t\t\t )?.slug\n\t\t\t: null;\n\t}, [] );\n\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\n\tlet taxonomy;\n\tlet termSlug;\n\n\tif ( taxonomyMatches ) {\n\t\t// If it's for all taxonomies of a type (e.g., category, tag).\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If it's for a specific term (e.g., category-news, tag-featured).\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\ttermSlug = taxonomyMatches[ 7 ];\n\t\t}\n\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\t}\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! taxonomy || ! termSlug ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\tconst termRecords = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\tslug: termSlug,\n\t\t\t\tper_page: 1,\n\t\t\t} );\n\n\t\t\tif ( termRecords && termRecords[ 0 ] ) {\n\t\t\t\treturn termRecords[ 0 ].description || '';\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\t\t[ taxonomy, termSlug ]\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,SAAS,EAAEC,aAAa,QAAQ,sBAAsB;AACxE,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAEC,MAAM,EAAEC,QAAQ,EAAG;EACtD,MAAM,CAAEC,WAAW,EAAEC,cAAc,EAAEC,eAAe,CAAE,GAAGP,aAAa,CACrE,UAAU,EACVI,QAAQ,EACR,aAAa,EACbD,MACD,CAAC;;EAED;EACA,MAAMK,iBAAiB,GAAGC,wBAAwB,CAAC,CAAC;EAEpD,MAAMC,UAAU,GAAGC,OAAO,CAAER,MAAM,IAAIC,QAAS,CAAC;EAEhD,OAAO;IACNM,UAAU;IACVJ,cAAc;IACdM,eAAe,EAAEF,UAAU,GACxBH,eAAe,EAAEM,QAAQ,IAAIR,WAAW,IAAI,EAAE,GAC9CG;EACJ,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASC,wBAAwBA,CAAA,EAAG;EACnC,MAAMK,YAAY,GAAGb,SAAS,CAAIc,MAAM,IAAM;IAC7C;IACA;IACA,MAAM;MAAEC,gBAAgB;MAAEC,kBAAkB;MAAEC;IAAqB,CAAC,GACnEH,MAAM,CAAE,aAAc,CAAC;IACxB,MAAMI,eAAe,GAAGF,kBAAkB,CAAC,CAAC;IAC5C,MAAMG,UAAU,GACfF,oBAAoB,CAAC,CAAC,KACpBC,eAAe,KAAK,aAAa,GAAGH,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAE;IAElE,OAAOI,UAAU,GACdL,MAAM,CAAEhB,SAAU,CAAC,CAACsB,qBAAqB,CACzC,UAAU,EACV,aAAa,EACbD,UACA,CAAC,EAAEE,IAAI,GACP,IAAI;EACR,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,eAAe,GAAGT,YAAY,EAAEU,KAAK,CAC1C,8EACD,CAAC;EAED,IAAIpB,QAAQ;EACZ,IAAIqB,QAAQ;EAEZ,IAAKF,eAAe,EAAG;IACtB;IACA,IAAKA,eAAe,CAAE,CAAC,CAAE,EAAG;MAC3BnB,QAAQ,GAAGmB,eAAe,CAAE,CAAC,CAAE,GAC5BA,eAAe,CAAE,CAAC,CAAE,GACpBA,eAAe,CAAE,CAAC,CAAE;IACxB;IACA;IAAA,KACK,IAAKA,eAAe,CAAE,CAAC,CAAE,EAAG;MAChCnB,QAAQ,GAAGmB,eAAe,CAAE,CAAC,CAAE,GAC5BA,eAAe,CAAE,CAAC,CAAE,GACpBA,eAAe,CAAE,CAAC,CAAE;MACvBE,QAAQ,GAAGF,eAAe,CAAE,CAAC,CAAE;IAChC;IAEAnB,QAAQ,GAAGA,QAAQ,KAAK,KAAK,GAAG,UAAU,GAAGA,QAAQ;EACtD;EAEA,OAAOH,SAAS,CACbc,MAAM,IAAM;IACb,IAAK,CAAEX,QAAQ,IAAI,CAAEqB,QAAQ,EAAG;MAC/B,OAAO,EAAE;IACV;IAEA,MAAM;MAAEC;IAAiB,CAAC,GAAGX,MAAM,CAAEhB,SAAU,CAAC;IAEhD,MAAM4B,WAAW,GAAGD,gBAAgB,CAAE,UAAU,EAAEtB,QAAQ,EAAE;MAC3DkB,IAAI,EAAEG,QAAQ;MACdG,QAAQ,EAAE;IACX,CAAE,CAAC;IAEH,IAAKD,WAAW,IAAIA,WAAW,CAAE,CAAC,CAAE,EAAG;MACtC,OAAOA,WAAW,CAAE,CAAC,CAAE,CAACtB,WAAW,IAAI,EAAE;IAC1C;IAEA,OAAO,EAAE;EACV,CAAC,EACD,CAAED,QAAQ,EAAEqB,QAAQ,CACrB,CAAC;AACF","ignoreList":[]}
@@ -156,13 +156,13 @@ export default function TermTemplateEdit({
156
156
  clientId,
157
157
  setAttributes,
158
158
  context: {
159
+ termsToShow,
159
160
  termQuery: {
160
161
  taxonomy,
161
162
  order,
162
163
  orderBy,
163
164
  hideEmpty,
164
165
  hierarchical,
165
- parent,
166
166
  perPage = 10
167
167
  } = {}
168
168
  },
@@ -185,14 +185,18 @@ export default function TermTemplateEdit({
185
185
  records: terms,
186
186
  isResolving
187
187
  } = useEntityRecords('taxonomy', taxonomy, queryArgs);
188
-
189
- // Filter to show only top-level terms if "Show only top-level terms" is enabled.
190
188
  const filteredTerms = useMemo(() => {
191
- if (!terms || parent !== 0) {
192
- return terms;
189
+ if (!terms) {
190
+ return [];
191
+ }
192
+ if (termsToShow === 'top-level') {
193
+ return terms.filter(term => !term.parent);
194
+ }
195
+ if (termsToShow === 'subterms') {
196
+ return terms.filter(term => term.parent);
193
197
  }
194
- return terms.filter(term => !term.parent);
195
- }, [terms, parent]);
198
+ return terms;
199
+ }, [terms, termsToShow]);
196
200
  const {
197
201
  blocks,
198
202
  variations,
@@ -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