@wordpress/block-library 8.33.0 → 8.34.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 (259) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/block/edit.js +15 -8
  3. package/build/block/edit.js.map +1 -1
  4. package/build/block-keyboard-shortcuts/index.js +95 -0
  5. package/build/block-keyboard-shortcuts/index.js.map +1 -0
  6. package/build/column/edit.js +28 -19
  7. package/build/column/edit.js.map +1 -1
  8. package/build/column/edit.native.js +3 -1
  9. package/build/column/edit.native.js.map +1 -1
  10. package/build/columns/edit.js +69 -53
  11. package/build/columns/edit.js.map +1 -1
  12. package/build/columns/variations.js +18 -28
  13. package/build/columns/variations.js.map +1 -1
  14. package/build/comment-template/util.js +3 -1
  15. package/build/comment-template/util.js.map +1 -1
  16. package/build/cover/shared.js +3 -1
  17. package/build/cover/shared.js.map +1 -1
  18. package/build/embed/embed-placeholder.js +8 -3
  19. package/build/embed/embed-placeholder.js.map +1 -1
  20. package/build/embed/util.js +3 -1
  21. package/build/embed/util.js.map +1 -1
  22. package/build/embed/variations.js +3 -1
  23. package/build/embed/variations.js.map +1 -1
  24. package/build/embed/wp-embed-preview.js +6 -2
  25. package/build/embed/wp-embed-preview.js.map +1 -1
  26. package/build/group/index.js +0 -8
  27. package/build/group/index.js.map +1 -1
  28. package/build/group/placeholder.js +18 -19
  29. package/build/group/placeholder.js.map +1 -1
  30. package/build/image/image.js +3 -1
  31. package/build/image/image.js.map +1 -1
  32. package/build/image/view.js +3 -1
  33. package/build/image/view.js.map +1 -1
  34. package/build/index.js +9 -1
  35. package/build/index.js.map +1 -1
  36. package/build/list-item/hooks/use-merge.js +12 -4
  37. package/build/list-item/hooks/use-merge.js.map +1 -1
  38. package/build/list-item/hooks/use-outdent-list-item.js +15 -5
  39. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  40. package/build/navigation/edit/are-blocks-dirty.js +9 -3
  41. package/build/navigation/edit/are-blocks-dirty.js.map +1 -1
  42. package/build/navigation/edit/deleted-navigation-warning.js +1 -1
  43. package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
  44. package/build/navigation/edit/menu-inspector-controls.js +3 -1
  45. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  46. package/build/navigation/edit/navigation-menu-selector.js +1 -1
  47. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  48. package/build/navigation/index.js +0 -9
  49. package/build/navigation/index.js.map +1 -1
  50. package/build/navigation/view.js +3 -1
  51. package/build/navigation/view.js.map +1 -1
  52. package/build/navigation-link/edit.js +94 -85
  53. package/build/navigation-link/edit.js.map +1 -1
  54. package/build/navigation-link/link-ui.js +2 -7
  55. package/build/navigation-link/link-ui.js.map +1 -1
  56. package/build/paragraph/index.js +0 -1
  57. package/build/paragraph/index.js.map +1 -1
  58. package/build/paragraph/transforms.js +0 -1
  59. package/build/paragraph/transforms.js.map +1 -1
  60. package/build/post-excerpt/edit.js +3 -1
  61. package/build/post-excerpt/edit.js.map +1 -1
  62. package/build/post-featured-image/dimension-controls.js +3 -1
  63. package/build/post-featured-image/dimension-controls.js.map +1 -1
  64. package/build/post-navigation-link/variations.js +3 -1
  65. package/build/post-navigation-link/variations.js.map +1 -1
  66. package/build/post-template/edit.js +18 -8
  67. package/build/post-template/edit.js.map +1 -1
  68. package/build/post-terms/edit.js +3 -1
  69. package/build/post-terms/edit.js.map +1 -1
  70. package/build/private-apis.js +21 -0
  71. package/build/private-apis.js.map +1 -0
  72. package/build/query/edit/enhanced-pagination-modal.js +1 -1
  73. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  74. package/build/query/edit/inspector-controls/author-control.js +6 -2
  75. package/build/query/edit/inspector-controls/author-control.js.map +1 -1
  76. package/build/query/edit/inspector-controls/create-new-post-link.js +3 -1
  77. package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -1
  78. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +6 -3
  79. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  80. package/build/query/edit/inspector-controls/parent-control.js +18 -6
  81. package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
  82. package/build/query/edit/inspector-controls/taxonomy-controls.js +9 -3
  83. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  84. package/build/query/utils.js +3 -1
  85. package/build/query/utils.js.map +1 -1
  86. package/build/query-title/variations.js +3 -1
  87. package/build/query-title/variations.js.map +1 -1
  88. package/build/social-link/edit.js +1 -1
  89. package/build/social-link/edit.js.map +1 -1
  90. package/build/social-link/variations.js +3 -1
  91. package/build/social-link/variations.js.map +1 -1
  92. package/build/template-part/variations.js +6 -2
  93. package/build/template-part/variations.js.map +1 -1
  94. package/build-module/block/edit.js +15 -8
  95. package/build-module/block/edit.js.map +1 -1
  96. package/build-module/block-keyboard-shortcuts/index.js +88 -0
  97. package/build-module/block-keyboard-shortcuts/index.js.map +1 -0
  98. package/build-module/column/edit.js +28 -19
  99. package/build-module/column/edit.js.map +1 -1
  100. package/build-module/column/edit.native.js +3 -1
  101. package/build-module/column/edit.native.js.map +1 -1
  102. package/build-module/columns/edit.js +69 -53
  103. package/build-module/columns/edit.js.map +1 -1
  104. package/build-module/columns/variations.js +18 -28
  105. package/build-module/columns/variations.js.map +1 -1
  106. package/build-module/comment-template/util.js +3 -1
  107. package/build-module/comment-template/util.js.map +1 -1
  108. package/build-module/cover/shared.js +3 -1
  109. package/build-module/cover/shared.js.map +1 -1
  110. package/build-module/embed/embed-placeholder.js +9 -4
  111. package/build-module/embed/embed-placeholder.js.map +1 -1
  112. package/build-module/embed/util.js +3 -1
  113. package/build-module/embed/util.js.map +1 -1
  114. package/build-module/embed/variations.js +3 -1
  115. package/build-module/embed/variations.js.map +1 -1
  116. package/build-module/embed/wp-embed-preview.js +6 -2
  117. package/build-module/embed/wp-embed-preview.js.map +1 -1
  118. package/build-module/group/index.js +0 -8
  119. package/build-module/group/index.js.map +1 -1
  120. package/build-module/group/placeholder.js +18 -19
  121. package/build-module/group/placeholder.js.map +1 -1
  122. package/build-module/image/image.js +3 -1
  123. package/build-module/image/image.js.map +1 -1
  124. package/build-module/image/view.js +3 -1
  125. package/build-module/image/view.js.map +1 -1
  126. package/build-module/index.js +1 -0
  127. package/build-module/index.js.map +1 -1
  128. package/build-module/list-item/hooks/use-merge.js +12 -4
  129. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  130. package/build-module/list-item/hooks/use-outdent-list-item.js +15 -5
  131. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  132. package/build-module/navigation/edit/are-blocks-dirty.js +9 -3
  133. package/build-module/navigation/edit/are-blocks-dirty.js.map +1 -1
  134. package/build-module/navigation/edit/deleted-navigation-warning.js +1 -1
  135. package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -1
  136. package/build-module/navigation/edit/menu-inspector-controls.js +3 -1
  137. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  138. package/build-module/navigation/edit/navigation-menu-selector.js +1 -1
  139. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  140. package/build-module/navigation/index.js +0 -9
  141. package/build-module/navigation/index.js.map +1 -1
  142. package/build-module/navigation/view.js +3 -1
  143. package/build-module/navigation/view.js.map +1 -1
  144. package/build-module/navigation-link/edit.js +94 -85
  145. package/build-module/navigation-link/edit.js.map +1 -1
  146. package/build-module/navigation-link/link-ui.js +3 -8
  147. package/build-module/navigation-link/link-ui.js.map +1 -1
  148. package/build-module/paragraph/index.js +0 -1
  149. package/build-module/paragraph/index.js.map +1 -1
  150. package/build-module/paragraph/transforms.js +0 -1
  151. package/build-module/paragraph/transforms.js.map +1 -1
  152. package/build-module/post-excerpt/edit.js +3 -1
  153. package/build-module/post-excerpt/edit.js.map +1 -1
  154. package/build-module/post-featured-image/dimension-controls.js +3 -1
  155. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  156. package/build-module/post-navigation-link/variations.js +3 -1
  157. package/build-module/post-navigation-link/variations.js.map +1 -1
  158. package/build-module/post-template/edit.js +18 -8
  159. package/build-module/post-template/edit.js.map +1 -1
  160. package/build-module/post-terms/edit.js +3 -1
  161. package/build-module/post-terms/edit.js.map +1 -1
  162. package/build-module/private-apis.js +14 -0
  163. package/build-module/private-apis.js.map +1 -0
  164. package/build-module/query/edit/enhanced-pagination-modal.js +1 -1
  165. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  166. package/build-module/query/edit/inspector-controls/author-control.js +6 -2
  167. package/build-module/query/edit/inspector-controls/author-control.js.map +1 -1
  168. package/build-module/query/edit/inspector-controls/create-new-post-link.js +3 -1
  169. package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +1 -1
  170. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +6 -3
  171. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  172. package/build-module/query/edit/inspector-controls/parent-control.js +18 -6
  173. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
  174. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +9 -3
  175. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  176. package/build-module/query/utils.js +3 -1
  177. package/build-module/query/utils.js.map +1 -1
  178. package/build-module/query-title/variations.js +3 -1
  179. package/build-module/query-title/variations.js.map +1 -1
  180. package/build-module/social-link/edit.js +1 -1
  181. package/build-module/social-link/edit.js.map +1 -1
  182. package/build-module/social-link/variations.js +3 -1
  183. package/build-module/social-link/variations.js.map +1 -1
  184. package/build-module/template-part/variations.js +6 -2
  185. package/build-module/template-part/variations.js.map +1 -1
  186. package/build-style/editor-rtl.css +15 -49
  187. package/build-style/editor.css +15 -49
  188. package/build-style/embed/editor-rtl.css +0 -3
  189. package/build-style/embed/editor.css +0 -3
  190. package/build-style/group/editor-rtl.css +0 -44
  191. package/build-style/group/editor.css +0 -44
  192. package/build-style/group/style-rtl.css +4 -0
  193. package/build-style/group/style.css +4 -0
  194. package/build-style/navigation-link/style-rtl.css +0 -8
  195. package/build-style/navigation-link/style.css +0 -8
  196. package/build-style/post-featured-image/editor-rtl.css +1 -0
  197. package/build-style/post-featured-image/editor.css +1 -0
  198. package/build-style/site-logo/editor-rtl.css +1 -0
  199. package/build-style/site-logo/editor.css +1 -0
  200. package/build-style/social-link/editor-rtl.css +13 -2
  201. package/build-style/social-link/editor.css +13 -2
  202. package/build-style/style-rtl.css +4 -8
  203. package/build-style/style.css +4 -8
  204. package/package.json +35 -34
  205. package/src/block/edit.js +19 -12
  206. package/src/block-keyboard-shortcuts/index.js +113 -0
  207. package/src/column/edit.js +26 -20
  208. package/src/column/edit.native.js +3 -1
  209. package/src/columns/edit.js +93 -83
  210. package/src/columns/variations.js +12 -34
  211. package/src/comment-template/util.js +3 -1
  212. package/src/cover/shared.js +3 -1
  213. package/src/embed/editor.scss +0 -2
  214. package/src/embed/embed-placeholder.js +21 -9
  215. package/src/embed/util.js +3 -1
  216. package/src/embed/variations.js +3 -1
  217. package/src/embed/wp-embed-preview.js +6 -2
  218. package/src/gallery/test/helpers.native.js +3 -3
  219. package/src/group/editor.scss +0 -47
  220. package/src/group/index.js +0 -8
  221. package/src/group/placeholder.js +18 -18
  222. package/src/group/style.scss +5 -0
  223. package/src/image/image.js +3 -1
  224. package/src/image/view.js +3 -1
  225. package/src/index.js +2 -0
  226. package/src/list-item/hooks/use-merge.js +12 -4
  227. package/src/list-item/hooks/use-outdent-list-item.js +15 -5
  228. package/src/navigation/block.json +0 -9
  229. package/src/navigation/edit/are-blocks-dirty.js +8 -3
  230. package/src/navigation/edit/deleted-navigation-warning.js +1 -1
  231. package/src/navigation/edit/menu-inspector-controls.js +3 -1
  232. package/src/navigation/edit/navigation-menu-selector.js +1 -1
  233. package/src/navigation/edit/test/navigation-menu-selector.js +5 -5
  234. package/src/navigation/view.js +3 -1
  235. package/src/navigation-link/edit.js +91 -91
  236. package/src/navigation-link/link-ui.js +74 -89
  237. package/src/navigation-link/style.scss +0 -12
  238. package/src/paragraph/block.json +0 -1
  239. package/src/post-excerpt/edit.js +3 -1
  240. package/src/post-featured-image/dimension-controls.js +3 -1
  241. package/src/post-featured-image/editor.scss +1 -0
  242. package/src/post-navigation-link/variations.js +3 -1
  243. package/src/post-template/edit.js +9 -4
  244. package/src/post-terms/edit.js +3 -1
  245. package/src/private-apis.js +13 -0
  246. package/src/query/edit/enhanced-pagination-modal.js +5 -1
  247. package/src/query/edit/inspector-controls/author-control.js +6 -2
  248. package/src/query/edit/inspector-controls/create-new-post-link.js +3 -1
  249. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +13 -3
  250. package/src/query/edit/inspector-controls/parent-control.js +18 -6
  251. package/src/query/edit/inspector-controls/taxonomy-controls.js +9 -3
  252. package/src/query/index.php +1 -1
  253. package/src/query/utils.js +3 -1
  254. package/src/query-title/variations.js +3 -1
  255. package/src/site-logo/editor.scss +1 -0
  256. package/src/social-link/edit.js +2 -2
  257. package/src/social-link/editor.scss +25 -11
  258. package/src/social-link/variations.js +3 -1
  259. package/src/template-part/variations.js +6 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_utils","EnhancedPaginationControl","enhancedPagination","setAttributes","clientId","hasUnsupportedBlocks","useUnsupportedBlocks","help","__","_react","createElement","Fragment","ToggleControl","label","checked","disabled","onChange","value"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/enhanced-pagination-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useUnsupportedBlocks } from '../../utils';\n\nexport default function EnhancedPaginationControl( {\n\tenhancedPagination,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { hasUnsupportedBlocks } = useUnsupportedBlocks( clientId );\n\n\tlet help = __( 'Browsing between pages requires a full page reload.' );\n\tif ( enhancedPagination ) {\n\t\thelp = __(\n\t\t\t\"Browsing between pages won't require a full page reload, unless non-compatible blocks are detected.\"\n\t\t);\n\t} else if ( hasUnsupportedBlocks ) {\n\t\thelp = __(\n\t\t\t\"Force page reload can't be disabled because there are non-compatible blocks inside the Query block.\"\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Force page reload' ) }\n\t\t\t\thelp={ help }\n\t\t\t\tchecked={ ! enhancedPagination }\n\t\t\t\tdisabled={ hasUnsupportedBlocks }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tenhancedPagination: ! value,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASG,yBAAyBA,CAAE;EAClDC,kBAAkB;EAClBC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC;EAAqB,CAAC,GAAG,IAAAC,2BAAoB,EAAEF,QAAS,CAAC;EAEjE,IAAIG,IAAI,GAAG,IAAAC,QAAE,EAAE,qDAAsD,CAAC;EACtE,IAAKN,kBAAkB,EAAG;IACzBK,IAAI,GAAG,IAAAC,QAAE,EACR,qGACD,CAAC;EACF,CAAC,MAAM,IAAKH,oBAAoB,EAAG;IAClCE,IAAI,GAAG,IAAAC,QAAE,EACR,qGACD,CAAC;EACF;EAEA,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACb,WAAA,CAAAe,aAAa;IACbC,KAAK,EAAG,IAAAL,QAAE,EAAE,mBAAoB,CAAG;IACnCD,IAAI,EAAGA,IAAM;IACbO,OAAO,EAAG,CAAEZ,kBAAoB;IAChCa,QAAQ,EAAGV,oBAAsB;IACjCW,QAAQ,EAAKC,KAAK,IAAM;MACvBd,aAAa,CAAE;QACdD,kBAAkB,EAAE,CAAEe;MACvB,CAAE,CAAC;IACJ;EAAG,CACH,CACA,CAAC;AAEL","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_utils","EnhancedPaginationControl","enhancedPagination","setAttributes","clientId","hasUnsupportedBlocks","useUnsupportedBlocks","fullPageClientSideNavigation","window","__experimentalFullPageClientSideNavigation","help","__","_react","createElement","Fragment","ToggleControl","label","checked","disabled","onChange","value"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/enhanced-pagination-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useUnsupportedBlocks } from '../../utils';\n\nexport default function EnhancedPaginationControl( {\n\tenhancedPagination,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { hasUnsupportedBlocks } = useUnsupportedBlocks( clientId );\n\tconst fullPageClientSideNavigation =\n\t\twindow.__experimentalFullPageClientSideNavigation;\n\n\tlet help = __( 'Browsing between pages requires a full page reload.' );\n\tif ( fullPageClientSideNavigation ) {\n\t\thelp = __(\n\t\t\t'Experimental full-page client-side navigation setting enabled.'\n\t\t);\n\t} else if ( enhancedPagination ) {\n\t\thelp = __(\n\t\t\t\"Browsing between pages won't require a full page reload, unless non-compatible blocks are detected.\"\n\t\t);\n\t} else if ( hasUnsupportedBlocks ) {\n\t\thelp = __(\n\t\t\t\"Force page reload can't be disabled because there are non-compatible blocks inside the Query block.\"\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Force page reload' ) }\n\t\t\t\thelp={ help }\n\t\t\t\tchecked={\n\t\t\t\t\t! enhancedPagination && ! fullPageClientSideNavigation\n\t\t\t\t}\n\t\t\t\tdisabled={\n\t\t\t\t\thasUnsupportedBlocks || fullPageClientSideNavigation\n\t\t\t\t}\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tenhancedPagination: ! value,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASG,yBAAyBA,CAAE;EAClDC,kBAAkB;EAClBC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC;EAAqB,CAAC,GAAG,IAAAC,2BAAoB,EAAEF,QAAS,CAAC;EACjE,MAAMG,4BAA4B,GACjCC,MAAM,CAACC,0CAA0C;EAElD,IAAIC,IAAI,GAAG,IAAAC,QAAE,EAAE,qDAAsD,CAAC;EACtE,IAAKJ,4BAA4B,EAAG;IACnCG,IAAI,GAAG,IAAAC,QAAE,EACR,gEACD,CAAC;EACF,CAAC,MAAM,IAAKT,kBAAkB,EAAG;IAChCQ,IAAI,GAAG,IAAAC,QAAE,EACR,qGACD,CAAC;EACF,CAAC,MAAM,IAAKN,oBAAoB,EAAG;IAClCK,IAAI,GAAG,IAAAC,QAAE,EACR,qGACD,CAAC;EACF;EAEA,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAChB,WAAA,CAAAkB,aAAa;IACbC,KAAK,EAAG,IAAAL,QAAE,EAAE,mBAAoB,CAAG;IACnCD,IAAI,EAAGA,IAAM;IACbO,OAAO,EACN,CAAEf,kBAAkB,IAAI,CAAEK,4BAC1B;IACDW,QAAQ,EACPb,oBAAoB,IAAIE,4BACxB;IACDY,QAAQ,EAAKC,KAAK,IAAM;MACvBjB,aAAa,CAAE;QACdD,kBAAkB,EAAE,CAAEkB;MACvB,CAAE,CAAC;IACJ;EAAG,CACH,CACA,CAAC;AAEL","ignoreList":[]}
@@ -62,7 +62,9 @@ function ParentControl({
62
62
  };
63
63
  }, [search, parents]);
64
64
  const currentParents = (0, _data.useSelect)(select => {
65
- if (!parents?.length) return EMPTY_ARRAY;
65
+ if (!parents?.length) {
66
+ return EMPTY_ARRAY;
67
+ }
66
68
  const {
67
69
  getEntityRecords
68
70
  } = select(_coreData.store);
@@ -78,7 +80,9 @@ function ParentControl({
78
80
  if (!parents?.length) {
79
81
  setValue(EMPTY_ARRAY);
80
82
  }
81
- if (!currentParents?.length) return;
83
+ if (!currentParents?.length) {
84
+ return;
85
+ }
82
86
  const currentParentsInfo = (0, _utils.getEntitiesInfo)((0, _utils.mapToIHasNameAndId)(currentParents, 'title.rendered'));
83
87
  // Returns only the existing entity ids. This prevents the component
84
88
  // from crashing in the editor, when non existing ids are provided.
@@ -95,23 +99,31 @@ function ParentControl({
95
99
  setValue(sanitizedValue);
96
100
  }, [parents, currentParents]);
97
101
  const entitiesInfo = (0, _element.useMemo)(() => {
98
- if (!searchResults?.length) return EMPTY_ARRAY;
102
+ if (!searchResults?.length) {
103
+ return EMPTY_ARRAY;
104
+ }
99
105
  return (0, _utils.getEntitiesInfo)((0, _utils.mapToIHasNameAndId)(searchResults, 'title.rendered'));
100
106
  }, [searchResults]);
101
107
  // Update suggestions only when the query has resolved.
102
108
  (0, _element.useEffect)(() => {
103
- if (!searchHasResolved) return;
109
+ if (!searchHasResolved) {
110
+ return;
111
+ }
104
112
  setSuggestions(entitiesInfo.names);
105
113
  }, [entitiesInfo.names, searchHasResolved]);
106
114
  const getIdByValue = (entitiesMappedByName, entity) => {
107
115
  const id = entity?.id || entitiesMappedByName?.[entity]?.id;
108
- if (id) return id;
116
+ if (id) {
117
+ return id;
118
+ }
109
119
  };
110
120
  const onParentChange = newValue => {
111
121
  const ids = Array.from(newValue.reduce((accumulator, entity) => {
112
122
  // Verify that new values point to existing entities.
113
123
  const id = getIdByValue(entitiesInfo.mapByName, entity);
114
- if (id) accumulator.add(id);
124
+ if (id) {
125
+ accumulator.add(id);
126
+ }
115
127
  return accumulator;
116
128
  }, new Set()));
117
129
  setSuggestions(EMPTY_ARRAY);
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_data","_coreData","_element","_compose","_utils","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","ParentControl","parents","postType","onChange","search","setSearch","useState","value","setValue","suggestions","setSuggestions","debouncedSearch","useDebounce","searchResults","searchHasResolved","useSelect","select","getEntityRecords","hasFinishedResolution","coreStore","selectorArgs","orderby","exclude","per_page","currentParents","length","include","useEffect","currentParentsInfo","getEntitiesInfo","mapToIHasNameAndId","sanitizedValue","reduce","accumulator","id","entity","mapById","push","name","entitiesInfo","useMemo","names","getIdByValue","entitiesMappedByName","onParentChange","newValue","ids","Array","from","mapByName","add","Set","_react","createElement","FormTokenField","label","__","onInputChange","__experimentalShowHowTo","_default","exports","default"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/parent-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { FormTokenField } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getEntitiesInfo, mapToIHasNameAndId } from '../../utils';\n\nconst EMPTY_ARRAY = [];\nconst BASE_QUERY = {\n\torder: 'asc',\n\t_fields: 'id,title',\n\tcontext: 'view',\n};\n\nfunction ParentControl( { parents, postType, onChange } ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst [ value, setValue ] = useState( EMPTY_ARRAY );\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tconst debouncedSearch = useDebounce( setSearch, 250 );\n\tconst { searchResults, searchHasResolved } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! search ) {\n\t\t\t\treturn { searchResults: EMPTY_ARRAY, searchHasResolved: true };\n\t\t\t}\n\t\t\tconst { getEntityRecords, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst selectorArgs = [\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\t...BASE_QUERY,\n\t\t\t\t\tsearch,\n\t\t\t\t\torderby: 'relevance',\n\t\t\t\t\texclude: parents,\n\t\t\t\t\tper_page: 20,\n\t\t\t\t},\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tsearchResults: getEntityRecords( ...selectorArgs ),\n\t\t\t\tsearchHasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tselectorArgs\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ search, parents ]\n\t);\n\tconst currentParents = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! parents?.length ) return EMPTY_ARRAY;\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\treturn getEntityRecords( 'postType', postType, {\n\t\t\t\t...BASE_QUERY,\n\t\t\t\tinclude: parents,\n\t\t\t\tper_page: parents.length,\n\t\t\t} );\n\t\t},\n\t\t[ parents ]\n\t);\n\t// Update the `value` state only after the selectors are resolved\n\t// to avoid emptying the input when we're changing parents.\n\tuseEffect( () => {\n\t\tif ( ! parents?.length ) {\n\t\t\tsetValue( EMPTY_ARRAY );\n\t\t}\n\t\tif ( ! currentParents?.length ) return;\n\t\tconst currentParentsInfo = getEntitiesInfo(\n\t\t\tmapToIHasNameAndId( currentParents, 'title.rendered' )\n\t\t);\n\t\t// Returns only the existing entity ids. This prevents the component\n\t\t// from crashing in the editor, when non existing ids are provided.\n\t\tconst sanitizedValue = parents.reduce( ( accumulator, id ) => {\n\t\t\tconst entity = currentParentsInfo.mapById[ id ];\n\t\t\tif ( entity ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid,\n\t\t\t\t\tvalue: entity.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, [] );\n\t\tsetValue( sanitizedValue );\n\t}, [ parents, currentParents ] );\n\n\tconst entitiesInfo = useMemo( () => {\n\t\tif ( ! searchResults?.length ) return EMPTY_ARRAY;\n\t\treturn getEntitiesInfo(\n\t\t\tmapToIHasNameAndId( searchResults, 'title.rendered' )\n\t\t);\n\t}, [ searchResults ] );\n\t// Update suggestions only when the query has resolved.\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) return;\n\t\tsetSuggestions( entitiesInfo.names );\n\t}, [ entitiesInfo.names, searchHasResolved ] );\n\n\tconst getIdByValue = ( entitiesMappedByName, entity ) => {\n\t\tconst id = entity?.id || entitiesMappedByName?.[ entity ]?.id;\n\t\tif ( id ) return id;\n\t};\n\tconst onParentChange = ( newValue ) => {\n\t\tconst ids = Array.from(\n\t\t\tnewValue.reduce( ( accumulator, entity ) => {\n\t\t\t\t// Verify that new values point to existing entities.\n\t\t\t\tconst id = getIdByValue( entitiesInfo.mapByName, entity );\n\t\t\t\tif ( id ) accumulator.add( id );\n\t\t\t\treturn accumulator;\n\t\t\t}, new Set() )\n\t\t);\n\t\tsetSuggestions( EMPTY_ARRAY );\n\t\tonChange( { parents: ids } );\n\t};\n\treturn (\n\t\t<FormTokenField\n\t\t\tlabel={ __( 'Parents' ) }\n\t\t\tvalue={ value }\n\t\t\tonInputChange={ debouncedSearch }\n\t\t\tsuggestions={ suggestions }\n\t\t\tonChange={ onParentChange }\n\t\t\t__experimentalShowHowTo={ false }\n\t\t/>\n\t);\n}\n\nexport default ParentControl;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_data","_coreData","_element","_compose","_utils","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","ParentControl","parents","postType","onChange","search","setSearch","useState","value","setValue","suggestions","setSuggestions","debouncedSearch","useDebounce","searchResults","searchHasResolved","useSelect","select","getEntityRecords","hasFinishedResolution","coreStore","selectorArgs","orderby","exclude","per_page","currentParents","length","include","useEffect","currentParentsInfo","getEntitiesInfo","mapToIHasNameAndId","sanitizedValue","reduce","accumulator","id","entity","mapById","push","name","entitiesInfo","useMemo","names","getIdByValue","entitiesMappedByName","onParentChange","newValue","ids","Array","from","mapByName","add","Set","_react","createElement","FormTokenField","label","__","onInputChange","__experimentalShowHowTo","_default","exports","default"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/parent-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { FormTokenField } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getEntitiesInfo, mapToIHasNameAndId } from '../../utils';\n\nconst EMPTY_ARRAY = [];\nconst BASE_QUERY = {\n\torder: 'asc',\n\t_fields: 'id,title',\n\tcontext: 'view',\n};\n\nfunction ParentControl( { parents, postType, onChange } ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst [ value, setValue ] = useState( EMPTY_ARRAY );\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tconst debouncedSearch = useDebounce( setSearch, 250 );\n\tconst { searchResults, searchHasResolved } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! search ) {\n\t\t\t\treturn { searchResults: EMPTY_ARRAY, searchHasResolved: true };\n\t\t\t}\n\t\t\tconst { getEntityRecords, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst selectorArgs = [\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\t...BASE_QUERY,\n\t\t\t\t\tsearch,\n\t\t\t\t\torderby: 'relevance',\n\t\t\t\t\texclude: parents,\n\t\t\t\t\tper_page: 20,\n\t\t\t\t},\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tsearchResults: getEntityRecords( ...selectorArgs ),\n\t\t\t\tsearchHasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tselectorArgs\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ search, parents ]\n\t);\n\tconst currentParents = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! parents?.length ) {\n\t\t\t\treturn EMPTY_ARRAY;\n\t\t\t}\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\treturn getEntityRecords( 'postType', postType, {\n\t\t\t\t...BASE_QUERY,\n\t\t\t\tinclude: parents,\n\t\t\t\tper_page: parents.length,\n\t\t\t} );\n\t\t},\n\t\t[ parents ]\n\t);\n\t// Update the `value` state only after the selectors are resolved\n\t// to avoid emptying the input when we're changing parents.\n\tuseEffect( () => {\n\t\tif ( ! parents?.length ) {\n\t\t\tsetValue( EMPTY_ARRAY );\n\t\t}\n\t\tif ( ! currentParents?.length ) {\n\t\t\treturn;\n\t\t}\n\t\tconst currentParentsInfo = getEntitiesInfo(\n\t\t\tmapToIHasNameAndId( currentParents, 'title.rendered' )\n\t\t);\n\t\t// Returns only the existing entity ids. This prevents the component\n\t\t// from crashing in the editor, when non existing ids are provided.\n\t\tconst sanitizedValue = parents.reduce( ( accumulator, id ) => {\n\t\t\tconst entity = currentParentsInfo.mapById[ id ];\n\t\t\tif ( entity ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid,\n\t\t\t\t\tvalue: entity.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, [] );\n\t\tsetValue( sanitizedValue );\n\t}, [ parents, currentParents ] );\n\n\tconst entitiesInfo = useMemo( () => {\n\t\tif ( ! searchResults?.length ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn getEntitiesInfo(\n\t\t\tmapToIHasNameAndId( searchResults, 'title.rendered' )\n\t\t);\n\t}, [ searchResults ] );\n\t// Update suggestions only when the query has resolved.\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tsetSuggestions( entitiesInfo.names );\n\t}, [ entitiesInfo.names, searchHasResolved ] );\n\n\tconst getIdByValue = ( entitiesMappedByName, entity ) => {\n\t\tconst id = entity?.id || entitiesMappedByName?.[ entity ]?.id;\n\t\tif ( id ) {\n\t\t\treturn id;\n\t\t}\n\t};\n\tconst onParentChange = ( newValue ) => {\n\t\tconst ids = Array.from(\n\t\t\tnewValue.reduce( ( accumulator, entity ) => {\n\t\t\t\t// Verify that new values point to existing entities.\n\t\t\t\tconst id = getIdByValue( entitiesInfo.mapByName, entity );\n\t\t\t\tif ( id ) {\n\t\t\t\t\taccumulator.add( id );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, new Set() )\n\t\t);\n\t\tsetSuggestions( EMPTY_ARRAY );\n\t\tonChange( { parents: ids } );\n\t};\n\treturn (\n\t\t<FormTokenField\n\t\t\tlabel={ __( 'Parents' ) }\n\t\t\tvalue={ value }\n\t\t\tonInputChange={ debouncedSearch }\n\t\t\tsuggestions={ suggestions }\n\t\t\tonChange={ onParentChange }\n\t\t\t__experimentalShowHowTo={ false }\n\t\t/>\n\t);\n}\n\nexport default ParentControl;\n"],"mappings":"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","ignoreList":[]}
@@ -124,7 +124,9 @@ function TaxonomyItem({
124
124
  // They are used to extract the terms' names to populate the `FormTokenField` properly
125
125
  // and to sanitize the provided `termIds`, by setting only the ones that exist.
126
126
  const existingTerms = (0, _data.useSelect)(select => {
127
- if (!termIds?.length) return EMPTY_ARRAY;
127
+ if (!termIds?.length) {
128
+ return EMPTY_ARRAY;
129
+ }
128
130
  const {
129
131
  getEntityRecords
130
132
  } = select(_coreData.store);
@@ -140,7 +142,9 @@ function TaxonomyItem({
140
142
  if (!termIds?.length) {
141
143
  setValue(EMPTY_ARRAY);
142
144
  }
143
- if (!existingTerms?.length) return;
145
+ if (!existingTerms?.length) {
146
+ return;
147
+ }
144
148
  // Returns only the existing entity ids. This prevents the component
145
149
  // from crashing in the editor, when non existing ids are provided.
146
150
  const sanitizedValue = termIds.reduce((accumulator, id) => {
@@ -157,7 +161,9 @@ function TaxonomyItem({
157
161
  }, [termIds, existingTerms]);
158
162
  // Update suggestions only when the query has resolved.
159
163
  (0, _element.useEffect)(() => {
160
- if (!searchHasResolved) return;
164
+ if (!searchHasResolved) {
165
+ return;
166
+ }
161
167
  setSuggestions(searchResults.map(result => result.name));
162
168
  }, [searchResults, searchHasResolved]);
163
169
  const onTermsChange = newTermValues => {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_data","_coreData","_element","_compose","_htmlEntities","_utils","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","getTermIdByTermValue","terms","termValue","termId","id","find","term","name","termValueLower","toLocaleLowerCase","TaxonomyControls","onChange","query","postType","taxQuery","taxonomies","useTaxonomies","length","_react","createElement","Fragment","map","taxonomy","termIds","slug","handleChange","newTermIds","TaxonomyItem","key","search","setSearch","useState","value","setValue","suggestions","setSuggestions","debouncedSearch","useDebounce","searchResults","searchHasResolved","useSelect","select","getEntityRecords","hasFinishedResolution","coreStore","selectorArgs","orderby","exclude","per_page","existingTerms","include","useEffect","sanitizedValue","reduce","accumulator","entity","push","result","onTermsChange","newTermValues","Set","add","Array","from","className","FormTokenField","label","onInputChange","displayTransform","decodeEntities","__experimentalShowHowTo"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/taxonomy-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { FormTokenField } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { useTaxonomies } from '../../utils';\n\nconst EMPTY_ARRAY = [];\nconst BASE_QUERY = {\n\torder: 'asc',\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\n// Helper function to get the term id based on user input in terms `FormTokenField`.\nconst getTermIdByTermValue = ( terms, termValue ) => {\n\t// First we check for exact match by `term.id` or case sensitive `term.name` match.\n\tconst termId =\n\t\ttermValue?.id || terms?.find( ( term ) => term.name === termValue )?.id;\n\tif ( termId ) {\n\t\treturn termId;\n\t}\n\n\t/**\n\t * Here we make an extra check for entered terms in a non case sensitive way,\n\t * to match user expectations, due to `FormTokenField` behaviour that shows\n\t * suggestions which are case insensitive.\n\t *\n\t * Although WP tries to discourage users to add terms with the same name (case insensitive),\n\t * it's still possible if you manually change the name, as long as the terms have different slugs.\n\t * In this edge case we always apply the first match from the terms list.\n\t */\n\tconst termValueLower = termValue.toLocaleLowerCase();\n\treturn terms?.find(\n\t\t( term ) => term.name.toLocaleLowerCase() === termValueLower\n\t)?.id;\n};\n\nexport function TaxonomyControls( { onChange, query } ) {\n\tconst { postType, taxQuery } = query;\n\n\tconst taxonomies = useTaxonomies( postType );\n\tif ( ! taxonomies || taxonomies.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ taxonomies.map( ( taxonomy ) => {\n\t\t\t\tconst termIds = taxQuery?.[ taxonomy.slug ] || [];\n\t\t\t\tconst handleChange = ( newTermIds ) =>\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\ttaxQuery: {\n\t\t\t\t\t\t\t...taxQuery,\n\t\t\t\t\t\t\t[ taxonomy.slug ]: newTermIds,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\treturn (\n\t\t\t\t\t<TaxonomyItem\n\t\t\t\t\t\tkey={ taxonomy.slug }\n\t\t\t\t\t\ttaxonomy={ taxonomy }\n\t\t\t\t\t\ttermIds={ termIds }\n\t\t\t\t\t\tonChange={ handleChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n\n/**\n * Renders a `FormTokenField` for a given taxonomy.\n *\n * @param {Object} props The props for the component.\n * @param {Object} props.taxonomy The taxonomy object.\n * @param {number[]} props.termIds An array with the block's term ids for the given taxonomy.\n * @param {Function} props.onChange Callback `onChange` function.\n * @return {JSX.Element} The rendered component.\n */\nfunction TaxonomyItem( { taxonomy, termIds, onChange } ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst [ value, setValue ] = useState( EMPTY_ARRAY );\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tconst debouncedSearch = useDebounce( setSearch, 250 );\n\tconst { searchResults, searchHasResolved } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! search ) {\n\t\t\t\treturn { searchResults: EMPTY_ARRAY, searchHasResolved: true };\n\t\t\t}\n\t\t\tconst { getEntityRecords, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst selectorArgs = [\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy.slug,\n\t\t\t\t{\n\t\t\t\t\t...BASE_QUERY,\n\t\t\t\t\tsearch,\n\t\t\t\t\torderby: 'name',\n\t\t\t\t\texclude: termIds,\n\t\t\t\t\tper_page: 20,\n\t\t\t\t},\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tsearchResults: getEntityRecords( ...selectorArgs ),\n\t\t\t\tsearchHasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tselectorArgs\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ search, termIds ]\n\t);\n\t// `existingTerms` are the ones fetched from the API and their type is `{ id: number; name: string }`.\n\t// They are used to extract the terms' names to populate the `FormTokenField` properly\n\t// and to sanitize the provided `termIds`, by setting only the ones that exist.\n\tconst existingTerms = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! termIds?.length ) return EMPTY_ARRAY;\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\treturn getEntityRecords( 'taxonomy', taxonomy.slug, {\n\t\t\t\t...BASE_QUERY,\n\t\t\t\tinclude: termIds,\n\t\t\t\tper_page: termIds.length,\n\t\t\t} );\n\t\t},\n\t\t[ termIds ]\n\t);\n\t// Update the `value` state only after the selectors are resolved\n\t// to avoid emptying the input when we're changing terms.\n\tuseEffect( () => {\n\t\tif ( ! termIds?.length ) {\n\t\t\tsetValue( EMPTY_ARRAY );\n\t\t}\n\t\tif ( ! existingTerms?.length ) return;\n\t\t// Returns only the existing entity ids. This prevents the component\n\t\t// from crashing in the editor, when non existing ids are provided.\n\t\tconst sanitizedValue = termIds.reduce( ( accumulator, id ) => {\n\t\t\tconst entity = existingTerms.find( ( term ) => term.id === id );\n\t\t\tif ( entity ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid,\n\t\t\t\t\tvalue: entity.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, [] );\n\t\tsetValue( sanitizedValue );\n\t}, [ termIds, existingTerms ] );\n\t// Update suggestions only when the query has resolved.\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) return;\n\t\tsetSuggestions( searchResults.map( ( result ) => result.name ) );\n\t}, [ searchResults, searchHasResolved ] );\n\tconst onTermsChange = ( newTermValues ) => {\n\t\tconst newTermIds = new Set();\n\t\tfor ( const termValue of newTermValues ) {\n\t\t\tconst termId = getTermIdByTermValue( searchResults, termValue );\n\t\t\tif ( termId ) {\n\t\t\t\tnewTermIds.add( termId );\n\t\t\t}\n\t\t}\n\t\tsetSuggestions( EMPTY_ARRAY );\n\t\tonChange( Array.from( newTermIds ) );\n\t};\n\treturn (\n\t\t<div className=\"block-library-query-inspector__taxonomy-control\">\n\t\t\t<FormTokenField\n\t\t\t\tlabel={ taxonomy.name }\n\t\t\t\tvalue={ value }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tdisplayTransform={ decodeEntities }\n\t\t\t\tonChange={ onTermsChange }\n\t\t\t\t__experimentalShowHowTo={ false }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_data","_coreData","_element","_compose","_htmlEntities","_utils","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","getTermIdByTermValue","terms","termValue","termId","id","find","term","name","termValueLower","toLocaleLowerCase","TaxonomyControls","onChange","query","postType","taxQuery","taxonomies","useTaxonomies","length","_react","createElement","Fragment","map","taxonomy","termIds","slug","handleChange","newTermIds","TaxonomyItem","key","search","setSearch","useState","value","setValue","suggestions","setSuggestions","debouncedSearch","useDebounce","searchResults","searchHasResolved","useSelect","select","getEntityRecords","hasFinishedResolution","coreStore","selectorArgs","orderby","exclude","per_page","existingTerms","include","useEffect","sanitizedValue","reduce","accumulator","entity","push","result","onTermsChange","newTermValues","Set","add","Array","from","className","FormTokenField","label","onInputChange","displayTransform","decodeEntities","__experimentalShowHowTo"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/taxonomy-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { FormTokenField } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { useTaxonomies } from '../../utils';\n\nconst EMPTY_ARRAY = [];\nconst BASE_QUERY = {\n\torder: 'asc',\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\n// Helper function to get the term id based on user input in terms `FormTokenField`.\nconst getTermIdByTermValue = ( terms, termValue ) => {\n\t// First we check for exact match by `term.id` or case sensitive `term.name` match.\n\tconst termId =\n\t\ttermValue?.id || terms?.find( ( term ) => term.name === termValue )?.id;\n\tif ( termId ) {\n\t\treturn termId;\n\t}\n\n\t/**\n\t * Here we make an extra check for entered terms in a non case sensitive way,\n\t * to match user expectations, due to `FormTokenField` behaviour that shows\n\t * suggestions which are case insensitive.\n\t *\n\t * Although WP tries to discourage users to add terms with the same name (case insensitive),\n\t * it's still possible if you manually change the name, as long as the terms have different slugs.\n\t * In this edge case we always apply the first match from the terms list.\n\t */\n\tconst termValueLower = termValue.toLocaleLowerCase();\n\treturn terms?.find(\n\t\t( term ) => term.name.toLocaleLowerCase() === termValueLower\n\t)?.id;\n};\n\nexport function TaxonomyControls( { onChange, query } ) {\n\tconst { postType, taxQuery } = query;\n\n\tconst taxonomies = useTaxonomies( postType );\n\tif ( ! taxonomies || taxonomies.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ taxonomies.map( ( taxonomy ) => {\n\t\t\t\tconst termIds = taxQuery?.[ taxonomy.slug ] || [];\n\t\t\t\tconst handleChange = ( newTermIds ) =>\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\ttaxQuery: {\n\t\t\t\t\t\t\t...taxQuery,\n\t\t\t\t\t\t\t[ taxonomy.slug ]: newTermIds,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\treturn (\n\t\t\t\t\t<TaxonomyItem\n\t\t\t\t\t\tkey={ taxonomy.slug }\n\t\t\t\t\t\ttaxonomy={ taxonomy }\n\t\t\t\t\t\ttermIds={ termIds }\n\t\t\t\t\t\tonChange={ handleChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n\n/**\n * Renders a `FormTokenField` for a given taxonomy.\n *\n * @param {Object} props The props for the component.\n * @param {Object} props.taxonomy The taxonomy object.\n * @param {number[]} props.termIds An array with the block's term ids for the given taxonomy.\n * @param {Function} props.onChange Callback `onChange` function.\n * @return {JSX.Element} The rendered component.\n */\nfunction TaxonomyItem( { taxonomy, termIds, onChange } ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst [ value, setValue ] = useState( EMPTY_ARRAY );\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tconst debouncedSearch = useDebounce( setSearch, 250 );\n\tconst { searchResults, searchHasResolved } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! search ) {\n\t\t\t\treturn { searchResults: EMPTY_ARRAY, searchHasResolved: true };\n\t\t\t}\n\t\t\tconst { getEntityRecords, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst selectorArgs = [\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy.slug,\n\t\t\t\t{\n\t\t\t\t\t...BASE_QUERY,\n\t\t\t\t\tsearch,\n\t\t\t\t\torderby: 'name',\n\t\t\t\t\texclude: termIds,\n\t\t\t\t\tper_page: 20,\n\t\t\t\t},\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tsearchResults: getEntityRecords( ...selectorArgs ),\n\t\t\t\tsearchHasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tselectorArgs\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ search, termIds ]\n\t);\n\t// `existingTerms` are the ones fetched from the API and their type is `{ id: number; name: string }`.\n\t// They are used to extract the terms' names to populate the `FormTokenField` properly\n\t// and to sanitize the provided `termIds`, by setting only the ones that exist.\n\tconst existingTerms = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! termIds?.length ) {\n\t\t\t\treturn EMPTY_ARRAY;\n\t\t\t}\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\treturn getEntityRecords( 'taxonomy', taxonomy.slug, {\n\t\t\t\t...BASE_QUERY,\n\t\t\t\tinclude: termIds,\n\t\t\t\tper_page: termIds.length,\n\t\t\t} );\n\t\t},\n\t\t[ termIds ]\n\t);\n\t// Update the `value` state only after the selectors are resolved\n\t// to avoid emptying the input when we're changing terms.\n\tuseEffect( () => {\n\t\tif ( ! termIds?.length ) {\n\t\t\tsetValue( EMPTY_ARRAY );\n\t\t}\n\t\tif ( ! existingTerms?.length ) {\n\t\t\treturn;\n\t\t}\n\t\t// Returns only the existing entity ids. This prevents the component\n\t\t// from crashing in the editor, when non existing ids are provided.\n\t\tconst sanitizedValue = termIds.reduce( ( accumulator, id ) => {\n\t\t\tconst entity = existingTerms.find( ( term ) => term.id === id );\n\t\t\tif ( entity ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid,\n\t\t\t\t\tvalue: entity.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, [] );\n\t\tsetValue( sanitizedValue );\n\t}, [ termIds, existingTerms ] );\n\t// Update suggestions only when the query has resolved.\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tsetSuggestions( searchResults.map( ( result ) => result.name ) );\n\t}, [ searchResults, searchHasResolved ] );\n\tconst onTermsChange = ( newTermValues ) => {\n\t\tconst newTermIds = new Set();\n\t\tfor ( const termValue of newTermValues ) {\n\t\t\tconst termId = getTermIdByTermValue( searchResults, termValue );\n\t\t\tif ( termId ) {\n\t\t\t\tnewTermIds.add( termId );\n\t\t\t}\n\t\t}\n\t\tsetSuggestions( EMPTY_ARRAY );\n\t\tonChange( Array.from( newTermIds ) );\n\t};\n\treturn (\n\t\t<div className=\"block-library-query-inspector__taxonomy-control\">\n\t\t\t<FormTokenField\n\t\t\t\tlabel={ taxonomy.name }\n\t\t\t\tvalue={ value }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tdisplayTransform={ decodeEntities }\n\t\t\t\tonChange={ onTermsChange }\n\t\t\t\t__experimentalShowHowTo={ false }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -130,7 +130,9 @@ const usePostTypes = () => {
130
130
  return filteredPostTypes;
131
131
  }, []);
132
132
  const postTypesTaxonomiesMap = (0, _element.useMemo)(() => {
133
- if (!postTypes?.length) return;
133
+ if (!postTypes?.length) {
134
+ return;
135
+ }
134
136
  return postTypes.reduce((accumulator, type) => {
135
137
  accumulator[type.slug] = type.taxonomies;
136
138
  return accumulator;
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_element","_coreData","_blockEditor","_htmlEntities","_blocks","getEntitiesInfo","entities","mapping","reduce","accumulator","entity","mapById","mapByName","names","id","name","push","exports","getValueFromObjectPath","object","path","normalizedPath","split","value","forEach","fieldName","mapToIHasNameAndId","map","decodeEntities","usePostTypes","postTypes","useSelect","select","getPostTypes","coreStore","excludedPostTypes","filteredPostTypes","per_page","filter","viewable","slug","includes","postTypesTaxonomiesMap","useMemo","length","type","taxonomies","postTypesSelectOptions","labels","label","singular_name","useTaxonomies","postType","getTaxonomies","visibility","publicly_queryable","useIsPostTypeHierarchical","getPostType","hierarchical","useAllowedControls","attributes","blocksStore","getActiveBlockVariation","allowedControls","isControlAllowed","key","getTransformedBlocksFromPattern","blocks","queryBlockAttributes","query","inherit","clonedBlocks","block","cloneBlock","queryClientIds","blocksQueue","shift","clientId","innerBlocks","innerBlock","newBlocks","useBlockNameForPatterns","activeVariationName","blockName","hasActiveVariationPatterns","getBlockRootClientId","getPatternsByBlockTypes","blockEditorStore","rootClientId","activePatterns","useScopedBlockVariations","blockVariations","getBlockVariations","variations","isNotConnected","variation","namespace","connectedVariations","usePatterns","useUnsupportedBlocks","getClientIdsOfDescendants","getBlockName","descendantClientId","blockSupportsInteractivity","Object","is","getBlockSupport","blockSupportsInteractivityClientNavigation","blockInteractivity","hasBlocksFromPlugins","hasPostContentBlock","hasUnsupportedBlocks"],"sources":["@wordpress/block-library/src/query/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tcloneBlock,\n\tgetBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\n/**\n * The object used in Query block that contains info and helper mappings\n * from an array of IHasNameAndId objects.\n *\n * @typedef {Object} QueryEntitiesInfo\n * @property {IHasNameAndId[]} entities The array of entities.\n * @property {Object<string, IHasNameAndId>} mapById Object mapping with the id as key and the entity as value.\n * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.\n * @property {string[]} names Array with the entities' names.\n */\n\n/**\n * Returns a helper object with mapping from Objects that implement\n * the `IHasNameAndId` interface. The returned object is used for\n * integration with `FormTokenField` component.\n *\n * @param {IHasNameAndId[]} entities The entities to extract of helper object.\n * @return {QueryEntitiesInfo} The object with the entities information.\n */\nexport const getEntitiesInfo = ( entities ) => {\n\tconst mapping = entities?.reduce(\n\t\t( accumulator, entity ) => {\n\t\t\tconst { mapById, mapByName, names } = accumulator;\n\t\t\tmapById[ entity.id ] = entity;\n\t\t\tmapByName[ entity.name ] = entity;\n\t\t\tnames.push( entity.name );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ mapById: {}, mapByName: {}, names: [] }\n\t);\n\treturn {\n\t\tentities,\n\t\t...mapping,\n\t};\n};\n\n/**\n * Helper util to return a value from a certain path of the object.\n * Path is specified as a string of properties, separated by dots,\n * for example: \"parent.child\".\n *\n * @param {Object} object Input object.\n * @param {string} path Path to the object property.\n * @return {*} Value of the object property at the specified path.\n */\nexport const getValueFromObjectPath = ( object, path ) => {\n\tconst normalizedPath = path.split( '.' );\n\tlet value = object;\n\tnormalizedPath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of enitities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * Returns a helper object that contains:\n * 1. An `options` object from the available post types, to be passed to a `SelectControl`.\n * 2. A helper map with available taxonomies per post type.\n *\n * @return {Object} The helper object related to post types.\n */\nexport const usePostTypes = () => {\n\tconst postTypes = useSelect( ( select ) => {\n\t\tconst { getPostTypes } = select( coreStore );\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\tconst filteredPostTypes = getPostTypes( { per_page: -1 } )?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t\treturn filteredPostTypes;\n\t}, [] );\n\tconst postTypesTaxonomiesMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) return;\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] = type.taxonomies;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\tconst postTypesSelectOptions = useMemo(\n\t\t() =>\n\t\t\t( postTypes || [] ).map( ( { labels, slug } ) => ( {\n\t\t\t\tlabel: labels.singular_name,\n\t\t\t\tvalue: slug,\n\t\t\t} ) ),\n\t\t[ postTypes ]\n\t);\n\treturn { postTypesTaxonomiesMap, postTypesSelectOptions };\n};\n\n/**\n * Hook that returns the taxonomies associated with a specific post type.\n *\n * @param {string} postType The post type from which to retrieve the associated taxonomies.\n * @return {Object[]} An array of the associated taxonomies.\n */\nexport const useTaxonomies = ( postType ) => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies } = select( coreStore );\n\t\t\treturn getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t} );\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn useMemo( () => {\n\t\treturn taxonomies?.filter(\n\t\t\t( { visibility } ) => !! visibility?.publicly_queryable\n\t\t);\n\t}, [ taxonomies ] );\n};\n\n/**\n * Hook that returns whether a specific post type is hierarchical.\n *\n * @param {string} postType The post type to check.\n * @return {boolean} Whether a specific post type is hierarchical.\n */\nexport function useIsPostTypeHierarchical( postType ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn type?.viewable && type?.hierarchical;\n\t\t},\n\t\t[ postType ]\n\t);\n}\n\n/**\n * Hook that returns the query properties' names defined by the active\n * block variation, to determine which block's filters to show.\n *\n * @param {Object} attributes Block attributes.\n * @return {string[]} An array of the query attributes.\n */\nexport function useAllowedControls( attributes ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\t'core/query',\n\t\t\t\tattributes\n\t\t\t)?.allowedControls,\n\n\t\t[ attributes ]\n\t);\n}\nexport function isControlAllowed( allowedControls, key ) {\n\t// Every controls is allowed if the list is not defined.\n\tif ( ! allowedControls ) {\n\t\treturn true;\n\t}\n\treturn allowedControls.includes( key );\n}\n\n/**\n * Clones a pattern's blocks and then recurses over that list of blocks,\n * transforming them to retain some `query` attribute properties.\n * For now we retain the `postType` and `inherit` properties as they are\n * fundamental for the expected functionality of the block and don't affect\n * its design and presentation.\n *\n * Returns the cloned/transformed blocks and array of existing Query Loop\n * client ids for further manipulation, in order to avoid multiple recursions.\n *\n * @param {WPBlock[]} blocks The list of blocks to look through and transform(mutate).\n * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.\n * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.\n */\nexport const getTransformedBlocksFromPattern = (\n\tblocks,\n\tqueryBlockAttributes\n) => {\n\tconst {\n\t\tquery: { postType, inherit },\n\t} = queryBlockAttributes;\n\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\tconst queryClientIds = [];\n\tconst blocksQueue = [ ...clonedBlocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\t\tif ( block.name === 'core/query' ) {\n\t\t\tblock.attributes.query = {\n\t\t\t\t...block.attributes.query,\n\t\t\t\tpostType,\n\t\t\t\tinherit,\n\t\t\t};\n\t\t\tqueryClientIds.push( block.clientId );\n\t\t}\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\treturn { newBlocks: clonedBlocks, queryClientIds };\n};\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific patterns for this variation.\n * If there are, these patterns are going to be the only ones suggested to\n * the user in setup and replace flow, without including the default ones\n * for Query Loop.\n *\n * If there are no such patterns, the default ones for Query Loop are going\n * to be suggested.\n *\n * @param {string} clientId The block's client ID.\n * @param {Object} attributes The block's attributes.\n * @return {string} The block name to be used in the patterns suggestions.\n */\nexport function useBlockNameForPatterns( clientId, attributes ) {\n\tconst activeVariationName = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\t'core/query',\n\t\t\t\tattributes\n\t\t\t)?.name,\n\t\t[ attributes ]\n\t);\n\tconst blockName = `core/query/${ activeVariationName }`;\n\tconst hasActiveVariationPatterns = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! activeVariationName ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst activePatterns = getPatternsByBlockTypes(\n\t\t\t\tblockName,\n\t\t\t\trootClientId\n\t\t\t);\n\t\t\treturn activePatterns.length > 0;\n\t\t},\n\t\t[ clientId, activeVariationName, blockName ]\n\t);\n\treturn hasActiveVariationPatterns ? blockName : 'core/query';\n}\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific scoped `block` variations connected with\n * this variation.\n *\n * If there are, these variations are going to be the only ones suggested\n * to the user in setup flow when clicking to `start blank`, without including\n * the default ones for Query Loop.\n *\n * If there are no such scoped `block` variations, the default ones for Query\n * Loop are going to be suggested.\n *\n * The way we determine such variations is with the convention that they have the `namespace`\n * attribute defined as an array. This array should contain the names(`name` property) of any\n * variations they want to be connected to.\n * For example, if we have a `Query Loop` scoped `inserter` variation with the name `products`,\n * we can connect a scoped `block` variation by setting its `namespace` attribute to `['products']`.\n * If the user selects this variation, the `namespace` attribute will be overridden by the\n * main `inserter` variation.\n *\n * @param {Object} attributes The block's attributes.\n * @return {WPBlockVariation[]} The block variations to be suggested in setup flow, when clicking to `start blank`.\n */\nexport function useScopedBlockVariations( attributes ) {\n\tconst { activeVariationName, blockVariations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\t\t\treturn {\n\t\t\t\tactiveVariationName: getActiveBlockVariation(\n\t\t\t\t\t'core/query',\n\t\t\t\t\tattributes\n\t\t\t\t)?.name,\n\t\t\t\tblockVariations: getBlockVariations( 'core/query', 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ attributes ]\n\t);\n\tconst variations = useMemo( () => {\n\t\t// Filter out the variations that have defined a `namespace` attribute,\n\t\t// which means they are 'connected' to specific variations of the block.\n\t\tconst isNotConnected = ( variation ) =>\n\t\t\t! variation.attributes?.namespace;\n\t\tif ( ! activeVariationName ) {\n\t\t\treturn blockVariations.filter( isNotConnected );\n\t\t}\n\t\tconst connectedVariations = blockVariations.filter( ( variation ) =>\n\t\t\tvariation.attributes?.namespace?.includes( activeVariationName )\n\t\t);\n\t\tif ( !! connectedVariations.length ) {\n\t\t\treturn connectedVariations;\n\t\t}\n\t\treturn blockVariations.filter( isNotConnected );\n\t}, [ activeVariationName, blockVariations ] );\n\treturn variations;\n}\n\n/**\n * Hook that returns the block patterns for a specific block type.\n *\n * @param {string} clientId The block's client ID.\n * @param {string} name The block type name.\n * @return {Object[]} An array of valid block patterns.\n */\nexport const usePatterns = ( clientId, name ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( name, rootClientId );\n\t\t},\n\t\t[ name, clientId ]\n\t);\n};\n\n/**\n * The object returned by useUnsupportedBlocks with info about the type of\n * unsupported blocks present inside the Query block.\n *\n * @typedef {Object} UnsupportedBlocksInfo\n * @property {boolean} hasBlocksFromPlugins True if blocks from plugins are present.\n * @property {boolean} hasPostContentBlock True if a 'core/post-content' block is present.\n * @property {boolean} hasUnsupportedBlocks True if there are any unsupported blocks.\n */\n\n/**\n * Hook that returns an object with information about the unsupported blocks\n * present inside a Query Loop with the given `clientId`. The returned object\n * contains props that are true when a certain type of unsupported block is\n * present.\n *\n * @param {string} clientId The block's client ID.\n * @return {UnsupportedBlocksInfo} The object containing the information.\n */\nexport const useUnsupportedBlocks = ( clientId ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getClientIdsOfDescendants, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blocks = {};\n\t\t\tgetClientIdsOfDescendants( clientId ).forEach(\n\t\t\t\t( descendantClientId ) => {\n\t\t\t\t\tconst blockName = getBlockName( descendantClientId );\n\t\t\t\t\t/*\n\t\t\t\t\t * Client side navigation can be true in two states:\n\t\t\t\t\t * - supports.interactivity = true;\n\t\t\t\t\t * - supports.interactivity.clientNavigation = true;\n\t\t\t\t\t */\n\t\t\t\t\tconst blockSupportsInteractivity = Object.is(\n\t\t\t\t\t\tgetBlockSupport( blockName, 'interactivity' ),\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t\tconst blockSupportsInteractivityClientNavigation =\n\t\t\t\t\t\tgetBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'interactivity.clientNavigation'\n\t\t\t\t\t\t);\n\t\t\t\t\tconst blockInteractivity =\n\t\t\t\t\t\tblockSupportsInteractivity ||\n\t\t\t\t\t\tblockSupportsInteractivityClientNavigation;\n\t\t\t\t\tif ( ! blockInteractivity ) {\n\t\t\t\t\t\tblocks.hasBlocksFromPlugins = true;\n\t\t\t\t\t} else if ( blockName === 'core/post-content' ) {\n\t\t\t\t\t\tblocks.hasPostContentBlock = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\tblocks.hasUnsupportedBlocks =\n\t\t\t\tblocks.hasBlocksFromPlugins || blocks.hasPostContentBlock;\n\t\t\treturn blocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_element","_coreData","_blockEditor","_htmlEntities","_blocks","getEntitiesInfo","entities","mapping","reduce","accumulator","entity","mapById","mapByName","names","id","name","push","exports","getValueFromObjectPath","object","path","normalizedPath","split","value","forEach","fieldName","mapToIHasNameAndId","map","decodeEntities","usePostTypes","postTypes","useSelect","select","getPostTypes","coreStore","excludedPostTypes","filteredPostTypes","per_page","filter","viewable","slug","includes","postTypesTaxonomiesMap","useMemo","length","type","taxonomies","postTypesSelectOptions","labels","label","singular_name","useTaxonomies","postType","getTaxonomies","visibility","publicly_queryable","useIsPostTypeHierarchical","getPostType","hierarchical","useAllowedControls","attributes","blocksStore","getActiveBlockVariation","allowedControls","isControlAllowed","key","getTransformedBlocksFromPattern","blocks","queryBlockAttributes","query","inherit","clonedBlocks","block","cloneBlock","queryClientIds","blocksQueue","shift","clientId","innerBlocks","innerBlock","newBlocks","useBlockNameForPatterns","activeVariationName","blockName","hasActiveVariationPatterns","getBlockRootClientId","getPatternsByBlockTypes","blockEditorStore","rootClientId","activePatterns","useScopedBlockVariations","blockVariations","getBlockVariations","variations","isNotConnected","variation","namespace","connectedVariations","usePatterns","useUnsupportedBlocks","getClientIdsOfDescendants","getBlockName","descendantClientId","blockSupportsInteractivity","Object","is","getBlockSupport","blockSupportsInteractivityClientNavigation","blockInteractivity","hasBlocksFromPlugins","hasPostContentBlock","hasUnsupportedBlocks"],"sources":["@wordpress/block-library/src/query/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tcloneBlock,\n\tgetBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\n/**\n * The object used in Query block that contains info and helper mappings\n * from an array of IHasNameAndId objects.\n *\n * @typedef {Object} QueryEntitiesInfo\n * @property {IHasNameAndId[]} entities The array of entities.\n * @property {Object<string, IHasNameAndId>} mapById Object mapping with the id as key and the entity as value.\n * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.\n * @property {string[]} names Array with the entities' names.\n */\n\n/**\n * Returns a helper object with mapping from Objects that implement\n * the `IHasNameAndId` interface. The returned object is used for\n * integration with `FormTokenField` component.\n *\n * @param {IHasNameAndId[]} entities The entities to extract of helper object.\n * @return {QueryEntitiesInfo} The object with the entities information.\n */\nexport const getEntitiesInfo = ( entities ) => {\n\tconst mapping = entities?.reduce(\n\t\t( accumulator, entity ) => {\n\t\t\tconst { mapById, mapByName, names } = accumulator;\n\t\t\tmapById[ entity.id ] = entity;\n\t\t\tmapByName[ entity.name ] = entity;\n\t\t\tnames.push( entity.name );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ mapById: {}, mapByName: {}, names: [] }\n\t);\n\treturn {\n\t\tentities,\n\t\t...mapping,\n\t};\n};\n\n/**\n * Helper util to return a value from a certain path of the object.\n * Path is specified as a string of properties, separated by dots,\n * for example: \"parent.child\".\n *\n * @param {Object} object Input object.\n * @param {string} path Path to the object property.\n * @return {*} Value of the object property at the specified path.\n */\nexport const getValueFromObjectPath = ( object, path ) => {\n\tconst normalizedPath = path.split( '.' );\n\tlet value = object;\n\tnormalizedPath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of enitities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * Returns a helper object that contains:\n * 1. An `options` object from the available post types, to be passed to a `SelectControl`.\n * 2. A helper map with available taxonomies per post type.\n *\n * @return {Object} The helper object related to post types.\n */\nexport const usePostTypes = () => {\n\tconst postTypes = useSelect( ( select ) => {\n\t\tconst { getPostTypes } = select( coreStore );\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\tconst filteredPostTypes = getPostTypes( { per_page: -1 } )?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t\treturn filteredPostTypes;\n\t}, [] );\n\tconst postTypesTaxonomiesMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) {\n\t\t\treturn;\n\t\t}\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] = type.taxonomies;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\tconst postTypesSelectOptions = useMemo(\n\t\t() =>\n\t\t\t( postTypes || [] ).map( ( { labels, slug } ) => ( {\n\t\t\t\tlabel: labels.singular_name,\n\t\t\t\tvalue: slug,\n\t\t\t} ) ),\n\t\t[ postTypes ]\n\t);\n\treturn { postTypesTaxonomiesMap, postTypesSelectOptions };\n};\n\n/**\n * Hook that returns the taxonomies associated with a specific post type.\n *\n * @param {string} postType The post type from which to retrieve the associated taxonomies.\n * @return {Object[]} An array of the associated taxonomies.\n */\nexport const useTaxonomies = ( postType ) => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies } = select( coreStore );\n\t\t\treturn getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t} );\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn useMemo( () => {\n\t\treturn taxonomies?.filter(\n\t\t\t( { visibility } ) => !! visibility?.publicly_queryable\n\t\t);\n\t}, [ taxonomies ] );\n};\n\n/**\n * Hook that returns whether a specific post type is hierarchical.\n *\n * @param {string} postType The post type to check.\n * @return {boolean} Whether a specific post type is hierarchical.\n */\nexport function useIsPostTypeHierarchical( postType ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn type?.viewable && type?.hierarchical;\n\t\t},\n\t\t[ postType ]\n\t);\n}\n\n/**\n * Hook that returns the query properties' names defined by the active\n * block variation, to determine which block's filters to show.\n *\n * @param {Object} attributes Block attributes.\n * @return {string[]} An array of the query attributes.\n */\nexport function useAllowedControls( attributes ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\t'core/query',\n\t\t\t\tattributes\n\t\t\t)?.allowedControls,\n\n\t\t[ attributes ]\n\t);\n}\nexport function isControlAllowed( allowedControls, key ) {\n\t// Every controls is allowed if the list is not defined.\n\tif ( ! allowedControls ) {\n\t\treturn true;\n\t}\n\treturn allowedControls.includes( key );\n}\n\n/**\n * Clones a pattern's blocks and then recurses over that list of blocks,\n * transforming them to retain some `query` attribute properties.\n * For now we retain the `postType` and `inherit` properties as they are\n * fundamental for the expected functionality of the block and don't affect\n * its design and presentation.\n *\n * Returns the cloned/transformed blocks and array of existing Query Loop\n * client ids for further manipulation, in order to avoid multiple recursions.\n *\n * @param {WPBlock[]} blocks The list of blocks to look through and transform(mutate).\n * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.\n * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.\n */\nexport const getTransformedBlocksFromPattern = (\n\tblocks,\n\tqueryBlockAttributes\n) => {\n\tconst {\n\t\tquery: { postType, inherit },\n\t} = queryBlockAttributes;\n\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\tconst queryClientIds = [];\n\tconst blocksQueue = [ ...clonedBlocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\t\tif ( block.name === 'core/query' ) {\n\t\t\tblock.attributes.query = {\n\t\t\t\t...block.attributes.query,\n\t\t\t\tpostType,\n\t\t\t\tinherit,\n\t\t\t};\n\t\t\tqueryClientIds.push( block.clientId );\n\t\t}\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\treturn { newBlocks: clonedBlocks, queryClientIds };\n};\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific patterns for this variation.\n * If there are, these patterns are going to be the only ones suggested to\n * the user in setup and replace flow, without including the default ones\n * for Query Loop.\n *\n * If there are no such patterns, the default ones for Query Loop are going\n * to be suggested.\n *\n * @param {string} clientId The block's client ID.\n * @param {Object} attributes The block's attributes.\n * @return {string} The block name to be used in the patterns suggestions.\n */\nexport function useBlockNameForPatterns( clientId, attributes ) {\n\tconst activeVariationName = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\t'core/query',\n\t\t\t\tattributes\n\t\t\t)?.name,\n\t\t[ attributes ]\n\t);\n\tconst blockName = `core/query/${ activeVariationName }`;\n\tconst hasActiveVariationPatterns = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! activeVariationName ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst activePatterns = getPatternsByBlockTypes(\n\t\t\t\tblockName,\n\t\t\t\trootClientId\n\t\t\t);\n\t\t\treturn activePatterns.length > 0;\n\t\t},\n\t\t[ clientId, activeVariationName, blockName ]\n\t);\n\treturn hasActiveVariationPatterns ? blockName : 'core/query';\n}\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific scoped `block` variations connected with\n * this variation.\n *\n * If there are, these variations are going to be the only ones suggested\n * to the user in setup flow when clicking to `start blank`, without including\n * the default ones for Query Loop.\n *\n * If there are no such scoped `block` variations, the default ones for Query\n * Loop are going to be suggested.\n *\n * The way we determine such variations is with the convention that they have the `namespace`\n * attribute defined as an array. This array should contain the names(`name` property) of any\n * variations they want to be connected to.\n * For example, if we have a `Query Loop` scoped `inserter` variation with the name `products`,\n * we can connect a scoped `block` variation by setting its `namespace` attribute to `['products']`.\n * If the user selects this variation, the `namespace` attribute will be overridden by the\n * main `inserter` variation.\n *\n * @param {Object} attributes The block's attributes.\n * @return {WPBlockVariation[]} The block variations to be suggested in setup flow, when clicking to `start blank`.\n */\nexport function useScopedBlockVariations( attributes ) {\n\tconst { activeVariationName, blockVariations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\t\t\treturn {\n\t\t\t\tactiveVariationName: getActiveBlockVariation(\n\t\t\t\t\t'core/query',\n\t\t\t\t\tattributes\n\t\t\t\t)?.name,\n\t\t\t\tblockVariations: getBlockVariations( 'core/query', 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ attributes ]\n\t);\n\tconst variations = useMemo( () => {\n\t\t// Filter out the variations that have defined a `namespace` attribute,\n\t\t// which means they are 'connected' to specific variations of the block.\n\t\tconst isNotConnected = ( variation ) =>\n\t\t\t! variation.attributes?.namespace;\n\t\tif ( ! activeVariationName ) {\n\t\t\treturn blockVariations.filter( isNotConnected );\n\t\t}\n\t\tconst connectedVariations = blockVariations.filter( ( variation ) =>\n\t\t\tvariation.attributes?.namespace?.includes( activeVariationName )\n\t\t);\n\t\tif ( !! connectedVariations.length ) {\n\t\t\treturn connectedVariations;\n\t\t}\n\t\treturn blockVariations.filter( isNotConnected );\n\t}, [ activeVariationName, blockVariations ] );\n\treturn variations;\n}\n\n/**\n * Hook that returns the block patterns for a specific block type.\n *\n * @param {string} clientId The block's client ID.\n * @param {string} name The block type name.\n * @return {Object[]} An array of valid block patterns.\n */\nexport const usePatterns = ( clientId, name ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( name, rootClientId );\n\t\t},\n\t\t[ name, clientId ]\n\t);\n};\n\n/**\n * The object returned by useUnsupportedBlocks with info about the type of\n * unsupported blocks present inside the Query block.\n *\n * @typedef {Object} UnsupportedBlocksInfo\n * @property {boolean} hasBlocksFromPlugins True if blocks from plugins are present.\n * @property {boolean} hasPostContentBlock True if a 'core/post-content' block is present.\n * @property {boolean} hasUnsupportedBlocks True if there are any unsupported blocks.\n */\n\n/**\n * Hook that returns an object with information about the unsupported blocks\n * present inside a Query Loop with the given `clientId`. The returned object\n * contains props that are true when a certain type of unsupported block is\n * present.\n *\n * @param {string} clientId The block's client ID.\n * @return {UnsupportedBlocksInfo} The object containing the information.\n */\nexport const useUnsupportedBlocks = ( clientId ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getClientIdsOfDescendants, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blocks = {};\n\t\t\tgetClientIdsOfDescendants( clientId ).forEach(\n\t\t\t\t( descendantClientId ) => {\n\t\t\t\t\tconst blockName = getBlockName( descendantClientId );\n\t\t\t\t\t/*\n\t\t\t\t\t * Client side navigation can be true in two states:\n\t\t\t\t\t * - supports.interactivity = true;\n\t\t\t\t\t * - supports.interactivity.clientNavigation = true;\n\t\t\t\t\t */\n\t\t\t\t\tconst blockSupportsInteractivity = Object.is(\n\t\t\t\t\t\tgetBlockSupport( blockName, 'interactivity' ),\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t\tconst blockSupportsInteractivityClientNavigation =\n\t\t\t\t\t\tgetBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'interactivity.clientNavigation'\n\t\t\t\t\t\t);\n\t\t\t\t\tconst blockInteractivity =\n\t\t\t\t\t\tblockSupportsInteractivity ||\n\t\t\t\t\t\tblockSupportsInteractivityClientNavigation;\n\t\t\t\t\tif ( ! blockInteractivity ) {\n\t\t\t\t\t\tblocks.hasBlocksFromPlugins = true;\n\t\t\t\t\t} else if ( blockName === 'core/post-content' ) {\n\t\t\t\t\t\tblocks.hasPostContentBlock = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\tblocks.hasUnsupportedBlocks =\n\t\t\t\tblocks.hasBlocksFromPlugins || blocks.hasPostContentBlock;\n\t\t\treturn blocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -38,7 +38,9 @@ const variations = [{
38
38
  * Block by providing its attributes.
39
39
  */
40
40
  variations.forEach(variation => {
41
- if (variation.isActive) return;
41
+ if (variation.isActive) {
42
+ return;
43
+ }
42
44
  variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
43
45
  });
44
46
  var _default = exports.default = variations;
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","variations","isDefault","name","title","__","description","icon","attributes","type","scope","forEach","variation","isActive","blockAttributes","variationAttributes","_default","exports","default"],"sources":["@wordpress/block-library/src/query-title/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { title } from '@wordpress/icons';\nconst variations = [\n\t{\n\t\tisDefault: true,\n\t\tname: 'archive-title',\n\t\ttitle: __( 'Archive Title' ),\n\t\tdescription: __(\n\t\t\t'Display the archive title based on the queried object.'\n\t\t),\n\t\ticon: title,\n\t\tattributes: {\n\t\t\ttype: 'archive',\n\t\t},\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tisDefault: false,\n\t\tname: 'search-title',\n\t\ttitle: __( 'Search Results Title' ),\n\t\tdescription: __(\n\t\t\t'Display the search results title based on the queried object.'\n\t\t),\n\t\ticon: title,\n\t\tattributes: {\n\t\t\ttype: 'search',\n\t\t},\n\t\tscope: [ 'inserter' ],\n\t},\n];\n\n/**\n * Add `isActive` function to all `query-title` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tif ( variation.isActive ) return;\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.type === variationAttributes.type;\n} );\n\nexport default variations;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAGA,MAAME,UAAU,GAAG,CAClB;EACCC,SAAS,EAAE,IAAI;EACfC,IAAI,EAAE,eAAe;EACrBC,KAAK,EAAE,IAAAC,QAAE,EAAE,eAAgB,CAAC;EAC5BC,WAAW,EAAE,IAAAD,QAAE,EACd,wDACD,CAAC;EACDE,IAAI,EAAEH,YAAK;EACXI,UAAU,EAAE;IACXC,IAAI,EAAE;EACP,CAAC;EACDC,KAAK,EAAE,CAAE,UAAU;AACpB,CAAC,EACD;EACCR,SAAS,EAAE,KAAK;EAChBC,IAAI,EAAE,cAAc;EACpBC,KAAK,EAAE,IAAAC,QAAE,EAAE,sBAAuB,CAAC;EACnCC,WAAW,EAAE,IAAAD,QAAE,EACd,+DACD,CAAC;EACDE,IAAI,EAAEH,YAAK;EACXI,UAAU,EAAE;IACXC,IAAI,EAAE;EACP,CAAC;EACDC,KAAK,EAAE,CAAE,UAAU;AACpB,CAAC,CACD;;AAED;AACA;AACA;AACA;AACA;AACAT,UAAU,CAACU,OAAO,CAAIC,SAAS,IAAM;EACpC,IAAKA,SAAS,CAACC,QAAQ,EAAG;EAC1BD,SAAS,CAACC,QAAQ,GAAG,CAAEC,eAAe,EAAEC,mBAAmB,KAC1DD,eAAe,CAACL,IAAI,KAAKM,mBAAmB,CAACN,IAAI;AACnD,CAAE,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEWjB,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_icons","variations","isDefault","name","title","__","description","icon","attributes","type","scope","forEach","variation","isActive","blockAttributes","variationAttributes","_default","exports","default"],"sources":["@wordpress/block-library/src/query-title/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { title } from '@wordpress/icons';\nconst variations = [\n\t{\n\t\tisDefault: true,\n\t\tname: 'archive-title',\n\t\ttitle: __( 'Archive Title' ),\n\t\tdescription: __(\n\t\t\t'Display the archive title based on the queried object.'\n\t\t),\n\t\ticon: title,\n\t\tattributes: {\n\t\t\ttype: 'archive',\n\t\t},\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tisDefault: false,\n\t\tname: 'search-title',\n\t\ttitle: __( 'Search Results Title' ),\n\t\tdescription: __(\n\t\t\t'Display the search results title based on the queried object.'\n\t\t),\n\t\ticon: title,\n\t\tattributes: {\n\t\t\ttype: 'search',\n\t\t},\n\t\tscope: [ 'inserter' ],\n\t},\n];\n\n/**\n * Add `isActive` function to all `query-title` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tif ( variation.isActive ) {\n\t\treturn;\n\t}\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.type === variationAttributes.type;\n} );\n\nexport default variations;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAGA,MAAME,UAAU,GAAG,CAClB;EACCC,SAAS,EAAE,IAAI;EACfC,IAAI,EAAE,eAAe;EACrBC,KAAK,EAAE,IAAAC,QAAE,EAAE,eAAgB,CAAC;EAC5BC,WAAW,EAAE,IAAAD,QAAE,EACd,wDACD,CAAC;EACDE,IAAI,EAAEH,YAAK;EACXI,UAAU,EAAE;IACXC,IAAI,EAAE;EACP,CAAC;EACDC,KAAK,EAAE,CAAE,UAAU;AACpB,CAAC,EACD;EACCR,SAAS,EAAE,KAAK;EAChBC,IAAI,EAAE,cAAc;EACpBC,KAAK,EAAE,IAAAC,QAAE,EAAE,sBAAuB,CAAC;EACnCC,WAAW,EAAE,IAAAD,QAAE,EACd,+DACD,CAAC;EACDE,IAAI,EAAEH,YAAK;EACXI,UAAU,EAAE;IACXC,IAAI,EAAE;EACP,CAAC;EACDC,KAAK,EAAE,CAAE,UAAU;AACpB,CAAC,CACD;;AAED;AACA;AACA;AACA;AACA;AACAT,UAAU,CAACU,OAAO,CAAIC,SAAS,IAAM;EACpC,IAAKA,SAAS,CAACC,QAAQ,EAAG;IACzB;EACD;EACAD,SAAS,CAACC,QAAQ,GAAG,CAAEC,eAAe,EAAEC,mBAAmB,KAC1DD,eAAe,CAACL,IAAI,KAAKM,mBAAmB,CAACN,IAAI;AACnD,CAAE,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEWjB,UAAU","ignoreList":[]}
@@ -136,7 +136,7 @@ const SocialLinkEdit = ({
136
136
  })
137
137
  })), (0, _react.createElement)("li", {
138
138
  ...blockProps
139
- }, (0, _react.createElement)(_components.Button, {
139
+ }, (0, _react.createElement)("button", {
140
140
  className: "wp-block-social-link-anchor",
141
141
  ref: setPopoverAnchor,
142
142
  onClick: () => setPopover(true)
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_keycodes","_data","_blockEditor","_element","_components","_i18n","_icons","_socialList","SocialLinkURLPopover","url","setAttributes","setPopover","popoverAnchor","clientId","removeBlock","useDispatch","blockEditorStore","_react","createElement","URLPopover","anchor","onClose","className","onSubmit","event","preventDefault","URLInput","__nextHasNoMarginBottom","value","onChange","nextURL","placeholder","__","label","hideLabelFromVision","disableSuggestions","onKeyDown","defaultPrevented","BACKSPACE","DELETE","includes","keyCode","Button","icon","keyboardReturn","type","SocialLinkEdit","attributes","context","isSelected","service","rel","showLabels","iconColor","iconColorValue","iconBackgroundColor","iconBackgroundColorValue","showURLPopover","useState","classes","classNames","setPopoverAnchor","IconComponent","getIconBySite","socialLinkName","getNameBySite","socialLinkText","trim","blockProps","useBlockProps","style","color","backgroundColor","Fragment","InspectorControls","PanelBody","title","PanelRow","TextControl","help","group","ref","onClick","_default","exports","default"],"sources":["@wordpress/block-library/src/social-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { DELETE, BACKSPACE } from '@wordpress/keycodes';\nimport { useDispatch } from '@wordpress/data';\n\nimport {\n\tInspectorControls,\n\tURLPopover,\n\tURLInput,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport {\n\tButton,\n\tPanelBody,\n\tPanelRow,\n\tTextControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getIconBySite, getNameBySite } from './social-list';\n\nconst SocialLinkURLPopover = ( {\n\turl,\n\tsetAttributes,\n\tsetPopover,\n\tpopoverAnchor,\n\tclientId,\n} ) => {\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<URLPopover\n\t\t\tanchor={ popoverAnchor }\n\t\t\tonClose={ () => setPopover( false ) }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-url-popover__link-editor\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetPopover( false );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-input\">\n\t\t\t\t\t<URLInput\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\tonChange={ ( nextURL ) =>\n\t\t\t\t\t\t\tsetAttributes( { url: nextURL } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ __( 'Enter social link' ) }\n\t\t\t\t\t\tlabel={ __( 'Enter social link' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tdisableSuggestions\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!! url ||\n\t\t\t\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t\t\t\t! [ BACKSPACE, DELETE ].includes(\n\t\t\t\t\t\t\t\t\tevent.keyCode\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t/>\n\t\t\t</form>\n\t\t</URLPopover>\n\t);\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tcontext,\n\tisSelected,\n\tsetAttributes,\n\tclientId,\n} ) => {\n\tconst { url, service, label = '', rel } = attributes;\n\tconst {\n\t\tshowLabels,\n\t\ticonColor,\n\t\ticonColorValue,\n\t\ticonBackgroundColor,\n\t\ticonBackgroundColorValue,\n\t} = context;\n\tconst [ showURLPopover, setPopover ] = useState( false );\n\tconst classes = classNames( 'wp-social-link', 'wp-social-link-' + service, {\n\t\t'wp-social-link__is-incomplete': ! url,\n\t\t[ `has-${ iconColor }-color` ]: iconColor,\n\t\t[ `has-${ iconBackgroundColor }-background-color` ]:\n\t\t\ticonBackgroundColor,\n\t} );\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\tconst IconComponent = getIconBySite( service );\n\tconst socialLinkName = getNameBySite( service );\n\t// The initial label (ie. the link text) is an empty string.\n\t// We want to prevent empty links so that the link text always fallbacks to\n\t// the social name, even when users enter and save an empty string or only\n\t// spaces. The PHP render callback fallbacks to the social name as well.\n\tconst socialLinkText = label.trim() === '' ? socialLinkName : label;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t\tstyle: {\n\t\t\tcolor: iconColorValue,\n\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t},\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Link text' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The link text is visible when enabled from the parent Social Icons block.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelRow>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( value ) => setAttributes( { rel: value } ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<li { ...blockProps }>\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"wp-block-social-link-anchor\"\n\t\t\t\t\tref={ setPopoverAnchor }\n\t\t\t\t\tonClick={ () => setPopover( true ) }\n\t\t\t\t>\n\t\t\t\t\t<IconComponent />\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ classNames( 'wp-block-social-link-label', {\n\t\t\t\t\t\t\t'screen-reader-text': ! showLabels,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ socialLinkText }\n\t\t\t\t\t</span>\n\t\t\t\t</Button>\n\t\t\t\t{ isSelected && showURLPopover && (\n\t\t\t\t\t<SocialLinkURLPopover\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tsetPopover={ setPopover }\n\t\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t</>\n\t);\n};\n\nexport default SocialLinkEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_keycodes","_data","_blockEditor","_element","_components","_i18n","_icons","_socialList","SocialLinkURLPopover","url","setAttributes","setPopover","popoverAnchor","clientId","removeBlock","useDispatch","blockEditorStore","_react","createElement","URLPopover","anchor","onClose","className","onSubmit","event","preventDefault","URLInput","__nextHasNoMarginBottom","value","onChange","nextURL","placeholder","__","label","hideLabelFromVision","disableSuggestions","onKeyDown","defaultPrevented","BACKSPACE","DELETE","includes","keyCode","Button","icon","keyboardReturn","type","SocialLinkEdit","attributes","context","isSelected","service","rel","showLabels","iconColor","iconColorValue","iconBackgroundColor","iconBackgroundColorValue","showURLPopover","useState","classes","classNames","setPopoverAnchor","IconComponent","getIconBySite","socialLinkName","getNameBySite","socialLinkText","trim","blockProps","useBlockProps","style","color","backgroundColor","Fragment","InspectorControls","PanelBody","title","PanelRow","TextControl","help","group","ref","onClick","_default","exports","default"],"sources":["@wordpress/block-library/src/social-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { DELETE, BACKSPACE } from '@wordpress/keycodes';\nimport { useDispatch } from '@wordpress/data';\n\nimport {\n\tInspectorControls,\n\tURLPopover,\n\tURLInput,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport {\n\tButton,\n\tPanelBody,\n\tPanelRow,\n\tTextControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getIconBySite, getNameBySite } from './social-list';\n\nconst SocialLinkURLPopover = ( {\n\turl,\n\tsetAttributes,\n\tsetPopover,\n\tpopoverAnchor,\n\tclientId,\n} ) => {\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<URLPopover\n\t\t\tanchor={ popoverAnchor }\n\t\t\tonClose={ () => setPopover( false ) }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-url-popover__link-editor\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetPopover( false );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-input\">\n\t\t\t\t\t<URLInput\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\tonChange={ ( nextURL ) =>\n\t\t\t\t\t\t\tsetAttributes( { url: nextURL } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ __( 'Enter social link' ) }\n\t\t\t\t\t\tlabel={ __( 'Enter social link' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tdisableSuggestions\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!! url ||\n\t\t\t\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t\t\t\t! [ BACKSPACE, DELETE ].includes(\n\t\t\t\t\t\t\t\t\tevent.keyCode\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t/>\n\t\t\t</form>\n\t\t</URLPopover>\n\t);\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tcontext,\n\tisSelected,\n\tsetAttributes,\n\tclientId,\n} ) => {\n\tconst { url, service, label = '', rel } = attributes;\n\tconst {\n\t\tshowLabels,\n\t\ticonColor,\n\t\ticonColorValue,\n\t\ticonBackgroundColor,\n\t\ticonBackgroundColorValue,\n\t} = context;\n\tconst [ showURLPopover, setPopover ] = useState( false );\n\tconst classes = classNames( 'wp-social-link', 'wp-social-link-' + service, {\n\t\t'wp-social-link__is-incomplete': ! url,\n\t\t[ `has-${ iconColor }-color` ]: iconColor,\n\t\t[ `has-${ iconBackgroundColor }-background-color` ]:\n\t\t\ticonBackgroundColor,\n\t} );\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\tconst IconComponent = getIconBySite( service );\n\tconst socialLinkName = getNameBySite( service );\n\t// The initial label (ie. the link text) is an empty string.\n\t// We want to prevent empty links so that the link text always fallbacks to\n\t// the social name, even when users enter and save an empty string or only\n\t// spaces. The PHP render callback fallbacks to the social name as well.\n\tconst socialLinkText = label.trim() === '' ? socialLinkName : label;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t\tstyle: {\n\t\t\tcolor: iconColorValue,\n\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t},\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Link text' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The link text is visible when enabled from the parent Social Icons block.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelRow>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( value ) => setAttributes( { rel: value } ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<li { ...blockProps }>\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"wp-block-social-link-anchor\"\n\t\t\t\t\tref={ setPopoverAnchor }\n\t\t\t\t\tonClick={ () => setPopover( true ) }\n\t\t\t\t>\n\t\t\t\t\t<IconComponent />\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ classNames( 'wp-block-social-link-label', {\n\t\t\t\t\t\t\t'screen-reader-text': ! showLabels,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ socialLinkText }\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t\t{ isSelected && showURLPopover && (\n\t\t\t\t\t<SocialLinkURLPopover\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tsetPopover={ setPopover }\n\t\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t</>\n\t);\n};\n\nexport default SocialLinkEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -342,7 +342,9 @@ const variations = [{
342
342
  * Block by providing its attributes.
343
343
  */
344
344
  variations.forEach(variation => {
345
- if (variation.isActive) return;
345
+ if (variation.isActive) {
346
+ return;
347
+ }
346
348
  variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.service === variationAttributes.service;
347
349
  });
348
350
  var _default = exports.default = variations;
@@ -1 +1 @@
1
- {"version":3,"names":["_icons","require","variations","isDefault","name","attributes","service","title","icon","WordPressIcon","FivehundredpxIcon","AmazonIcon","BandcampIcon","BehanceIcon","ChainIcon","CodepenIcon","DeviantArtIcon","DribbbleIcon","DropboxIcon","EtsyIcon","FacebookIcon","FeedIcon","FlickrIcon","FoursquareIcon","GoodreadsIcon","GoogleIcon","GitHubIcon","GravatarIcon","InstagramIcon","LastfmIcon","LinkedInIcon","keywords","MailIcon","MastodonIcon","MeetupIcon","MediumIcon","PatreonIcon","PinterestIcon","PocketIcon","RedditIcon","SkypeIcon","SnapchatIcon","SoundCloudIcon","SpotifyIcon","TelegramIcon","ThreadsIcon","TiktokIcon","TumblrIcon","TwitchIcon","TwitterIcon","VimeoIcon","VkIcon","WhatsAppIcon","XIcon","YelpIcon","YouTubeIcon","forEach","variation","isActive","blockAttributes","variationAttributes","_default","exports","default"],"sources":["@wordpress/block-library/src/social-link/variations.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tAmazonIcon,\n\tBandcampIcon,\n\tBehanceIcon,\n\tChainIcon,\n\tCodepenIcon,\n\tDeviantArtIcon,\n\tDribbbleIcon,\n\tDropboxIcon,\n\tEtsyIcon,\n\tFacebookIcon,\n\tFeedIcon,\n\tFivehundredpxIcon,\n\tFlickrIcon,\n\tFoursquareIcon,\n\tGoodreadsIcon,\n\tGoogleIcon,\n\tGitHubIcon,\n\tGravatarIcon,\n\tInstagramIcon,\n\tLastfmIcon,\n\tLinkedInIcon,\n\tMailIcon,\n\tMastodonIcon,\n\tMeetupIcon,\n\tMediumIcon,\n\tPatreonIcon,\n\tPinterestIcon,\n\tPocketIcon,\n\tRedditIcon,\n\tSkypeIcon,\n\tSnapchatIcon,\n\tSoundCloudIcon,\n\tSpotifyIcon,\n\tTelegramIcon,\n\tThreadsIcon,\n\tTiktokIcon,\n\tTumblrIcon,\n\tTwitchIcon,\n\tTwitterIcon,\n\tVimeoIcon,\n\tVkIcon,\n\tWhatsAppIcon,\n\tWordPressIcon,\n\tXIcon,\n\tYelpIcon,\n\tYouTubeIcon,\n} from './icons';\n\nconst variations = [\n\t{\n\t\tisDefault: true,\n\t\tname: 'wordpress',\n\t\tattributes: { service: 'wordpress' },\n\t\ttitle: 'WordPress',\n\t\ticon: WordPressIcon,\n\t},\n\n\t{\n\t\tname: 'fivehundredpx',\n\t\tattributes: { service: 'fivehundredpx' },\n\t\ttitle: '500px',\n\t\ticon: FivehundredpxIcon,\n\t},\n\t{\n\t\tname: 'amazon',\n\t\tattributes: { service: 'amazon' },\n\t\ttitle: 'Amazon',\n\t\ticon: AmazonIcon,\n\t},\n\t{\n\t\tname: 'bandcamp',\n\t\tattributes: { service: 'bandcamp' },\n\t\ttitle: 'Bandcamp',\n\t\ticon: BandcampIcon,\n\t},\n\t{\n\t\tname: 'behance',\n\t\tattributes: { service: 'behance' },\n\t\ttitle: 'Behance',\n\t\ticon: BehanceIcon,\n\t},\n\t{\n\t\tname: 'chain',\n\t\tattributes: { service: 'chain' },\n\t\ttitle: 'Link',\n\t\ticon: ChainIcon,\n\t},\n\t{\n\t\tname: 'codepen',\n\t\tattributes: { service: 'codepen' },\n\t\ttitle: 'CodePen',\n\t\ticon: CodepenIcon,\n\t},\n\t{\n\t\tname: 'deviantart',\n\t\tattributes: { service: 'deviantart' },\n\t\ttitle: 'DeviantArt',\n\t\ticon: DeviantArtIcon,\n\t},\n\t{\n\t\tname: 'dribbble',\n\t\tattributes: { service: 'dribbble' },\n\t\ttitle: 'Dribbble',\n\t\ticon: DribbbleIcon,\n\t},\n\t{\n\t\tname: 'dropbox',\n\t\tattributes: { service: 'dropbox' },\n\t\ttitle: 'Dropbox',\n\t\ticon: DropboxIcon,\n\t},\n\t{\n\t\tname: 'etsy',\n\t\tattributes: { service: 'etsy' },\n\t\ttitle: 'Etsy',\n\t\ticon: EtsyIcon,\n\t},\n\t{\n\t\tname: 'facebook',\n\t\tattributes: { service: 'facebook' },\n\t\ttitle: 'Facebook',\n\t\ticon: FacebookIcon,\n\t},\n\t{\n\t\tname: 'feed',\n\t\tattributes: { service: 'feed' },\n\t\ttitle: 'RSS Feed',\n\t\ticon: FeedIcon,\n\t},\n\t{\n\t\tname: 'flickr',\n\t\tattributes: { service: 'flickr' },\n\t\ttitle: 'Flickr',\n\t\ticon: FlickrIcon,\n\t},\n\t{\n\t\tname: 'foursquare',\n\t\tattributes: { service: 'foursquare' },\n\t\ttitle: 'Foursquare',\n\t\ticon: FoursquareIcon,\n\t},\n\t{\n\t\tname: 'goodreads',\n\t\tattributes: { service: 'goodreads' },\n\t\ttitle: 'Goodreads',\n\t\ticon: GoodreadsIcon,\n\t},\n\t{\n\t\tname: 'google',\n\t\tattributes: { service: 'google' },\n\t\ttitle: 'Google',\n\t\ticon: GoogleIcon,\n\t},\n\t{\n\t\tname: 'github',\n\t\tattributes: { service: 'github' },\n\t\ttitle: 'GitHub',\n\t\ticon: GitHubIcon,\n\t},\n\t{\n\t\tname: 'gravatar',\n\t\tattributes: { service: 'gravatar' },\n\t\ttitle: 'Gravatar',\n\t\ticon: GravatarIcon,\n\t},\n\t{\n\t\tname: 'instagram',\n\t\tattributes: { service: 'instagram' },\n\t\ttitle: 'Instagram',\n\t\ticon: InstagramIcon,\n\t},\n\t{\n\t\tname: 'lastfm',\n\t\tattributes: { service: 'lastfm' },\n\t\ttitle: 'Last.fm',\n\t\ticon: LastfmIcon,\n\t},\n\t{\n\t\tname: 'linkedin',\n\t\tattributes: { service: 'linkedin' },\n\t\ttitle: 'LinkedIn',\n\t\ticon: LinkedInIcon,\n\t},\n\t{\n\t\tname: 'mail',\n\t\tattributes: { service: 'mail' },\n\t\ttitle: 'Mail',\n\t\tkeywords: [ 'email', 'e-mail' ],\n\t\ticon: MailIcon,\n\t},\n\t{\n\t\tname: 'mastodon',\n\t\tattributes: { service: 'mastodon' },\n\t\ttitle: 'Mastodon',\n\t\ticon: MastodonIcon,\n\t},\n\t{\n\t\tname: 'meetup',\n\t\tattributes: { service: 'meetup' },\n\t\ttitle: 'Meetup',\n\t\ticon: MeetupIcon,\n\t},\n\t{\n\t\tname: 'medium',\n\t\tattributes: { service: 'medium' },\n\t\ttitle: 'Medium',\n\t\ticon: MediumIcon,\n\t},\n\t{\n\t\tname: 'patreon',\n\t\tattributes: { service: 'patreon' },\n\t\ttitle: 'Patreon',\n\t\ticon: PatreonIcon,\n\t},\n\t{\n\t\tname: 'pinterest',\n\t\tattributes: { service: 'pinterest' },\n\t\ttitle: 'Pinterest',\n\t\ticon: PinterestIcon,\n\t},\n\t{\n\t\tname: 'pocket',\n\t\tattributes: { service: 'pocket' },\n\t\ttitle: 'Pocket',\n\t\ticon: PocketIcon,\n\t},\n\t{\n\t\tname: 'reddit',\n\t\tattributes: { service: 'reddit' },\n\t\ttitle: 'Reddit',\n\t\ticon: RedditIcon,\n\t},\n\t{\n\t\tname: 'skype',\n\t\tattributes: { service: 'skype' },\n\t\ttitle: 'Skype',\n\t\ticon: SkypeIcon,\n\t},\n\t{\n\t\tname: 'snapchat',\n\t\tattributes: { service: 'snapchat' },\n\t\ttitle: 'Snapchat',\n\t\ticon: SnapchatIcon,\n\t},\n\t{\n\t\tname: 'soundcloud',\n\t\tattributes: { service: 'soundcloud' },\n\t\ttitle: 'SoundCloud',\n\t\ticon: SoundCloudIcon,\n\t},\n\t{\n\t\tname: 'spotify',\n\t\tattributes: { service: 'spotify' },\n\t\ttitle: 'Spotify',\n\t\ticon: SpotifyIcon,\n\t},\n\t{\n\t\tname: 'telegram',\n\t\tattributes: { service: 'telegram' },\n\t\ttitle: 'Telegram',\n\t\ticon: TelegramIcon,\n\t},\n\t{\n\t\tname: 'threads',\n\t\tattributes: { service: 'threads' },\n\t\ttitle: 'Threads',\n\t\ticon: ThreadsIcon,\n\t},\n\t{\n\t\tname: 'tiktok',\n\t\tattributes: { service: 'tiktok' },\n\t\ttitle: 'TikTok',\n\t\ticon: TiktokIcon,\n\t},\n\t{\n\t\tname: 'tumblr',\n\t\tattributes: { service: 'tumblr' },\n\t\ttitle: 'Tumblr',\n\t\ticon: TumblrIcon,\n\t},\n\t{\n\t\tname: 'twitch',\n\t\tattributes: { service: 'twitch' },\n\t\ttitle: 'Twitch',\n\t\ticon: TwitchIcon,\n\t},\n\t{\n\t\tname: 'twitter',\n\t\tattributes: { service: 'twitter' },\n\t\ttitle: 'Twitter',\n\t\ticon: TwitterIcon,\n\t},\n\t{\n\t\tname: 'vimeo',\n\t\tattributes: { service: 'vimeo' },\n\t\ttitle: 'Vimeo',\n\t\ticon: VimeoIcon,\n\t},\n\t{\n\t\tname: 'vk',\n\t\tattributes: { service: 'vk' },\n\t\ttitle: 'VK',\n\t\ticon: VkIcon,\n\t},\n\t{\n\t\tname: 'whatsapp',\n\t\tattributes: { service: 'whatsapp' },\n\t\ttitle: 'WhatsApp',\n\t\ticon: WhatsAppIcon,\n\t},\n\t{\n\t\tname: 'x',\n\t\tattributes: { service: 'x' },\n\t\tkeywords: [ 'twitter' ],\n\t\ttitle: 'X',\n\t\ticon: XIcon,\n\t},\n\t{\n\t\tname: 'yelp',\n\t\tattributes: { service: 'yelp' },\n\t\ttitle: 'Yelp',\n\t\ticon: YelpIcon,\n\t},\n\t{\n\t\tname: 'youtube',\n\t\tattributes: { service: 'youtube' },\n\t\ttitle: 'YouTube',\n\t\ticon: YouTubeIcon,\n\t},\n];\n\n/**\n * Add `isActive` function to all `social link` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tif ( variation.isActive ) return;\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.service === variationAttributes.service;\n} );\n\nexport default variations;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_icons","require","variations","isDefault","name","attributes","service","title","icon","WordPressIcon","FivehundredpxIcon","AmazonIcon","BandcampIcon","BehanceIcon","ChainIcon","CodepenIcon","DeviantArtIcon","DribbbleIcon","DropboxIcon","EtsyIcon","FacebookIcon","FeedIcon","FlickrIcon","FoursquareIcon","GoodreadsIcon","GoogleIcon","GitHubIcon","GravatarIcon","InstagramIcon","LastfmIcon","LinkedInIcon","keywords","MailIcon","MastodonIcon","MeetupIcon","MediumIcon","PatreonIcon","PinterestIcon","PocketIcon","RedditIcon","SkypeIcon","SnapchatIcon","SoundCloudIcon","SpotifyIcon","TelegramIcon","ThreadsIcon","TiktokIcon","TumblrIcon","TwitchIcon","TwitterIcon","VimeoIcon","VkIcon","WhatsAppIcon","XIcon","YelpIcon","YouTubeIcon","forEach","variation","isActive","blockAttributes","variationAttributes","_default","exports","default"],"sources":["@wordpress/block-library/src/social-link/variations.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tAmazonIcon,\n\tBandcampIcon,\n\tBehanceIcon,\n\tChainIcon,\n\tCodepenIcon,\n\tDeviantArtIcon,\n\tDribbbleIcon,\n\tDropboxIcon,\n\tEtsyIcon,\n\tFacebookIcon,\n\tFeedIcon,\n\tFivehundredpxIcon,\n\tFlickrIcon,\n\tFoursquareIcon,\n\tGoodreadsIcon,\n\tGoogleIcon,\n\tGitHubIcon,\n\tGravatarIcon,\n\tInstagramIcon,\n\tLastfmIcon,\n\tLinkedInIcon,\n\tMailIcon,\n\tMastodonIcon,\n\tMeetupIcon,\n\tMediumIcon,\n\tPatreonIcon,\n\tPinterestIcon,\n\tPocketIcon,\n\tRedditIcon,\n\tSkypeIcon,\n\tSnapchatIcon,\n\tSoundCloudIcon,\n\tSpotifyIcon,\n\tTelegramIcon,\n\tThreadsIcon,\n\tTiktokIcon,\n\tTumblrIcon,\n\tTwitchIcon,\n\tTwitterIcon,\n\tVimeoIcon,\n\tVkIcon,\n\tWhatsAppIcon,\n\tWordPressIcon,\n\tXIcon,\n\tYelpIcon,\n\tYouTubeIcon,\n} from './icons';\n\nconst variations = [\n\t{\n\t\tisDefault: true,\n\t\tname: 'wordpress',\n\t\tattributes: { service: 'wordpress' },\n\t\ttitle: 'WordPress',\n\t\ticon: WordPressIcon,\n\t},\n\n\t{\n\t\tname: 'fivehundredpx',\n\t\tattributes: { service: 'fivehundredpx' },\n\t\ttitle: '500px',\n\t\ticon: FivehundredpxIcon,\n\t},\n\t{\n\t\tname: 'amazon',\n\t\tattributes: { service: 'amazon' },\n\t\ttitle: 'Amazon',\n\t\ticon: AmazonIcon,\n\t},\n\t{\n\t\tname: 'bandcamp',\n\t\tattributes: { service: 'bandcamp' },\n\t\ttitle: 'Bandcamp',\n\t\ticon: BandcampIcon,\n\t},\n\t{\n\t\tname: 'behance',\n\t\tattributes: { service: 'behance' },\n\t\ttitle: 'Behance',\n\t\ticon: BehanceIcon,\n\t},\n\t{\n\t\tname: 'chain',\n\t\tattributes: { service: 'chain' },\n\t\ttitle: 'Link',\n\t\ticon: ChainIcon,\n\t},\n\t{\n\t\tname: 'codepen',\n\t\tattributes: { service: 'codepen' },\n\t\ttitle: 'CodePen',\n\t\ticon: CodepenIcon,\n\t},\n\t{\n\t\tname: 'deviantart',\n\t\tattributes: { service: 'deviantart' },\n\t\ttitle: 'DeviantArt',\n\t\ticon: DeviantArtIcon,\n\t},\n\t{\n\t\tname: 'dribbble',\n\t\tattributes: { service: 'dribbble' },\n\t\ttitle: 'Dribbble',\n\t\ticon: DribbbleIcon,\n\t},\n\t{\n\t\tname: 'dropbox',\n\t\tattributes: { service: 'dropbox' },\n\t\ttitle: 'Dropbox',\n\t\ticon: DropboxIcon,\n\t},\n\t{\n\t\tname: 'etsy',\n\t\tattributes: { service: 'etsy' },\n\t\ttitle: 'Etsy',\n\t\ticon: EtsyIcon,\n\t},\n\t{\n\t\tname: 'facebook',\n\t\tattributes: { service: 'facebook' },\n\t\ttitle: 'Facebook',\n\t\ticon: FacebookIcon,\n\t},\n\t{\n\t\tname: 'feed',\n\t\tattributes: { service: 'feed' },\n\t\ttitle: 'RSS Feed',\n\t\ticon: FeedIcon,\n\t},\n\t{\n\t\tname: 'flickr',\n\t\tattributes: { service: 'flickr' },\n\t\ttitle: 'Flickr',\n\t\ticon: FlickrIcon,\n\t},\n\t{\n\t\tname: 'foursquare',\n\t\tattributes: { service: 'foursquare' },\n\t\ttitle: 'Foursquare',\n\t\ticon: FoursquareIcon,\n\t},\n\t{\n\t\tname: 'goodreads',\n\t\tattributes: { service: 'goodreads' },\n\t\ttitle: 'Goodreads',\n\t\ticon: GoodreadsIcon,\n\t},\n\t{\n\t\tname: 'google',\n\t\tattributes: { service: 'google' },\n\t\ttitle: 'Google',\n\t\ticon: GoogleIcon,\n\t},\n\t{\n\t\tname: 'github',\n\t\tattributes: { service: 'github' },\n\t\ttitle: 'GitHub',\n\t\ticon: GitHubIcon,\n\t},\n\t{\n\t\tname: 'gravatar',\n\t\tattributes: { service: 'gravatar' },\n\t\ttitle: 'Gravatar',\n\t\ticon: GravatarIcon,\n\t},\n\t{\n\t\tname: 'instagram',\n\t\tattributes: { service: 'instagram' },\n\t\ttitle: 'Instagram',\n\t\ticon: InstagramIcon,\n\t},\n\t{\n\t\tname: 'lastfm',\n\t\tattributes: { service: 'lastfm' },\n\t\ttitle: 'Last.fm',\n\t\ticon: LastfmIcon,\n\t},\n\t{\n\t\tname: 'linkedin',\n\t\tattributes: { service: 'linkedin' },\n\t\ttitle: 'LinkedIn',\n\t\ticon: LinkedInIcon,\n\t},\n\t{\n\t\tname: 'mail',\n\t\tattributes: { service: 'mail' },\n\t\ttitle: 'Mail',\n\t\tkeywords: [ 'email', 'e-mail' ],\n\t\ticon: MailIcon,\n\t},\n\t{\n\t\tname: 'mastodon',\n\t\tattributes: { service: 'mastodon' },\n\t\ttitle: 'Mastodon',\n\t\ticon: MastodonIcon,\n\t},\n\t{\n\t\tname: 'meetup',\n\t\tattributes: { service: 'meetup' },\n\t\ttitle: 'Meetup',\n\t\ticon: MeetupIcon,\n\t},\n\t{\n\t\tname: 'medium',\n\t\tattributes: { service: 'medium' },\n\t\ttitle: 'Medium',\n\t\ticon: MediumIcon,\n\t},\n\t{\n\t\tname: 'patreon',\n\t\tattributes: { service: 'patreon' },\n\t\ttitle: 'Patreon',\n\t\ticon: PatreonIcon,\n\t},\n\t{\n\t\tname: 'pinterest',\n\t\tattributes: { service: 'pinterest' },\n\t\ttitle: 'Pinterest',\n\t\ticon: PinterestIcon,\n\t},\n\t{\n\t\tname: 'pocket',\n\t\tattributes: { service: 'pocket' },\n\t\ttitle: 'Pocket',\n\t\ticon: PocketIcon,\n\t},\n\t{\n\t\tname: 'reddit',\n\t\tattributes: { service: 'reddit' },\n\t\ttitle: 'Reddit',\n\t\ticon: RedditIcon,\n\t},\n\t{\n\t\tname: 'skype',\n\t\tattributes: { service: 'skype' },\n\t\ttitle: 'Skype',\n\t\ticon: SkypeIcon,\n\t},\n\t{\n\t\tname: 'snapchat',\n\t\tattributes: { service: 'snapchat' },\n\t\ttitle: 'Snapchat',\n\t\ticon: SnapchatIcon,\n\t},\n\t{\n\t\tname: 'soundcloud',\n\t\tattributes: { service: 'soundcloud' },\n\t\ttitle: 'SoundCloud',\n\t\ticon: SoundCloudIcon,\n\t},\n\t{\n\t\tname: 'spotify',\n\t\tattributes: { service: 'spotify' },\n\t\ttitle: 'Spotify',\n\t\ticon: SpotifyIcon,\n\t},\n\t{\n\t\tname: 'telegram',\n\t\tattributes: { service: 'telegram' },\n\t\ttitle: 'Telegram',\n\t\ticon: TelegramIcon,\n\t},\n\t{\n\t\tname: 'threads',\n\t\tattributes: { service: 'threads' },\n\t\ttitle: 'Threads',\n\t\ticon: ThreadsIcon,\n\t},\n\t{\n\t\tname: 'tiktok',\n\t\tattributes: { service: 'tiktok' },\n\t\ttitle: 'TikTok',\n\t\ticon: TiktokIcon,\n\t},\n\t{\n\t\tname: 'tumblr',\n\t\tattributes: { service: 'tumblr' },\n\t\ttitle: 'Tumblr',\n\t\ticon: TumblrIcon,\n\t},\n\t{\n\t\tname: 'twitch',\n\t\tattributes: { service: 'twitch' },\n\t\ttitle: 'Twitch',\n\t\ticon: TwitchIcon,\n\t},\n\t{\n\t\tname: 'twitter',\n\t\tattributes: { service: 'twitter' },\n\t\ttitle: 'Twitter',\n\t\ticon: TwitterIcon,\n\t},\n\t{\n\t\tname: 'vimeo',\n\t\tattributes: { service: 'vimeo' },\n\t\ttitle: 'Vimeo',\n\t\ticon: VimeoIcon,\n\t},\n\t{\n\t\tname: 'vk',\n\t\tattributes: { service: 'vk' },\n\t\ttitle: 'VK',\n\t\ticon: VkIcon,\n\t},\n\t{\n\t\tname: 'whatsapp',\n\t\tattributes: { service: 'whatsapp' },\n\t\ttitle: 'WhatsApp',\n\t\ticon: WhatsAppIcon,\n\t},\n\t{\n\t\tname: 'x',\n\t\tattributes: { service: 'x' },\n\t\tkeywords: [ 'twitter' ],\n\t\ttitle: 'X',\n\t\ticon: XIcon,\n\t},\n\t{\n\t\tname: 'yelp',\n\t\tattributes: { service: 'yelp' },\n\t\ttitle: 'Yelp',\n\t\ticon: YelpIcon,\n\t},\n\t{\n\t\tname: 'youtube',\n\t\tattributes: { service: 'youtube' },\n\t\ttitle: 'YouTube',\n\t\ticon: YouTubeIcon,\n\t},\n];\n\n/**\n * Add `isActive` function to all `social link` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tif ( variation.isActive ) {\n\t\treturn;\n\t}\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.service === variationAttributes.service;\n} );\n\nexport default variations;\n"],"mappings":"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","ignoreList":[]}
@@ -34,10 +34,14 @@ function enhanceTemplatePartVariations(settings, name) {
34
34
  } = blockAttributes;
35
35
  // We first check the `area` block attribute which is set during insertion.
36
36
  // This property is removed on the creation of a template part.
37
- if (area) return area === variationAttributes.area;
37
+ if (area) {
38
+ return area === variationAttributes.area;
39
+ }
38
40
  // Find a matching variation from the created template part
39
41
  // by checking the entity's `area` property.
40
- if (!slug) return false;
42
+ if (!slug) {
43
+ return false;
44
+ }
41
45
  const {
42
46
  getCurrentTheme,
43
47
  getEntityRecord
@@ -1 +1 @@
1
- {"version":3,"names":["_coreData","require","_data","_icons","getTemplatePartIcon","iconName","headerIcon","footerIcon","sidebarIcon","symbolFilledIcon","enhanceTemplatePartVariations","settings","name","variations","isActive","blockAttributes","variationAttributes","area","theme","slug","getCurrentTheme","getEntityRecord","select","coreDataStore","entity","stylesheet","map","variation","icon"],"sources":["@wordpress/block-library/src/template-part/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport {\n\theader as headerIcon,\n\tfooter as footerIcon,\n\tsidebar as sidebarIcon,\n\tsymbolFilled as symbolFilledIcon,\n} from '@wordpress/icons';\n\nfunction getTemplatePartIcon( iconName ) {\n\tif ( 'header' === iconName ) {\n\t\treturn headerIcon;\n\t} else if ( 'footer' === iconName ) {\n\t\treturn footerIcon;\n\t} else if ( 'sidebar' === iconName ) {\n\t\treturn sidebarIcon;\n\t}\n\treturn symbolFilledIcon;\n}\n\nexport function enhanceTemplatePartVariations( settings, name ) {\n\tif ( name !== 'core/template-part' ) {\n\t\treturn settings;\n\t}\n\n\tif ( settings.variations ) {\n\t\tconst isActive = ( blockAttributes, variationAttributes ) => {\n\t\t\tconst { area, theme, slug } = blockAttributes;\n\t\t\t// We first check the `area` block attribute which is set during insertion.\n\t\t\t// This property is removed on the creation of a template part.\n\t\t\tif ( area ) return area === variationAttributes.area;\n\t\t\t// Find a matching variation from the created template part\n\t\t\t// by checking the entity's `area` property.\n\t\t\tif ( ! slug ) return false;\n\t\t\tconst { getCurrentTheme, getEntityRecord } =\n\t\t\t\tselect( coreDataStore );\n\t\t\tconst entity = getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t`${ theme || getCurrentTheme()?.stylesheet }//${ slug }`\n\t\t\t);\n\n\t\t\tif ( entity?.slug ) {\n\t\t\t\treturn entity.slug === variationAttributes.slug;\n\t\t\t}\n\t\t\treturn entity?.area === variationAttributes.area;\n\t\t};\n\n\t\tconst variations = settings.variations.map( ( variation ) => {\n\t\t\treturn {\n\t\t\t\t...variation,\n\t\t\t\t...( ! variation.isActive && { isActive } ),\n\t\t\t\t...( typeof variation.icon === 'string' && {\n\t\t\t\t\ticon: getTemplatePartIcon( variation.icon ),\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\n\t\treturn {\n\t\t\t...settings,\n\t\t\tvariations,\n\t\t};\n\t}\n\treturn settings;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAUA,SAASG,mBAAmBA,CAAEC,QAAQ,EAAG;EACxC,IAAK,QAAQ,KAAKA,QAAQ,EAAG;IAC5B,OAAOC,aAAU;EAClB,CAAC,MAAM,IAAK,QAAQ,KAAKD,QAAQ,EAAG;IACnC,OAAOE,aAAU;EAClB,CAAC,MAAM,IAAK,SAAS,KAAKF,QAAQ,EAAG;IACpC,OAAOG,cAAW;EACnB;EACA,OAAOC,mBAAgB;AACxB;AAEO,SAASC,6BAA6BA,CAAEC,QAAQ,EAAEC,IAAI,EAAG;EAC/D,IAAKA,IAAI,KAAK,oBAAoB,EAAG;IACpC,OAAOD,QAAQ;EAChB;EAEA,IAAKA,QAAQ,CAACE,UAAU,EAAG;IAC1B,MAAMC,QAAQ,GAAGA,CAAEC,eAAe,EAAEC,mBAAmB,KAAM;MAC5D,MAAM;QAAEC,IAAI;QAAEC,KAAK;QAAEC;MAAK,CAAC,GAAGJ,eAAe;MAC7C;MACA;MACA,IAAKE,IAAI,EAAG,OAAOA,IAAI,KAAKD,mBAAmB,CAACC,IAAI;MACpD;MACA;MACA,IAAK,CAAEE,IAAI,EAAG,OAAO,KAAK;MAC1B,MAAM;QAAEC,eAAe;QAAEC;MAAgB,CAAC,GACzC,IAAAC,YAAM,EAAEC,eAAc,CAAC;MACxB,MAAMC,MAAM,GAAGH,eAAe,CAC7B,UAAU,EACV,kBAAkB,EACjB,GAAGH,KAAK,IAAIE,eAAe,CAAC,CAAC,EAAEK,UAAY,KAAKN,IAAM,EACxD,CAAC;MAED,IAAKK,MAAM,EAAEL,IAAI,EAAG;QACnB,OAAOK,MAAM,CAACL,IAAI,KAAKH,mBAAmB,CAACG,IAAI;MAChD;MACA,OAAOK,MAAM,EAAEP,IAAI,KAAKD,mBAAmB,CAACC,IAAI;IACjD,CAAC;IAED,MAAMJ,UAAU,GAAGF,QAAQ,CAACE,UAAU,CAACa,GAAG,CAAIC,SAAS,IAAM;MAC5D,OAAO;QACN,GAAGA,SAAS;QACZ,IAAK,CAAEA,SAAS,CAACb,QAAQ,IAAI;UAAEA;QAAS,CAAC,CAAE;QAC3C,IAAK,OAAOa,SAAS,CAACC,IAAI,KAAK,QAAQ,IAAI;UAC1CA,IAAI,EAAExB,mBAAmB,CAAEuB,SAAS,CAACC,IAAK;QAC3C,CAAC;MACF,CAAC;IACF,CAAE,CAAC;IAEH,OAAO;MACN,GAAGjB,QAAQ;MACXE;IACD,CAAC;EACF;EACA,OAAOF,QAAQ;AAChB","ignoreList":[]}
1
+ {"version":3,"names":["_coreData","require","_data","_icons","getTemplatePartIcon","iconName","headerIcon","footerIcon","sidebarIcon","symbolFilledIcon","enhanceTemplatePartVariations","settings","name","variations","isActive","blockAttributes","variationAttributes","area","theme","slug","getCurrentTheme","getEntityRecord","select","coreDataStore","entity","stylesheet","map","variation","icon"],"sources":["@wordpress/block-library/src/template-part/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport {\n\theader as headerIcon,\n\tfooter as footerIcon,\n\tsidebar as sidebarIcon,\n\tsymbolFilled as symbolFilledIcon,\n} from '@wordpress/icons';\n\nfunction getTemplatePartIcon( iconName ) {\n\tif ( 'header' === iconName ) {\n\t\treturn headerIcon;\n\t} else if ( 'footer' === iconName ) {\n\t\treturn footerIcon;\n\t} else if ( 'sidebar' === iconName ) {\n\t\treturn sidebarIcon;\n\t}\n\treturn symbolFilledIcon;\n}\n\nexport function enhanceTemplatePartVariations( settings, name ) {\n\tif ( name !== 'core/template-part' ) {\n\t\treturn settings;\n\t}\n\n\tif ( settings.variations ) {\n\t\tconst isActive = ( blockAttributes, variationAttributes ) => {\n\t\t\tconst { area, theme, slug } = blockAttributes;\n\t\t\t// We first check the `area` block attribute which is set during insertion.\n\t\t\t// This property is removed on the creation of a template part.\n\t\t\tif ( area ) {\n\t\t\t\treturn area === variationAttributes.area;\n\t\t\t}\n\t\t\t// Find a matching variation from the created template part\n\t\t\t// by checking the entity's `area` property.\n\t\t\tif ( ! slug ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst { getCurrentTheme, getEntityRecord } =\n\t\t\t\tselect( coreDataStore );\n\t\t\tconst entity = getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t`${ theme || getCurrentTheme()?.stylesheet }//${ slug }`\n\t\t\t);\n\n\t\t\tif ( entity?.slug ) {\n\t\t\t\treturn entity.slug === variationAttributes.slug;\n\t\t\t}\n\t\t\treturn entity?.area === variationAttributes.area;\n\t\t};\n\n\t\tconst variations = settings.variations.map( ( variation ) => {\n\t\t\treturn {\n\t\t\t\t...variation,\n\t\t\t\t...( ! variation.isActive && { isActive } ),\n\t\t\t\t...( typeof variation.icon === 'string' && {\n\t\t\t\t\ticon: getTemplatePartIcon( variation.icon ),\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\n\t\treturn {\n\t\t\t...settings,\n\t\t\tvariations,\n\t\t};\n\t}\n\treturn settings;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAUA,SAASG,mBAAmBA,CAAEC,QAAQ,EAAG;EACxC,IAAK,QAAQ,KAAKA,QAAQ,EAAG;IAC5B,OAAOC,aAAU;EAClB,CAAC,MAAM,IAAK,QAAQ,KAAKD,QAAQ,EAAG;IACnC,OAAOE,aAAU;EAClB,CAAC,MAAM,IAAK,SAAS,KAAKF,QAAQ,EAAG;IACpC,OAAOG,cAAW;EACnB;EACA,OAAOC,mBAAgB;AACxB;AAEO,SAASC,6BAA6BA,CAAEC,QAAQ,EAAEC,IAAI,EAAG;EAC/D,IAAKA,IAAI,KAAK,oBAAoB,EAAG;IACpC,OAAOD,QAAQ;EAChB;EAEA,IAAKA,QAAQ,CAACE,UAAU,EAAG;IAC1B,MAAMC,QAAQ,GAAGA,CAAEC,eAAe,EAAEC,mBAAmB,KAAM;MAC5D,MAAM;QAAEC,IAAI;QAAEC,KAAK;QAAEC;MAAK,CAAC,GAAGJ,eAAe;MAC7C;MACA;MACA,IAAKE,IAAI,EAAG;QACX,OAAOA,IAAI,KAAKD,mBAAmB,CAACC,IAAI;MACzC;MACA;MACA;MACA,IAAK,CAAEE,IAAI,EAAG;QACb,OAAO,KAAK;MACb;MACA,MAAM;QAAEC,eAAe;QAAEC;MAAgB,CAAC,GACzC,IAAAC,YAAM,EAAEC,eAAc,CAAC;MACxB,MAAMC,MAAM,GAAGH,eAAe,CAC7B,UAAU,EACV,kBAAkB,EACjB,GAAGH,KAAK,IAAIE,eAAe,CAAC,CAAC,EAAEK,UAAY,KAAKN,IAAM,EACxD,CAAC;MAED,IAAKK,MAAM,EAAEL,IAAI,EAAG;QACnB,OAAOK,MAAM,CAACL,IAAI,KAAKH,mBAAmB,CAACG,IAAI;MAChD;MACA,OAAOK,MAAM,EAAEP,IAAI,KAAKD,mBAAmB,CAACC,IAAI;IACjD,CAAC;IAED,MAAMJ,UAAU,GAAGF,QAAQ,CAACE,UAAU,CAACa,GAAG,CAAIC,SAAS,IAAM;MAC5D,OAAO;QACN,GAAGA,SAAS;QACZ,IAAK,CAAEA,SAAS,CAACb,QAAQ,IAAI;UAAEA;QAAS,CAAC,CAAE;QAC3C,IAAK,OAAOa,SAAS,CAACC,IAAI,KAAK,QAAQ,IAAI;UAC1CA,IAAI,EAAExB,mBAAmB,CAAEuB,SAAS,CAACC,IAAK;QAC3C,CAAC;MACF,CAAC;IACF,CAAE,CAAC;IAEH,OAAO;MACN,GAAGjB,QAAQ;MACXE;IACD,CAAC;EACF;EACA,OAAOF,QAAQ;AAChB","ignoreList":[]}