@wordpress/block-library 9.24.0 → 9.25.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 (202) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/button/edit.js +29 -17
  3. package/build/button/edit.js.map +1 -1
  4. package/build/columns/edit.js +18 -22
  5. package/build/columns/edit.js.map +1 -1
  6. package/build/comment-author-name/edit.js +41 -12
  7. package/build/comment-author-name/edit.js.map +1 -1
  8. package/build/comment-date/edit.js +41 -12
  9. package/build/comment-date/edit.js.map +1 -1
  10. package/build/comment-edit-link/edit.js +27 -7
  11. package/build/comment-edit-link/edit.js.map +1 -1
  12. package/build/comments/edit/comments-inspector-controls.js +1 -3
  13. package/build/comments/edit/comments-inspector-controls.js.map +1 -1
  14. package/build/comments-pagination/edit.js +23 -9
  15. package/build/comments-pagination/edit.js.map +1 -1
  16. package/build/comments-title/edit.js +41 -12
  17. package/build/comments-title/edit.js.map +1 -1
  18. package/build/details/edit.js +27 -3
  19. package/build/details/edit.js.map +1 -1
  20. package/build/embed/edit.js +2 -4
  21. package/build/embed/edit.js.map +1 -1
  22. package/build/embed/embed-controls.js +41 -22
  23. package/build/embed/embed-controls.js.map +1 -1
  24. package/build/file/inspector.js +73 -30
  25. package/build/file/inspector.js.map +1 -1
  26. package/build/form/edit.js +67 -37
  27. package/build/form/edit.js.map +1 -1
  28. package/build/form-input/edit.js +47 -18
  29. package/build/form-input/edit.js.map +1 -1
  30. package/build/latest-posts/edit.js +154 -82
  31. package/build/latest-posts/edit.js.map +1 -1
  32. package/build/list/ordered-list-settings.js +131 -52
  33. package/build/list/ordered-list-settings.js.map +1 -1
  34. package/build/navigation/edit/index.js +93 -51
  35. package/build/navigation/edit/index.js.map +1 -1
  36. package/build/navigation/edit/overlay-menu-preview.js +43 -27
  37. package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
  38. package/build/navigation-link/index.js +3 -0
  39. package/build/navigation-link/index.js.map +1 -1
  40. package/build/navigation-link/transforms.js +2 -0
  41. package/build/navigation-link/transforms.js.map +1 -1
  42. package/build/navigation-link/update-attributes.js +1 -0
  43. package/build/navigation-link/update-attributes.js.map +1 -1
  44. package/build/navigation-submenu/index.js +3 -0
  45. package/build/navigation-submenu/index.js.map +1 -1
  46. package/build/post-comments-count/index.js +3 -1
  47. package/build/post-comments-count/index.js.map +1 -1
  48. package/build/post-comments-count/transforms.js +26 -0
  49. package/build/post-comments-count/transforms.js.map +1 -0
  50. package/build/post-comments-link/index.js +3 -1
  51. package/build/post-comments-link/index.js.map +1 -1
  52. package/build/post-comments-link/transforms.js +26 -0
  53. package/build/post-comments-link/transforms.js.map +1 -0
  54. package/build/post-title/edit.js +56 -18
  55. package/build/post-title/edit.js.map +1 -1
  56. package/build/query/edit/enhanced-pagination-modal.js +1 -1
  57. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  58. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +3 -6
  59. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  60. package/build/rss/edit.js +120 -46
  61. package/build/rss/edit.js.map +1 -1
  62. package/build/separator/edit.js +52 -20
  63. package/build/separator/edit.js.map +1 -1
  64. package/build/shortcode/index.js +2 -1
  65. package/build/shortcode/index.js.map +1 -1
  66. package/build/social-link/variations.js +53 -48
  67. package/build/social-link/variations.js.map +1 -1
  68. package/build/social-links/edit.js +35 -45
  69. package/build/social-links/edit.js.map +1 -1
  70. package/build/video/tracks-editor.js +40 -12
  71. package/build/video/tracks-editor.js.map +1 -1
  72. package/build-module/button/edit.js +30 -18
  73. package/build-module/button/edit.js.map +1 -1
  74. package/build-module/columns/edit.js +18 -22
  75. package/build-module/columns/edit.js.map +1 -1
  76. package/build-module/comment-author-name/edit.js +42 -13
  77. package/build-module/comment-author-name/edit.js.map +1 -1
  78. package/build-module/comment-date/edit.js +42 -13
  79. package/build-module/comment-date/edit.js.map +1 -1
  80. package/build-module/comment-edit-link/edit.js +28 -8
  81. package/build-module/comment-edit-link/edit.js.map +1 -1
  82. package/build-module/comments/edit/comments-inspector-controls.js +1 -3
  83. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
  84. package/build-module/comments-pagination/edit.js +24 -10
  85. package/build-module/comments-pagination/edit.js.map +1 -1
  86. package/build-module/comments-title/edit.js +42 -13
  87. package/build-module/comments-title/edit.js.map +1 -1
  88. package/build-module/details/edit.js +29 -5
  89. package/build-module/details/edit.js.map +1 -1
  90. package/build-module/embed/edit.js +2 -4
  91. package/build-module/embed/edit.js.map +1 -1
  92. package/build-module/embed/embed-controls.js +42 -23
  93. package/build-module/embed/embed-controls.js.map +1 -1
  94. package/build-module/file/inspector.js +74 -31
  95. package/build-module/file/inspector.js.map +1 -1
  96. package/build-module/form/edit.js +68 -38
  97. package/build-module/form/edit.js.map +1 -1
  98. package/build-module/form-input/edit.js +48 -19
  99. package/build-module/form-input/edit.js.map +1 -1
  100. package/build-module/latest-posts/edit.js +155 -83
  101. package/build-module/latest-posts/edit.js.map +1 -1
  102. package/build-module/list/ordered-list-settings.js +132 -53
  103. package/build-module/list/ordered-list-settings.js.map +1 -1
  104. package/build-module/navigation/edit/index.js +94 -52
  105. package/build-module/navigation/edit/index.js.map +1 -1
  106. package/build-module/navigation/edit/overlay-menu-preview.js +44 -28
  107. package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
  108. package/build-module/navigation-link/index.js +3 -0
  109. package/build-module/navigation-link/index.js.map +1 -1
  110. package/build-module/navigation-link/transforms.js +2 -0
  111. package/build-module/navigation-link/transforms.js.map +1 -1
  112. package/build-module/navigation-link/update-attributes.js +1 -0
  113. package/build-module/navigation-link/update-attributes.js.map +1 -1
  114. package/build-module/navigation-submenu/index.js +3 -0
  115. package/build-module/navigation-submenu/index.js.map +1 -1
  116. package/build-module/post-comments-count/index.js +3 -1
  117. package/build-module/post-comments-count/index.js.map +1 -1
  118. package/build-module/post-comments-count/transforms.js +19 -0
  119. package/build-module/post-comments-count/transforms.js.map +1 -0
  120. package/build-module/post-comments-link/index.js +3 -1
  121. package/build-module/post-comments-link/index.js.map +1 -1
  122. package/build-module/post-comments-link/transforms.js +19 -0
  123. package/build-module/post-comments-link/transforms.js.map +1 -0
  124. package/build-module/post-title/edit.js +57 -19
  125. package/build-module/post-title/edit.js.map +1 -1
  126. package/build-module/query/edit/enhanced-pagination-modal.js +1 -1
  127. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  128. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +3 -6
  129. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  130. package/build-module/rss/edit.js +121 -47
  131. package/build-module/rss/edit.js.map +1 -1
  132. package/build-module/separator/edit.js +54 -22
  133. package/build-module/separator/edit.js.map +1 -1
  134. package/build-module/shortcode/index.js +2 -1
  135. package/build-module/shortcode/index.js.map +1 -1
  136. package/build-module/social-link/variations.js +53 -48
  137. package/build-module/social-link/variations.js.map +1 -1
  138. package/build-module/social-links/edit.js +37 -47
  139. package/build-module/social-links/edit.js.map +1 -1
  140. package/build-module/video/tracks-editor.js +41 -13
  141. package/build-module/video/tracks-editor.js.map +1 -1
  142. package/build-style/editor-rtl.css +9 -4
  143. package/build-style/editor.css +9 -4
  144. package/build-style/gallery/style-rtl.css +1 -0
  145. package/build-style/gallery/style.css +1 -0
  146. package/build-style/navigation/editor-rtl.css +8 -3
  147. package/build-style/navigation/editor.css +8 -3
  148. package/build-style/pullquote/editor-rtl.css +1 -1
  149. package/build-style/pullquote/editor.css +1 -1
  150. package/build-style/pullquote/style-rtl.css +2 -3
  151. package/build-style/pullquote/style.css +2 -3
  152. package/build-style/pullquote/theme-rtl.css +2 -2
  153. package/build-style/pullquote/theme.css +2 -2
  154. package/build-style/style-rtl.css +3 -3
  155. package/build-style/style.css +3 -3
  156. package/build-style/theme-rtl.css +2 -2
  157. package/build-style/theme.css +2 -2
  158. package/package.json +35 -35
  159. package/src/button/edit.js +44 -29
  160. package/src/columns/edit.js +20 -31
  161. package/src/comment-author-name/edit.js +54 -13
  162. package/src/comment-date/edit.js +50 -15
  163. package/src/comment-edit-link/edit.js +39 -11
  164. package/src/comments/edit/comments-inspector-controls.js +0 -2
  165. package/src/comments-pagination/edit.js +29 -9
  166. package/src/comments-title/edit.js +53 -15
  167. package/src/details/edit.js +36 -4
  168. package/src/embed/edit.js +3 -5
  169. package/src/embed/embed-controls.js +55 -33
  170. package/src/file/inspector.js +99 -45
  171. package/src/form/edit.js +91 -46
  172. package/src/form-input/edit.js +56 -18
  173. package/src/gallery/style.scss +1 -0
  174. package/src/latest-posts/edit.js +206 -98
  175. package/src/list/ordered-list-settings.js +172 -62
  176. package/src/navigation/edit/index.js +127 -64
  177. package/src/navigation/edit/overlay-menu-preview.js +43 -26
  178. package/src/navigation/editor.scss +8 -4
  179. package/src/navigation-link/block.json +3 -0
  180. package/src/navigation-link/index.php +4 -0
  181. package/src/navigation-link/transforms.js +2 -1
  182. package/src/navigation-link/update-attributes.js +1 -0
  183. package/src/navigation-submenu/block.json +3 -0
  184. package/src/navigation-submenu/index.php +4 -0
  185. package/src/post-comments-count/index.js +2 -0
  186. package/src/post-comments-count/transforms.js +20 -0
  187. package/src/post-comments-link/index.js +2 -0
  188. package/src/post-comments-link/transforms.js +20 -0
  189. package/src/post-title/edit.js +76 -24
  190. package/src/pullquote/editor.scss +1 -1
  191. package/src/pullquote/style.scss +2 -3
  192. package/src/pullquote/theme.scss +2 -2
  193. package/src/query/edit/enhanced-pagination-modal.js +1 -5
  194. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +3 -13
  195. package/src/rss/edit.js +141 -55
  196. package/src/separator/edit.js +66 -21
  197. package/src/shortcode/block.json +2 -1
  198. package/src/site-title/index.php +1 -1
  199. package/src/social-link/index.php +49 -49
  200. package/src/social-link/variations.js +53 -48
  201. package/src/social-links/edit.js +39 -60
  202. package/src/video/tracks-editor.js +57 -16
@@ -9,11 +9,16 @@ import clsx from 'clsx';
9
9
  import { AlignmentControl, BlockControls, useBlockProps, InspectorControls, store as blockEditorStore, HeadingLevelDropdown } from '@wordpress/block-editor';
10
10
  import { __, _n, sprintf } from '@wordpress/i18n';
11
11
  import { useEntityProp } from '@wordpress/core-data';
12
- import { PanelBody, ToggleControl } from '@wordpress/components';
12
+ import { ToggleControl, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
13
13
  import { useState, useEffect } from '@wordpress/element';
14
14
  import { useSelect } from '@wordpress/data';
15
15
  import apiFetch from '@wordpress/api-fetch';
16
16
  import { addQueryArgs } from '@wordpress/url';
17
+
18
+ /**
19
+ * Internal dependencies
20
+ */
21
+ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
17
22
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
18
23
  export default function Edit({
19
24
  attributes: {
@@ -49,6 +54,7 @@ export default function Edit({
49
54
  } = select(blockEditorStore);
50
55
  return getSettings().__experimentalDiscussionSettings;
51
56
  });
57
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
52
58
  useEffect(() => {
53
59
  if (isSiteEditor) {
54
60
  // Match the number of comments that will be shown in the comment-template/edit.js placeholder
@@ -92,21 +98,44 @@ export default function Edit({
92
98
  })]
93
99
  });
94
100
  const inspectorControls = /*#__PURE__*/_jsx(InspectorControls, {
95
- children: /*#__PURE__*/_jsxs(PanelBody, {
96
- title: __('Settings'),
97
- children: [/*#__PURE__*/_jsx(ToggleControl, {
98
- __nextHasNoMarginBottom: true,
101
+ children: /*#__PURE__*/_jsxs(ToolsPanel, {
102
+ label: __('Settings'),
103
+ resetAll: () => {
104
+ setAttributes({
105
+ showPostTitle: true,
106
+ showCommentsCount: true
107
+ });
108
+ },
109
+ dropdownMenuProps: dropdownMenuProps,
110
+ children: [/*#__PURE__*/_jsx(ToolsPanelItem, {
99
111
  label: __('Show post title'),
100
- checked: showPostTitle,
101
- onChange: value => setAttributes({
102
- showPostTitle: value
112
+ isShownByDefault: true,
113
+ hasValue: () => !showPostTitle,
114
+ onDeselect: () => setAttributes({
115
+ showPostTitle: true
116
+ }),
117
+ children: /*#__PURE__*/_jsx(ToggleControl, {
118
+ __nextHasNoMarginBottom: true,
119
+ label: __('Show post title'),
120
+ checked: showPostTitle,
121
+ onChange: value => setAttributes({
122
+ showPostTitle: value
123
+ })
103
124
  })
104
- }), /*#__PURE__*/_jsx(ToggleControl, {
105
- __nextHasNoMarginBottom: true,
125
+ }), /*#__PURE__*/_jsx(ToolsPanelItem, {
106
126
  label: __('Show comments count'),
107
- checked: showCommentsCount,
108
- onChange: value => setAttributes({
109
- showCommentsCount: value
127
+ isShownByDefault: true,
128
+ hasValue: () => !showCommentsCount,
129
+ onDeselect: () => setAttributes({
130
+ showCommentsCount: true
131
+ }),
132
+ children: /*#__PURE__*/_jsx(ToggleControl, {
133
+ __nextHasNoMarginBottom: true,
134
+ label: __('Show comments count'),
135
+ checked: showCommentsCount,
136
+ onChange: value => setAttributes({
137
+ showCommentsCount: value
138
+ })
110
139
  })
111
140
  })]
112
141
  })
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","AlignmentControl","BlockControls","useBlockProps","InspectorControls","store","blockEditorStore","HeadingLevelDropdown","__","_n","sprintf","useEntityProp","PanelBody","ToggleControl","useState","useEffect","useSelect","apiFetch","addQueryArgs","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Edit","attributes","textAlign","showPostTitle","showCommentsCount","level","levelOptions","setAttributes","context","postType","postId","TagName","commentsCount","setCommentsCount","rawTitle","isSiteEditor","blockProps","className","threadCommentsDepth","threadComments","commentsPerPage","pageComments","select","getSettings","__experimentalDiscussionSettings","nestedCommentsNumber","Math","min","topLevelCommentsNumber","commentsNumber","parseInt","currentPostId","path","post","_fields","method","parse","then","res","headers","get","catch","blockControls","group","children","value","onChange","newAlign","options","newLevel","inspectorControls","title","__nextHasNoMarginBottom","label","checked","postTitle","placeholder","undefined"],"sources":["@wordpress/block-library/src/comments-title/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tHeadingLevelDropdown,\n} from '@wordpress/block-editor';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\nexport default function Edit( {\n\tattributes: {\n\t\ttextAlign,\n\t\tshowPostTitle,\n\t\tshowCommentsCount,\n\t\tlevel,\n\t\tlevelOptions,\n\t},\n\tsetAttributes,\n\tcontext: { postType, postId },\n} ) {\n\tconst TagName = 'h' + level;\n\tconst [ commentsCount, setCommentsCount ] = useState();\n\tconst [ rawTitle ] = useEntityProp( 'postType', postType, 'title', postId );\n\tconst isSiteEditor = typeof postId === 'undefined';\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst {\n\t\tthreadCommentsDepth,\n\t\tthreadComments,\n\t\tcommentsPerPage,\n\t\tpageComments,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalDiscussionSettings;\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( isSiteEditor ) {\n\t\t\t// Match the number of comments that will be shown in the comment-template/edit.js placeholder\n\n\t\t\tconst nestedCommentsNumber = threadComments\n\t\t\t\t? Math.min( threadCommentsDepth, 3 ) - 1\n\t\t\t\t: 0;\n\t\t\tconst topLevelCommentsNumber = pageComments ? commentsPerPage : 3;\n\n\t\t\tconst commentsNumber =\n\t\t\t\tparseInt( nestedCommentsNumber ) +\n\t\t\t\tparseInt( topLevelCommentsNumber );\n\n\t\t\tsetCommentsCount( Math.min( commentsNumber, 3 ) );\n\t\t\treturn;\n\t\t}\n\t\tconst currentPostId = postId;\n\t\tapiFetch( {\n\t\t\tpath: addQueryArgs( '/wp/v2/comments', {\n\t\t\t\tpost: postId,\n\t\t\t\t_fields: 'id',\n\t\t\t} ),\n\t\t\tmethod: 'HEAD',\n\t\t\tparse: false,\n\t\t} )\n\t\t\t.then( ( res ) => {\n\t\t\t\t// Stale requests will have the `currentPostId` of an older closure.\n\t\t\t\tif ( currentPostId === postId ) {\n\t\t\t\t\tsetCommentsCount(\n\t\t\t\t\t\tparseInt( res.headers.get( 'X-WP-Total' ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tsetCommentsCount( 0 );\n\t\t\t} );\n\t}, [ postId ] );\n\n\tconst blockControls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<AlignmentControl\n\t\t\t\tvalue={ textAlign }\n\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<HeadingLevelDropdown\n\t\t\t\tvalue={ level }\n\t\t\t\toptions={ levelOptions }\n\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t}\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Show post title' ) }\n\t\t\t\t\tchecked={ showPostTitle }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { showPostTitle: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Show comments count' ) }\n\t\t\t\t\tchecked={ showCommentsCount }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { showCommentsCount: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst postTitle = isSiteEditor ? __( '“Post Title”' ) : `\"${ rawTitle }\"`;\n\n\tlet placeholder;\n\tif ( showCommentsCount && commentsCount !== undefined ) {\n\t\tif ( showPostTitle ) {\n\t\t\tif ( commentsCount === 1 ) {\n\t\t\t\t/* translators: %s: Post title. */\n\t\t\t\tplaceholder = sprintf( __( 'One response to %s' ), postTitle );\n\t\t\t} else {\n\t\t\t\tplaceholder = sprintf(\n\t\t\t\t\t/* translators: 1: Number of comments, 2: Post title. */\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%1$s response to %2$s',\n\t\t\t\t\t\t'%1$s responses to %2$s',\n\t\t\t\t\t\tcommentsCount\n\t\t\t\t\t),\n\t\t\t\t\tcommentsCount,\n\t\t\t\t\tpostTitle\n\t\t\t\t);\n\t\t\t}\n\t\t} else if ( commentsCount === 1 ) {\n\t\t\tplaceholder = __( 'One response' );\n\t\t} else {\n\t\t\tplaceholder = sprintf(\n\t\t\t\t/* translators: %s: Number of comments. */\n\t\t\t\t_n( '%s response', '%s responses', commentsCount ),\n\t\t\t\tcommentsCount\n\t\t\t);\n\t\t}\n\t} else if ( showPostTitle ) {\n\t\tif ( commentsCount === 1 ) {\n\t\t\t/* translators: %s: Post title. */\n\t\t\tplaceholder = sprintf( __( 'Response to %s' ), postTitle );\n\t\t} else {\n\t\t\t/* translators: %s: Post title. */\n\t\t\tplaceholder = sprintf( __( 'Responses to %s' ), postTitle );\n\t\t}\n\t} else if ( commentsCount === 1 ) {\n\t\tplaceholder = __( 'Response' );\n\t} else {\n\t\tplaceholder = __( 'Responses' );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ blockControls }\n\t\t\t{ inspectorControls }\n\t\t\t<TagName { ...blockProps }>{ placeholder }</TagName>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","AlignmentControl","BlockControls","useBlockProps","InspectorControls","store","blockEditorStore","HeadingLevelDropdown","__","_n","sprintf","useEntityProp","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","useState","useEffect","useSelect","apiFetch","addQueryArgs","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Edit","attributes","textAlign","showPostTitle","showCommentsCount","level","levelOptions","setAttributes","context","postType","postId","TagName","commentsCount","setCommentsCount","rawTitle","isSiteEditor","blockProps","className","threadCommentsDepth","threadComments","commentsPerPage","pageComments","select","getSettings","__experimentalDiscussionSettings","dropdownMenuProps","nestedCommentsNumber","Math","min","topLevelCommentsNumber","commentsNumber","parseInt","currentPostId","path","post","_fields","method","parse","then","res","headers","get","catch","blockControls","group","children","value","onChange","newAlign","options","newLevel","inspectorControls","label","resetAll","isShownByDefault","hasValue","onDeselect","__nextHasNoMarginBottom","checked","postTitle","placeholder","undefined"],"sources":["@wordpress/block-library/src/comments-title/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tHeadingLevelDropdown,\n} from '@wordpress/block-editor';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useEntityProp } from '@wordpress/core-data';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function Edit( {\n\tattributes: {\n\t\ttextAlign,\n\t\tshowPostTitle,\n\t\tshowCommentsCount,\n\t\tlevel,\n\t\tlevelOptions,\n\t},\n\tsetAttributes,\n\tcontext: { postType, postId },\n} ) {\n\tconst TagName = 'h' + level;\n\tconst [ commentsCount, setCommentsCount ] = useState();\n\tconst [ rawTitle ] = useEntityProp( 'postType', postType, 'title', postId );\n\tconst isSiteEditor = typeof postId === 'undefined';\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst {\n\t\tthreadCommentsDepth,\n\t\tthreadComments,\n\t\tcommentsPerPage,\n\t\tpageComments,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalDiscussionSettings;\n\t} );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tuseEffect( () => {\n\t\tif ( isSiteEditor ) {\n\t\t\t// Match the number of comments that will be shown in the comment-template/edit.js placeholder\n\n\t\t\tconst nestedCommentsNumber = threadComments\n\t\t\t\t? Math.min( threadCommentsDepth, 3 ) - 1\n\t\t\t\t: 0;\n\t\t\tconst topLevelCommentsNumber = pageComments ? commentsPerPage : 3;\n\n\t\t\tconst commentsNumber =\n\t\t\t\tparseInt( nestedCommentsNumber ) +\n\t\t\t\tparseInt( topLevelCommentsNumber );\n\n\t\t\tsetCommentsCount( Math.min( commentsNumber, 3 ) );\n\t\t\treturn;\n\t\t}\n\t\tconst currentPostId = postId;\n\t\tapiFetch( {\n\t\t\tpath: addQueryArgs( '/wp/v2/comments', {\n\t\t\t\tpost: postId,\n\t\t\t\t_fields: 'id',\n\t\t\t} ),\n\t\t\tmethod: 'HEAD',\n\t\t\tparse: false,\n\t\t} )\n\t\t\t.then( ( res ) => {\n\t\t\t\t// Stale requests will have the `currentPostId` of an older closure.\n\t\t\t\tif ( currentPostId === postId ) {\n\t\t\t\t\tsetCommentsCount(\n\t\t\t\t\t\tparseInt( res.headers.get( 'X-WP-Total' ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tsetCommentsCount( 0 );\n\t\t\t} );\n\t}, [ postId ] );\n\n\tconst blockControls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<AlignmentControl\n\t\t\t\tvalue={ textAlign }\n\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<HeadingLevelDropdown\n\t\t\t\tvalue={ level }\n\t\t\t\toptions={ levelOptions }\n\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t}\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tshowPostTitle: true,\n\t\t\t\t\t\tshowCommentsCount: true,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Show post title' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => ! showPostTitle }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { showPostTitle: true } )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show post title' ) }\n\t\t\t\t\t\tchecked={ showPostTitle }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { showPostTitle: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Show comments count' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => ! showCommentsCount }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { showCommentsCount: true } )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show comments count' ) }\n\t\t\t\t\t\tchecked={ showCommentsCount }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { showCommentsCount: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst postTitle = isSiteEditor ? __( '“Post Title”' ) : `\"${ rawTitle }\"`;\n\n\tlet placeholder;\n\tif ( showCommentsCount && commentsCount !== undefined ) {\n\t\tif ( showPostTitle ) {\n\t\t\tif ( commentsCount === 1 ) {\n\t\t\t\t/* translators: %s: Post title. */\n\t\t\t\tplaceholder = sprintf( __( 'One response to %s' ), postTitle );\n\t\t\t} else {\n\t\t\t\tplaceholder = sprintf(\n\t\t\t\t\t/* translators: 1: Number of comments, 2: Post title. */\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%1$s response to %2$s',\n\t\t\t\t\t\t'%1$s responses to %2$s',\n\t\t\t\t\t\tcommentsCount\n\t\t\t\t\t),\n\t\t\t\t\tcommentsCount,\n\t\t\t\t\tpostTitle\n\t\t\t\t);\n\t\t\t}\n\t\t} else if ( commentsCount === 1 ) {\n\t\t\tplaceholder = __( 'One response' );\n\t\t} else {\n\t\t\tplaceholder = sprintf(\n\t\t\t\t/* translators: %s: Number of comments. */\n\t\t\t\t_n( '%s response', '%s responses', commentsCount ),\n\t\t\t\tcommentsCount\n\t\t\t);\n\t\t}\n\t} else if ( showPostTitle ) {\n\t\tif ( commentsCount === 1 ) {\n\t\t\t/* translators: %s: Post title. */\n\t\t\tplaceholder = sprintf( __( 'Response to %s' ), postTitle );\n\t\t} else {\n\t\t\t/* translators: %s: Post title. */\n\t\t\tplaceholder = sprintf( __( 'Responses to %s' ), postTitle );\n\t\t}\n\t} else if ( commentsCount === 1 ) {\n\t\tplaceholder = __( 'Response' );\n\t} else {\n\t\tplaceholder = __( 'Responses' );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ blockControls }\n\t\t\t{ inspectorControls }\n\t\t\t<TagName { ...blockProps }>{ placeholder }</TagName>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,22 +1,28 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { RichText, useBlockProps, useInnerBlocksProps, InspectorControls } from '@wordpress/block-editor';
5
- import { TextControl, ToggleControl, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
4
+ import { RichText, useBlockProps, useInnerBlocksProps, InspectorControls, store as blockEditorStore } from '@wordpress/block-editor';
5
+ import { TextControl, ToggleControl, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, privateApis as componentsPrivateApis } from '@wordpress/components';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { useState } from '@wordpress/element';
8
+ import { useSelect } from '@wordpress/data';
8
9
 
9
10
  /**
10
11
  * Internal dependencies
11
12
  */
12
13
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
14
+ import { unlock } from '../lock-unlock';
13
15
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
16
+ const {
17
+ withIgnoreIMEEvents
18
+ } = unlock(componentsPrivateApis);
14
19
  const TEMPLATE = [['core/paragraph', {
15
20
  placeholder: __('Type / to add a hidden block')
16
21
  }]];
17
22
  function DetailsEdit({
18
23
  attributes,
19
- setAttributes
24
+ setAttributes,
25
+ clientId
20
26
  }) {
21
27
  const {
22
28
  name,
@@ -33,6 +39,22 @@ function DetailsEdit({
33
39
  });
34
40
  const [isOpen, setIsOpen] = useState(showContent);
35
41
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
42
+
43
+ // Check if the inner blocks are selected.
44
+ const hasSelectedInnerBlock = useSelect(select => select(blockEditorStore).hasSelectedInnerBlock(clientId, true), [clientId]);
45
+ const handleSummaryKeyDown = event => {
46
+ if (event.key === 'Enter' && !event.shiftKey) {
47
+ setIsOpen(prevIsOpen => !prevIsOpen);
48
+ event.preventDefault();
49
+ }
50
+ };
51
+
52
+ // Prevent spacebar from toggling <details> while typing.
53
+ const handleSummaryKeyUp = event => {
54
+ if (event.key === ' ') {
55
+ event.preventDefault();
56
+ }
57
+ };
36
58
  return /*#__PURE__*/_jsxs(_Fragment, {
37
59
  children: [/*#__PURE__*/_jsx(InspectorControls, {
38
60
  children: /*#__PURE__*/_jsx(ToolsPanel, {
@@ -76,12 +98,14 @@ function DetailsEdit({
76
98
  })
77
99
  }), /*#__PURE__*/_jsxs("details", {
78
100
  ...innerBlocksProps,
79
- open: isOpen,
101
+ open: isOpen || hasSelectedInnerBlock,
80
102
  onToggle: event => setIsOpen(event.target.open),
81
103
  children: [/*#__PURE__*/_jsx("summary", {
104
+ onKeyDown: withIgnoreIMEEvents(handleSummaryKeyDown),
105
+ onKeyUp: handleSummaryKeyUp,
82
106
  children: /*#__PURE__*/_jsx(RichText, {
83
107
  identifier: "summary",
84
- "aria-label": __('Write summary'),
108
+ "aria-label": __('Write summary. Press Enter to expand or collapse the details.'),
85
109
  placeholder: placeholder || __('Write summary…'),
86
110
  withoutInteractiveFormatting: true,
87
111
  value: summary,
@@ -1 +1 @@
1
- {"version":3,"names":["RichText","useBlockProps","useInnerBlocksProps","InspectorControls","TextControl","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","useState","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TEMPLATE","placeholder","DetailsEdit","attributes","setAttributes","name","showContent","summary","allowedBlocks","blockProps","innerBlocksProps","template","__experimentalCaptureToolbars","isOpen","setIsOpen","dropdownMenuProps","children","label","resetAll","isShownByDefault","hasValue","onDeselect","__nextHasNoMarginBottom","checked","onChange","group","__next40pxDefaultSize","value","newName","help","open","onToggle","event","target","identifier","withoutInteractiveFormatting","newSummary"],"sources":["@wordpress/block-library/src/details/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n} from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tplaceholder: __( 'Type / to add a hidden block' ),\n\t\t},\n\t],\n];\n\nfunction DetailsEdit( { attributes, setAttributes } ) {\n\tconst { name, showContent, summary, allowedBlocks, placeholder } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\t__experimentalCaptureToolbars: true,\n\t\tallowedBlocks,\n\t} );\n\tconst [ isOpen, setIsOpen ] = useState( showContent );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tshowContent: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Open by default' ) }\n\t\t\t\t\t\thasValue={ () => showContent }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowContent: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open by default' ) }\n\t\t\t\t\t\t\tchecked={ showContent }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowContent: ! showContent,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Name attribute' ) }\n\t\t\t\t\tvalue={ name || '' }\n\t\t\t\t\tonChange={ ( newName ) =>\n\t\t\t\t\t\tsetAttributes( { name: newName } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Enables multiple Details blocks with the same name attribute to be connected, with only one open at a time.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<details\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t\topen={ isOpen }\n\t\t\t\tonToggle={ ( event ) => setIsOpen( event.target.open ) }\n\t\t\t>\n\t\t\t\t<summary>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"summary\"\n\t\t\t\t\t\taria-label={ __( 'Write summary' ) }\n\t\t\t\t\t\tplaceholder={ placeholder || __( 'Write summary…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ summary }\n\t\t\t\t\t\tonChange={ ( newSummary ) =>\n\t\t\t\t\t\t\tsetAttributes( { summary: newSummary } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</summary>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</details>\n\t\t</>\n\t);\n}\n\nexport default DetailsEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RichText","useBlockProps","useInnerBlocksProps","InspectorControls","store","blockEditorStore","TextControl","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","privateApis","componentsPrivateApis","__","useState","useSelect","useToolsPanelDropdownMenuProps","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","withIgnoreIMEEvents","TEMPLATE","placeholder","DetailsEdit","attributes","setAttributes","clientId","name","showContent","summary","allowedBlocks","blockProps","innerBlocksProps","template","__experimentalCaptureToolbars","isOpen","setIsOpen","dropdownMenuProps","hasSelectedInnerBlock","select","handleSummaryKeyDown","event","key","shiftKey","prevIsOpen","preventDefault","handleSummaryKeyUp","children","label","resetAll","isShownByDefault","hasValue","onDeselect","__nextHasNoMarginBottom","checked","onChange","group","__next40pxDefaultSize","value","newName","help","open","onToggle","target","onKeyDown","onKeyUp","identifier","withoutInteractiveFormatting","newSummary"],"sources":["@wordpress/block-library/src/details/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\n\nconst { withIgnoreIMEEvents } = unlock( componentsPrivateApis );\n\nconst TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tplaceholder: __( 'Type / to add a hidden block' ),\n\t\t},\n\t],\n];\n\nfunction DetailsEdit( { attributes, setAttributes, clientId } ) {\n\tconst { name, showContent, summary, allowedBlocks, placeholder } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\t__experimentalCaptureToolbars: true,\n\t\tallowedBlocks,\n\t} );\n\tconst [ isOpen, setIsOpen ] = useState( showContent );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Check if the inner blocks are selected.\n\tconst hasSelectedInnerBlock = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).hasSelectedInnerBlock( clientId, true ),\n\t\t[ clientId ]\n\t);\n\n\tconst handleSummaryKeyDown = ( event ) => {\n\t\tif ( event.key === 'Enter' && ! event.shiftKey ) {\n\t\t\tsetIsOpen( ( prevIsOpen ) => ! prevIsOpen );\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\t// Prevent spacebar from toggling <details> while typing.\n\tconst handleSummaryKeyUp = ( event ) => {\n\t\tif ( event.key === ' ' ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tshowContent: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Open by default' ) }\n\t\t\t\t\t\thasValue={ () => showContent }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowContent: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open by default' ) }\n\t\t\t\t\t\t\tchecked={ showContent }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowContent: ! showContent,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Name attribute' ) }\n\t\t\t\t\tvalue={ name || '' }\n\t\t\t\t\tonChange={ ( newName ) =>\n\t\t\t\t\t\tsetAttributes( { name: newName } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Enables multiple Details blocks with the same name attribute to be connected, with only one open at a time.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<details\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t\topen={ isOpen || hasSelectedInnerBlock }\n\t\t\t\tonToggle={ ( event ) => setIsOpen( event.target.open ) }\n\t\t\t>\n\t\t\t\t<summary\n\t\t\t\t\tonKeyDown={ withIgnoreIMEEvents( handleSummaryKeyDown ) }\n\t\t\t\t\tonKeyUp={ handleSummaryKeyUp }\n\t\t\t\t>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"summary\"\n\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t'Write summary. Press Enter to expand or collapse the details.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tplaceholder={ placeholder || __( 'Write summary…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ summary }\n\t\t\t\t\t\tonChange={ ( newSummary ) =>\n\t\t\t\t\t\t\tsetAttributes( { summary: newSummary } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</summary>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</details>\n\t\t</>\n\t);\n}\n\nexport default DetailsEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -99,20 +99,18 @@ const EmbedEdit = props => {
99
99
  * @return {Object} Merged attributes.
100
100
  */
101
101
  const getMergedAttributes = () => getMergedAttributesWithPreview(attributes, preview, title, responsive);
102
- const toggleResponsive = () => {
102
+ function toggleResponsive(newAllowResponsive) {
103
103
  const {
104
- allowResponsive,
105
104
  className
106
105
  } = attributes;
107
106
  const {
108
107
  html
109
108
  } = preview;
110
- const newAllowResponsive = !allowResponsive;
111
109
  setAttributes({
112
110
  allowResponsive: newAllowResponsive,
113
111
  className: getClassNames(html, className, responsive && newAllowResponsive)
114
112
  });
115
- };
113
+ }
116
114
  useEffect(() => {
117
115
  if (preview?.html || !cannotEmbed || !hasResolved) {
118
116
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["createUpgradedEmbedBlock","getClassNames","removeAspectRatioClasses","fallback","getEmbedInfoByProvider","getMergedAttributesWithPreview","EmbedControls","embedContentIcon","EmbedLoading","EmbedPlaceholder","EmbedPreview","clsx","__","_x","sprintf","useState","useEffect","useDispatch","useSelect","useBlockProps","store","coreStore","View","getAuthority","Caption","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","EmbedEdit","props","attributes","providerNameSlug","previewable","responsive","url","attributesUrl","isSelected","onReplace","setAttributes","insertBlocksAfter","onFocus","defaultEmbedInfo","title","icon","setURL","isEditingURL","setIsEditingURL","invalidateResolution","preview","fetching","themeSupportsResponsive","cannotEmbed","hasResolved","select","getEmbedPreview","isPreviewEmbedFallback","isRequestingEmbedPreview","getThemeSupports","hasFinishedResolution","embedPreview","previewIsFallback","badEmbedProvider","html","type","undefined","wordpressCantEmbed","data","status","validPreview","getMergedAttributes","toggleResponsive","allowResponsive","className","newAllowResponsive","newURL","replace","URL","host","toString","mergedAttributes","hasChanges","Object","keys","some","key","upgradedBlock","blockProps","children","label","showEmbedPlaceholder","onSubmit","event","preventDefault","blockClass","value","onChange","tryAgain","caption","classFromPreview","showEditButton","blockSupportsResponsive","switchBackToURLInput","onCaptionChange","showToolbarButton"],"sources":["@wordpress/block-library/src/embed/edit.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tcreateUpgradedEmbedBlock,\n\tgetClassNames,\n\tremoveAspectRatioClasses,\n\tfallback,\n\tgetEmbedInfoByProvider,\n\tgetMergedAttributesWithPreview,\n} from './util';\nimport EmbedControls from './embed-controls';\nimport { embedContentIcon } from './icons';\nimport EmbedLoading from './embed-loading';\nimport EmbedPlaceholder from './embed-placeholder';\nimport EmbedPreview from './embed-preview';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { View } from '@wordpress/primitives';\nimport { getAuthority } from '@wordpress/url';\nimport { Caption } from '../utils/caption';\n\nconst EmbedEdit = ( props ) => {\n\tconst {\n\t\tattributes: {\n\t\t\tproviderNameSlug,\n\t\t\tpreviewable,\n\t\t\tresponsive,\n\t\t\turl: attributesUrl,\n\t\t},\n\t\tattributes,\n\t\tisSelected,\n\t\tonReplace,\n\t\tsetAttributes,\n\t\tinsertBlocksAfter,\n\t\tonFocus,\n\t} = props;\n\n\tconst defaultEmbedInfo = {\n\t\ttitle: _x( 'Embed', 'block title' ),\n\t\ticon: embedContentIcon,\n\t};\n\tconst { icon, title } =\n\t\tgetEmbedInfoByProvider( providerNameSlug ) || defaultEmbedInfo;\n\n\tconst [ url, setURL ] = useState( attributesUrl );\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst { invalidateResolution } = useDispatch( coreStore );\n\n\tconst {\n\t\tpreview,\n\t\tfetching,\n\t\tthemeSupportsResponsive,\n\t\tcannotEmbed,\n\t\thasResolved,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEmbedPreview,\n\t\t\t\tisPreviewEmbedFallback,\n\t\t\t\tisRequestingEmbedPreview,\n\t\t\t\tgetThemeSupports,\n\t\t\t\thasFinishedResolution,\n\t\t\t} = select( coreStore );\n\t\t\tif ( ! attributesUrl ) {\n\t\t\t\treturn { fetching: false, cannotEmbed: false };\n\t\t\t}\n\n\t\t\tconst embedPreview = getEmbedPreview( attributesUrl );\n\t\t\tconst previewIsFallback = isPreviewEmbedFallback( attributesUrl );\n\n\t\t\t// The external oEmbed provider does not exist. We got no type info and no html.\n\t\t\tconst badEmbedProvider =\n\t\t\t\tembedPreview?.html === false &&\n\t\t\t\tembedPreview?.type === undefined;\n\t\t\t// Some WordPress URLs that can't be embedded will cause the API to return\n\t\t\t// a valid JSON response with no HTML and `data.status` set to 404, rather\n\t\t\t// than generating a fallback response as other embeds do.\n\t\t\tconst wordpressCantEmbed = embedPreview?.data?.status === 404;\n\t\t\tconst validPreview =\n\t\t\t\t!! embedPreview && ! badEmbedProvider && ! wordpressCantEmbed;\n\t\t\treturn {\n\t\t\t\tpreview: validPreview ? embedPreview : undefined,\n\t\t\t\tfetching: isRequestingEmbedPreview( attributesUrl ),\n\t\t\t\tthemeSupportsResponsive:\n\t\t\t\t\tgetThemeSupports()[ 'responsive-embeds' ],\n\t\t\t\tcannotEmbed: ! validPreview || previewIsFallback,\n\t\t\t\thasResolved: hasFinishedResolution( 'getEmbedPreview', [\n\t\t\t\t\tattributesUrl,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ attributesUrl ]\n\t);\n\n\t/**\n\t * Returns the attributes derived from the preview, merged with the current attributes.\n\t *\n\t * @return {Object} Merged attributes.\n\t */\n\tconst getMergedAttributes = () =>\n\t\tgetMergedAttributesWithPreview(\n\t\t\tattributes,\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tresponsive\n\t\t);\n\n\tconst toggleResponsive = () => {\n\t\tconst { allowResponsive, className } = attributes;\n\t\tconst { html } = preview;\n\t\tconst newAllowResponsive = ! allowResponsive;\n\n\t\tsetAttributes( {\n\t\t\tallowResponsive: newAllowResponsive,\n\t\t\tclassName: getClassNames(\n\t\t\t\thtml,\n\t\t\t\tclassName,\n\t\t\t\tresponsive && newAllowResponsive\n\t\t\t),\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( preview?.html || ! cannotEmbed || ! hasResolved ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// At this stage, we're not fetching the preview and know it can't be embedded,\n\t\t// so try removing any trailing slash, and resubmit.\n\t\tconst newURL = attributesUrl.replace( /\\/$/, '' );\n\t\tsetURL( newURL );\n\t\tsetIsEditingURL( false );\n\t\tsetAttributes( { url: newURL } );\n\t}, [\n\t\tpreview?.html,\n\t\tattributesUrl,\n\t\tcannotEmbed,\n\t\thasResolved,\n\t\tsetAttributes,\n\t] );\n\n\t// Try a different provider in case the embed url is not supported.\n\tuseEffect( () => {\n\t\tif ( ! cannotEmbed || fetching || ! url ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Until X provider is supported in WordPress, as a workaround we use Twitter provider.\n\t\tif ( getAuthority( url ) === 'x.com' ) {\n\t\t\tconst newURL = new URL( url );\n\t\t\tnewURL.host = 'twitter.com';\n\t\t\tsetAttributes( { url: newURL.toString() } );\n\t\t}\n\t}, [ url, cannotEmbed, fetching, setAttributes ] );\n\n\t// Handle incoming preview.\n\tuseEffect( () => {\n\t\tif ( preview && ! isEditingURL ) {\n\t\t\t// When obtaining an incoming preview,\n\t\t\t// we set the attributes derived from the preview data.\n\t\t\tconst mergedAttributes = getMergedAttributes();\n\t\t\tconst hasChanges = Object.keys( mergedAttributes ).some(\n\t\t\t\t( key ) => mergedAttributes[ key ] !== attributes[ key ]\n\t\t\t);\n\n\t\t\tif ( hasChanges ) {\n\t\t\t\tsetAttributes( mergedAttributes );\n\t\t\t}\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst upgradedBlock = createUpgradedEmbedBlock(\n\t\t\t\t\tprops,\n\t\t\t\t\tmergedAttributes\n\t\t\t\t);\n\n\t\t\t\tif ( upgradedBlock ) {\n\t\t\t\t\tonReplace( upgradedBlock );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ preview, isEditingURL ] );\n\n\tconst blockProps = useBlockProps();\n\n\tif ( fetching ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedLoading />\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// translators: %s: type of embed e.g: \"YouTube\", \"Twitter\", etc. \"Embed\" is used when no specific type exists\n\tconst label = sprintf( __( '%s URL' ), title );\n\n\t// No preview, or we can't embed the current URL, or we've clicked the edit button.\n\tconst showEmbedPlaceholder = ! preview || cannotEmbed || isEditingURL;\n\n\tif ( showEmbedPlaceholder ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedPlaceholder\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\tif ( event ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If the embed URL was changed, we need to reset the aspect ratio class.\n\t\t\t\t\t\t// To do this we have to remove the existing ratio class so it can be recalculated.\n\t\t\t\t\t\tconst blockClass = removeAspectRatioClasses(\n\t\t\t\t\t\t\tattributes.className\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\tsetAttributes( { url, className: blockClass } );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ url }\n\t\t\t\t\tcannotEmbed={ cannotEmbed }\n\t\t\t\t\tonChange={ ( value ) => setURL( value ) }\n\t\t\t\t\tfallback={ () => fallback( url, onReplace ) }\n\t\t\t\t\ttryAgain={ () => {\n\t\t\t\t\t\tinvalidateResolution( 'getEmbedPreview', [ url ] );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// Even though we set attributes that get derived from the preview,\n\t// we don't access them directly because for the initial render,\n\t// the `setAttributes` call will not have taken effect. If we're\n\t// rendering responsive content, setting the responsive classes\n\t// after the preview has been rendered can result in unwanted\n\t// clipping or scrollbars. The `getAttributesFromPreview` function\n\t// that `getMergedAttributes` uses is memoized so that we're not\n\t// calculating them on every render.\n\tconst {\n\t\tcaption,\n\t\ttype,\n\t\tallowResponsive,\n\t\tclassName: classFromPreview,\n\t} = getMergedAttributes();\n\tconst className = clsx( classFromPreview, props.className );\n\n\treturn (\n\t\t<>\n\t\t\t<EmbedControls\n\t\t\t\tshowEditButton={ preview && ! cannotEmbed }\n\t\t\t\tthemeSupportsResponsive={ themeSupportsResponsive }\n\t\t\t\tblockSupportsResponsive={ responsive }\n\t\t\t\tallowResponsive={ allowResponsive }\n\t\t\t\ttoggleResponsive={ toggleResponsive }\n\t\t\t\tswitchBackToURLInput={ () => setIsEditingURL( true ) }\n\t\t\t/>\n\t\t\t<figure\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ clsx( blockProps.className, className, {\n\t\t\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t\t\t[ `wp-block-embed-${ providerNameSlug }` ]:\n\t\t\t\t\t\tproviderNameSlug,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<EmbedPreview\n\t\t\t\t\tpreview={ preview }\n\t\t\t\t\tpreviewable={ previewable }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\turl={ url }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcaption={ caption }\n\t\t\t\t\tonCaptionChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t}\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Embed caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n};\n\nexport default EmbedEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createUpgradedEmbedBlock","getClassNames","removeAspectRatioClasses","fallback","getEmbedInfoByProvider","getMergedAttributesWithPreview","EmbedControls","embedContentIcon","EmbedLoading","EmbedPlaceholder","EmbedPreview","clsx","__","_x","sprintf","useState","useEffect","useDispatch","useSelect","useBlockProps","store","coreStore","View","getAuthority","Caption","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","EmbedEdit","props","attributes","providerNameSlug","previewable","responsive","url","attributesUrl","isSelected","onReplace","setAttributes","insertBlocksAfter","onFocus","defaultEmbedInfo","title","icon","setURL","isEditingURL","setIsEditingURL","invalidateResolution","preview","fetching","themeSupportsResponsive","cannotEmbed","hasResolved","select","getEmbedPreview","isPreviewEmbedFallback","isRequestingEmbedPreview","getThemeSupports","hasFinishedResolution","embedPreview","previewIsFallback","badEmbedProvider","html","type","undefined","wordpressCantEmbed","data","status","validPreview","getMergedAttributes","toggleResponsive","newAllowResponsive","className","allowResponsive","newURL","replace","URL","host","toString","mergedAttributes","hasChanges","Object","keys","some","key","upgradedBlock","blockProps","children","label","showEmbedPlaceholder","onSubmit","event","preventDefault","blockClass","value","onChange","tryAgain","caption","classFromPreview","showEditButton","blockSupportsResponsive","switchBackToURLInput","onCaptionChange","showToolbarButton"],"sources":["@wordpress/block-library/src/embed/edit.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tcreateUpgradedEmbedBlock,\n\tgetClassNames,\n\tremoveAspectRatioClasses,\n\tfallback,\n\tgetEmbedInfoByProvider,\n\tgetMergedAttributesWithPreview,\n} from './util';\nimport EmbedControls from './embed-controls';\nimport { embedContentIcon } from './icons';\nimport EmbedLoading from './embed-loading';\nimport EmbedPlaceholder from './embed-placeholder';\nimport EmbedPreview from './embed-preview';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { View } from '@wordpress/primitives';\nimport { getAuthority } from '@wordpress/url';\nimport { Caption } from '../utils/caption';\n\nconst EmbedEdit = ( props ) => {\n\tconst {\n\t\tattributes: {\n\t\t\tproviderNameSlug,\n\t\t\tpreviewable,\n\t\t\tresponsive,\n\t\t\turl: attributesUrl,\n\t\t},\n\t\tattributes,\n\t\tisSelected,\n\t\tonReplace,\n\t\tsetAttributes,\n\t\tinsertBlocksAfter,\n\t\tonFocus,\n\t} = props;\n\n\tconst defaultEmbedInfo = {\n\t\ttitle: _x( 'Embed', 'block title' ),\n\t\ticon: embedContentIcon,\n\t};\n\tconst { icon, title } =\n\t\tgetEmbedInfoByProvider( providerNameSlug ) || defaultEmbedInfo;\n\n\tconst [ url, setURL ] = useState( attributesUrl );\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst { invalidateResolution } = useDispatch( coreStore );\n\n\tconst {\n\t\tpreview,\n\t\tfetching,\n\t\tthemeSupportsResponsive,\n\t\tcannotEmbed,\n\t\thasResolved,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEmbedPreview,\n\t\t\t\tisPreviewEmbedFallback,\n\t\t\t\tisRequestingEmbedPreview,\n\t\t\t\tgetThemeSupports,\n\t\t\t\thasFinishedResolution,\n\t\t\t} = select( coreStore );\n\t\t\tif ( ! attributesUrl ) {\n\t\t\t\treturn { fetching: false, cannotEmbed: false };\n\t\t\t}\n\n\t\t\tconst embedPreview = getEmbedPreview( attributesUrl );\n\t\t\tconst previewIsFallback = isPreviewEmbedFallback( attributesUrl );\n\n\t\t\t// The external oEmbed provider does not exist. We got no type info and no html.\n\t\t\tconst badEmbedProvider =\n\t\t\t\tembedPreview?.html === false &&\n\t\t\t\tembedPreview?.type === undefined;\n\t\t\t// Some WordPress URLs that can't be embedded will cause the API to return\n\t\t\t// a valid JSON response with no HTML and `data.status` set to 404, rather\n\t\t\t// than generating a fallback response as other embeds do.\n\t\t\tconst wordpressCantEmbed = embedPreview?.data?.status === 404;\n\t\t\tconst validPreview =\n\t\t\t\t!! embedPreview && ! badEmbedProvider && ! wordpressCantEmbed;\n\t\t\treturn {\n\t\t\t\tpreview: validPreview ? embedPreview : undefined,\n\t\t\t\tfetching: isRequestingEmbedPreview( attributesUrl ),\n\t\t\t\tthemeSupportsResponsive:\n\t\t\t\t\tgetThemeSupports()[ 'responsive-embeds' ],\n\t\t\t\tcannotEmbed: ! validPreview || previewIsFallback,\n\t\t\t\thasResolved: hasFinishedResolution( 'getEmbedPreview', [\n\t\t\t\t\tattributesUrl,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ attributesUrl ]\n\t);\n\n\t/**\n\t * Returns the attributes derived from the preview, merged with the current attributes.\n\t *\n\t * @return {Object} Merged attributes.\n\t */\n\tconst getMergedAttributes = () =>\n\t\tgetMergedAttributesWithPreview(\n\t\t\tattributes,\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tresponsive\n\t\t);\n\n\tfunction toggleResponsive( newAllowResponsive ) {\n\t\tconst { className } = attributes;\n\t\tconst { html } = preview;\n\t\tsetAttributes( {\n\t\t\tallowResponsive: newAllowResponsive,\n\t\t\tclassName: getClassNames(\n\t\t\t\thtml,\n\t\t\t\tclassName,\n\t\t\t\tresponsive && newAllowResponsive\n\t\t\t),\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( preview?.html || ! cannotEmbed || ! hasResolved ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// At this stage, we're not fetching the preview and know it can't be embedded,\n\t\t// so try removing any trailing slash, and resubmit.\n\t\tconst newURL = attributesUrl.replace( /\\/$/, '' );\n\t\tsetURL( newURL );\n\t\tsetIsEditingURL( false );\n\t\tsetAttributes( { url: newURL } );\n\t}, [\n\t\tpreview?.html,\n\t\tattributesUrl,\n\t\tcannotEmbed,\n\t\thasResolved,\n\t\tsetAttributes,\n\t] );\n\n\t// Try a different provider in case the embed url is not supported.\n\tuseEffect( () => {\n\t\tif ( ! cannotEmbed || fetching || ! url ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Until X provider is supported in WordPress, as a workaround we use Twitter provider.\n\t\tif ( getAuthority( url ) === 'x.com' ) {\n\t\t\tconst newURL = new URL( url );\n\t\t\tnewURL.host = 'twitter.com';\n\t\t\tsetAttributes( { url: newURL.toString() } );\n\t\t}\n\t}, [ url, cannotEmbed, fetching, setAttributes ] );\n\n\t// Handle incoming preview.\n\tuseEffect( () => {\n\t\tif ( preview && ! isEditingURL ) {\n\t\t\t// When obtaining an incoming preview,\n\t\t\t// we set the attributes derived from the preview data.\n\t\t\tconst mergedAttributes = getMergedAttributes();\n\t\t\tconst hasChanges = Object.keys( mergedAttributes ).some(\n\t\t\t\t( key ) => mergedAttributes[ key ] !== attributes[ key ]\n\t\t\t);\n\n\t\t\tif ( hasChanges ) {\n\t\t\t\tsetAttributes( mergedAttributes );\n\t\t\t}\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst upgradedBlock = createUpgradedEmbedBlock(\n\t\t\t\t\tprops,\n\t\t\t\t\tmergedAttributes\n\t\t\t\t);\n\n\t\t\t\tif ( upgradedBlock ) {\n\t\t\t\t\tonReplace( upgradedBlock );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ preview, isEditingURL ] );\n\n\tconst blockProps = useBlockProps();\n\n\tif ( fetching ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedLoading />\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// translators: %s: type of embed e.g: \"YouTube\", \"Twitter\", etc. \"Embed\" is used when no specific type exists\n\tconst label = sprintf( __( '%s URL' ), title );\n\n\t// No preview, or we can't embed the current URL, or we've clicked the edit button.\n\tconst showEmbedPlaceholder = ! preview || cannotEmbed || isEditingURL;\n\n\tif ( showEmbedPlaceholder ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedPlaceholder\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\tif ( event ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If the embed URL was changed, we need to reset the aspect ratio class.\n\t\t\t\t\t\t// To do this we have to remove the existing ratio class so it can be recalculated.\n\t\t\t\t\t\tconst blockClass = removeAspectRatioClasses(\n\t\t\t\t\t\t\tattributes.className\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\tsetAttributes( { url, className: blockClass } );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ url }\n\t\t\t\t\tcannotEmbed={ cannotEmbed }\n\t\t\t\t\tonChange={ ( value ) => setURL( value ) }\n\t\t\t\t\tfallback={ () => fallback( url, onReplace ) }\n\t\t\t\t\ttryAgain={ () => {\n\t\t\t\t\t\tinvalidateResolution( 'getEmbedPreview', [ url ] );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// Even though we set attributes that get derived from the preview,\n\t// we don't access them directly because for the initial render,\n\t// the `setAttributes` call will not have taken effect. If we're\n\t// rendering responsive content, setting the responsive classes\n\t// after the preview has been rendered can result in unwanted\n\t// clipping or scrollbars. The `getAttributesFromPreview` function\n\t// that `getMergedAttributes` uses is memoized so that we're not\n\t// calculating them on every render.\n\tconst {\n\t\tcaption,\n\t\ttype,\n\t\tallowResponsive,\n\t\tclassName: classFromPreview,\n\t} = getMergedAttributes();\n\tconst className = clsx( classFromPreview, props.className );\n\n\treturn (\n\t\t<>\n\t\t\t<EmbedControls\n\t\t\t\tshowEditButton={ preview && ! cannotEmbed }\n\t\t\t\tthemeSupportsResponsive={ themeSupportsResponsive }\n\t\t\t\tblockSupportsResponsive={ responsive }\n\t\t\t\tallowResponsive={ allowResponsive }\n\t\t\t\ttoggleResponsive={ toggleResponsive }\n\t\t\t\tswitchBackToURLInput={ () => setIsEditingURL( true ) }\n\t\t\t/>\n\t\t\t<figure\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ clsx( blockProps.className, className, {\n\t\t\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t\t\t[ `wp-block-embed-${ providerNameSlug }` ]:\n\t\t\t\t\t\tproviderNameSlug,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<EmbedPreview\n\t\t\t\t\tpreview={ preview }\n\t\t\t\t\tpreviewable={ previewable }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\turl={ url }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcaption={ caption }\n\t\t\t\t\tonCaptionChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t}\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Embed caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n};\n\nexport default EmbedEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -2,9 +2,14 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
- import { ToolbarButton, PanelBody, ToggleControl, ToolbarGroup } from '@wordpress/components';
5
+ import { ToolbarButton, ToggleControl, ToolbarGroup, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
6
6
  import { BlockControls, InspectorControls } from '@wordpress/block-editor';
7
7
  import { edit } from '@wordpress/icons';
8
+
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
8
13
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
14
  function getResponsiveHelp(checked) {
10
15
  return checked ? __('This embed will preserve its aspect ratio when the browser is resized.') : __('This embed may not preserve its aspect ratio when the browser is resized.');
@@ -16,29 +21,43 @@ const EmbedControls = ({
16
21
  allowResponsive,
17
22
  toggleResponsive,
18
23
  switchBackToURLInput
19
- }) => /*#__PURE__*/_jsxs(_Fragment, {
20
- children: [/*#__PURE__*/_jsx(BlockControls, {
21
- children: /*#__PURE__*/_jsx(ToolbarGroup, {
22
- children: showEditButton && /*#__PURE__*/_jsx(ToolbarButton, {
23
- className: "components-toolbar__control",
24
- label: __('Edit URL'),
25
- icon: edit,
26
- onClick: switchBackToURLInput
24
+ }) => {
25
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
26
+ return /*#__PURE__*/_jsxs(_Fragment, {
27
+ children: [/*#__PURE__*/_jsx(BlockControls, {
28
+ children: /*#__PURE__*/_jsx(ToolbarGroup, {
29
+ children: showEditButton && /*#__PURE__*/_jsx(ToolbarButton, {
30
+ className: "components-toolbar__control",
31
+ label: __('Edit URL'),
32
+ icon: edit,
33
+ onClick: switchBackToURLInput
34
+ })
27
35
  })
28
- })
29
- }), themeSupportsResponsive && blockSupportsResponsive && /*#__PURE__*/_jsx(InspectorControls, {
30
- children: /*#__PURE__*/_jsx(PanelBody, {
31
- title: __('Media settings'),
32
- className: "blocks-responsive",
33
- children: /*#__PURE__*/_jsx(ToggleControl, {
34
- __nextHasNoMarginBottom: true,
35
- label: __('Resize for smaller devices'),
36
- checked: allowResponsive,
37
- help: getResponsiveHelp,
38
- onChange: toggleResponsive
36
+ }), themeSupportsResponsive && blockSupportsResponsive && /*#__PURE__*/_jsx(InspectorControls, {
37
+ children: /*#__PURE__*/_jsx(ToolsPanel, {
38
+ label: __('Media settings'),
39
+ resetAll: () => {
40
+ toggleResponsive(true);
41
+ },
42
+ dropdownMenuProps: dropdownMenuProps,
43
+ children: /*#__PURE__*/_jsx(ToolsPanelItem, {
44
+ label: __('Media settings'),
45
+ isShownByDefault: true,
46
+ hasValue: () => !allowResponsive,
47
+ onDeselect: () => {
48
+ toggleResponsive(!allowResponsive);
49
+ },
50
+ children: /*#__PURE__*/_jsx(ToggleControl, {
51
+ __nextHasNoMarginBottom: true,
52
+ label: __('Resize for smaller devices'),
53
+ checked: allowResponsive,
54
+ help: getResponsiveHelp,
55
+ onChange: toggleResponsive
56
+ })
57
+ })
39
58
  })
40
- })
41
- })]
42
- });
59
+ })]
60
+ });
61
+ };
43
62
  export default EmbedControls;
44
63
  //# sourceMappingURL=embed-controls.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","ToolbarButton","PanelBody","ToggleControl","ToolbarGroup","BlockControls","InspectorControls","edit","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","getResponsiveHelp","checked","EmbedControls","blockSupportsResponsive","showEditButton","themeSupportsResponsive","allowResponsive","toggleResponsive","switchBackToURLInput","children","className","label","icon","onClick","title","__nextHasNoMarginBottom","help","onChange"],"sources":["@wordpress/block-library/src/embed/embed-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tPanelBody,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { BlockControls, InspectorControls } from '@wordpress/block-editor';\nimport { edit } from '@wordpress/icons';\n\nfunction getResponsiveHelp( checked ) {\n\treturn checked\n\t\t? __(\n\t\t\t\t'This embed will preserve its aspect ratio when the browser is resized.'\n\t\t )\n\t\t: __(\n\t\t\t\t'This embed may not preserve its aspect ratio when the browser is resized.'\n\t\t );\n}\n\nconst EmbedControls = ( {\n\tblockSupportsResponsive,\n\tshowEditButton,\n\tthemeSupportsResponsive,\n\tallowResponsive,\n\ttoggleResponsive,\n\tswitchBackToURLInput,\n} ) => (\n\t<>\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t{ showEditButton && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\tlabel={ __( 'Edit URL' ) }\n\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\tonClick={ switchBackToURLInput }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t\t{ themeSupportsResponsive && blockSupportsResponsive && (\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ __( 'Media settings' ) }\n\t\t\t\t\tclassName=\"blocks-responsive\"\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Resize for smaller devices' ) }\n\t\t\t\t\t\tchecked={ allowResponsive }\n\t\t\t\t\t\thelp={ getResponsiveHelp }\n\t\t\t\t\t\tonChange={ toggleResponsive }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t) }\n\t</>\n);\n\nexport default EmbedControls;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,aAAa,EACbC,SAAS,EACTC,aAAa,EACbC,YAAY,QACN,uBAAuB;AAC9B,SAASC,aAAa,EAAEC,iBAAiB,QAAQ,yBAAyB;AAC1E,SAASC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAExC,SAASC,iBAAiBA,CAAEC,OAAO,EAAG;EACrC,OAAOA,OAAO,GACXf,EAAE,CACF,wEACA,CAAC,GACDA,EAAE,CACF,2EACA,CAAC;AACL;AAEA,MAAMgB,aAAa,GAAGA,CAAE;EACvBC,uBAAuB;EACvBC,cAAc;EACdC,uBAAuB;EACvBC,eAAe;EACfC,gBAAgB;EAChBC;AACD,CAAC,kBACAT,KAAA,CAAAF,SAAA;EAAAY,QAAA,gBACCd,IAAA,CAACJ,aAAa;IAAAkB,QAAA,eACbd,IAAA,CAACL,YAAY;MAAAmB,QAAA,EACVL,cAAc,iBACfT,IAAA,CAACR,aAAa;QACbuB,SAAS,EAAC,6BAA6B;QACvCC,KAAK,EAAGzB,EAAE,CAAE,UAAW,CAAG;QAC1B0B,IAAI,EAAGnB,IAAM;QACboB,OAAO,EAAGL;MAAsB,CAChC;IACD,CACY;EAAC,CACD,CAAC,EACdH,uBAAuB,IAAIF,uBAAuB,iBACnDR,IAAA,CAACH,iBAAiB;IAAAiB,QAAA,eACjBd,IAAA,CAACP,SAAS;MACT0B,KAAK,EAAG5B,EAAE,CAAE,gBAAiB,CAAG;MAChCwB,SAAS,EAAC,mBAAmB;MAAAD,QAAA,eAE7Bd,IAAA,CAACN,aAAa;QACb0B,uBAAuB;QACvBJ,KAAK,EAAGzB,EAAE,CAAE,4BAA6B,CAAG;QAC5Ce,OAAO,EAAGK,eAAiB;QAC3BU,IAAI,EAAGhB,iBAAmB;QAC1BiB,QAAQ,EAAGV;MAAkB,CAC7B;IAAC,CACQ;EAAC,CACM,CACnB;AAAA,CACA,CACF;AAED,eAAeL,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["__","ToolbarButton","ToggleControl","ToolbarGroup","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","BlockControls","InspectorControls","edit","useToolsPanelDropdownMenuProps","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","getResponsiveHelp","checked","EmbedControls","blockSupportsResponsive","showEditButton","themeSupportsResponsive","allowResponsive","toggleResponsive","switchBackToURLInput","dropdownMenuProps","children","className","label","icon","onClick","resetAll","isShownByDefault","hasValue","onDeselect","__nextHasNoMarginBottom","help","onChange"],"sources":["@wordpress/block-library/src/embed/embed-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { BlockControls, InspectorControls } from '@wordpress/block-editor';\nimport { edit } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nfunction getResponsiveHelp( checked ) {\n\treturn checked\n\t\t? __(\n\t\t\t\t'This embed will preserve its aspect ratio when the browser is resized.'\n\t\t )\n\t\t: __(\n\t\t\t\t'This embed may not preserve its aspect ratio when the browser is resized.'\n\t\t );\n}\n\nconst EmbedControls = ( {\n\tblockSupportsResponsive,\n\tshowEditButton,\n\tthemeSupportsResponsive,\n\tallowResponsive,\n\ttoggleResponsive,\n\tswitchBackToURLInput,\n} ) => {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ showEditButton && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\tlabel={ __( 'Edit URL' ) }\n\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\tonClick={ switchBackToURLInput }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ themeSupportsResponsive && blockSupportsResponsive && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Media settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\ttoggleResponsive( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Media settings' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => ! allowResponsive }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\ttoggleResponsive( ! allowResponsive );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Resize for smaller devices' ) }\n\t\t\t\t\t\t\t\tchecked={ allowResponsive }\n\t\t\t\t\t\t\t\thelp={ getResponsiveHelp }\n\t\t\t\t\t\t\t\tonChange={ toggleResponsive }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default EmbedControls;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,aAAa,EACbC,aAAa,EACbC,YAAY,EACZC,wBAAwB,IAAIC,UAAU,EACtCC,4BAA4B,IAAIC,cAAc,QACxC,uBAAuB;AAC9B,SAASC,aAAa,EAAEC,iBAAiB,QAAQ,yBAAyB;AAC1E,SAASC,IAAI,QAAQ,kBAAkB;;AAEvC;AACA;AACA;AACA,SAASC,8BAA8B,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhE,SAASC,iBAAiBA,CAAEC,OAAO,EAAG;EACrC,OAAOA,OAAO,GACXnB,EAAE,CACF,wEACA,CAAC,GACDA,EAAE,CACF,2EACA,CAAC;AACL;AAEA,MAAMoB,aAAa,GAAGA,CAAE;EACvBC,uBAAuB;EACvBC,cAAc;EACdC,uBAAuB;EACvBC,eAAe;EACfC,gBAAgB;EAChBC;AACD,CAAC,KAAM;EACN,MAAMC,iBAAiB,GAAGhB,8BAA8B,CAAC,CAAC;EAE1D,oBACCM,KAAA,CAAAF,SAAA;IAAAa,QAAA,gBACCf,IAAA,CAACL,aAAa;MAAAoB,QAAA,eACbf,IAAA,CAACV,YAAY;QAAAyB,QAAA,EACVN,cAAc,iBACfT,IAAA,CAACZ,aAAa;UACb4B,SAAS,EAAC,6BAA6B;UACvCC,KAAK,EAAG9B,EAAE,CAAE,UAAW,CAAG;UAC1B+B,IAAI,EAAGrB,IAAM;UACbsB,OAAO,EAAGN;QAAsB,CAChC;MACD,CACY;IAAC,CACD,CAAC,EACdH,uBAAuB,IAAIF,uBAAuB,iBACnDR,IAAA,CAACJ,iBAAiB;MAAAmB,QAAA,eACjBf,IAAA,CAACR,UAAU;QACVyB,KAAK,EAAG9B,EAAE,CAAE,gBAAiB,CAAG;QAChCiC,QAAQ,EAAGA,CAAA,KAAM;UAChBR,gBAAgB,CAAE,IAAK,CAAC;QACzB,CAAG;QACHE,iBAAiB,EAAGA,iBAAmB;QAAAC,QAAA,eAEvCf,IAAA,CAACN,cAAc;UACduB,KAAK,EAAG9B,EAAE,CAAE,gBAAiB,CAAG;UAChCkC,gBAAgB;UAChBC,QAAQ,EAAGA,CAAA,KAAM,CAAEX,eAAiB;UACpCY,UAAU,EAAGA,CAAA,KAAM;YAClBX,gBAAgB,CAAE,CAAED,eAAgB,CAAC;UACtC,CAAG;UAAAI,QAAA,eAEHf,IAAA,CAACX,aAAa;YACbmC,uBAAuB;YACvBP,KAAK,EAAG9B,EAAE,CAAE,4BAA6B,CAAG;YAC5CmB,OAAO,EAAGK,eAAiB;YAC3Bc,IAAI,EAAGpB,iBAAmB;YAC1BqB,QAAQ,EAAGd;UAAkB,CAC7B;QAAC,CACa;MAAC,CACN;IAAC,CACK,CACnB;EAAA,CACA,CAAC;AAEL,CAAC;AAED,eAAeL,aAAa","ignoreList":[]}