@wordpress/block-library 8.8.0 → 8.9.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 (185) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/cover/transforms.js +10 -7
  3. package/build/cover/transforms.js.map +1 -1
  4. package/build/group/edit.js +3 -1
  5. package/build/group/edit.js.map +1 -1
  6. package/build/group/index.js +3 -0
  7. package/build/group/index.js.map +1 -1
  8. package/build/image/edit.js +16 -13
  9. package/build/image/edit.js.map +1 -1
  10. package/build/image/index.js +1 -1
  11. package/build/index.native.js +9 -5
  12. package/build/index.native.js.map +1 -1
  13. package/build/media-text/edit.js +4 -2
  14. package/build/media-text/edit.js.map +1 -1
  15. package/build/media-text/index.js +3 -0
  16. package/build/media-text/index.js.map +1 -1
  17. package/build/navigation/edit/index.js +32 -64
  18. package/build/navigation/edit/index.js.map +1 -1
  19. package/build/post-date/edit.js +4 -2
  20. package/build/post-date/edit.js.map +1 -1
  21. package/build/post-excerpt/edit.js +2 -2
  22. package/build/post-excerpt/edit.js.map +1 -1
  23. package/build/post-featured-image/edit.js +8 -5
  24. package/build/post-featured-image/edit.js.map +1 -1
  25. package/build/query/deprecated.js +8 -6
  26. package/build/query/deprecated.js.map +1 -1
  27. package/build/query/edit/inspector-controls/create-new-post-link.js +41 -0
  28. package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
  29. package/build/query/edit/inspector-controls/index.js +14 -6
  30. package/build/query/edit/inspector-controls/index.js.map +1 -1
  31. package/build/query/edit/pattern-selection-modal.js +2 -1
  32. package/build/query/edit/pattern-selection-modal.js.map +1 -1
  33. package/build/query/index.js +5 -12
  34. package/build/query/index.js.map +1 -1
  35. package/build/site-logo/edit.js +114 -16
  36. package/build/site-logo/edit.js.map +1 -1
  37. package/build/site-logo/index.js +1 -1
  38. package/build/social-link/icons/chain.js +1 -1
  39. package/build/social-link/icons/chain.js.map +1 -1
  40. package/build/social-link/icons/mail.js +1 -1
  41. package/build/social-link/icons/mail.js.map +1 -1
  42. package/build/spacer/edit.js +117 -11
  43. package/build/spacer/edit.js.map +1 -1
  44. package/build/template-part/edit/index.js +2 -1
  45. package/build/template-part/edit/index.js.map +1 -1
  46. package/build/template-part/edit/utils/hooks.js +2 -2
  47. package/build/template-part/edit/utils/hooks.js.map +1 -1
  48. package/build/utils/migrate-font-family.js +12 -5
  49. package/build/utils/migrate-font-family.js.map +1 -1
  50. package/build/video/edit.native.js +4 -3
  51. package/build/video/edit.native.js.map +1 -1
  52. package/build-module/cover/transforms.js +5 -1
  53. package/build-module/cover/transforms.js.map +1 -1
  54. package/build-module/group/edit.js +3 -1
  55. package/build-module/group/edit.js.map +1 -1
  56. package/build-module/group/index.js +3 -0
  57. package/build-module/group/index.js.map +1 -1
  58. package/build-module/image/edit.js +16 -13
  59. package/build-module/image/edit.js.map +1 -1
  60. package/build-module/image/index.js +1 -1
  61. package/build-module/index.native.js +9 -5
  62. package/build-module/index.native.js.map +1 -1
  63. package/build-module/media-text/edit.js +4 -2
  64. package/build-module/media-text/edit.js.map +1 -1
  65. package/build-module/media-text/index.js +3 -0
  66. package/build-module/media-text/index.js.map +1 -1
  67. package/build-module/navigation/edit/index.js +31 -63
  68. package/build-module/navigation/edit/index.js.map +1 -1
  69. package/build-module/post-date/edit.js +4 -2
  70. package/build-module/post-date/edit.js.map +1 -1
  71. package/build-module/post-excerpt/edit.js +2 -2
  72. package/build-module/post-excerpt/edit.js.map +1 -1
  73. package/build-module/post-featured-image/edit.js +8 -5
  74. package/build-module/post-featured-image/edit.js.map +1 -1
  75. package/build-module/query/deprecated.js +5 -2
  76. package/build-module/query/deprecated.js.map +1 -1
  77. package/build-module/query/edit/inspector-controls/create-new-post-link.js +33 -0
  78. package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
  79. package/build-module/query/edit/inspector-controls/index.js +12 -7
  80. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  81. package/build-module/query/edit/pattern-selection-modal.js +2 -1
  82. package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
  83. package/build-module/query/index.js +5 -10
  84. package/build-module/query/index.js.map +1 -1
  85. package/build-module/site-logo/edit.js +115 -18
  86. package/build-module/site-logo/edit.js.map +1 -1
  87. package/build-module/site-logo/index.js +1 -1
  88. package/build-module/social-link/icons/chain.js +1 -1
  89. package/build-module/social-link/icons/chain.js.map +1 -1
  90. package/build-module/social-link/icons/mail.js +1 -1
  91. package/build-module/social-link/icons/mail.js.map +1 -1
  92. package/build-module/spacer/edit.js +118 -12
  93. package/build-module/spacer/edit.js.map +1 -1
  94. package/build-module/template-part/edit/index.js +2 -1
  95. package/build-module/template-part/edit/index.js.map +1 -1
  96. package/build-module/template-part/edit/utils/hooks.js +2 -2
  97. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  98. package/build-module/utils/migrate-font-family.js +9 -1
  99. package/build-module/utils/migrate-font-family.js.map +1 -1
  100. package/build-module/video/edit.native.js +4 -3
  101. package/build-module/video/edit.native.js.map +1 -1
  102. package/build-style/cover/editor-rtl.css +3 -3
  103. package/build-style/cover/editor.css +3 -3
  104. package/build-style/cover/style-rtl.css +1 -2
  105. package/build-style/cover/style.css +1 -2
  106. package/build-style/editor-rtl.css +71 -34
  107. package/build-style/editor.css +71 -34
  108. package/build-style/html/editor-rtl.css +2 -2
  109. package/build-style/html/editor.css +2 -2
  110. package/build-style/image/editor-rtl.css +1 -1
  111. package/build-style/image/editor.css +1 -1
  112. package/build-style/query/editor-rtl.css +8 -12
  113. package/build-style/query/editor.css +8 -12
  114. package/build-style/search/style-rtl.css +2 -0
  115. package/build-style/search/style.css +2 -0
  116. package/build-style/shortcode/editor-rtl.css +3 -4
  117. package/build-style/shortcode/editor.css +3 -4
  118. package/build-style/site-logo/editor-rtl.css +46 -0
  119. package/build-style/site-logo/editor.css +46 -0
  120. package/build-style/style-rtl.css +3 -2
  121. package/build-style/style.css +3 -2
  122. package/build-style/template-part/editor-rtl.css +8 -12
  123. package/build-style/template-part/editor.css +8 -12
  124. package/package.json +31 -31
  125. package/src/buttons/test/__snapshots__/edit.native.js.snap +18 -0
  126. package/src/buttons/test/edit.native.js +123 -2
  127. package/src/cover/editor.scss +1 -1
  128. package/src/cover/style.scss +0 -1
  129. package/src/cover/transforms.js +4 -1
  130. package/src/gallery/test/index.native.js +4 -4
  131. package/src/group/block.json +3 -0
  132. package/src/group/edit.js +8 -2
  133. package/src/heading/test/__snapshots__/index.native.js.snap +12 -0
  134. package/src/heading/test/index.native.js +71 -0
  135. package/src/html/editor.scss +2 -21
  136. package/src/image/block.json +1 -1
  137. package/src/image/edit.js +21 -17
  138. package/src/image/editor.scss +1 -1
  139. package/src/index.native.js +9 -5
  140. package/src/list/test/edit.native.js +7 -7
  141. package/src/media-text/block.json +3 -0
  142. package/src/media-text/edit.js +2 -1
  143. package/src/navigation/edit/index.js +32 -106
  144. package/src/navigation/index.php +15 -8
  145. package/src/paragraph/test/edit.native.js +288 -28
  146. package/src/post-date/edit.js +4 -0
  147. package/src/post-date/index.php +17 -8
  148. package/src/post-excerpt/edit.js +1 -1
  149. package/src/post-featured-image/edit.js +6 -5
  150. package/src/post-featured-image/index.php +1 -1
  151. package/src/preformatted/test/edit.native.js +6 -9
  152. package/src/pullquote/test/edit.native.js +7 -12
  153. package/src/query/deprecated.js +4 -1
  154. package/src/query/edit/inspector-controls/create-new-post-link.js +26 -0
  155. package/src/query/edit/inspector-controls/index.js +13 -6
  156. package/src/query/edit/pattern-selection-modal.js +1 -0
  157. package/src/query/editor.scss +8 -11
  158. package/src/query/index.js +1 -7
  159. package/src/quote/test/edit.native.js +6 -10
  160. package/src/search/style.scss +3 -0
  161. package/src/shortcode/editor.scss +1 -21
  162. package/src/site-logo/block.json +1 -1
  163. package/src/site-logo/edit.js +123 -9
  164. package/src/site-logo/editor.scss +57 -0
  165. package/src/social-link/icons/chain.js +1 -1
  166. package/src/social-link/icons/mail.js +1 -1
  167. package/src/social-link/index.php +2 -2
  168. package/src/spacer/edit.js +157 -18
  169. package/src/template-part/edit/index.js +1 -0
  170. package/src/template-part/edit/utils/hooks.js +2 -2
  171. package/src/template-part/editor.scss +9 -11
  172. package/src/utils/migrate-font-family.js +8 -1
  173. package/src/verse/test/edit.native.js +4 -9
  174. package/src/video/edit.native.js +2 -2
  175. package/tsconfig.json +1 -0
  176. package/build/query/hooks.js +0 -72
  177. package/build/query/hooks.js.map +0 -1
  178. package/build/utils/clean-empty-object.js +0 -37
  179. package/build/utils/clean-empty-object.js.map +0 -1
  180. package/build-module/query/hooks.js +0 -59
  181. package/build-module/query/hooks.js.map +0 -1
  182. package/build-module/utils/clean-empty-object.js +0 -28
  183. package/build-module/utils/clean-empty-object.js.map +0 -1
  184. package/src/query/hooks.js +0 -53
  185. package/src/utils/clean-empty-object.js +0 -28
@@ -109,14 +109,25 @@ const SpacerEdit = _ref2 => {
109
109
  const {
110
110
  orientation: parentOrientation,
111
111
  type
112
- } = parentLayout || {}; // If the spacer is inside a flex container, it should either inherit the orientation
112
+ } = parentLayout || {}; // Check if the spacer is inside a flex container.
113
+
114
+ const isFlexLayout = type === 'flex'; // If the spacer is inside a flex container, it should either inherit the orientation
113
115
  // of the parent or use the flex default orientation.
114
116
 
115
- const inheritedOrientation = !parentOrientation && type === 'flex' ? 'horizontal' : parentOrientation || orientation;
117
+ const inheritedOrientation = !parentOrientation && isFlexLayout ? 'horizontal' : parentOrientation || orientation;
116
118
  const {
117
119
  height,
118
- width
120
+ width,
121
+ style: blockStyle = {}
119
122
  } = attributes;
123
+ const {
124
+ layout = {}
125
+ } = blockStyle;
126
+ const {
127
+ selfStretch,
128
+ flexSize
129
+ } = layout;
130
+ const spacingSizes = (0, _blockEditor.useSetting)('spacing.spacingSizes');
120
131
  const [isResizing, setIsResizing] = (0, _element.useState)(false);
121
132
  const [temporaryHeight, setTemporaryHeight] = (0, _element.useState)(null);
122
133
  const [temporaryWidth, setTemporaryWidth] = (0, _element.useState)(null);
@@ -127,6 +138,18 @@ const SpacerEdit = _ref2 => {
127
138
 
128
139
  const handleOnVerticalResizeStop = newHeight => {
129
140
  onResizeStop();
141
+
142
+ if (isFlexLayout) {
143
+ setAttributes({
144
+ style: { ...blockStyle,
145
+ layout: { ...layout,
146
+ flexSize: newHeight,
147
+ selfStretch: 'fixed'
148
+ }
149
+ }
150
+ });
151
+ }
152
+
130
153
  setAttributes({
131
154
  height: newHeight
132
155
  });
@@ -135,17 +158,50 @@ const SpacerEdit = _ref2 => {
135
158
 
136
159
  const handleOnHorizontalResizeStop = newWidth => {
137
160
  onResizeStop();
161
+
162
+ if (isFlexLayout) {
163
+ setAttributes({
164
+ style: { ...blockStyle,
165
+ layout: { ...layout,
166
+ flexSize: newWidth,
167
+ selfStretch: 'fixed'
168
+ }
169
+ }
170
+ });
171
+ }
172
+
138
173
  setAttributes({
139
174
  width: newWidth
140
175
  });
141
176
  setTemporaryWidth(null);
142
177
  };
143
178
 
179
+ const getHeightForVerticalBlocks = () => {
180
+ if (isFlexLayout) {
181
+ return undefined;
182
+ }
183
+
184
+ return temporaryHeight || (0, _blockEditor.getSpacingPresetCssVar)(height) || undefined;
185
+ };
186
+
187
+ const getWidthForHorizontalBlocks = () => {
188
+ if (isFlexLayout) {
189
+ return undefined;
190
+ }
191
+
192
+ return temporaryWidth || (0, _blockEditor.getSpacingPresetCssVar)(width) || undefined;
193
+ };
194
+
195
+ const sizeConditionalOnOrientation = inheritedOrientation === 'horizontal' ? temporaryWidth || flexSize : temporaryHeight || flexSize;
144
196
  const style = {
145
- height: inheritedOrientation === 'horizontal' ? 24 : temporaryHeight || (0, _blockEditor.getSpacingPresetCssVar)(height) || undefined,
146
- width: inheritedOrientation === 'horizontal' ? temporaryWidth || (0, _blockEditor.getSpacingPresetCssVar)(width) || undefined : undefined,
197
+ height: inheritedOrientation === 'horizontal' ? 24 : getHeightForVerticalBlocks(),
198
+ width: inheritedOrientation === 'horizontal' ? getWidthForHorizontalBlocks() : undefined,
147
199
  // In vertical flex containers, the spacer shrinks to nothing without a minimum width.
148
- minWidth: inheritedOrientation === 'vertical' && type === 'flex' ? 48 : undefined
200
+ minWidth: inheritedOrientation === 'vertical' && isFlexLayout ? 48 : undefined,
201
+ // Add flex-basis so temporary sizes are respected.
202
+ flexBasis: isFlexLayout ? sizeConditionalOnOrientation : undefined,
203
+ // Remove flex-grow when resizing.
204
+ flexGrow: isFlexLayout && isResizing ? 0 : undefined
149
205
  };
150
206
 
151
207
  const resizableBoxWithOrientation = blockOrientation => {
@@ -195,19 +251,69 @@ const SpacerEdit = _ref2 => {
195
251
  };
196
252
 
197
253
  (0, _element.useEffect)(() => {
198
- if (inheritedOrientation === 'horizontal' && !width) {
254
+ if (isFlexLayout && selfStretch !== 'fill' && selfStretch !== 'fit' && !flexSize) {
255
+ if (inheritedOrientation === 'horizontal') {
256
+ // If spacer is moving from a vertical container to a horizontal container,
257
+ // it might not have width but have height instead.
258
+ const newSize = (0, _blockEditor.getCustomValueFromPreset)(width, spacingSizes) || (0, _blockEditor.getCustomValueFromPreset)(height, spacingSizes) || '100px';
259
+ setAttributes({
260
+ width: '0px',
261
+ style: { ...blockStyle,
262
+ layout: { ...layout,
263
+ flexSize: newSize,
264
+ selfStretch: 'fixed'
265
+ }
266
+ }
267
+ });
268
+ } else {
269
+ const newSize = (0, _blockEditor.getCustomValueFromPreset)(height, spacingSizes) || (0, _blockEditor.getCustomValueFromPreset)(width, spacingSizes) || '100px';
270
+ setAttributes({
271
+ height: '0px',
272
+ style: { ...blockStyle,
273
+ layout: { ...layout,
274
+ flexSize: newSize,
275
+ selfStretch: 'fixed'
276
+ }
277
+ }
278
+ });
279
+ }
280
+ } else if (isFlexLayout && (selfStretch === 'fill' || selfStretch === 'fit')) {
281
+ if (inheritedOrientation === 'horizontal') {
282
+ setAttributes({
283
+ width: undefined
284
+ });
285
+ } else {
286
+ setAttributes({
287
+ height: undefined
288
+ });
289
+ }
290
+ } else if (!isFlexLayout && (selfStretch || flexSize)) {
291
+ if (inheritedOrientation === 'horizontal') {
292
+ setAttributes({
293
+ width: flexSize
294
+ });
295
+ } else {
296
+ setAttributes({
297
+ height: flexSize
298
+ });
299
+ }
300
+
199
301
  setAttributes({
200
- height: '0px',
201
- width: '72px'
302
+ style: { ...blockStyle,
303
+ layout: { ...layout,
304
+ flexSize: undefined,
305
+ selfStretch: undefined
306
+ }
307
+ }
202
308
  });
203
309
  }
204
- }, []);
310
+ }, [blockStyle, flexSize, height, inheritedOrientation, isFlexLayout, layout, selfStretch, setAttributes, spacingSizes, width]);
205
311
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_primitives.View, (0, _blockEditor.useBlockProps)({
206
312
  style,
207
313
  className: (0, _classnames.default)(className, {
208
314
  'custom-sizes-disabled': disableCustomSpacingSizes
209
315
  })
210
- }), resizableBoxWithOrientation(inheritedOrientation)), (0, _element.createElement)(_controls.default, {
316
+ }), resizableBoxWithOrientation(inheritedOrientation)), !isFlexLayout && (0, _element.createElement)(_controls.default, {
211
317
  setAttributes: setAttributes,
212
318
  height: temporaryHeight || height,
213
319
  width: temporaryWidth || width,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/spacer/edit.js"],"names":["ResizableSpacer","orientation","onResizeStart","onResize","onResizeStop","isSelected","isResizing","setIsResizing","props","getCurrentSize","elt","clientWidth","clientHeight","getNextVal","_event","_direction","nextVal","axis","position","isVisible","SpacerEdit","attributes","setAttributes","toggleSelection","context","__unstableParentLayout","parentLayout","className","disableCustomSpacingSizes","select","editorSettings","blockEditorStore","getSettings","parentOrientation","type","inheritedOrientation","height","width","temporaryHeight","setTemporaryHeight","temporaryWidth","setTemporaryWidth","handleOnVerticalResizeStop","newHeight","handleOnHorizontalResizeStop","newWidth","style","undefined","minWidth","resizableBoxWithOrientation","blockOrientation","MIN_SPACER_SIZE","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tgetSpacingPresetCssVar,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ResizableBox } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\nimport { View } from '@wordpress/primitives';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SpacerControls from './controls';\nimport { MIN_SPACER_SIZE } from './constants';\n\nconst ResizableSpacer = ( {\n\torientation,\n\tonResizeStart,\n\tonResize,\n\tonResizeStop,\n\tisSelected,\n\tisResizing,\n\tsetIsResizing,\n\t...props\n} ) => {\n\tconst getCurrentSize = ( elt ) => {\n\t\treturn orientation === 'horizontal'\n\t\t\t? elt.clientWidth\n\t\t\t: elt.clientHeight;\n\t};\n\n\tconst getNextVal = ( elt ) => {\n\t\treturn `${ getCurrentSize( elt ) }px`;\n\t};\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tclassName={ classnames( 'block-library-spacer__resize-container', {\n\t\t\t\t'resize-horizontal': orientation === 'horizontal',\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t} ) }\n\t\t\tonResizeStart={ ( _event, _direction, elt ) => {\n\t\t\t\tconst nextVal = getNextVal( elt );\n\t\t\t\tonResizeStart( nextVal );\n\t\t\t\tonResize( nextVal );\n\t\t\t} }\n\t\t\tonResize={ ( _event, _direction, elt ) => {\n\t\t\t\tonResize( getNextVal( elt ) );\n\t\t\t\tif ( ! isResizing ) {\n\t\t\t\t\tsetIsResizing( true );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonResizeStop={ ( _event, _direction, elt ) => {\n\t\t\t\tconst nextVal = getCurrentSize( elt );\n\t\t\t\tonResizeStop( `${ nextVal }px` );\n\t\t\t\tsetIsResizing( false );\n\t\t\t} }\n\t\t\t__experimentalShowTooltip={ true }\n\t\t\t__experimentalTooltipProps={ {\n\t\t\t\taxis: orientation === 'horizontal' ? 'x' : 'y',\n\t\t\t\tposition: 'corner',\n\t\t\t\tisVisible: isResizing,\n\t\t\t} }\n\t\t\tshowHandle={ isSelected }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n};\n\nconst SpacerEdit = ( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\ttoggleSelection,\n\tcontext,\n\t__unstableParentLayout: parentLayout,\n\tclassName,\n} ) => {\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\tconst { orientation } = context;\n\tconst { orientation: parentOrientation, type } = parentLayout || {};\n\t// If the spacer is inside a flex container, it should either inherit the orientation\n\t// of the parent or use the flex default orientation.\n\tconst inheritedOrientation =\n\t\t! parentOrientation && type === 'flex'\n\t\t\t? 'horizontal'\n\t\t\t: parentOrientation || orientation;\n\tconst { height, width } = attributes;\n\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\tconst [ temporaryHeight, setTemporaryHeight ] = useState( null );\n\tconst [ temporaryWidth, setTemporaryWidth ] = useState( null );\n\n\tconst onResizeStart = () => toggleSelection( false );\n\tconst onResizeStop = () => toggleSelection( true );\n\n\tconst handleOnVerticalResizeStop = ( newHeight ) => {\n\t\tonResizeStop();\n\n\t\tsetAttributes( { height: newHeight } );\n\t\tsetTemporaryHeight( null );\n\t};\n\n\tconst handleOnHorizontalResizeStop = ( newWidth ) => {\n\t\tonResizeStop();\n\t\tsetAttributes( { width: newWidth } );\n\t\tsetTemporaryWidth( null );\n\t};\n\n\tconst style = {\n\t\theight:\n\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t? 24\n\t\t\t\t: temporaryHeight ||\n\t\t\t\t getSpacingPresetCssVar( height ) ||\n\t\t\t\t undefined,\n\t\twidth:\n\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t? temporaryWidth || getSpacingPresetCssVar( width ) || undefined\n\t\t\t\t: undefined,\n\t\t// In vertical flex containers, the spacer shrinks to nothing without a minimum width.\n\t\tminWidth:\n\t\t\tinheritedOrientation === 'vertical' && type === 'flex'\n\t\t\t\t? 48\n\t\t\t\t: undefined,\n\t};\n\n\tconst resizableBoxWithOrientation = ( blockOrientation ) => {\n\t\tif ( blockOrientation === 'horizontal' ) {\n\t\t\treturn (\n\t\t\t\t<ResizableSpacer\n\t\t\t\t\tminWidth={ MIN_SPACER_SIZE }\n\t\t\t\t\tenable={ {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: true,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t} }\n\t\t\t\t\torientation={ blockOrientation }\n\t\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\t\tonResize={ setTemporaryWidth }\n\t\t\t\t\tonResizeStop={ handleOnHorizontalResizeStop }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\tsetIsResizing={ setIsResizing }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<ResizableSpacer\n\t\t\t\t\tminHeight={ MIN_SPACER_SIZE }\n\t\t\t\t\tenable={ {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: false,\n\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t} }\n\t\t\t\t\torientation={ blockOrientation }\n\t\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\t\tonResize={ setTemporaryHeight }\n\t\t\t\t\tonResizeStop={ handleOnVerticalResizeStop }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\tsetIsResizing={ setIsResizing }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\tif ( inheritedOrientation === 'horizontal' && ! width ) {\n\t\t\tsetAttributes( {\n\t\t\t\theight: '0px',\n\t\t\t\twidth: '72px',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<View\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tstyle,\n\t\t\t\t\tclassName: classnames( className, {\n\t\t\t\t\t\t'custom-sizes-disabled': disableCustomSpacingSizes,\n\t\t\t\t\t} ),\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ resizableBoxWithOrientation( inheritedOrientation ) }\n\t\t\t</View>\n\t\t\t<SpacerControls\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\theight={ temporaryHeight || height }\n\t\t\t\twidth={ temporaryWidth || width }\n\t\t\t\torientation={ inheritedOrientation }\n\t\t\t\tisResizing={ isResizing }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default SpacerEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/spacer/edit.js"],"names":["ResizableSpacer","orientation","onResizeStart","onResize","onResizeStop","isSelected","isResizing","setIsResizing","props","getCurrentSize","elt","clientWidth","clientHeight","getNextVal","_event","_direction","nextVal","axis","position","isVisible","SpacerEdit","attributes","setAttributes","toggleSelection","context","__unstableParentLayout","parentLayout","className","disableCustomSpacingSizes","select","editorSettings","blockEditorStore","getSettings","parentOrientation","type","isFlexLayout","inheritedOrientation","height","width","style","blockStyle","layout","selfStretch","flexSize","spacingSizes","temporaryHeight","setTemporaryHeight","temporaryWidth","setTemporaryWidth","handleOnVerticalResizeStop","newHeight","handleOnHorizontalResizeStop","newWidth","getHeightForVerticalBlocks","undefined","getWidthForHorizontalBlocks","sizeConditionalOnOrientation","minWidth","flexBasis","flexGrow","resizableBoxWithOrientation","blockOrientation","MIN_SPACER_SIZE","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","newSize"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseSetting,\n\tgetCustomValueFromPreset,\n\tgetSpacingPresetCssVar,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ResizableBox } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\nimport { View } from '@wordpress/primitives';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SpacerControls from './controls';\nimport { MIN_SPACER_SIZE } from './constants';\n\nconst ResizableSpacer = ( {\n\torientation,\n\tonResizeStart,\n\tonResize,\n\tonResizeStop,\n\tisSelected,\n\tisResizing,\n\tsetIsResizing,\n\t...props\n} ) => {\n\tconst getCurrentSize = ( elt ) => {\n\t\treturn orientation === 'horizontal'\n\t\t\t? elt.clientWidth\n\t\t\t: elt.clientHeight;\n\t};\n\n\tconst getNextVal = ( elt ) => {\n\t\treturn `${ getCurrentSize( elt ) }px`;\n\t};\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tclassName={ classnames( 'block-library-spacer__resize-container', {\n\t\t\t\t'resize-horizontal': orientation === 'horizontal',\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t} ) }\n\t\t\tonResizeStart={ ( _event, _direction, elt ) => {\n\t\t\t\tconst nextVal = getNextVal( elt );\n\t\t\t\tonResizeStart( nextVal );\n\t\t\t\tonResize( nextVal );\n\t\t\t} }\n\t\t\tonResize={ ( _event, _direction, elt ) => {\n\t\t\t\tonResize( getNextVal( elt ) );\n\t\t\t\tif ( ! isResizing ) {\n\t\t\t\t\tsetIsResizing( true );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonResizeStop={ ( _event, _direction, elt ) => {\n\t\t\t\tconst nextVal = getCurrentSize( elt );\n\t\t\t\tonResizeStop( `${ nextVal }px` );\n\t\t\t\tsetIsResizing( false );\n\t\t\t} }\n\t\t\t__experimentalShowTooltip={ true }\n\t\t\t__experimentalTooltipProps={ {\n\t\t\t\taxis: orientation === 'horizontal' ? 'x' : 'y',\n\t\t\t\tposition: 'corner',\n\t\t\t\tisVisible: isResizing,\n\t\t\t} }\n\t\t\tshowHandle={ isSelected }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n};\n\nconst SpacerEdit = ( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\ttoggleSelection,\n\tcontext,\n\t__unstableParentLayout: parentLayout,\n\tclassName,\n} ) => {\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\tconst { orientation } = context;\n\tconst { orientation: parentOrientation, type } = parentLayout || {};\n\t// Check if the spacer is inside a flex container.\n\tconst isFlexLayout = type === 'flex';\n\t// If the spacer is inside a flex container, it should either inherit the orientation\n\t// of the parent or use the flex default orientation.\n\tconst inheritedOrientation =\n\t\t! parentOrientation && isFlexLayout\n\t\t\t? 'horizontal'\n\t\t\t: parentOrientation || orientation;\n\tconst { height, width, style: blockStyle = {} } = attributes;\n\n\tconst { layout = {} } = blockStyle;\n\tconst { selfStretch, flexSize } = layout;\n\n\tconst spacingSizes = useSetting( 'spacing.spacingSizes' );\n\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\tconst [ temporaryHeight, setTemporaryHeight ] = useState( null );\n\tconst [ temporaryWidth, setTemporaryWidth ] = useState( null );\n\n\tconst onResizeStart = () => toggleSelection( false );\n\tconst onResizeStop = () => toggleSelection( true );\n\n\tconst handleOnVerticalResizeStop = ( newHeight ) => {\n\t\tonResizeStop();\n\n\t\tif ( isFlexLayout ) {\n\t\t\tsetAttributes( {\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: newHeight,\n\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tsetAttributes( { height: newHeight } );\n\t\tsetTemporaryHeight( null );\n\t};\n\n\tconst handleOnHorizontalResizeStop = ( newWidth ) => {\n\t\tonResizeStop();\n\n\t\tif ( isFlexLayout ) {\n\t\t\tsetAttributes( {\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: newWidth,\n\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tsetAttributes( { width: newWidth } );\n\t\tsetTemporaryWidth( null );\n\t};\n\n\tconst getHeightForVerticalBlocks = () => {\n\t\tif ( isFlexLayout ) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn temporaryHeight || getSpacingPresetCssVar( height ) || undefined;\n\t};\n\n\tconst getWidthForHorizontalBlocks = () => {\n\t\tif ( isFlexLayout ) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn temporaryWidth || getSpacingPresetCssVar( width ) || undefined;\n\t};\n\n\tconst sizeConditionalOnOrientation =\n\t\tinheritedOrientation === 'horizontal'\n\t\t\t? temporaryWidth || flexSize\n\t\t\t: temporaryHeight || flexSize;\n\n\tconst style = {\n\t\theight:\n\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t? 24\n\t\t\t\t: getHeightForVerticalBlocks(),\n\t\twidth:\n\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t? getWidthForHorizontalBlocks()\n\t\t\t\t: undefined,\n\t\t// In vertical flex containers, the spacer shrinks to nothing without a minimum width.\n\t\tminWidth:\n\t\t\tinheritedOrientation === 'vertical' && isFlexLayout\n\t\t\t\t? 48\n\t\t\t\t: undefined,\n\t\t// Add flex-basis so temporary sizes are respected.\n\t\tflexBasis: isFlexLayout ? sizeConditionalOnOrientation : undefined,\n\t\t// Remove flex-grow when resizing.\n\t\tflexGrow: isFlexLayout && isResizing ? 0 : undefined,\n\t};\n\n\tconst resizableBoxWithOrientation = ( blockOrientation ) => {\n\t\tif ( blockOrientation === 'horizontal' ) {\n\t\t\treturn (\n\t\t\t\t<ResizableSpacer\n\t\t\t\t\tminWidth={ MIN_SPACER_SIZE }\n\t\t\t\t\tenable={ {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: true,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t} }\n\t\t\t\t\torientation={ blockOrientation }\n\t\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\t\tonResize={ setTemporaryWidth }\n\t\t\t\t\tonResizeStop={ handleOnHorizontalResizeStop }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\tsetIsResizing={ setIsResizing }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<ResizableSpacer\n\t\t\t\t\tminHeight={ MIN_SPACER_SIZE }\n\t\t\t\t\tenable={ {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: false,\n\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t} }\n\t\t\t\t\torientation={ blockOrientation }\n\t\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\t\tonResize={ setTemporaryHeight }\n\t\t\t\t\tonResizeStop={ handleOnVerticalResizeStop }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\tsetIsResizing={ setIsResizing }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisFlexLayout &&\n\t\t\tselfStretch !== 'fill' &&\n\t\t\tselfStretch !== 'fit' &&\n\t\t\t! flexSize\n\t\t) {\n\t\t\tif ( inheritedOrientation === 'horizontal' ) {\n\t\t\t\t// If spacer is moving from a vertical container to a horizontal container,\n\t\t\t\t// it might not have width but have height instead.\n\t\t\t\tconst newSize =\n\t\t\t\t\tgetCustomValueFromPreset( width, spacingSizes ) ||\n\t\t\t\t\tgetCustomValueFromPreset( height, spacingSizes ) ||\n\t\t\t\t\t'100px';\n\t\t\t\tsetAttributes( {\n\t\t\t\t\twidth: '0px',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...blockStyle,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\tflexSize: newSize,\n\t\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst newSize =\n\t\t\t\t\tgetCustomValueFromPreset( height, spacingSizes ) ||\n\t\t\t\t\tgetCustomValueFromPreset( width, spacingSizes ) ||\n\t\t\t\t\t'100px';\n\t\t\t\tsetAttributes( {\n\t\t\t\t\theight: '0px',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...blockStyle,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\tflexSize: newSize,\n\t\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t} else if (\n\t\t\tisFlexLayout &&\n\t\t\t( selfStretch === 'fill' || selfStretch === 'fit' )\n\t\t) {\n\t\t\tif ( inheritedOrientation === 'horizontal' ) {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\twidth: undefined,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\theight: undefined,\n\t\t\t\t} );\n\t\t\t}\n\t\t} else if ( ! isFlexLayout && ( selfStretch || flexSize ) ) {\n\t\t\tif ( inheritedOrientation === 'horizontal' ) {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\twidth: flexSize,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\theight: flexSize,\n\t\t\t\t} );\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: undefined,\n\t\t\t\t\t\tselfStretch: undefined,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tblockStyle,\n\t\tflexSize,\n\t\theight,\n\t\tinheritedOrientation,\n\t\tisFlexLayout,\n\t\tlayout,\n\t\tselfStretch,\n\t\tsetAttributes,\n\t\tspacingSizes,\n\t\twidth,\n\t] );\n\n\treturn (\n\t\t<>\n\t\t\t<View\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tstyle,\n\t\t\t\t\tclassName: classnames( className, {\n\t\t\t\t\t\t'custom-sizes-disabled': disableCustomSpacingSizes,\n\t\t\t\t\t} ),\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ resizableBoxWithOrientation( inheritedOrientation ) }\n\t\t\t</View>\n\t\t\t{ ! isFlexLayout && (\n\t\t\t\t<SpacerControls\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\theight={ temporaryHeight || height }\n\t\t\t\t\twidth={ temporaryWidth || width }\n\t\t\t\t\torientation={ inheritedOrientation }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default SpacerEdit;\n"]}
@@ -148,7 +148,8 @@ function TemplatePartEdit(_ref) {
148
148
  overlayClassName: "block-editor-template-part__selection-modal",
149
149
  title: (0, _i18n.sprintf)( // Translators: %s as template part area title ("Header", "Footer", etc.).
150
150
  (0, _i18n.__)('Choose a %s'), areaObject.label.toLowerCase()),
151
- onRequestClose: () => setIsTemplatePartSelectionOpen(false)
151
+ onRequestClose: () => setIsTemplatePartSelectionOpen(false),
152
+ isFullScreen: true
152
153
  }, (0, _element.createElement)(_selectionModal.default, {
153
154
  templatePartId: templatePartId,
154
155
  clientId: clientId,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/index.js"],"names":["TemplatePartEdit","attributes","setAttributes","clientId","isSelected","slug","theme","tagName","layout","templatePartId","hasAlreadyRendered","isTemplatePartSelectionOpen","setIsTemplatePartSelectionOpen","isResolved","innerBlocks","isMissing","area","select","getEditedEntityRecord","hasFinishedResolution","coreStore","getBlocks","blockEditorStore","getEntityArgs","entityRecord","_area","hasResolvedEntity","templateParts","blockPatterns","hasReplacements","length","areaObject","blockProps","isPlaceholder","isEntityAvailable","TagName","canReplace","BlockTitle","label","toLowerCase"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tBlockTitle,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n} from '@wordpress/block-editor';\nimport { Spinner, Modal, MenuItem } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartPlaceholder from './placeholder';\nimport TemplatePartSelectionModal from './selection-modal';\nimport { TemplatePartAdvancedControls } from './advanced-controls';\nimport TemplatePartInnerBlocks from './inner-blocks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseTemplatePartArea,\n} from './utils/hooks';\n\nexport default function TemplatePartEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n} ) {\n\tconst { slug, theme, tagName, layout = {} } = attributes;\n\tconst templatePartId = createTemplatePartId( theme, slug );\n\tconst hasAlreadyRendered = useHasRecursion( templatePartId );\n\tconst [ isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen ] =\n\t\tuseState( false );\n\n\t// Set the postId block attribute if it did not exist,\n\t// but wait until the inner blocks have loaded to allow\n\t// new edits to trigger this.\n\tconst { isResolved, innerBlocks, isMissing, area } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\n\t\t\tconst getEntityArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t];\n\t\t\tconst entityRecord = templatePartId\n\t\t\t\t? getEditedEntityRecord( ...getEntityArgs )\n\t\t\t\t: null;\n\t\t\tconst _area = entityRecord?.area || attributes.area;\n\t\t\tconst hasResolvedEntity = templatePartId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tgetEntityArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisResolved: hasResolvedEntity,\n\t\t\t\tisMissing: hasResolvedEntity && isEmpty( entityRecord ),\n\t\t\t\tarea: _area,\n\t\t\t};\n\t\t},\n\t\t[ templatePartId, clientId ]\n\t);\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst hasReplacements = !! templateParts.length || !! blockPatterns.length;\n\tconst areaObject = useTemplatePartArea( area );\n\tconst blockProps = useBlockProps();\n\tconst isPlaceholder = ! slug;\n\tconst isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;\n\tconst TagName = tagName || areaObject.tagName;\n\n\t// The `isSelected` check ensures the `BlockSettingsMenuControls` fill\n\t// doesn't render multiple times. The block controls has similar internal check.\n\tconst canReplace =\n\t\tisSelected &&\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\t( area === 'header' || area === 'footer' );\n\n\t// We don't want to render a missing state if we have any inner blocks.\n\t// A new template part is automatically created if we have any inner blocks but no entity.\n\tif (\n\t\tinnerBlocks.length === 0 &&\n\t\t( ( slug && ! theme ) || ( slug && isMissing ) )\n\t) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Template part slug */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Template part has been deleted or is unavailable: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tslug\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RecursionProvider uniqueId={ templatePartId }>\n\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\thasInnerBlocks={ innerBlocks.length > 0 }\n\t\t\t\t/>\n\t\t\t\t{ isPlaceholder && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<TemplatePartPlaceholder\n\t\t\t\t\t\t\tarea={ attributes.area }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tonOpenSelectionModal={ () =>\n\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t\t{ canReplace && (\n\t\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true );\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\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t__( 'Replace <BlockTitle />' ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBlockTitle: (\n\t\t\t\t\t\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\t\t\tmaximumLength={ 25 }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockSettingsMenuControls>\n\t\t\t\t) }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<TemplatePartInnerBlocks\n\t\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tpostId={ templatePartId }\n\t\t\t\t\t\thasInnerBlocks={ innerBlocks.length > 0 }\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isPlaceholder && ! isResolved && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ isTemplatePartSelectionOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\toverlayClassName=\"block-editor-template-part__selection-modal\"\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t__( 'Choose a %s' ),\n\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<TemplatePartSelectionModal\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonClose={ () =>\n\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/index.js"],"names":["TemplatePartEdit","attributes","setAttributes","clientId","isSelected","slug","theme","tagName","layout","templatePartId","hasAlreadyRendered","isTemplatePartSelectionOpen","setIsTemplatePartSelectionOpen","isResolved","innerBlocks","isMissing","area","select","getEditedEntityRecord","hasFinishedResolution","coreStore","getBlocks","blockEditorStore","getEntityArgs","entityRecord","_area","hasResolvedEntity","templateParts","blockPatterns","hasReplacements","length","areaObject","blockProps","isPlaceholder","isEntityAvailable","TagName","canReplace","BlockTitle","label","toLowerCase"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tBlockTitle,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n} from '@wordpress/block-editor';\nimport { Spinner, Modal, MenuItem } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartPlaceholder from './placeholder';\nimport TemplatePartSelectionModal from './selection-modal';\nimport { TemplatePartAdvancedControls } from './advanced-controls';\nimport TemplatePartInnerBlocks from './inner-blocks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseTemplatePartArea,\n} from './utils/hooks';\n\nexport default function TemplatePartEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n} ) {\n\tconst { slug, theme, tagName, layout = {} } = attributes;\n\tconst templatePartId = createTemplatePartId( theme, slug );\n\tconst hasAlreadyRendered = useHasRecursion( templatePartId );\n\tconst [ isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen ] =\n\t\tuseState( false );\n\n\t// Set the postId block attribute if it did not exist,\n\t// but wait until the inner blocks have loaded to allow\n\t// new edits to trigger this.\n\tconst { isResolved, innerBlocks, isMissing, area } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\n\t\t\tconst getEntityArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t];\n\t\t\tconst entityRecord = templatePartId\n\t\t\t\t? getEditedEntityRecord( ...getEntityArgs )\n\t\t\t\t: null;\n\t\t\tconst _area = entityRecord?.area || attributes.area;\n\t\t\tconst hasResolvedEntity = templatePartId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tgetEntityArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisResolved: hasResolvedEntity,\n\t\t\t\tisMissing: hasResolvedEntity && isEmpty( entityRecord ),\n\t\t\t\tarea: _area,\n\t\t\t};\n\t\t},\n\t\t[ templatePartId, clientId ]\n\t);\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst hasReplacements = !! templateParts.length || !! blockPatterns.length;\n\tconst areaObject = useTemplatePartArea( area );\n\tconst blockProps = useBlockProps();\n\tconst isPlaceholder = ! slug;\n\tconst isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;\n\tconst TagName = tagName || areaObject.tagName;\n\n\t// The `isSelected` check ensures the `BlockSettingsMenuControls` fill\n\t// doesn't render multiple times. The block controls has similar internal check.\n\tconst canReplace =\n\t\tisSelected &&\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\t( area === 'header' || area === 'footer' );\n\n\t// We don't want to render a missing state if we have any inner blocks.\n\t// A new template part is automatically created if we have any inner blocks but no entity.\n\tif (\n\t\tinnerBlocks.length === 0 &&\n\t\t( ( slug && ! theme ) || ( slug && isMissing ) )\n\t) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Template part slug */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Template part has been deleted or is unavailable: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tslug\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RecursionProvider uniqueId={ templatePartId }>\n\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\thasInnerBlocks={ innerBlocks.length > 0 }\n\t\t\t\t/>\n\t\t\t\t{ isPlaceholder && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<TemplatePartPlaceholder\n\t\t\t\t\t\t\tarea={ attributes.area }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tonOpenSelectionModal={ () =>\n\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t\t{ canReplace && (\n\t\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true );\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\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t__( 'Replace <BlockTitle />' ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBlockTitle: (\n\t\t\t\t\t\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\t\t\tmaximumLength={ 25 }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockSettingsMenuControls>\n\t\t\t\t) }\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<TemplatePartInnerBlocks\n\t\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tpostId={ templatePartId }\n\t\t\t\t\t\thasInnerBlocks={ innerBlocks.length > 0 }\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isPlaceholder && ! isResolved && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ isTemplatePartSelectionOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\toverlayClassName=\"block-editor-template-part__selection-modal\"\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t__( 'Choose a %s' ),\n\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t}\n\t\t\t\t\tisFullScreen={ true }\n\t\t\t\t>\n\t\t\t\t\t<TemplatePartSelectionModal\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonClose={ () =>\n\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -58,7 +58,7 @@ function useAlternativeTemplateParts(area, excludedId) {
58
58
  };
59
59
  return {
60
60
  templateParts: getEntityRecords('postType', 'wp_template_part', query),
61
- isLoading: _isResolving('getEntityRecords', ['postType', 'wp_template_part', query])
61
+ isResolving: _isResolving('getEntityRecords', ['postType', 'wp_template_part', query])
62
62
  };
63
63
  }, []);
64
64
  const filteredTemplateParts = (0, _element.useMemo)(() => {
@@ -67,7 +67,7 @@ function useAlternativeTemplateParts(area, excludedId) {
67
67
  }
68
68
 
69
69
  return templateParts.filter(templatePart => (0, _createTemplatePartId.createTemplatePartId)(templatePart.theme, templatePart.slug) !== excludedId && (!area || 'uncategorized' === area || templatePart.area === area)) || [];
70
- }, [templateParts, area]);
70
+ }, [templateParts, area, excludedId]);
71
71
  return {
72
72
  templateParts: filteredTemplateParts,
73
73
  isResolving
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/utils/hooks.js"],"names":["useAlternativeTemplateParts","area","excludedId","templateParts","isResolving","select","getEntityRecords","_isResolving","coreStore","query","per_page","isLoading","filteredTemplateParts","filter","templatePart","theme","slug","useAlternativeBlockPatterns","clientId","blockNameWithArea","getBlockRootClientId","getPatternsByBlockTypes","blockEditorStore","rootClientId","useCreateTemplatePartFromBlocks","setAttributes","saveEntityRecord","blocks","title","cleanSlug","replace","record","content","undefined","useTemplatePartArea","definedAreas","__experimentalGetDefaultTemplatePartAreas","selectedArea","find","definedArea","defaultArea","icon","label","tagName","area_tag"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useMemo } from '@wordpress/element';\nimport { serialize } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { createTemplatePartId } from './create-template-part-id';\n\n/**\n * Retrieves the available template parts for the given area.\n *\n * @param {string} area Template part area.\n * @param {string} excludedId Template part ID to exclude.\n *\n * @return {{ templateParts: Array, isResolving: boolean }} array of template parts.\n */\nexport function useAlternativeTemplateParts( area, excludedId ) {\n\tconst { templateParts, isResolving } = useSelect( ( select ) => {\n\t\tconst { getEntityRecords, isResolving: _isResolving } =\n\t\t\tselect( coreStore );\n\t\tconst query = { per_page: -1 };\n\t\treturn {\n\t\t\ttemplateParts: getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\tquery\n\t\t\t),\n\t\t\tisLoading: _isResolving( 'getEntityRecords', [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\tquery,\n\t\t\t] ),\n\t\t};\n\t}, [] );\n\n\tconst filteredTemplateParts = useMemo( () => {\n\t\tif ( ! templateParts ) {\n\t\t\treturn [];\n\t\t}\n\t\treturn (\n\t\t\ttemplateParts.filter(\n\t\t\t\t( templatePart ) =>\n\t\t\t\t\tcreateTemplatePartId(\n\t\t\t\t\t\ttemplatePart.theme,\n\t\t\t\t\t\ttemplatePart.slug\n\t\t\t\t\t) !== excludedId &&\n\t\t\t\t\t( ! area ||\n\t\t\t\t\t\t'uncategorized' === area ||\n\t\t\t\t\t\ttemplatePart.area === area )\n\t\t\t) || []\n\t\t);\n\t}, [ templateParts, area ] );\n\n\treturn {\n\t\ttemplateParts: filteredTemplateParts,\n\t\tisResolving,\n\t};\n}\n\n/**\n * Retrieves the available block patterns for the given area.\n *\n * @param {string} area Template part area.\n * @param {string} clientId Block Client ID. (The container of the block can impact allowed blocks).\n *\n * @return {Array} array of block patterns.\n */\nexport function useAlternativeBlockPatterns( area, clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst blockNameWithArea = area\n\t\t\t\t? `core/template-part/${ area }`\n\t\t\t\t: 'core/template-part';\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( blockNameWithArea, rootClientId );\n\t\t},\n\t\t[ area, clientId ]\n\t);\n}\n\nexport function useCreateTemplatePartFromBlocks( area, setAttributes ) {\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\treturn async ( blocks = [], title = __( 'Untitled Template Part' ) ) => {\n\t\t// Currently template parts only allow latin chars.\n\t\t// Fallback slug will receive suffix by default.\n\t\tconst cleanSlug =\n\t\t\tkebabCase( title ).replace( /[^\\w-]+/g, '' ) || 'wp-custom-part';\n\n\t\t// If we have `area` set from block attributes, means an exposed\n\t\t// block variation was inserted. So add this prop to the template\n\t\t// part entity on creation. Afterwards remove `area` value from\n\t\t// block attributes.\n\t\tconst record = {\n\t\t\ttitle,\n\t\t\tslug: cleanSlug,\n\t\t\tcontent: serialize( blocks ),\n\t\t\t// `area` is filterable on the server and defaults to `UNCATEGORIZED`\n\t\t\t// if provided value is not allowed.\n\t\t\tarea,\n\t\t};\n\t\tconst templatePart = await saveEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\trecord\n\t\t);\n\t\tsetAttributes( {\n\t\t\tslug: templatePart.slug,\n\t\t\ttheme: templatePart.theme,\n\t\t\tarea: undefined,\n\t\t} );\n\t};\n}\n\n/**\n * Retrieves the template part area object.\n *\n * @param {string} area Template part area identifier.\n *\n * @return {{icon: Object, label: string, tagName: string}} Template Part area.\n */\nexport function useTemplatePartArea( area ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor.\n\t\t\t/* eslint-disable @wordpress/data-no-store-string-literals */\n\t\t\tconst definedAreas =\n\t\t\t\tselect(\n\t\t\t\t\t'core/editor'\n\t\t\t\t).__experimentalGetDefaultTemplatePartAreas();\n\t\t\t/* eslint-enable @wordpress/data-no-store-string-literals */\n\n\t\t\tconst selectedArea = definedAreas.find(\n\t\t\t\t( definedArea ) => definedArea.area === area\n\t\t\t);\n\t\t\tconst defaultArea = definedAreas.find(\n\t\t\t\t( definedArea ) => definedArea.area === 'uncategorized'\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\ticon: selectedArea?.icon || defaultArea?.icon,\n\t\t\t\tlabel: selectedArea?.label || __( 'Template Part' ),\n\t\t\t\ttagName: selectedArea?.area_tag ?? 'div',\n\t\t\t};\n\t\t},\n\t\t[ area ]\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/utils/hooks.js"],"names":["useAlternativeTemplateParts","area","excludedId","templateParts","isResolving","select","getEntityRecords","_isResolving","coreStore","query","per_page","filteredTemplateParts","filter","templatePart","theme","slug","useAlternativeBlockPatterns","clientId","blockNameWithArea","getBlockRootClientId","getPatternsByBlockTypes","blockEditorStore","rootClientId","useCreateTemplatePartFromBlocks","setAttributes","saveEntityRecord","blocks","title","cleanSlug","replace","record","content","undefined","useTemplatePartArea","definedAreas","__experimentalGetDefaultTemplatePartAreas","selectedArea","find","definedArea","defaultArea","icon","label","tagName","area_tag"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useMemo } from '@wordpress/element';\nimport { serialize } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { createTemplatePartId } from './create-template-part-id';\n\n/**\n * Retrieves the available template parts for the given area.\n *\n * @param {string} area Template part area.\n * @param {string} excludedId Template part ID to exclude.\n *\n * @return {{ templateParts: Array, isResolving: boolean }} array of template parts.\n */\nexport function useAlternativeTemplateParts( area, excludedId ) {\n\tconst { templateParts, isResolving } = useSelect( ( select ) => {\n\t\tconst { getEntityRecords, isResolving: _isResolving } =\n\t\t\tselect( coreStore );\n\t\tconst query = { per_page: -1 };\n\t\treturn {\n\t\t\ttemplateParts: getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\tquery\n\t\t\t),\n\t\t\tisResolving: _isResolving( 'getEntityRecords', [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\tquery,\n\t\t\t] ),\n\t\t};\n\t}, [] );\n\n\tconst filteredTemplateParts = useMemo( () => {\n\t\tif ( ! templateParts ) {\n\t\t\treturn [];\n\t\t}\n\t\treturn (\n\t\t\ttemplateParts.filter(\n\t\t\t\t( templatePart ) =>\n\t\t\t\t\tcreateTemplatePartId(\n\t\t\t\t\t\ttemplatePart.theme,\n\t\t\t\t\t\ttemplatePart.slug\n\t\t\t\t\t) !== excludedId &&\n\t\t\t\t\t( ! area ||\n\t\t\t\t\t\t'uncategorized' === area ||\n\t\t\t\t\t\ttemplatePart.area === area )\n\t\t\t) || []\n\t\t);\n\t}, [ templateParts, area, excludedId ] );\n\n\treturn {\n\t\ttemplateParts: filteredTemplateParts,\n\t\tisResolving,\n\t};\n}\n\n/**\n * Retrieves the available block patterns for the given area.\n *\n * @param {string} area Template part area.\n * @param {string} clientId Block Client ID. (The container of the block can impact allowed blocks).\n *\n * @return {Array} array of block patterns.\n */\nexport function useAlternativeBlockPatterns( area, clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst blockNameWithArea = area\n\t\t\t\t? `core/template-part/${ area }`\n\t\t\t\t: 'core/template-part';\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( blockNameWithArea, rootClientId );\n\t\t},\n\t\t[ area, clientId ]\n\t);\n}\n\nexport function useCreateTemplatePartFromBlocks( area, setAttributes ) {\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\treturn async ( blocks = [], title = __( 'Untitled Template Part' ) ) => {\n\t\t// Currently template parts only allow latin chars.\n\t\t// Fallback slug will receive suffix by default.\n\t\tconst cleanSlug =\n\t\t\tkebabCase( title ).replace( /[^\\w-]+/g, '' ) || 'wp-custom-part';\n\n\t\t// If we have `area` set from block attributes, means an exposed\n\t\t// block variation was inserted. So add this prop to the template\n\t\t// part entity on creation. Afterwards remove `area` value from\n\t\t// block attributes.\n\t\tconst record = {\n\t\t\ttitle,\n\t\t\tslug: cleanSlug,\n\t\t\tcontent: serialize( blocks ),\n\t\t\t// `area` is filterable on the server and defaults to `UNCATEGORIZED`\n\t\t\t// if provided value is not allowed.\n\t\t\tarea,\n\t\t};\n\t\tconst templatePart = await saveEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\trecord\n\t\t);\n\t\tsetAttributes( {\n\t\t\tslug: templatePart.slug,\n\t\t\ttheme: templatePart.theme,\n\t\t\tarea: undefined,\n\t\t} );\n\t};\n}\n\n/**\n * Retrieves the template part area object.\n *\n * @param {string} area Template part area identifier.\n *\n * @return {{icon: Object, label: string, tagName: string}} Template Part area.\n */\nexport function useTemplatePartArea( area ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor.\n\t\t\t/* eslint-disable @wordpress/data-no-store-string-literals */\n\t\t\tconst definedAreas =\n\t\t\t\tselect(\n\t\t\t\t\t'core/editor'\n\t\t\t\t).__experimentalGetDefaultTemplatePartAreas();\n\t\t\t/* eslint-enable @wordpress/data-no-store-string-literals */\n\n\t\t\tconst selectedArea = definedAreas.find(\n\t\t\t\t( definedArea ) => definedArea.area === area\n\t\t\t);\n\t\t\tconst defaultArea = definedAreas.find(\n\t\t\t\t( definedArea ) => definedArea.area === 'uncategorized'\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\ticon: selectedArea?.icon || defaultArea?.icon,\n\t\t\t\tlabel: selectedArea?.label || __( 'Template Part' ),\n\t\t\t\ttagName: selectedArea?.area_tag ?? 'div',\n\t\t\t};\n\t\t},\n\t\t[ area ]\n\t);\n}\n"]}
@@ -1,18 +1,24 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.default = _default;
9
7
 
10
- var _cleanEmptyObject = _interopRequireDefault(require("./clean-empty-object"));
8
+ var _blockEditor = require("@wordpress/block-editor");
9
+
10
+ var _privateApis = require("../private-apis");
11
11
 
12
12
  /**
13
- * Internal dependencies
13
+ * WordPress dependencies
14
14
  */
15
15
 
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+ const {
20
+ cleanEmptyObject
21
+ } = (0, _privateApis.unlock)(_blockEditor.privateApis);
16
22
  /**
17
23
  * Migrates the current style.typography.fontFamily attribute,
18
24
  * whose value was "var:preset|font-family|helvetica-arial",
@@ -21,6 +27,7 @@ var _cleanEmptyObject = _interopRequireDefault(require("./clean-empty-object"));
21
27
  * @param {Object} attributes The current attributes
22
28
  * @return {Object} The updated attributes.
23
29
  */
30
+
24
31
  function _default(attributes) {
25
32
  var _attributes$style, _attributes$style$typ;
26
33
 
@@ -33,7 +40,7 @@ function _default(attributes) {
33
40
  ...typography
34
41
  } = attributes.style.typography;
35
42
  return { ...attributes,
36
- style: (0, _cleanEmptyObject.default)({ ...attributes.style,
43
+ style: cleanEmptyObject({ ...attributes.style,
37
44
  typography
38
45
  }),
39
46
  fontFamily: fontFamily.split('|').pop()
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/utils/migrate-font-family.js"],"names":["attributes","style","typography","fontFamily","split","pop"],"mappings":";;;;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,kBAAWA,UAAX,EAAwB;AAAA;;AACtC,MAAK,EAAEA,UAAF,aAAEA,UAAF,oCAAEA,UAAU,CAAEC,KAAd,uEAAE,kBAAmBC,UAArB,kDAAE,sBAA+BC,UAAjC,CAAL,EAAmD;AAClD,WAAOH,UAAP;AACA;;AAED,QAAM;AAAEG,IAAAA,UAAF;AAAc,OAAGD;AAAjB,MAAgCF,UAAU,CAACC,KAAX,CAAiBC,UAAvD;AAEA,SAAO,EACN,GAAGF,UADG;AAENC,IAAAA,KAAK,EAAE,+BAAkB,EACxB,GAAGD,UAAU,CAACC,KADU;AAExBC,MAAAA;AAFwB,KAAlB,CAFD;AAMNC,IAAAA,UAAU,EAAEA,UAAU,CAACC,KAAX,CAAkB,GAAlB,EAAwBC,GAAxB;AANN,GAAP;AAQA","sourcesContent":["/**\n * Internal dependencies\n */\nimport cleanEmptyObject from './clean-empty-object';\n\n/**\n * Migrates the current style.typography.fontFamily attribute,\n * whose value was \"var:preset|font-family|helvetica-arial\",\n * to the style.fontFamily attribute, whose value will be \"helvetica-arial\".\n *\n * @param {Object} attributes The current attributes\n * @return {Object} The updated attributes.\n */\nexport default function ( attributes ) {\n\tif ( ! attributes?.style?.typography?.fontFamily ) {\n\t\treturn attributes;\n\t}\n\n\tconst { fontFamily, ...typography } = attributes.style.typography;\n\n\treturn {\n\t\t...attributes,\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...attributes.style,\n\t\t\ttypography,\n\t\t} ),\n\t\tfontFamily: fontFamily.split( '|' ).pop(),\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/utils/migrate-font-family.js"],"names":["cleanEmptyObject","blockEditorPrivateApis","attributes","style","typography","fontFamily","split","pop"],"mappings":";;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAGA;AACA;AACA;AAGA,MAAM;AAAEA,EAAAA;AAAF,IAAuB,yBAAQC,wBAAR,CAA7B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,kBAAWC,UAAX,EAAwB;AAAA;;AACtC,MAAK,EAAEA,UAAF,aAAEA,UAAF,oCAAEA,UAAU,CAAEC,KAAd,uEAAE,kBAAmBC,UAArB,kDAAE,sBAA+BC,UAAjC,CAAL,EAAmD;AAClD,WAAOH,UAAP;AACA;;AAED,QAAM;AAAEG,IAAAA,UAAF;AAAc,OAAGD;AAAjB,MAAgCF,UAAU,CAACC,KAAX,CAAiBC,UAAvD;AAEA,SAAO,EACN,GAAGF,UADG;AAENC,IAAAA,KAAK,EAAEH,gBAAgB,CAAE,EACxB,GAAGE,UAAU,CAACC,KADU;AAExBC,MAAAA;AAFwB,KAAF,CAFjB;AAMNC,IAAAA,UAAU,EAAEA,UAAU,CAACC,KAAX,CAAkB,GAAlB,EAAwBC,GAAxB;AANN,GAAP;AAQA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../private-apis';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\n/**\n * Migrates the current style.typography.fontFamily attribute,\n * whose value was \"var:preset|font-family|helvetica-arial\",\n * to the style.fontFamily attribute, whose value will be \"helvetica-arial\".\n *\n * @param {Object} attributes The current attributes\n * @return {Object} The updated attributes.\n */\nexport default function ( attributes ) {\n\tif ( ! attributes?.style?.typography?.fontFamily ) {\n\t\treturn attributes;\n\t}\n\n\tconst { fontFamily, ...typography } = attributes.style.typography;\n\n\treturn {\n\t\t...attributes,\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...attributes.style,\n\t\t\ttypography,\n\t\t} ),\n\t\tfontFamily: fontFamily.split( '|' ).pop(),\n\t};\n}\n"]}
@@ -216,8 +216,9 @@ class VideoEdit extends _element.Component {
216
216
  }
217
217
 
218
218
  setAttributes({
219
- id: url,
220
- src: url
219
+ src: url,
220
+ id: undefined,
221
+ poster: undefined
221
222
  });
222
223
  } else {
223
224
  createErrorNotice((0, _i18n.__)('Invalid URL.'));
@@ -292,7 +293,7 @@ class VideoEdit extends _element.Component {
292
293
  }
293
294
  });
294
295
 
295
- if (!id) {
296
+ if (!src) {
296
297
  return (0, _element.createElement)(_reactNative.View, {
297
298
  style: {
298
299
  flex: 1
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/video/edit.native.js"],"names":["ICON_TYPE","PLACEHOLDER","RETRY","UPLOAD","VideoEdit","Component","constructor","props","state","isCaptionSelected","videoContainerHeight","mediaUploadStateReset","bind","onSelectMediaUploadOption","onSelectURL","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","updateMediaProgress","onVideoPressed","onVideoContanerLayout","onFocusCaption","componentDidMount","attributes","id","src","componentWillUnmount","isUploadInProgress","getDerivedStateFromProps","isSelected","setState","payload","setAttributes","mediaUrl","url","mediaServerId","mediaId","createErrorNotice","onReplace","embedBlock","undefined","event","width","nativeEvent","layout","height","VIDEO_ASPECT_RATIO","getIcon","iconType","iconStyle","SvgIconRetry","style","icon","getStylesFromColorScheme","iconDark","iconUploading","iconUploadingDark","SvgIcon","render","wasBlockJustInserted","toolbarEditButton","MEDIA_TYPE_VIDEO","open","getMediaOptions","replace","flex","onFocus","isUploadFailed","retryMessage","showVideo","styleIconContainer","modalIconRetry","modalIcon","iconContainer","videoStyle","video","containerStyle","containerFocused","container","videoContainer","uri","placeholderContainer","placeholderContainerDark","uploadFailedText","caption","clientId","onBlur","insertBlocksAfter","select","blockEditorStore","dispatch","noticesStore","withPreferredColorScheme"],"mappings":";;;;;;;;;AAQA;;;;AALA;;AAMA;;AAKA;;AAMA;;AACA;;AAYA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AA9CA;AACA;AACA;;AAGA;AACA;AACA;;AAiCA;AACA;AACA;AAMA,MAAMA,SAAS,GAAG;AACjBC,EAAAA,WAAW,EAAE,aADI;AAEjBC,EAAAA,KAAK,EAAE,OAFU;AAGjBC,EAAAA,MAAM,EAAE;AAHS,CAAlB;;AAMA,MAAMC,SAAN,SAAwBC,kBAAxB,CAAkC;AACjCC,EAAAA,WAAW,CAAEC,KAAF,EAAU;AACpB,UAAOA,KAAP;AAEA,SAAKC,KAAL,GAAa;AACZC,MAAAA,iBAAiB,EAAE,KADP;AAEZC,MAAAA,oBAAoB,EAAE;AAFV,KAAb;AAKA,SAAKC,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BC,IAA3B,CAAiC,IAAjC,CAA7B;AACA,SAAKC,yBAAL,GACC,KAAKA,yBAAL,CAA+BD,IAA/B,CAAqC,IAArC,CADD;AAEA,SAAKE,WAAL,GAAmB,KAAKA,WAAL,CAAiBF,IAAjB,CAAuB,IAAvB,CAAnB;AACA,SAAKG,4BAAL,GACC,KAAKA,4BAAL,CAAkCH,IAAlC,CAAwC,IAAxC,CADD;AAEA,SAAKI,4BAAL,GACC,KAAKA,4BAAL,CAAkCJ,IAAlC,CAAwC,IAAxC,CADD;AAEA,SAAKK,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBL,IAAzB,CAA+B,IAA/B,CAA3B;AACA,SAAKM,cAAL,GAAsB,KAAKA,cAAL,CAAoBN,IAApB,CAA0B,IAA1B,CAAtB;AACA,SAAKO,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BP,IAA3B,CAAiC,IAAjC,CAA7B;AACA,SAAKQ,cAAL,GAAsB,KAAKA,cAAL,CAAoBR,IAApB,CAA0B,IAA1B,CAAtB;AACA;;AAEDS,EAAAA,iBAAiB,GAAG;AACnB,UAAM;AAAEC,MAAAA;AAAF,QAAiB,KAAKf,KAA5B;;AACA,QAAKe,UAAU,CAACC,EAAX,IAAiB,sBAAaD,UAAU,CAACE,GAAxB,MAAkC,OAAxD,EAAkE;AACjE;AACA;AACD;;AAEDC,EAAAA,oBAAoB,GAAG;AACtB;AACA,QACC,sBAAW,iCAAX,KACA,KAAKjB,KAAL,CAAWkB,kBAFZ,EAGE;AACD,2BACC,iCADD,EAEC,KAAKnB,KAAL,CAAWe,UAAX,CAAsBC,EAFvB;AAIA;AACD;;AAE8B,SAAxBI,wBAAwB,CAAEpB,KAAF,EAASC,KAAT,EAAiB;AAC/C;AACA;AACA,WAAO;AACNC,MAAAA,iBAAiB,EAAEF,KAAK,CAACqB,UAAN,IAAoBpB,KAAK,CAACC;AADvC,KAAP;AAGA;;AAEDS,EAAAA,cAAc,GAAG;AAChB,UAAM;AAAEI,MAAAA;AAAF,QAAiB,KAAKf,KAA5B;;AAEA,QAAK,KAAKC,KAAL,CAAWkB,kBAAhB,EAAqC;AACpC,6DAAgCJ,UAAU,CAACC,EAA3C;AACA,KAFD,MAEO,IACND,UAAU,CAACC,EAAX,IACA,sBAAaD,UAAU,CAACE,GAAxB,MAAkC,OAF5B,EAGL;AACD,4DAA+BF,UAAU,CAACC,EAA1C;AACA;;AAED,SAAKM,QAAL,CAAe;AACdpB,MAAAA,iBAAiB,EAAE;AADL,KAAf;AAGA;;AAEDW,EAAAA,cAAc,GAAG;AAChB,QAAK,CAAE,KAAKZ,KAAL,CAAWC,iBAAlB,EAAsC;AACrC,WAAKoB,QAAL,CAAe;AAAEpB,QAAAA,iBAAiB,EAAE;AAArB,OAAf;AACA;AACD;;AAEDQ,EAAAA,mBAAmB,CAAEa,OAAF,EAAY;AAC9B,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKxB,KAA/B;;AACA,QAAKuB,OAAO,CAACE,QAAb,EAAwB;AACvBD,MAAAA,aAAa,CAAE;AAAEE,QAAAA,GAAG,EAAEH,OAAO,CAACE;AAAf,OAAF,CAAb;AACA;;AACD,QAAK,CAAE,KAAKxB,KAAL,CAAWkB,kBAAlB,EAAuC;AACtC,WAAKG,QAAL,CAAe;AAAEH,QAAAA,kBAAkB,EAAE;AAAtB,OAAf;AACA;AACD;;AAEDX,EAAAA,4BAA4B,CAAEe,OAAF,EAAY;AACvC,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKxB,KAA/B;AACAwB,IAAAA,aAAa,CAAE;AAAEP,MAAAA,GAAG,EAAEM,OAAO,CAACE,QAAf;AAAyBT,MAAAA,EAAE,EAAEO,OAAO,CAACI;AAArC,KAAF,CAAb;AACA,SAAKL,QAAL,CAAe;AAAEH,MAAAA,kBAAkB,EAAE;AAAtB,KAAf;AACA;;AAEDV,EAAAA,4BAA4B,CAAEc,OAAF,EAAY;AACvC,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKxB,KAA/B;AACAwB,IAAAA,aAAa,CAAE;AAAER,MAAAA,EAAE,EAAEO,OAAO,CAACK;AAAd,KAAF,CAAb;AACA,SAAKN,QAAL,CAAe;AAAEH,MAAAA,kBAAkB,EAAE;AAAtB,KAAf;AACA;;AAEDf,EAAAA,qBAAqB,GAAG;AACvB,UAAM;AAAEoB,MAAAA;AAAF,QAAoB,KAAKxB,KAA/B;AACAwB,IAAAA,aAAa,CAAE;AAAER,MAAAA,EAAE,EAAE,IAAN;AAAYC,MAAAA,GAAG,EAAE;AAAjB,KAAF,CAAb;AACA,SAAKK,QAAL,CAAe;AAAEH,MAAAA,kBAAkB,EAAE;AAAtB,KAAf;AACA;;AAEDb,EAAAA,yBAAyB,OAAgB;AAAA,QAAd;AAAEU,MAAAA,EAAF;AAAMU,MAAAA;AAAN,KAAc;AACxC,UAAM;AAAEF,MAAAA;AAAF,QAAoB,KAAKxB,KAA/B;AACAwB,IAAAA,aAAa,CAAE;AAAER,MAAAA,EAAF;AAAMC,MAAAA,GAAG,EAAES;AAAX,KAAF,CAAb;AACA;;AAEDnB,EAAAA,WAAW,CAAEmB,GAAF,EAAQ;AAClB,UAAM;AAAEG,MAAAA,iBAAF;AAAqBC,MAAAA,SAArB;AAAgCN,MAAAA;AAAhC,QAAkD,KAAKxB,KAA7D;;AAEA,QAAK,gBAAO0B,GAAP,CAAL,EAAoB;AACnB;AACA,YAAMK,UAAU,GAAG,oCAA0B;AAC5ChB,QAAAA,UAAU,EAAE;AAAEW,UAAAA;AAAF;AADgC,OAA1B,CAAnB;;AAGA,UAAKM,SAAS,KAAKD,UAAnB,EAAgC;AAC/BD,QAAAA,SAAS,CAAEC,UAAF,CAAT;AACA;AACA;;AAEDP,MAAAA,aAAa,CAAE;AAAER,QAAAA,EAAE,EAAEU,GAAN;AAAWT,QAAAA,GAAG,EAAES;AAAhB,OAAF,CAAb;AACA,KAXD,MAWO;AACNG,MAAAA,iBAAiB,CAAE,cAAI,cAAJ,CAAF,CAAjB;AACA;AACD;;AAEDjB,EAAAA,qBAAqB,CAAEqB,KAAF,EAAU;AAC9B,UAAM;AAAEC,MAAAA;AAAF,QAAYD,KAAK,CAACE,WAAN,CAAkBC,MAApC;AACA,UAAMC,MAAM,GAAGH,KAAK,GAAGI,+BAAvB;;AACA,QAAKD,MAAM,KAAK,KAAKpC,KAAL,CAAWE,oBAA3B,EAAkD;AACjD,WAAKmB,QAAL,CAAe;AAAEnB,QAAAA,oBAAoB,EAAEkC;AAAxB,OAAf;AACA;AACD;;AAEDE,EAAAA,OAAO,CAAEC,QAAF,EAAa;AACnB,QAAIC,SAAJ;;AACA,YAASD,QAAT;AACC,WAAK/C,SAAS,CAACE,KAAf;AACC,eAAO,4BAAC,gBAAD;AAAM,UAAA,IAAI,EAAG+C;AAAb,WAAiCC,eAAMC,IAAvC,EAAP;;AACD,WAAKnD,SAAS,CAACC,WAAf;AACC+C,QAAAA,SAAS,GAAG,KAAKzC,KAAL,CAAW6C,wBAAX,CACXF,eAAMC,IADK,EAEXD,eAAMG,QAFK,CAAZ;AAIA;;AACD,WAAKrD,SAAS,CAACG,MAAf;AACC6C,QAAAA,SAAS,GAAG,KAAKzC,KAAL,CAAW6C,wBAAX,CACXF,eAAMI,aADK,EAEXJ,eAAMK,iBAFK,CAAZ;AAIA;AAdF;;AAiBA,WAAO,4BAAC,gBAAD;AAAM,MAAA,IAAI,EAAGC;AAAb,OAA4BR,SAA5B,EAAP;AACA;;AAEDS,EAAAA,MAAM,GAAG;AACR,UAAM;AAAE1B,MAAAA,aAAF;AAAiBT,MAAAA,UAAjB;AAA6BM,MAAAA,UAA7B;AAAyC8B,MAAAA;AAAzC,QACL,KAAKnD,KADN;AAEA,UAAM;AAAEgB,MAAAA,EAAF;AAAMC,MAAAA;AAAN,QAAcF,UAApB;AACA,UAAM;AAAEZ,MAAAA;AAAF,QAA2B,KAAKF,KAAtC;AAEA,UAAMmD,iBAAiB,GACtB,4BAAC,wBAAD;AACC,MAAA,YAAY,EAAG,CAAEC,6BAAF,CADhB;AAEC,MAAA,gBAAgB,EAAG,IAFpB;AAGC,MAAA,QAAQ,EAAG,KAAK/C,yBAHjB;AAIC,MAAA,WAAW,EAAG,KAAKC,WAJpB;AAKC,MAAA,MAAM,EAAG,SAAiC;AAAA,YAA/B;AAAE+C,UAAAA,IAAF;AAAQC,UAAAA;AAAR,SAA+B;AACzC,eACC,4BAAC,wBAAD,QACGA,eAAe,EADlB,EAEC,4BAAC,yBAAD;AACC,UAAA,KAAK,EAAG,cAAI,YAAJ,CADT;AAEC,UAAA,IAAI,EAAGC,cAFR;AAGC,UAAA,OAAO,EAAGF;AAHX,UAFD,CADD;AAUA;AAhBF,MADD;;AAqBA,QAAK,CAAEtC,EAAP,EAAY;AACX,aACC,4BAAC,iBAAD;AAAM,QAAA,KAAK,EAAG;AAAEyC,UAAAA,IAAI,EAAE;AAAR;AAAd,SACC,4BAAC,6BAAD;AACC,QAAA,YAAY,EAAG,CAAEJ,6BAAF,CADhB;AAEC,QAAA,QAAQ,EAAG,KAAK/C,yBAFjB;AAGC,QAAA,WAAW,EAAG,KAAKC,WAHpB;AAIC,QAAA,IAAI,EAAG,KAAKgC,OAAL,CAAc9C,SAAS,CAACC,WAAxB,CAJR;AAKC,QAAA,OAAO,EAAG,KAAKM,KAAL,CAAW0D,OALtB;AAMC,QAAA,mBAAmB,EAClBrC,UAAU,IAAI8B;AAPhB,QADD,CADD;AAcA;;AAED,WACC,4BAAC,qCAAD;AACC,MAAA,UAAU,EAAG,CAAE9B,UADhB;AAEC,MAAA,OAAO,EAAG,KAAKV,cAFhB;AAGC,MAAA,QAAQ,EAAG,CAAEU;AAHd,OAKC,4BAAC,iBAAD;AAAM,MAAA,KAAK,EAAG;AAAEoC,QAAAA,IAAI,EAAE;AAAR;AAAd,OACG,CAAE,KAAKxD,KAAL,CAAWC,iBAAb,IACD,4BAAC,0BAAD,QAAiBkD,iBAAjB,CAFF,EAIG/B,UAAU,IACX,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,MAAA,KAAK,EAAG,cAAI,UAAJ;AAAnB,OACC,4BAAC,2BAAD;AACC,MAAA,aAAa,EAAGG,aADjB;AAEC,MAAA,UAAU,EAAGT;AAFd,MADD,CADD,CALF,EAcC,4BAAC,gCAAD;AACC,MAAA,OAAO,EAAGC,EADX;AAEC,MAAA,8BAA8B,EAC7B,KAAKR,4BAHP;AAKC,MAAA,8BAA8B,EAC7B,KAAKC,4BANP;AAQC,MAAA,qBAAqB,EAAG,KAAKC,mBAR9B;AASC,MAAA,uBAAuB,EAAG,KAAKN,qBAThC;AAUC,MAAA,aAAa,EAAG,SAIT;AAAA,YAJW;AACjBe,UAAAA,kBADiB;AAEjBwC,UAAAA,cAFiB;AAGjBC,UAAAA;AAHiB,SAIX;AACN,cAAMC,SAAS,GACd,gBAAO5C,GAAP,KACA,CAAEE,kBADF,IAEA,CAAEwC,cAHH;AAIA,cAAMf,IAAI,GAAG,KAAKL,OAAL,CACZoB,cAAc,GACXlE,SAAS,CAACE,KADC,GAEXF,SAAS,CAACG,MAHD,CAAb;AAKA,cAAMkE,kBAAkB,GAAGH,cAAc,GACtChB,eAAMoB,cADgC,GAEtCpB,eAAMqB,SAFT;AAIA,cAAMC,aAAa,GAClB,4BAAC,iBAAD;AAAM,UAAA,KAAK,EAAGH;AAAd,WACGlB,IADH,CADD;AAMA,cAAMsB,UAAU,GAAG;AAClB7B,UAAAA,MAAM,EAAElC,oBADU;AAElB,aAAGwC,eAAMwB;AAFS,SAAnB;AAKA,cAAMC,cAAc,GACnBP,SAAS,IAAIxC,UAAb,GACGsB,eAAM0B,gBADT,GAEG1B,eAAM2B,SAHV;AAKA,eACC,4BAAC,iBAAD;AACC,UAAA,QAAQ,EAAG,KAAK1D,qBADjB;AAEC,UAAA,KAAK,EAAGwD;AAFT,WAIGP,SAAS,IACV,4BAAC,iBAAD;AAAM,UAAA,KAAK,EAAGlB,eAAM4B;AAApB,WACC,4BAAC,wBAAD;AACC,UAAA,UAAU,EACTlD,UAAU,IACV,CAAE,KAAKpB,KAAL,CACAC,iBAJJ;AAMC,UAAA,KAAK,EAAGgE,UANT;AAOC,UAAA,MAAM,EAAG;AAAEM,YAAAA,GAAG,EAAEvD;AAAP,WAPV;AAQC,UAAA,MAAM,EAAG;AARV,UADD,CALF,EAkBG,CAAE4C,SAAF,IACD,4BAAC,iBAAD;AACC,UAAA,KAAK,EAAG;AACPxB,YAAAA,MAAM,EAAElC,oBADD;AAEP+B,YAAAA,KAAK,EAAE,MAFA;AAGP,eAAG,KAAKlC,KAAL,CAAW6C,wBAAX,CACFF,eAAM8B,oBADJ,EAEF9B,eAAM+B,wBAFJ;AAHI;AADT,WAUGvE,oBAAoB,GAAG,CAAvB,IACD8D,aAXF,EAYGN,cAAc,IACf,4BAAC,iBAAD;AACC,UAAA,KAAK,EACJhB,eAAMgC;AAFR,WAKGf,YALH,CAbF,CAnBF,CADD;AA6CA;AAzFF,MAdD,EAyGC,4BAAC,yBAAD;AACC,MAAA,UAAU,EAAG,IADd;AAEC,MAAA,yBAAyB,EAAKgB,OAAF,IAC3B,CAAEA,OAAF;AACG;AACA,oBAAI,sBAAJ,CAFH,GAGG;AACA;AACA,oBAAI,mBAAJ,CAFA,EAGAA,OAHA,CANL;AAYC,MAAA,QAAQ,EAAG,KAAK5E,KAAL,CAAW6E,QAZvB;AAaC,MAAA,UAAU,EAAG,KAAK5E,KAAL,CAAWC,iBAbzB;AAcC,MAAA,OAAO,EAAG,KAAKW,cAdhB;AAeC,MAAA,MAAM,EAAG,KAAKb,KAAL,CAAW8E,MAfrB,CAe8B;AAf9B;AAgBC,MAAA,iBAAiB,EAAG,KAAK9E,KAAL,CAAW+E;AAhBhC,MAzGD,CALD,CADD;AAoIA;;AA5UgC;;eA+UnB,sBAAS,CACvB,sBAAY,CAAEC,MAAF;AAAA,MAAU;AAAEH,IAAAA;AAAF,GAAV;AAAA,SAA8B;AACzC1B,IAAAA,oBAAoB,EAAE6B,MAAM,CAAEC,kBAAF,CAAN,CAA2B9B,oBAA3B,CACrB0B,QADqB,EAErB,eAFqB;AADmB,GAA9B;AAAA,CAAZ,CADuB,EAOvB,wBAAgBK,QAAF,IAAgB;AAC7B,QAAM;AAAErD,IAAAA;AAAF,MAAwBqD,QAAQ,CAAEC,cAAF,CAAtC;AAEA,SAAO;AAAEtD,IAAAA;AAAF,GAAP;AACA,CAJD,CAPuB,EAYvBuD,iCAZuB,CAAT,EAaVvF,SAbU,C","sourcesContent":["/**\n * External dependencies\n */\nimport { View, TouchableWithoutFeedback, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport {\n\tmediaUploadSync,\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n} from '@wordpress/react-native-bridge';\nimport {\n\tIcon,\n\tToolbarButton,\n\tToolbarGroup,\n\tPanelBody,\n} from '@wordpress/components';\nimport { withPreferredColorScheme, compose } from '@wordpress/compose';\nimport {\n\tBlockCaption,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadProgress,\n\tMEDIA_TYPE_VIDEO,\n\tBlockControls,\n\tVIDEO_ASPECT_RATIO,\n\tVideoPlayer,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { isURL, getProtocol } from '@wordpress/url';\nimport { doAction, hasAction } from '@wordpress/hooks';\nimport { video as SvgIcon, replace } from '@wordpress/icons';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport style from './style.scss';\nimport SvgIconRetry from './icon-retry';\nimport VideoCommonSettings from './edit-common-settings';\n\nconst ICON_TYPE = {\n\tPLACEHOLDER: 'placeholder',\n\tRETRY: 'retry',\n\tUPLOAD: 'upload',\n};\n\nclass VideoEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisCaptionSelected: false,\n\t\t\tvideoContainerHeight: 0,\n\t\t};\n\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t\tthis.onSelectMediaUploadOption =\n\t\t\tthis.onSelectMediaUploadOption.bind( this );\n\t\tthis.onSelectURL = this.onSelectURL.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.onVideoPressed = this.onVideoPressed.bind( this );\n\t\tthis.onVideoContanerLayout = this.onVideoContanerLayout.bind( this );\n\t\tthis.onFocusCaption = this.onFocusCaption.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes } = this.props;\n\t\tif ( attributes.id && getProtocol( attributes.src ) === 'file:' ) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\t// This action will only exist if the user pressed the trash button on the block holder.\n\t\tif (\n\t\t\thasAction( 'blocks.onRemoveBlockCheckUpload' ) &&\n\t\t\tthis.state.isUploadInProgress\n\t\t) {\n\t\t\tdoAction(\n\t\t\t\t'blocks.onRemoveBlockCheckUpload',\n\t\t\t\tthis.props.attributes.id\n\t\t\t);\n\t\t}\n\t}\n\n\tstatic getDerivedStateFromProps( props, state ) {\n\t\t// Avoid a UI flicker in the toolbar by insuring that isCaptionSelected\n\t\t// is updated immediately any time the isSelected prop becomes false.\n\t\treturn {\n\t\t\tisCaptionSelected: props.isSelected && state.isCaptionSelected,\n\t\t};\n\t}\n\n\tonVideoPressed() {\n\t\tconst { attributes } = this.props;\n\n\t\tif ( this.state.isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.src ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tisCaptionSelected: false,\n\t\t} );\n\t}\n\n\tonFocusCaption() {\n\t\tif ( ! this.state.isCaptionSelected ) {\n\t\t\tthis.setState( { isCaptionSelected: true } );\n\t\t}\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { src: payload.mediaUrl, id: payload.mediaServerId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id: null, src: null } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tonSelectMediaUploadOption( { id, url } ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id, src: url } );\n\t}\n\n\tonSelectURL( url ) {\n\t\tconst { createErrorNotice, onReplace, setAttributes } = this.props;\n\n\t\tif ( isURL( url ) ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetAttributes( { id: url, src: url } );\n\t\t} else {\n\t\t\tcreateErrorNotice( __( 'Invalid URL.' ) );\n\t\t}\n\t}\n\n\tonVideoContanerLayout( event ) {\n\t\tconst { width } = event.nativeEvent.layout;\n\t\tconst height = width / VIDEO_ASPECT_RATIO;\n\t\tif ( height !== this.state.videoContainerHeight ) {\n\t\t\tthis.setState( { videoContainerHeight: height } );\n\t\t}\n\t}\n\n\tgetIcon( iconType ) {\n\t\tlet iconStyle;\n\t\tswitch ( iconType ) {\n\t\t\tcase ICON_TYPE.RETRY:\n\t\t\t\treturn <Icon icon={ SvgIconRetry } { ...style.icon } />;\n\t\t\tcase ICON_TYPE.PLACEHOLDER:\n\t\t\t\ticonStyle = this.props.getStylesFromColorScheme(\n\t\t\t\t\tstyle.icon,\n\t\t\t\t\tstyle.iconDark\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase ICON_TYPE.UPLOAD:\n\t\t\t\ticonStyle = this.props.getStylesFromColorScheme(\n\t\t\t\t\tstyle.iconUploading,\n\t\t\t\t\tstyle.iconUploadingDark\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn <Icon icon={ SvgIcon } { ...iconStyle } />;\n\t}\n\n\trender() {\n\t\tconst { setAttributes, attributes, isSelected, wasBlockJustInserted } =\n\t\t\tthis.props;\n\t\tconst { id, src } = attributes;\n\t\tconst { videoContainerHeight } = this.state;\n\n\t\tconst toolbarEditButton = (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_VIDEO ] }\n\t\t\t\tisReplacingMedia={ true }\n\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tlabel={ __( 'Edit video' ) }\n\t\t\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t></MediaUpload>\n\t\t);\n\n\t\tif ( ! id ) {\n\t\t\treturn (\n\t\t\t\t<View style={ { flex: 1 } }>\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_VIDEO ] }\n\t\t\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\t\t\ticon={ this.getIcon( ICON_TYPE.PLACEHOLDER ) }\n\t\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\t\tautoOpenMediaUpload={\n\t\t\t\t\t\t\tisSelected && wasBlockJustInserted\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\taccessible={ ! isSelected }\n\t\t\t\tonPress={ this.onVideoPressed }\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t>\n\t\t\t\t<View style={ { flex: 1 } }>\n\t\t\t\t\t{ ! this.state.isCaptionSelected && (\n\t\t\t\t\t\t<BlockControls>{ toolbarEditButton }</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\tonMediaUploadStateReset={ this.mediaUploadStateReset }\n\t\t\t\t\t\trenderContent={ ( {\n\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\tisUploadFailed,\n\t\t\t\t\t\t\tretryMessage,\n\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\tconst showVideo =\n\t\t\t\t\t\t\t\tisURL( src ) &&\n\t\t\t\t\t\t\t\t! isUploadInProgress &&\n\t\t\t\t\t\t\t\t! isUploadFailed;\n\t\t\t\t\t\t\tconst icon = this.getIcon(\n\t\t\t\t\t\t\t\tisUploadFailed\n\t\t\t\t\t\t\t\t\t? ICON_TYPE.RETRY\n\t\t\t\t\t\t\t\t\t: ICON_TYPE.UPLOAD\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst styleIconContainer = isUploadFailed\n\t\t\t\t\t\t\t\t? style.modalIconRetry\n\t\t\t\t\t\t\t\t: style.modalIcon;\n\n\t\t\t\t\t\t\tconst iconContainer = (\n\t\t\t\t\t\t\t\t<View style={ styleIconContainer }>\n\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst videoStyle = {\n\t\t\t\t\t\t\t\theight: videoContainerHeight,\n\t\t\t\t\t\t\t\t...style.video,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tconst containerStyle =\n\t\t\t\t\t\t\t\tshowVideo && isSelected\n\t\t\t\t\t\t\t\t\t? style.containerFocused\n\t\t\t\t\t\t\t\t\t: style.container;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tonLayout={ this.onVideoContanerLayout }\n\t\t\t\t\t\t\t\t\tstyle={ containerStyle }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ showVideo && (\n\t\t\t\t\t\t\t\t\t\t<View style={ style.videoContainer }>\n\t\t\t\t\t\t\t\t\t\t\t<VideoPlayer\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected={\n\t\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t! this.state\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.isCaptionSelected\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ videoStyle }\n\t\t\t\t\t\t\t\t\t\t\t\tsource={ { uri: src } }\n\t\t\t\t\t\t\t\t\t\t\t\tpaused={ true }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! showVideo && (\n\t\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\theight: videoContainerHeight,\n\t\t\t\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\t\t\t\t...this.props.getStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.placeholderContainer,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.placeholderContainerDark\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ videoContainerHeight > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\ticonContainer }\n\t\t\t\t\t\t\t\t\t\t\t{ isUploadFailed && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.uploadFailedText\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ retryMessage }\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</View>\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<BlockCaption\n\t\t\t\t\t\taccessible={ true }\n\t\t\t\t\t\taccessibilityLabelCreator={ ( caption ) =>\n\t\t\t\t\t\t\t! caption\n\t\t\t\t\t\t\t\t? /* translators: accessibility text. Empty video caption. */\n\t\t\t\t\t\t\t\t __( 'Video caption. Empty' )\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text. %s: video caption. */\n\t\t\t\t\t\t\t\t\t\t__( 'Video caption. %s' ),\n\t\t\t\t\t\t\t\t\t\tcaption\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclientId={ this.props.clientId }\n\t\t\t\t\t\tisSelected={ this.state.isCaptionSelected }\n\t\t\t\t\t\tonFocus={ this.onFocusCaption }\n\t\t\t\t\t\tonBlur={ this.props.onBlur } // Always assign onBlur as props.\n\t\t\t\t\t\tinsertBlocksAfter={ this.props.insertBlocksAfter }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => ( {\n\t\twasBlockJustInserted: select( blockEditorStore ).wasBlockJustInserted(\n\t\t\tclientId,\n\t\t\t'inserter_menu'\n\t\t),\n\t} ) ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createErrorNotice } = dispatch( noticesStore );\n\n\t\treturn { createErrorNotice };\n\t} ),\n\twithPreferredColorScheme,\n] )( VideoEdit );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/video/edit.native.js"],"names":["ICON_TYPE","PLACEHOLDER","RETRY","UPLOAD","VideoEdit","Component","constructor","props","state","isCaptionSelected","videoContainerHeight","mediaUploadStateReset","bind","onSelectMediaUploadOption","onSelectURL","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","updateMediaProgress","onVideoPressed","onVideoContanerLayout","onFocusCaption","componentDidMount","attributes","id","src","componentWillUnmount","isUploadInProgress","getDerivedStateFromProps","isSelected","setState","payload","setAttributes","mediaUrl","url","mediaServerId","mediaId","createErrorNotice","onReplace","embedBlock","undefined","poster","event","width","nativeEvent","layout","height","VIDEO_ASPECT_RATIO","getIcon","iconType","iconStyle","SvgIconRetry","style","icon","getStylesFromColorScheme","iconDark","iconUploading","iconUploadingDark","SvgIcon","render","wasBlockJustInserted","toolbarEditButton","MEDIA_TYPE_VIDEO","open","getMediaOptions","replace","flex","onFocus","isUploadFailed","retryMessage","showVideo","styleIconContainer","modalIconRetry","modalIcon","iconContainer","videoStyle","video","containerStyle","containerFocused","container","videoContainer","uri","placeholderContainer","placeholderContainerDark","uploadFailedText","caption","clientId","onBlur","insertBlocksAfter","select","blockEditorStore","dispatch","noticesStore","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, TouchableWithoutFeedback, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport {\n\tmediaUploadSync,\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n} from '@wordpress/react-native-bridge';\nimport {\n\tIcon,\n\tToolbarButton,\n\tToolbarGroup,\n\tPanelBody,\n} from '@wordpress/components';\nimport { withPreferredColorScheme, compose } from '@wordpress/compose';\nimport {\n\tBlockCaption,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadProgress,\n\tMEDIA_TYPE_VIDEO,\n\tBlockControls,\n\tVIDEO_ASPECT_RATIO,\n\tVideoPlayer,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { isURL, getProtocol } from '@wordpress/url';\nimport { doAction, hasAction } from '@wordpress/hooks';\nimport { video as SvgIcon, replace } from '@wordpress/icons';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport style from './style.scss';\nimport SvgIconRetry from './icon-retry';\nimport VideoCommonSettings from './edit-common-settings';\n\nconst ICON_TYPE = {\n\tPLACEHOLDER: 'placeholder',\n\tRETRY: 'retry',\n\tUPLOAD: 'upload',\n};\n\nclass VideoEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisCaptionSelected: false,\n\t\t\tvideoContainerHeight: 0,\n\t\t};\n\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t\tthis.onSelectMediaUploadOption =\n\t\t\tthis.onSelectMediaUploadOption.bind( this );\n\t\tthis.onSelectURL = this.onSelectURL.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.onVideoPressed = this.onVideoPressed.bind( this );\n\t\tthis.onVideoContanerLayout = this.onVideoContanerLayout.bind( this );\n\t\tthis.onFocusCaption = this.onFocusCaption.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes } = this.props;\n\t\tif ( attributes.id && getProtocol( attributes.src ) === 'file:' ) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\t// This action will only exist if the user pressed the trash button on the block holder.\n\t\tif (\n\t\t\thasAction( 'blocks.onRemoveBlockCheckUpload' ) &&\n\t\t\tthis.state.isUploadInProgress\n\t\t) {\n\t\t\tdoAction(\n\t\t\t\t'blocks.onRemoveBlockCheckUpload',\n\t\t\t\tthis.props.attributes.id\n\t\t\t);\n\t\t}\n\t}\n\n\tstatic getDerivedStateFromProps( props, state ) {\n\t\t// Avoid a UI flicker in the toolbar by insuring that isCaptionSelected\n\t\t// is updated immediately any time the isSelected prop becomes false.\n\t\treturn {\n\t\t\tisCaptionSelected: props.isSelected && state.isCaptionSelected,\n\t\t};\n\t}\n\n\tonVideoPressed() {\n\t\tconst { attributes } = this.props;\n\n\t\tif ( this.state.isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.src ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tisCaptionSelected: false,\n\t\t} );\n\t}\n\n\tonFocusCaption() {\n\t\tif ( ! this.state.isCaptionSelected ) {\n\t\t\tthis.setState( { isCaptionSelected: true } );\n\t\t}\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { src: payload.mediaUrl, id: payload.mediaServerId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id: null, src: null } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tonSelectMediaUploadOption( { id, url } ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id, src: url } );\n\t}\n\n\tonSelectURL( url ) {\n\t\tconst { createErrorNotice, onReplace, setAttributes } = this.props;\n\n\t\tif ( isURL( url ) ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetAttributes( { src: url, id: undefined, poster: undefined } );\n\t\t} else {\n\t\t\tcreateErrorNotice( __( 'Invalid URL.' ) );\n\t\t}\n\t}\n\n\tonVideoContanerLayout( event ) {\n\t\tconst { width } = event.nativeEvent.layout;\n\t\tconst height = width / VIDEO_ASPECT_RATIO;\n\t\tif ( height !== this.state.videoContainerHeight ) {\n\t\t\tthis.setState( { videoContainerHeight: height } );\n\t\t}\n\t}\n\n\tgetIcon( iconType ) {\n\t\tlet iconStyle;\n\t\tswitch ( iconType ) {\n\t\t\tcase ICON_TYPE.RETRY:\n\t\t\t\treturn <Icon icon={ SvgIconRetry } { ...style.icon } />;\n\t\t\tcase ICON_TYPE.PLACEHOLDER:\n\t\t\t\ticonStyle = this.props.getStylesFromColorScheme(\n\t\t\t\t\tstyle.icon,\n\t\t\t\t\tstyle.iconDark\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase ICON_TYPE.UPLOAD:\n\t\t\t\ticonStyle = this.props.getStylesFromColorScheme(\n\t\t\t\t\tstyle.iconUploading,\n\t\t\t\t\tstyle.iconUploadingDark\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn <Icon icon={ SvgIcon } { ...iconStyle } />;\n\t}\n\n\trender() {\n\t\tconst { setAttributes, attributes, isSelected, wasBlockJustInserted } =\n\t\t\tthis.props;\n\t\tconst { id, src } = attributes;\n\t\tconst { videoContainerHeight } = this.state;\n\n\t\tconst toolbarEditButton = (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_VIDEO ] }\n\t\t\t\tisReplacingMedia={ true }\n\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tlabel={ __( 'Edit video' ) }\n\t\t\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t></MediaUpload>\n\t\t);\n\n\t\tif ( ! src ) {\n\t\t\treturn (\n\t\t\t\t<View style={ { flex: 1 } }>\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_VIDEO ] }\n\t\t\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\t\t\ticon={ this.getIcon( ICON_TYPE.PLACEHOLDER ) }\n\t\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\t\tautoOpenMediaUpload={\n\t\t\t\t\t\t\tisSelected && wasBlockJustInserted\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\taccessible={ ! isSelected }\n\t\t\t\tonPress={ this.onVideoPressed }\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t>\n\t\t\t\t<View style={ { flex: 1 } }>\n\t\t\t\t\t{ ! this.state.isCaptionSelected && (\n\t\t\t\t\t\t<BlockControls>{ toolbarEditButton }</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\tonMediaUploadStateReset={ this.mediaUploadStateReset }\n\t\t\t\t\t\trenderContent={ ( {\n\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\tisUploadFailed,\n\t\t\t\t\t\t\tretryMessage,\n\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\tconst showVideo =\n\t\t\t\t\t\t\t\tisURL( src ) &&\n\t\t\t\t\t\t\t\t! isUploadInProgress &&\n\t\t\t\t\t\t\t\t! isUploadFailed;\n\t\t\t\t\t\t\tconst icon = this.getIcon(\n\t\t\t\t\t\t\t\tisUploadFailed\n\t\t\t\t\t\t\t\t\t? ICON_TYPE.RETRY\n\t\t\t\t\t\t\t\t\t: ICON_TYPE.UPLOAD\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst styleIconContainer = isUploadFailed\n\t\t\t\t\t\t\t\t? style.modalIconRetry\n\t\t\t\t\t\t\t\t: style.modalIcon;\n\n\t\t\t\t\t\t\tconst iconContainer = (\n\t\t\t\t\t\t\t\t<View style={ styleIconContainer }>\n\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst videoStyle = {\n\t\t\t\t\t\t\t\theight: videoContainerHeight,\n\t\t\t\t\t\t\t\t...style.video,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tconst containerStyle =\n\t\t\t\t\t\t\t\tshowVideo && isSelected\n\t\t\t\t\t\t\t\t\t? style.containerFocused\n\t\t\t\t\t\t\t\t\t: style.container;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tonLayout={ this.onVideoContanerLayout }\n\t\t\t\t\t\t\t\t\tstyle={ containerStyle }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ showVideo && (\n\t\t\t\t\t\t\t\t\t\t<View style={ style.videoContainer }>\n\t\t\t\t\t\t\t\t\t\t\t<VideoPlayer\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected={\n\t\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t! this.state\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.isCaptionSelected\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ videoStyle }\n\t\t\t\t\t\t\t\t\t\t\t\tsource={ { uri: src } }\n\t\t\t\t\t\t\t\t\t\t\t\tpaused={ true }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! showVideo && (\n\t\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\theight: videoContainerHeight,\n\t\t\t\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\t\t\t\t...this.props.getStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.placeholderContainer,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.placeholderContainerDark\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ videoContainerHeight > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\ticonContainer }\n\t\t\t\t\t\t\t\t\t\t\t{ isUploadFailed && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.uploadFailedText\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ retryMessage }\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</View>\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<BlockCaption\n\t\t\t\t\t\taccessible={ true }\n\t\t\t\t\t\taccessibilityLabelCreator={ ( caption ) =>\n\t\t\t\t\t\t\t! caption\n\t\t\t\t\t\t\t\t? /* translators: accessibility text. Empty video caption. */\n\t\t\t\t\t\t\t\t __( 'Video caption. Empty' )\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text. %s: video caption. */\n\t\t\t\t\t\t\t\t\t\t__( 'Video caption. %s' ),\n\t\t\t\t\t\t\t\t\t\tcaption\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclientId={ this.props.clientId }\n\t\t\t\t\t\tisSelected={ this.state.isCaptionSelected }\n\t\t\t\t\t\tonFocus={ this.onFocusCaption }\n\t\t\t\t\t\tonBlur={ this.props.onBlur } // Always assign onBlur as props.\n\t\t\t\t\t\tinsertBlocksAfter={ this.props.insertBlocksAfter }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => ( {\n\t\twasBlockJustInserted: select( blockEditorStore ).wasBlockJustInserted(\n\t\t\tclientId,\n\t\t\t'inserter_menu'\n\t\t),\n\t} ) ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createErrorNotice } = dispatch( noticesStore );\n\n\t\treturn { createErrorNotice };\n\t} ),\n\twithPreferredColorScheme,\n] )( VideoEdit );\n"]}
@@ -2,12 +2,16 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { createBlock } from '@wordpress/blocks';
5
+ import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
5
6
  /**
6
7
  * Internal dependencies
7
8
  */
8
9
 
9
10
  import { IMAGE_BACKGROUND_TYPE, VIDEO_BACKGROUND_TYPE } from './shared';
10
- import cleanEmptyObject from '../utils/clean-empty-object';
11
+ import { unlock } from '../private-apis';
12
+ const {
13
+ cleanEmptyObject
14
+ } = unlock(blockEditorPrivateApis);
11
15
  const transforms = {
12
16
  from: [{
13
17
  type: 'block',