@wordpress/block-library 8.25.1-next.79a6196f.0 → 8.27.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 (242) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/avatar/edit.js +2 -2
  3. package/build/avatar/edit.js.map +1 -1
  4. package/build/block/edit.js +75 -12
  5. package/build/block/edit.js.map +1 -1
  6. package/build/block/{v1/edit.native.js → edit.native.js} +4 -4
  7. package/build/block/edit.native.js.map +1 -0
  8. package/build/block/index.js +5 -3
  9. package/build/block/index.js.map +1 -1
  10. package/build/button/edit.js +24 -6
  11. package/build/button/edit.js.map +1 -1
  12. package/build/button/index.js +1 -0
  13. package/build/button/index.js.map +1 -1
  14. package/build/button/save.js +3 -1
  15. package/build/button/save.js.map +1 -1
  16. package/build/embed/edit.js +3 -2
  17. package/build/embed/edit.js.map +1 -1
  18. package/build/file/index.js +0 -1
  19. package/build/file/index.js.map +1 -1
  20. package/build/footnotes/edit.js +2 -1
  21. package/build/footnotes/edit.js.map +1 -1
  22. package/build/footnotes/format.js +17 -19
  23. package/build/footnotes/format.js.map +1 -1
  24. package/build/heading/edit.js +2 -1
  25. package/build/heading/edit.js.map +1 -1
  26. package/build/heading/edit.native.js +141 -0
  27. package/build/heading/edit.native.js.map +1 -0
  28. package/build/heading/index.js +1 -0
  29. package/build/heading/index.js.map +1 -1
  30. package/build/image/edit.js +8 -4
  31. package/build/image/edit.js.map +1 -1
  32. package/build/image/image.js +33 -7
  33. package/build/image/image.js.map +1 -1
  34. package/build/image/index.js +6 -3
  35. package/build/image/index.js.map +1 -1
  36. package/build/more/index.js +4 -0
  37. package/build/more/index.js.map +1 -1
  38. package/build/navigation/edit/index.js +2 -2
  39. package/build/navigation/edit/index.js.map +1 -1
  40. package/build/navigation/index.js +0 -1
  41. package/build/navigation/index.js.map +1 -1
  42. package/build/paragraph/edit.js +2 -1
  43. package/build/paragraph/edit.js.map +1 -1
  44. package/build/paragraph/index.js +1 -1
  45. package/build/paragraph/transforms.js +1 -1
  46. package/build/post-content/edit.js +2 -2
  47. package/build/post-content/edit.js.map +1 -1
  48. package/build/post-date/edit.js +1 -1
  49. package/build/post-date/edit.js.map +1 -1
  50. package/build/post-navigation-link/edit.js +43 -2
  51. package/build/post-navigation-link/edit.js.map +1 -1
  52. package/build/post-navigation-link/index.js +8 -0
  53. package/build/post-navigation-link/index.js.map +1 -1
  54. package/build/pullquote/index.js +4 -0
  55. package/build/pullquote/index.js.map +1 -1
  56. package/build/query/edit/inspector-controls/index.js +3 -3
  57. package/build/query/edit/inspector-controls/index.js.map +1 -1
  58. package/build/query/edit/query-content.js +2 -2
  59. package/build/query/edit/query-content.js.map +1 -1
  60. package/build/query/edit/query-placeholder.js +6 -7
  61. package/build/query/edit/query-placeholder.js.map +1 -1
  62. package/build/query/index.js +1 -2
  63. package/build/query/index.js.map +1 -1
  64. package/build/query/variations.js +8 -1
  65. package/build/query/variations.js.map +1 -1
  66. package/build/query/view.js +31 -12
  67. package/build/query/view.js.map +1 -1
  68. package/build/search/index.js +0 -1
  69. package/build/search/index.js.map +1 -1
  70. package/build/table-of-contents/hooks.js +2 -2
  71. package/build/table-of-contents/hooks.js.map +1 -1
  72. package/build/template-part/edit/advanced-controls.js +1 -4
  73. package/build/template-part/edit/advanced-controls.js.map +1 -1
  74. package/build/template-part/edit/index.js +39 -17
  75. package/build/template-part/edit/index.js.map +1 -1
  76. package/build/video/edit.native.js +7 -2
  77. package/build/video/edit.native.js.map +1 -1
  78. package/build/video/transforms.js +17 -0
  79. package/build/video/transforms.js.map +1 -1
  80. package/build-module/avatar/edit.js +2 -2
  81. package/build-module/avatar/edit.js.map +1 -1
  82. package/build-module/block/edit.js +74 -11
  83. package/build-module/block/edit.js.map +1 -1
  84. package/build-module/block/{v1/edit.native.js → edit.native.js} +3 -3
  85. package/build-module/block/edit.native.js.map +1 -0
  86. package/build-module/block/index.js +5 -3
  87. package/build-module/block/index.js.map +1 -1
  88. package/build-module/button/edit.js +25 -7
  89. package/build-module/button/edit.js.map +1 -1
  90. package/build-module/button/index.js +1 -0
  91. package/build-module/button/index.js.map +1 -1
  92. package/build-module/button/save.js +4 -2
  93. package/build-module/button/save.js.map +1 -1
  94. package/build-module/embed/edit.js +3 -2
  95. package/build-module/embed/edit.js.map +1 -1
  96. package/build-module/file/index.js +0 -1
  97. package/build-module/file/index.js.map +1 -1
  98. package/build-module/footnotes/edit.js +2 -1
  99. package/build-module/footnotes/edit.js.map +1 -1
  100. package/build-module/footnotes/format.js +17 -19
  101. package/build-module/footnotes/format.js.map +1 -1
  102. package/build-module/heading/edit.js +3 -2
  103. package/build-module/heading/edit.js.map +1 -1
  104. package/build-module/heading/edit.native.js +132 -0
  105. package/build-module/heading/edit.native.js.map +1 -0
  106. package/build-module/heading/index.js +1 -0
  107. package/build-module/heading/index.js.map +1 -1
  108. package/build-module/image/edit.js +9 -5
  109. package/build-module/image/edit.js.map +1 -1
  110. package/build-module/image/image.js +33 -7
  111. package/build-module/image/image.js.map +1 -1
  112. package/build-module/image/index.js +6 -3
  113. package/build-module/image/index.js.map +1 -1
  114. package/build-module/more/index.js +4 -0
  115. package/build-module/more/index.js.map +1 -1
  116. package/build-module/navigation/edit/index.js +1 -1
  117. package/build-module/navigation/edit/index.js.map +1 -1
  118. package/build-module/navigation/index.js +0 -1
  119. package/build-module/navigation/index.js.map +1 -1
  120. package/build-module/paragraph/edit.js +3 -2
  121. package/build-module/paragraph/edit.js.map +1 -1
  122. package/build-module/paragraph/index.js +1 -1
  123. package/build-module/paragraph/transforms.js +1 -1
  124. package/build-module/post-content/edit.js +1 -1
  125. package/build-module/post-content/edit.js.map +1 -1
  126. package/build-module/post-date/edit.js +1 -1
  127. package/build-module/post-date/edit.js.map +1 -1
  128. package/build-module/post-navigation-link/edit.js +44 -3
  129. package/build-module/post-navigation-link/edit.js.map +1 -1
  130. package/build-module/post-navigation-link/index.js +8 -0
  131. package/build-module/post-navigation-link/index.js.map +1 -1
  132. package/build-module/pullquote/index.js +4 -0
  133. package/build-module/pullquote/index.js.map +1 -1
  134. package/build-module/query/edit/inspector-controls/index.js +4 -4
  135. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  136. package/build-module/query/edit/query-content.js +2 -2
  137. package/build-module/query/edit/query-content.js.map +1 -1
  138. package/build-module/query/edit/query-placeholder.js +7 -8
  139. package/build-module/query/edit/query-placeholder.js.map +1 -1
  140. package/build-module/query/index.js +1 -2
  141. package/build-module/query/index.js.map +1 -1
  142. package/build-module/query/variations.js +8 -1
  143. package/build-module/query/variations.js.map +1 -1
  144. package/build-module/query/view.js +30 -9
  145. package/build-module/query/view.js.map +1 -1
  146. package/build-module/search/index.js +0 -1
  147. package/build-module/search/index.js.map +1 -1
  148. package/build-module/table-of-contents/hooks.js +2 -2
  149. package/build-module/table-of-contents/hooks.js.map +1 -1
  150. package/build-module/template-part/edit/advanced-controls.js +1 -4
  151. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  152. package/build-module/template-part/edit/index.js +38 -16
  153. package/build-module/template-part/edit/index.js.map +1 -1
  154. package/build-module/video/edit.native.js +7 -2
  155. package/build-module/video/edit.native.js.map +1 -1
  156. package/build-module/video/transforms.js +17 -0
  157. package/build-module/video/transforms.js.map +1 -1
  158. package/build-style/common-rtl.css +4 -2
  159. package/build-style/common.css +4 -2
  160. package/build-style/cover/style-rtl.css +1 -2
  161. package/build-style/cover/style.css +1 -2
  162. package/build-style/editor-rtl.css +6 -4
  163. package/build-style/editor.css +6 -4
  164. package/build-style/gallery/style-rtl.css +2 -4
  165. package/build-style/gallery/style.css +2 -4
  166. package/build-style/image/editor-rtl.css +6 -0
  167. package/build-style/image/editor.css +6 -0
  168. package/build-style/page-list/editor-rtl.css +0 -4
  169. package/build-style/page-list/editor.css +0 -4
  170. package/build-style/pullquote/style-rtl.css +10 -1
  171. package/build-style/pullquote/style.css +10 -1
  172. package/build-style/search/style-rtl.css +2 -1
  173. package/build-style/search/style.css +2 -1
  174. package/build-style/style-rtl.css +19 -11
  175. package/build-style/style.css +19 -11
  176. package/build-style/video/style-rtl.css +1 -2
  177. package/build-style/video/style.css +1 -2
  178. package/package.json +34 -32
  179. package/src/avatar/edit.js +16 -18
  180. package/src/block/block.json +3 -0
  181. package/src/block/edit.js +96 -14
  182. package/src/block/{v1/edit.native.js → edit.native.js} +4 -4
  183. package/src/block/index.js +2 -3
  184. package/src/block/index.php +3 -31
  185. package/src/button/block.json +1 -0
  186. package/src/button/edit.js +76 -43
  187. package/src/button/save.js +3 -0
  188. package/src/embed/edit.js +3 -2
  189. package/src/file/block.json +0 -1
  190. package/src/file/index.php +11 -57
  191. package/src/footnotes/edit.js +2 -1
  192. package/src/footnotes/format.js +34 -31
  193. package/src/footnotes/index.php +20 -11
  194. package/src/heading/block.json +1 -0
  195. package/src/heading/edit.js +18 -14
  196. package/src/heading/edit.native.js +144 -0
  197. package/src/image/block.json +7 -3
  198. package/src/image/edit.js +19 -6
  199. package/src/image/editor.scss +6 -1
  200. package/src/image/image.js +101 -42
  201. package/src/image/index.js +6 -0
  202. package/src/image/index.php +14 -51
  203. package/src/more/index.js +6 -0
  204. package/src/navigation/block.json +0 -1
  205. package/src/navigation/edit/index.js +2 -2
  206. package/src/navigation/index.php +777 -28
  207. package/src/navigation-link/index.php +78 -16
  208. package/src/page-list/editor.scss +0 -4
  209. package/src/paragraph/block.json +1 -1
  210. package/src/paragraph/edit.js +23 -19
  211. package/src/post-content/edit.js +2 -2
  212. package/src/post-date/edit.js +38 -33
  213. package/src/post-navigation-link/block.json +8 -0
  214. package/src/post-navigation-link/edit.js +63 -1
  215. package/src/post-navigation-link/index.php +17 -3
  216. package/src/post-terms/index.php +13 -4
  217. package/src/pullquote/block.json +4 -0
  218. package/src/pullquote/style.scss +13 -1
  219. package/src/query/block.json +1 -2
  220. package/src/query/edit/inspector-controls/index.js +137 -146
  221. package/src/query/edit/query-content.js +9 -7
  222. package/src/query/edit/query-placeholder.js +11 -11
  223. package/src/query/index.php +33 -71
  224. package/src/query/variations.js +4 -0
  225. package/src/query/view.js +24 -19
  226. package/src/search/block.json +0 -1
  227. package/src/search/index.php +18 -36
  228. package/src/table-of-contents/hooks.js +2 -2
  229. package/src/template-part/edit/advanced-controls.js +2 -3
  230. package/src/template-part/edit/index.js +77 -50
  231. package/src/template-part/index.php +2 -2
  232. package/src/video/edit.native.js +5 -2
  233. package/src/video/test/edit.native.js +38 -0
  234. package/src/video/transforms.js +32 -0
  235. package/tsconfig.json +1 -0
  236. package/build/block/v1/edit.js +0 -116
  237. package/build/block/v1/edit.js.map +0 -1
  238. package/build/block/v1/edit.native.js.map +0 -1
  239. package/build-module/block/v1/edit.js +0 -108
  240. package/build-module/block/v1/edit.js.map +0 -1
  241. package/build-module/block/v1/edit.native.js.map +0 -1
  242. package/src/block/v1/edit.js +0 -163
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_element","_reactNativeBridge","_components","_compose","_blockEditor","_i18n","_url","_hooks","_icons","_data","_notices","_util","_style","_interopRequireDefault","_iconRetry","_editCommonSettings","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","getProtocol","src","mediaUploadSync","componentWillUnmount","hasAction","isUploadInProgress","doAction","getDerivedStateFromProps","isSelected","requestImageUploadCancelDialog","requestImageFailedRetryDialog","setState","payload","setAttributes","mediaUrl","url","mediaServerId","mediaId","createErrorNotice","onReplace","isURL","test","embedBlock","createUpgradedEmbedBlock","undefined","poster","__","event","width","nativeEvent","layout","height","VIDEO_ASPECT_RATIO","getIcon","iconType","iconStyle","_react","createElement","Icon","icon","SvgIconRetry","style","getStylesFromColorScheme","iconDark","iconUploading","iconUploadingDark","SvgIcon","render","wasBlockJustInserted","toolbarEditButton","MediaUpload","allowedTypes","MEDIA_TYPE_VIDEO","isReplacingMedia","onSelect","open","getMediaOptions","ToolbarGroup","ToolbarButton","label","replace","onClick","View","flex","MediaPlaceholder","onFocus","autoOpenMediaUpload","TouchableWithoutFeedback","accessible","onPress","disabled","BlockControls","InspectorControls","PanelBody","title","default","MediaUploadProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onUpdateMediaProgress","onMediaUploadStateReset","renderContent","isUploadFailed","retryMessage","showVideo","styleIconContainer","modalIconRetry","modalIcon","iconContainer","videoStyle","video","containerStyle","containerFocused","container","onLayout","videoContainer","VideoPlayer","source","uri","paused","placeholderContainer","placeholderContainerDark","Text","uploadFailedText","BlockCaption","accessibilityLabelCreator","caption","RichText","isEmpty","sprintf","clientId","onBlur","insertBlocksAfter","_default","compose","withSelect","select","blockEditorStore","withDispatch","dispatch","noticesStore","withPreferredColorScheme","exports"],"sources":["@wordpress/block-library/src/video/edit.native.js"],"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\tRichText,\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 ) && /^https?:/.test( getProtocol( 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\tRichText.isEmpty( 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"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_element","_reactNativeBridge","_components","_compose","_blockEditor","_i18n","_url","_hooks","_icons","_data","_notices","_util","_style","_interopRequireDefault","_iconRetry","_editCommonSettings","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","getProtocol","src","mediaUploadSync","componentWillUnmount","hasAction","isUploadInProgress","doAction","getDerivedStateFromProps","isSelected","requestImageUploadCancelDialog","requestImageFailedRetryDialog","setState","payload","setAttributes","mediaUrl","url","mediaServerId","mediaId","createErrorNotice","onReplace","isURL","test","embedBlock","createUpgradedEmbedBlock","undefined","poster","__","event","width","nativeEvent","layout","height","VIDEO_ASPECT_RATIO","getIcon","iconType","iconStyle","_react","createElement","Icon","icon","SvgIconRetry","style","getStylesFromColorScheme","iconDark","iconUploading","iconUploadingDark","SvgIcon","render","wasBlockJustInserted","guid","toolbarEditButton","MediaUpload","allowedTypes","MEDIA_TYPE_VIDEO","isReplacingMedia","onSelect","open","getMediaOptions","ToolbarGroup","ToolbarButton","label","replace","onClick","isSourcePresent","View","flex","MediaPlaceholder","onFocus","autoOpenMediaUpload","TouchableWithoutFeedback","accessible","onPress","disabled","BlockControls","InspectorControls","PanelBody","title","default","MediaUploadProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onUpdateMediaProgress","onMediaUploadStateReset","renderContent","isUploadFailed","retryMessage","showVideo","styleIconContainer","modalIconRetry","modalIcon","iconContainer","videoStyle","video","containerStyle","containerFocused","container","onLayout","videoContainer","VideoPlayer","source","uri","paused","placeholderContainer","placeholderContainerDark","Text","uploadFailedText","BlockCaption","accessibilityLabelCreator","caption","RichText","isEmpty","sprintf","clientId","onBlur","insertBlocksAfter","_default","compose","withSelect","select","blockEditorStore","withDispatch","dispatch","noticesStore","withPreferredColorScheme","exports"],"sources":["@wordpress/block-library/src/video/edit.native.js"],"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\tRichText,\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 ) && /^https?:/.test( getProtocol( 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, guid } = 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\t// NOTE: `guid` is not part of the block's attribute definition. This case\n\t\t// handled here is a temporary fix until a we find a better approach.\n\t\tconst isSourcePresent = src || ( guid && id );\n\t\tif ( ! isSourcePresent ) {\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\tRichText.isEmpty( 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"],"mappings":"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"}
@@ -86,6 +86,23 @@ const transforms = {
86
86
  }
87
87
  }
88
88
  }
89
+ }, {
90
+ type: 'raw',
91
+ isMatch: node => node.nodeName === 'P' && node.children.length === 1 && node.firstChild.nodeName === 'VIDEO',
92
+ transform: node => {
93
+ const videoElement = node.firstChild;
94
+ const attributes = {
95
+ autoplay: videoElement.hasAttribute('autoplay') ? true : undefined,
96
+ controls: videoElement.hasAttribute('controls') ? undefined : false,
97
+ loop: videoElement.hasAttribute('loop') ? true : undefined,
98
+ muted: videoElement.hasAttribute('muted') ? true : undefined,
99
+ preload: videoElement.getAttribute('preload') || undefined,
100
+ playsInline: videoElement.hasAttribute('playsinline') ? true : undefined,
101
+ poster: videoElement.getAttribute('poster') || undefined,
102
+ src: videoElement.getAttribute('src') || undefined
103
+ };
104
+ return (0, _blocks.createBlock)('core/video', attributes);
105
+ }
89
106
  }]
90
107
  };
91
108
  var _default = transforms;
@@ -1 +1 @@
1
- {"version":3,"names":["_blob","require","_blocks","transforms","from","type","isMatch","files","length","indexOf","transform","file","block","createBlock","src","createBlobURL","tag","attributes","shortcode","named","mp4","m4v","webm","ogv","flv","poster","loop","autoplay","preload","_default","exports","default"],"sources":["@wordpress/block-library/src/video/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'files',\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length === 1 &&\n\t\t\t\t\tfiles[ 0 ].type.indexOf( 'video/' ) === 0\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t// in the video block\n\t\t\t\tconst block = createBlock( 'core/video', {\n\t\t\t\t\tsrc: createBlobURL( file ),\n\t\t\t\t} );\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'video',\n\t\t\tattributes: {\n\t\t\t\tsrc: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( {\n\t\t\t\t\t\tnamed: { src, mp4, m4v, webm, ogv, flv },\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\treturn src || mp4 || m4v || webm || ogv || flv;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tposter: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { poster } } ) => {\n\t\t\t\t\t\treturn poster;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tloop: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { loop } } ) => {\n\t\t\t\t\t\treturn loop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tautoplay: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { autoplay } } ) => {\n\t\t\t\t\t\treturn autoplay;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpreload: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { preload } } ) => {\n\t\t\t\t\t\treturn preload;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,MAAME,UAAU,GAAG;EAClBC,IAAI,EAAE,CACL;IACCC,IAAI,EAAE,OAAO;IACbC,OAAOA,CAAEC,KAAK,EAAG;MAChB,OACCA,KAAK,CAACC,MAAM,KAAK,CAAC,IAClBD,KAAK,CAAE,CAAC,CAAE,CAACF,IAAI,CAACI,OAAO,CAAE,QAAS,CAAC,KAAK,CAAC;IAE3C,CAAC;IACDC,SAASA,CAAEH,KAAK,EAAG;MAClB,MAAMI,IAAI,GAAGJ,KAAK,CAAE,CAAC,CAAE;MACvB;MACA;MACA;MACA,MAAMK,KAAK,GAAG,IAAAC,mBAAW,EAAE,YAAY,EAAE;QACxCC,GAAG,EAAE,IAAAC,mBAAa,EAAEJ,IAAK;MAC1B,CAAE,CAAC;MACH,OAAOC,KAAK;IACb;EACD,CAAC,EACD;IACCP,IAAI,EAAE,WAAW;IACjBW,GAAG,EAAE,OAAO;IACZC,UAAU,EAAE;MACXH,GAAG,EAAE;QACJT,IAAI,EAAE,QAAQ;QACda,SAAS,EAAEA,CAAE;UACZC,KAAK,EAAE;YAAEL,GAAG;YAAEM,GAAG;YAAEC,GAAG;YAAEC,IAAI;YAAEC,GAAG;YAAEC;UAAI;QACxC,CAAC,KAAM;UACN,OAAOV,GAAG,IAAIM,GAAG,IAAIC,GAAG,IAAIC,IAAI,IAAIC,GAAG,IAAIC,GAAG;QAC/C;MACD,CAAC;MACDC,MAAM,EAAE;QACPpB,IAAI,EAAE,QAAQ;QACda,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEM;UAAO;QAAE,CAAC,KAAM;UACvC,OAAOA,MAAM;QACd;MACD,CAAC;MACDC,IAAI,EAAE;QACLrB,IAAI,EAAE,QAAQ;QACda,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEO;UAAK;QAAE,CAAC,KAAM;UACrC,OAAOA,IAAI;QACZ;MACD,CAAC;MACDC,QAAQ,EAAE;QACTtB,IAAI,EAAE,QAAQ;QACda,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEQ;UAAS;QAAE,CAAC,KAAM;UACzC,OAAOA,QAAQ;QAChB;MACD,CAAC;MACDC,OAAO,EAAE;QACRvB,IAAI,EAAE,QAAQ;QACda,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAES;UAAQ;QAAE,CAAC,KAAM;UACxC,OAAOA,OAAO;QACf;MACD;IACD;EACD,CAAC;AAEH,CAAC;AAAC,IAAAC,QAAA,GAEa1B,UAAU;AAAA2B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_blob","require","_blocks","transforms","from","type","isMatch","files","length","indexOf","transform","file","block","createBlock","src","createBlobURL","tag","attributes","shortcode","named","mp4","m4v","webm","ogv","flv","poster","loop","autoplay","preload","node","nodeName","children","firstChild","videoElement","hasAttribute","undefined","controls","muted","getAttribute","playsInline","_default","exports","default"],"sources":["@wordpress/block-library/src/video/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'files',\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length === 1 &&\n\t\t\t\t\tfiles[ 0 ].type.indexOf( 'video/' ) === 0\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t// in the video block\n\t\t\t\tconst block = createBlock( 'core/video', {\n\t\t\t\t\tsrc: createBlobURL( file ),\n\t\t\t\t} );\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'video',\n\t\t\tattributes: {\n\t\t\t\tsrc: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( {\n\t\t\t\t\t\tnamed: { src, mp4, m4v, webm, ogv, flv },\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\treturn src || mp4 || m4v || webm || ogv || flv;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tposter: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { poster } } ) => {\n\t\t\t\t\t\treturn poster;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tloop: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { loop } } ) => {\n\t\t\t\t\t\treturn loop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tautoplay: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { autoplay } } ) => {\n\t\t\t\t\t\treturn autoplay;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpreload: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { preload } } ) => {\n\t\t\t\t\t\treturn preload;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.nodeName === 'P' &&\n\t\t\t\tnode.children.length === 1 &&\n\t\t\t\tnode.firstChild.nodeName === 'VIDEO',\n\t\t\ttransform: ( node ) => {\n\t\t\t\tconst videoElement = node.firstChild;\n\t\t\t\tconst attributes = {\n\t\t\t\t\tautoplay: videoElement.hasAttribute( 'autoplay' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tcontrols: videoElement.hasAttribute( 'controls' )\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: false,\n\t\t\t\t\tloop: videoElement.hasAttribute( 'loop' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tmuted: videoElement.hasAttribute( 'muted' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tpreload:\n\t\t\t\t\t\tvideoElement.getAttribute( 'preload' ) || undefined,\n\t\t\t\t\tplaysInline: videoElement.hasAttribute( 'playsinline' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tposter: videoElement.getAttribute( 'poster' ) || undefined,\n\t\t\t\t\tsrc: videoElement.getAttribute( 'src' ) || undefined,\n\t\t\t\t};\n\t\t\t\treturn createBlock( 'core/video', attributes );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,MAAME,UAAU,GAAG;EAClBC,IAAI,EAAE,CACL;IACCC,IAAI,EAAE,OAAO;IACbC,OAAOA,CAAEC,KAAK,EAAG;MAChB,OACCA,KAAK,CAACC,MAAM,KAAK,CAAC,IAClBD,KAAK,CAAE,CAAC,CAAE,CAACF,IAAI,CAACI,OAAO,CAAE,QAAS,CAAC,KAAK,CAAC;IAE3C,CAAC;IACDC,SAASA,CAAEH,KAAK,EAAG;MAClB,MAAMI,IAAI,GAAGJ,KAAK,CAAE,CAAC,CAAE;MACvB;MACA;MACA;MACA,MAAMK,KAAK,GAAG,IAAAC,mBAAW,EAAE,YAAY,EAAE;QACxCC,GAAG,EAAE,IAAAC,mBAAa,EAAEJ,IAAK;MAC1B,CAAE,CAAC;MACH,OAAOC,KAAK;IACb;EACD,CAAC,EACD;IACCP,IAAI,EAAE,WAAW;IACjBW,GAAG,EAAE,OAAO;IACZC,UAAU,EAAE;MACXH,GAAG,EAAE;QACJT,IAAI,EAAE,QAAQ;QACda,SAAS,EAAEA,CAAE;UACZC,KAAK,EAAE;YAAEL,GAAG;YAAEM,GAAG;YAAEC,GAAG;YAAEC,IAAI;YAAEC,GAAG;YAAEC;UAAI;QACxC,CAAC,KAAM;UACN,OAAOV,GAAG,IAAIM,GAAG,IAAIC,GAAG,IAAIC,IAAI,IAAIC,GAAG,IAAIC,GAAG;QAC/C;MACD,CAAC;MACDC,MAAM,EAAE;QACPpB,IAAI,EAAE,QAAQ;QACda,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEM;UAAO;QAAE,CAAC,KAAM;UACvC,OAAOA,MAAM;QACd;MACD,CAAC;MACDC,IAAI,EAAE;QACLrB,IAAI,EAAE,QAAQ;QACda,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEO;UAAK;QAAE,CAAC,KAAM;UACrC,OAAOA,IAAI;QACZ;MACD,CAAC;MACDC,QAAQ,EAAE;QACTtB,IAAI,EAAE,QAAQ;QACda,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEQ;UAAS;QAAE,CAAC,KAAM;UACzC,OAAOA,QAAQ;QAChB;MACD,CAAC;MACDC,OAAO,EAAE;QACRvB,IAAI,EAAE,QAAQ;QACda,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAES;UAAQ;QAAE,CAAC,KAAM;UACxC,OAAOA,OAAO;QACf;MACD;IACD;EACD,CAAC,EACD;IACCvB,IAAI,EAAE,KAAK;IACXC,OAAO,EAAIuB,IAAI,IACdA,IAAI,CAACC,QAAQ,KAAK,GAAG,IACrBD,IAAI,CAACE,QAAQ,CAACvB,MAAM,KAAK,CAAC,IAC1BqB,IAAI,CAACG,UAAU,CAACF,QAAQ,KAAK,OAAO;IACrCpB,SAAS,EAAImB,IAAI,IAAM;MACtB,MAAMI,YAAY,GAAGJ,IAAI,CAACG,UAAU;MACpC,MAAMf,UAAU,GAAG;QAClBU,QAAQ,EAAEM,YAAY,CAACC,YAAY,CAAE,UAAW,CAAC,GAC9C,IAAI,GACJC,SAAS;QACZC,QAAQ,EAAEH,YAAY,CAACC,YAAY,CAAE,UAAW,CAAC,GAC9CC,SAAS,GACT,KAAK;QACRT,IAAI,EAAEO,YAAY,CAACC,YAAY,CAAE,MAAO,CAAC,GACtC,IAAI,GACJC,SAAS;QACZE,KAAK,EAAEJ,YAAY,CAACC,YAAY,CAAE,OAAQ,CAAC,GACxC,IAAI,GACJC,SAAS;QACZP,OAAO,EACNK,YAAY,CAACK,YAAY,CAAE,SAAU,CAAC,IAAIH,SAAS;QACpDI,WAAW,EAAEN,YAAY,CAACC,YAAY,CAAE,aAAc,CAAC,GACpD,IAAI,GACJC,SAAS;QACZV,MAAM,EAAEQ,YAAY,CAACK,YAAY,CAAE,QAAS,CAAC,IAAIH,SAAS;QAC1DrB,GAAG,EAAEmB,YAAY,CAACK,YAAY,CAAE,KAAM,CAAC,IAAIH;MAC5C,CAAC;MACD,OAAO,IAAAtB,mBAAW,EAAE,YAAY,EAAEI,UAAW,CAAC;IAC/C;EACD,CAAC;AAEH,CAAC;AAAC,IAAAuB,QAAA,GAEarC,UAAU;AAAAsC,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -153,7 +153,7 @@ const UserEdit = ({
153
153
  attributes: attributes,
154
154
  avatar: avatar,
155
155
  setAttributes: setAttributes
156
- }), createElement("div", null, attributes.isLink ? createElement("a", {
156
+ }), attributes.isLink ? createElement("a", {
157
157
  href: "#avatar-pseudo-link",
158
158
  className: "wp-block-avatar__link",
159
159
  onClick: event => event.preventDefault()
@@ -169,7 +169,7 @@ const UserEdit = ({
169
169
  blockProps: blockProps,
170
170
  isSelected: isSelected,
171
171
  setAttributes: setAttributes
172
- })));
172
+ }));
173
173
  };
174
174
  export default function Edit(props) {
175
175
  // Don't show the Comment Edit controls if we have a comment ID set, or if we're in the Site Editor (where it is `null`).
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","InspectorControls","useBlockProps","__experimentalUseBorderProps","useBorderProps","PanelBody","RangeControl","ResizableBox","ToggleControl","__","isRTL","addQueryArgs","removeQueryArgs","useUserAvatar","useCommentAvatar","UserControl","AvatarInspectorControls","setAttributes","avatar","attributes","selectUser","createElement","title","__nextHasNoMarginBottom","__next40pxDefaultSize","label","onChange","newSize","size","min","minSize","max","maxSize","initialPosition","value","isLink","checked","linkTarget","userId","ResizableAvatar","blockProps","isSelected","borderProps","doubledSizedSrc","src","s","width","height","showHandle","onResizeStop","event","direction","elt","delta","parseInt","lockAspectRatio","enable","top","right","bottom","left","minWidth","maxWidth","alt","className","style","CommentEdit","context","commentId","Fragment","href","onClick","preventDefault","UserEdit","postId","postType","Edit","props"],"sources":["@wordpress/block-library/src/avatar/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { useUserAvatar, useCommentAvatar } from './hooks';\nimport UserControl from './user-control';\n\nconst AvatarInspectorControls = ( {\n\tsetAttributes,\n\tavatar,\n\tattributes,\n\tselectUser,\n} ) => (\n\t<InspectorControls>\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: newSize,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\tmin={ avatar.minSize }\n\t\t\t\tmax={ avatar.maxSize }\n\t\t\t\tinitialPosition={ attributes?.size }\n\t\t\t\tvalue={ attributes?.size }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link to user profile' ) }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( { isLink: ! attributes.isLink } )\n\t\t\t\t}\n\t\t\t\tchecked={ attributes.isLink }\n\t\t\t/>\n\t\t\t{ attributes.isLink && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tchecked={ attributes.linkTarget === '_blank' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ selectUser && (\n\t\t\t\t<UserControl\n\t\t\t\t\tvalue={ attributes?.userId }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tuserId: value,\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</PanelBody>\n\t</InspectorControls>\n);\n\nconst ResizableAvatar = ( {\n\tsetAttributes,\n\tattributes,\n\tavatar,\n\tblockProps,\n\tisSelected,\n} ) => {\n\tconst borderProps = useBorderProps( attributes );\n\tconst doubledSizedSrc = addQueryArgs(\n\t\tremoveQueryArgs( avatar?.src, [ 's' ] ),\n\t\t{\n\t\t\ts: attributes?.size * 2,\n\t\t}\n\t);\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: attributes.size,\n\t\t\t\t\theight: attributes.size,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: parseInt(\n\t\t\t\t\t\t\tattributes.size + ( delta.height || delta.width ),\n\t\t\t\t\t\t\t10\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: ! isRTL(),\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: isRTL(),\n\t\t\t\t} }\n\t\t\t\tminWidth={ avatar.minSize }\n\t\t\t\tmaxWidth={ avatar.maxSize }\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ doubledSizedSrc }\n\t\t\t\t\talt={ avatar.alt }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'avatar',\n\t\t\t\t\t\t'avatar-' + attributes.size,\n\t\t\t\t\t\t'photo',\n\t\t\t\t\t\t'wp-block-avatar__image',\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ borderProps.style }\n\t\t\t\t/>\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n};\nconst CommentEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { commentId } = context;\n\tconst blockProps = useBlockProps();\n\tconst avatar = useCommentAvatar( { commentId } );\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tselectUser={ false }\n\t\t\t/>\n\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nconst UserEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { postId, postType } = context;\n\tconst avatar = useUserAvatar( {\n\t\tuserId: attributes?.userId,\n\t\tpostId,\n\t\tpostType,\n\t} );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tselectUser={ true }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t\t<div>\n\t\t\t\t{ attributes.isLink ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default function Edit( props ) {\n\t// Don't show the Comment Edit controls if we have a comment ID set, or if we're in the Site Editor (where it is `null`).\n\tif ( props?.context?.commentId || props?.context?.commentId === null ) {\n\t\treturn <CommentEdit { ...props } />;\n\t}\n\treturn <UserEdit { ...props } />;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","InspectorControls","useBlockProps","__experimentalUseBorderProps","useBorderProps","PanelBody","RangeControl","ResizableBox","ToggleControl","__","isRTL","addQueryArgs","removeQueryArgs","useUserAvatar","useCommentAvatar","UserControl","AvatarInspectorControls","setAttributes","avatar","attributes","selectUser","createElement","title","__nextHasNoMarginBottom","__next40pxDefaultSize","label","onChange","newSize","size","min","minSize","max","maxSize","initialPosition","value","isLink","checked","linkTarget","userId","ResizableAvatar","blockProps","isSelected","borderProps","doubledSizedSrc","src","s","width","height","showHandle","onResizeStop","event","direction","elt","delta","parseInt","lockAspectRatio","enable","top","right","bottom","left","minWidth","maxWidth","alt","className","style","CommentEdit","context","commentId","Fragment","href","onClick","preventDefault","UserEdit","postId","postType","Edit","props"],"sources":["@wordpress/block-library/src/avatar/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { useUserAvatar, useCommentAvatar } from './hooks';\nimport UserControl from './user-control';\n\nconst AvatarInspectorControls = ( {\n\tsetAttributes,\n\tavatar,\n\tattributes,\n\tselectUser,\n} ) => (\n\t<InspectorControls>\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: newSize,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\tmin={ avatar.minSize }\n\t\t\t\tmax={ avatar.maxSize }\n\t\t\t\tinitialPosition={ attributes?.size }\n\t\t\t\tvalue={ attributes?.size }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link to user profile' ) }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( { isLink: ! attributes.isLink } )\n\t\t\t\t}\n\t\t\t\tchecked={ attributes.isLink }\n\t\t\t/>\n\t\t\t{ attributes.isLink && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tchecked={ attributes.linkTarget === '_blank' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ selectUser && (\n\t\t\t\t<UserControl\n\t\t\t\t\tvalue={ attributes?.userId }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tuserId: value,\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</PanelBody>\n\t</InspectorControls>\n);\n\nconst ResizableAvatar = ( {\n\tsetAttributes,\n\tattributes,\n\tavatar,\n\tblockProps,\n\tisSelected,\n} ) => {\n\tconst borderProps = useBorderProps( attributes );\n\tconst doubledSizedSrc = addQueryArgs(\n\t\tremoveQueryArgs( avatar?.src, [ 's' ] ),\n\t\t{\n\t\t\ts: attributes?.size * 2,\n\t\t}\n\t);\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: attributes.size,\n\t\t\t\t\theight: attributes.size,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: parseInt(\n\t\t\t\t\t\t\tattributes.size + ( delta.height || delta.width ),\n\t\t\t\t\t\t\t10\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: ! isRTL(),\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: isRTL(),\n\t\t\t\t} }\n\t\t\t\tminWidth={ avatar.minSize }\n\t\t\t\tmaxWidth={ avatar.maxSize }\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ doubledSizedSrc }\n\t\t\t\t\talt={ avatar.alt }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'avatar',\n\t\t\t\t\t\t'avatar-' + attributes.size,\n\t\t\t\t\t\t'photo',\n\t\t\t\t\t\t'wp-block-avatar__image',\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ borderProps.style }\n\t\t\t\t/>\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n};\nconst CommentEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { commentId } = context;\n\tconst blockProps = useBlockProps();\n\tconst avatar = useCommentAvatar( { commentId } );\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tselectUser={ false }\n\t\t\t/>\n\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nconst UserEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { postId, postType } = context;\n\tconst avatar = useUserAvatar( {\n\t\tuserId: attributes?.userId,\n\t\tpostId,\n\t\tpostType,\n\t} );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tselectUser={ true }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default function Edit( props ) {\n\t// Don't show the Comment Edit controls if we have a comment ID set, or if we're in the Site Editor (where it is `null`).\n\tif ( props?.context?.commentId || props?.context?.commentId === null ) {\n\t\treturn <CommentEdit { ...props } />;\n\t}\n\treturn <UserEdit { ...props } />;\n}\n"],"mappings":"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"}
@@ -12,7 +12,8 @@ import { useRef, useMemo, useEffect } from '@wordpress/element';
12
12
  import { useEntityRecord, store as coreStore } from '@wordpress/core-data';
13
13
  import { Placeholder, Spinner, ToolbarButton, ToolbarGroup } from '@wordpress/components';
14
14
  import { __ } from '@wordpress/i18n';
15
- import { useInnerBlocksProps, __experimentalRecursionProvider as RecursionProvider, __experimentalUseHasRecursion as useHasRecursion, InnerBlocks, useBlockProps, Warning, privateApis as blockEditorPrivateApis, store as blockEditorStore, BlockControls } from '@wordpress/block-editor';
15
+ import { useInnerBlocksProps, RecursionProvider, useHasRecursion, InnerBlocks, useBlockProps, Warning, privateApis as blockEditorPrivateApis, store as blockEditorStore, BlockControls } from '@wordpress/block-editor';
16
+ import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
16
17
  import { parse, cloneBlock } from '@wordpress/blocks';
17
18
 
18
19
  /**
@@ -22,8 +23,11 @@ import { unlock } from '../lock-unlock';
22
23
  const {
23
24
  useLayoutClasses
24
25
  } = unlock(blockEditorPrivateApis);
26
+ const {
27
+ PARTIAL_SYNCING_SUPPORTED_BLOCKS
28
+ } = unlock(patternsPrivateApis);
25
29
  function isPartiallySynced(block) {
26
- return 'core/paragraph' === block.name && !!block.attributes.metadata?.bindings && Object.values(block.attributes.metadata.bindings).some(binding => binding.source.name === 'pattern_attributes');
30
+ return Object.keys(PARTIAL_SYNCING_SUPPORTED_BLOCKS).includes(block.name) && !!block.attributes.metadata?.bindings && Object.values(block.attributes.metadata.bindings).some(binding => binding.source.name === 'pattern_attributes');
27
31
  }
28
32
  function getPartiallySyncedAttributes(block) {
29
33
  return Object.entries(block.attributes.metadata.bindings).filter(([, binding]) => binding.source.name === 'pattern_attributes').map(([attributeKey]) => attributeKey);
@@ -53,6 +57,27 @@ const useInferredLayout = (blocks, parentLayout) => {
53
57
  };
54
58
  }, [blocks, parentLayout]);
55
59
  };
60
+
61
+ /**
62
+ * Enum for patch operations.
63
+ * We use integers here to minimize the size of the serialized data.
64
+ * This has to be deserialized accordingly on the server side.
65
+ * See block-bindings/sources/pattern.php
66
+ */
67
+ const PATCH_OPERATIONS = {
68
+ /** @type {0} */
69
+ Remove: 0,
70
+ /** @type {1} */
71
+ Replace: 1
72
+ // Other operations are reserved for future use. (e.g. Add)
73
+ };
74
+
75
+ /**
76
+ * @typedef {[typeof PATCH_OPERATIONS.Remove]} RemovePatch
77
+ * @typedef {[typeof PATCH_OPERATIONS.Replace, unknown]} ReplacePatch
78
+ * @typedef {RemovePatch | ReplacePatch} OverridePatch
79
+ */
80
+
56
81
  function applyInitialOverrides(blocks, overrides = {}, defaultValues) {
57
82
  return blocks.map(block => {
58
83
  const innerBlocks = applyInitialOverrides(block.innerBlocks, overrides, defaultValues);
@@ -69,8 +94,15 @@ function applyInitialOverrides(blocks, overrides = {}, defaultValues) {
69
94
  var _defaultValues$blockI;
70
95
  (_defaultValues$blockI = defaultValues[blockId]) !== null && _defaultValues$blockI !== void 0 ? _defaultValues$blockI : defaultValues[blockId] = {};
71
96
  defaultValues[blockId][attributeKey] = block.attributes[attributeKey];
72
- if (overrides[blockId]) {
73
- newAttributes[attributeKey] = overrides[blockId][attributeKey];
97
+ /** @type {OverridePatch} */
98
+ const overrideAttribute = overrides[blockId]?.[attributeKey];
99
+ if (!overrideAttribute) {
100
+ continue;
101
+ }
102
+ if (overrideAttribute[0] === PATCH_OPERATIONS.Remove) {
103
+ delete newAttributes[attributeKey];
104
+ } else if (overrideAttribute[0] === PATCH_OPERATIONS.Replace) {
105
+ newAttributes[attributeKey] = overrideAttribute[1];
74
106
  }
75
107
  }
76
108
  return {
@@ -81,10 +113,11 @@ function applyInitialOverrides(blocks, overrides = {}, defaultValues) {
81
113
  });
82
114
  }
83
115
  function getOverridesFromBlocks(blocks, defaultValues) {
84
- /** @type {Record<string, Record<string, unknown>>} */
116
+ /** @type {Record<string, Record<string, OverridePatch>>} */
85
117
  const overrides = {};
86
118
  for (const block of blocks) {
87
119
  Object.assign(overrides, getOverridesFromBlocks(block.innerBlocks, defaultValues));
120
+ /** @type {string} */
88
121
  const blockId = block.attributes.metadata?.id;
89
122
  if (!isPartiallySynced(block) || !blockId) continue;
90
123
  const attributes = getPartiallySyncedAttributes(block);
@@ -92,7 +125,18 @@ function getOverridesFromBlocks(blocks, defaultValues) {
92
125
  if (block.attributes[attributeKey] !== defaultValues[blockId][attributeKey]) {
93
126
  var _overrides$blockId;
94
127
  (_overrides$blockId = overrides[blockId]) !== null && _overrides$blockId !== void 0 ? _overrides$blockId : overrides[blockId] = {};
95
- overrides[blockId][attributeKey] = block.attributes[attributeKey];
128
+ /**
129
+ * Create a patch operation for the binding attribute.
130
+ * We use a tuple here to minimize the size of the serialized data.
131
+ * The first item is the operation type, the second item is the value if any.
132
+ */
133
+ if (block.attributes[attributeKey] === undefined) {
134
+ /** @type {RemovePatch} */
135
+ overrides[blockId][attributeKey] = [PATCH_OPERATIONS.Remove];
136
+ } else {
137
+ /** @type {ReplacePatch} */
138
+ overrides[blockId][attributeKey] = [PATCH_OPERATIONS.Replace, block.attributes[attributeKey]];
139
+ }
96
140
  }
97
141
  }
98
142
  }
@@ -105,6 +149,12 @@ function setBlockEditMode(setEditMode, blocks, mode) {
105
149
  setBlockEditMode(setEditMode, block.innerBlocks, mode);
106
150
  });
107
151
  }
152
+ function getHasOverridableBlocks(blocks) {
153
+ return blocks.some(block => {
154
+ if (isPartiallySynced(block)) return true;
155
+ return getHasOverridableBlocks(block.innerBlocks);
156
+ });
157
+ }
108
158
  export default function ReusableBlockEdit({
109
159
  name,
110
160
  attributes: {
@@ -164,12 +214,16 @@ export default function ReusableBlockEdit({
164
214
  canvas: 'edit'
165
215
  }) : {};
166
216
  useEffect(() => setBlockEditMode(setBlockEditingMode, innerBlocks), [innerBlocks, setBlockEditingMode]);
217
+ const hasOverridableBlocks = useMemo(() => getHasOverridableBlocks(innerBlocks), [innerBlocks]);
218
+ const initialBlocks = useMemo(() => {
219
+ var _editedRecord$blocks$;
220
+ return (// Clone the blocks to generate new client IDs.
221
+ (_editedRecord$blocks$ = editedRecord.blocks?.map(block => cloneBlock(block))) !== null && _editedRecord$blocks$ !== void 0 ? _editedRecord$blocks$ : editedRecord.content && typeof editedRecord.content !== 'function' ? parse(editedRecord.content) : []
222
+ );
223
+ }, [editedRecord.blocks, editedRecord.content]);
167
224
 
168
225
  // Apply the initial overrides from the pattern block to the inner blocks.
169
226
  useEffect(() => {
170
- var _editedRecord$blocks$;
171
- const initialBlocks = // Clone the blocks to generate new client IDs.
172
- (_editedRecord$blocks$ = editedRecord.blocks?.map(block => cloneBlock(block))) !== null && _editedRecord$blocks$ !== void 0 ? _editedRecord$blocks$ : editedRecord.content && typeof editedRecord.content !== 'function' ? parse(editedRecord.content) : [];
173
227
  defaultValuesRef.current = {};
174
228
  const editingMode = getBlockEditingMode(patternClientId);
175
229
  // Replace the contents of the blocks with the overrides.
@@ -180,7 +234,7 @@ export default function ReusableBlockEdit({
180
234
  });
181
235
  setBlockEditingMode(patternClientId, editingMode);
182
236
  });
183
- }, [__unstableMarkNextChangeAsNotPersistent, patternClientId, editedRecord, replaceInnerBlocks, registry, getBlockEditingMode, setBlockEditingMode, syncDerivedUpdates]);
237
+ }, [__unstableMarkNextChangeAsNotPersistent, patternClientId, initialBlocks, replaceInnerBlocks, registry, getBlockEditingMode, setBlockEditingMode, syncDerivedUpdates]);
184
238
  const {
185
239
  alignment,
186
240
  layout
@@ -222,6 +276,11 @@ export default function ReusableBlockEdit({
222
276
  setBlockEditMode(setBlockEditingMode, innerBlocks, 'default');
223
277
  editOriginalProps.onClick(event);
224
278
  };
279
+ const resetOverrides = () => {
280
+ if (overrides) {
281
+ replaceInnerBlocks(patternClientId, initialBlocks);
282
+ }
283
+ };
225
284
  let children = null;
226
285
  if (hasAlreadyRendered) {
227
286
  children = createElement(Warning, null, __('Block cannot be rendered inside itself.'));
@@ -237,7 +296,11 @@ export default function ReusableBlockEdit({
237
296
  }, userCanEdit && editOriginalProps && createElement(BlockControls, null, createElement(ToolbarGroup, null, createElement(ToolbarButton, {
238
297
  href: editOriginalProps.href,
239
298
  onClick: handleEditOriginal
240
- }, __('Edit original')))), children === null ? createElement("div", {
299
+ }, __('Edit original')))), hasOverridableBlocks && createElement(BlockControls, null, createElement(ToolbarGroup, null, createElement(ToolbarButton, {
300
+ onClick: resetOverrides,
301
+ disabled: !overrides,
302
+ __experimentalIsFocusable: true
303
+ }, __('Reset to original')))), children === null ? createElement("div", {
241
304
  ...innerBlocksProps
242
305
  }) : createElement("div", {
243
306
  ...blockProps
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useRegistry","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","__experimentalRecursionProvider","RecursionProvider","__experimentalUseHasRecursion","useHasRecursion","InnerBlocks","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","parse","cloneBlock","unlock","useLayoutClasses","isPartiallySynced","block","name","attributes","metadata","bindings","Object","values","some","binding","source","getPartiallySyncedAttributes","entries","filter","map","attributeKey","fullAlignments","useInferredLayout","blocks","parentLayout","initialInferredAlignmentRef","length","alignment","current","undefined","isConstrained","type","hasFullAlignment","includes","align","layout","applyInitialOverrides","overrides","defaultValues","innerBlocks","blockId","id","newAttributes","_defaultValues$blockI","getOverridesFromBlocks","assign","_overrides$blockId","keys","setBlockEditMode","setEditMode","mode","forEach","editMode","clientId","ReusableBlockEdit","ref","__unstableParentLayout","patternClientId","setAttributes","registry","hasAlreadyRendered","record","editedRecord","hasResolved","isMissing","initialOverrides","defaultValuesRef","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","syncDerivedUpdates","userCanEdit","getBlockEditingMode","getPostLinkProps","select","canUser","getBlocks","editingMode","getSettings","canEdit","editOriginalProps","postId","postType","canvas","_editedRecord$blocks$","initialBlocks","content","batch","layoutClasses","blockProps","className","innerBlocksProps","templateLock","renderAppender","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","event","onClick","children","createElement","uniqueId","href"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { parse, cloneBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\n\nfunction isPartiallySynced( block ) {\n\treturn (\n\t\t'core/paragraph' === block.name &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source.name === 'pattern_attributes'\n\t\t)\n\t);\n}\nfunction getPartiallySyncedAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source.name === 'pattern_attributes'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction applyInitialOverrides( blocks, overrides = {}, defaultValues ) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialOverrides(\n\t\t\tblock.innerBlocks,\n\t\t\toverrides,\n\t\t\tdefaultValues\n\t\t);\n\t\tconst blockId = block.attributes.metadata?.id;\n\t\tif ( ! isPartiallySynced( block ) || ! blockId )\n\t\t\treturn { ...block, innerBlocks };\n\t\tconst attributes = getPartiallySyncedAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ blockId ] ??= {};\n\t\t\tdefaultValues[ blockId ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\t\t\tif ( overrides[ blockId ] ) {\n\t\t\t\tnewAttributes[ attributeKey ] =\n\t\t\t\t\toverrides[ blockId ][ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction getOverridesFromBlocks( blocks, defaultValues ) {\n\t/** @type {Record<string, Record<string, unknown>>} */\n\tconst overrides = {};\n\tfor ( const block of blocks ) {\n\t\tObject.assign(\n\t\t\toverrides,\n\t\t\tgetOverridesFromBlocks( block.innerBlocks, defaultValues )\n\t\t);\n\t\tconst blockId = block.attributes.metadata?.id;\n\t\tif ( ! isPartiallySynced( block ) || ! blockId ) continue;\n\t\tconst attributes = getPartiallySyncedAttributes( block );\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\tblock.attributes[ attributeKey ] !==\n\t\t\t\tdefaultValues[ blockId ][ attributeKey ]\n\t\t\t) {\n\t\t\t\toverrides[ blockId ] ??= {};\n\t\t\t\toverrides[ blockId ][ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( overrides ).length > 0 ? overrides : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode || ( isPartiallySynced( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\t\tsetBlockEditMode( setEditMode, block.innerBlocks, mode );\n\t} );\n}\n\nexport default function ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, overrides },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\tconst initialOverrides = useRef( overrides );\n\tconst defaultValuesRef = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst { innerBlocks, userCanEdit, getBlockEditingMode, getPostLinkProps } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { canUser } = select( coreStore );\n\t\t\t\tconst {\n\t\t\t\t\tgetBlocks,\n\t\t\t\t\tgetBlockEditingMode: editingMode,\n\t\t\t\t\tgetSettings,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\t\treturn {\n\t\t\t\t\tinnerBlocks: blocks,\n\t\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\t\tgetBlockEditingMode: editingMode,\n\t\t\t\t\tgetPostLinkProps: getSettings().getPostLinkProps,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ patternClientId, ref ]\n\t\t);\n\n\tconst editOriginalProps = getPostLinkProps\n\t\t? getPostLinkProps( {\n\t\t\t\tpostId: ref,\n\t\t\t\tpostType: 'wp_block',\n\t\t\t\tcanvas: 'edit',\n\t\t } )\n\t\t: {};\n\n\tuseEffect(\n\t\t() => setBlockEditMode( setBlockEditingMode, innerBlocks ),\n\t\t[ innerBlocks, setBlockEditingMode ]\n\t);\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\tconst initialBlocks =\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] );\n\n\t\tdefaultValuesRef.current = {};\n\t\tconst editingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tpatternClientId,\n\t\t\t\t\tapplyInitialOverrides(\n\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\tinitialOverrides.current,\n\t\t\t\t\t\tdefaultValuesRef.current\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, editingMode );\n\t\t} );\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\teditedRecord,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `overrides` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\toverrides: getOverridesFromBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultValuesRef.current\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}, blockEditorStore );\n\t}, [ syncDerivedUpdates, patternClientId, registry, setAttributes ] );\n\n\tconst handleEditOriginal = ( event ) => {\n\t\tsetBlockEditMode( setBlockEditingMode, innerBlocks, 'default' );\n\t\teditOriginalProps.onClick( event );\n\t};\n\n\tlet children = null;\n\n\tif ( hasAlreadyRendered ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t{ userCanEdit && editOriginalProps && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\thref={ editOriginalProps.href }\n\t\t\t\t\t\t\tonClick={ handleEditOriginal }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useRegistry","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","InnerBlocks","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","parse","cloneBlock","unlock","useLayoutClasses","PARTIAL_SYNCING_SUPPORTED_BLOCKS","isPartiallySynced","block","Object","keys","includes","name","attributes","metadata","bindings","values","some","binding","source","getPartiallySyncedAttributes","entries","filter","map","attributeKey","fullAlignments","useInferredLayout","blocks","parentLayout","initialInferredAlignmentRef","length","alignment","current","undefined","isConstrained","type","hasFullAlignment","align","layout","PATCH_OPERATIONS","Remove","Replace","applyInitialOverrides","overrides","defaultValues","innerBlocks","blockId","id","newAttributes","_defaultValues$blockI","overrideAttribute","getOverridesFromBlocks","assign","_overrides$blockId","setBlockEditMode","setEditMode","mode","forEach","editMode","clientId","getHasOverridableBlocks","ReusableBlockEdit","ref","__unstableParentLayout","patternClientId","setAttributes","registry","hasAlreadyRendered","record","editedRecord","hasResolved","isMissing","initialOverrides","defaultValuesRef","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","syncDerivedUpdates","userCanEdit","getBlockEditingMode","getPostLinkProps","select","canUser","getBlocks","editingMode","getSettings","canEdit","editOriginalProps","postId","postType","canvas","hasOverridableBlocks","initialBlocks","_editedRecord$blocks$","content","batch","layoutClasses","blockProps","className","innerBlocksProps","templateLock","renderAppender","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","event","onClick","resetOverrides","children","createElement","uniqueId","href","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { PARTIAL_SYNCING_SUPPORTED_BLOCKS } = unlock( patternsPrivateApis );\n\nfunction isPartiallySynced( block ) {\n\treturn (\n\t\tObject.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(\n\t\t\tblock.name\n\t\t) &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source.name === 'pattern_attributes'\n\t\t)\n\t);\n}\nfunction getPartiallySyncedAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source.name === 'pattern_attributes'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\n/**\n * Enum for patch operations.\n * We use integers here to minimize the size of the serialized data.\n * This has to be deserialized accordingly on the server side.\n * See block-bindings/sources/pattern.php\n */\nconst PATCH_OPERATIONS = {\n\t/** @type {0} */\n\tRemove: 0,\n\t/** @type {1} */\n\tReplace: 1,\n\t// Other operations are reserved for future use. (e.g. Add)\n};\n\n/**\n * @typedef {[typeof PATCH_OPERATIONS.Remove]} RemovePatch\n * @typedef {[typeof PATCH_OPERATIONS.Replace, unknown]} ReplacePatch\n * @typedef {RemovePatch | ReplacePatch} OverridePatch\n */\n\nfunction applyInitialOverrides( blocks, overrides = {}, defaultValues ) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialOverrides(\n\t\t\tblock.innerBlocks,\n\t\t\toverrides,\n\t\t\tdefaultValues\n\t\t);\n\t\tconst blockId = block.attributes.metadata?.id;\n\t\tif ( ! isPartiallySynced( block ) || ! blockId )\n\t\t\treturn { ...block, innerBlocks };\n\t\tconst attributes = getPartiallySyncedAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ blockId ] ??= {};\n\t\t\tdefaultValues[ blockId ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\t\t\t/** @type {OverridePatch} */\n\t\t\tconst overrideAttribute = overrides[ blockId ]?.[ attributeKey ];\n\t\t\tif ( ! overrideAttribute ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif ( overrideAttribute[ 0 ] === PATCH_OPERATIONS.Remove ) {\n\t\t\t\tdelete newAttributes[ attributeKey ];\n\t\t\t} else if ( overrideAttribute[ 0 ] === PATCH_OPERATIONS.Replace ) {\n\t\t\t\tnewAttributes[ attributeKey ] = overrideAttribute[ 1 ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction getOverridesFromBlocks( blocks, defaultValues ) {\n\t/** @type {Record<string, Record<string, OverridePatch>>} */\n\tconst overrides = {};\n\tfor ( const block of blocks ) {\n\t\tObject.assign(\n\t\t\toverrides,\n\t\t\tgetOverridesFromBlocks( block.innerBlocks, defaultValues )\n\t\t);\n\t\t/** @type {string} */\n\t\tconst blockId = block.attributes.metadata?.id;\n\t\tif ( ! isPartiallySynced( block ) || ! blockId ) continue;\n\t\tconst attributes = getPartiallySyncedAttributes( block );\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\tblock.attributes[ attributeKey ] !==\n\t\t\t\tdefaultValues[ blockId ][ attributeKey ]\n\t\t\t) {\n\t\t\t\toverrides[ blockId ] ??= {};\n\t\t\t\t/**\n\t\t\t\t * Create a patch operation for the binding attribute.\n\t\t\t\t * We use a tuple here to minimize the size of the serialized data.\n\t\t\t\t * The first item is the operation type, the second item is the value if any.\n\t\t\t\t */\n\t\t\t\tif ( block.attributes[ attributeKey ] === undefined ) {\n\t\t\t\t\t/** @type {RemovePatch} */\n\t\t\t\t\toverrides[ blockId ][ attributeKey ] = [\n\t\t\t\t\t\tPATCH_OPERATIONS.Remove,\n\t\t\t\t\t];\n\t\t\t\t} else {\n\t\t\t\t\t/** @type {ReplacePatch} */\n\t\t\t\t\toverrides[ blockId ][ attributeKey ] = [\n\t\t\t\t\t\tPATCH_OPERATIONS.Replace,\n\t\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\t];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( overrides ).length > 0 ? overrides : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode || ( isPartiallySynced( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\t\tsetBlockEditMode( setEditMode, block.innerBlocks, mode );\n\t} );\n}\n\nfunction getHasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isPartiallySynced( block ) ) return true;\n\t\treturn getHasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nexport default function ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, overrides },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\tconst initialOverrides = useRef( overrides );\n\tconst defaultValuesRef = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst { innerBlocks, userCanEdit, getBlockEditingMode, getPostLinkProps } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { canUser } = select( coreStore );\n\t\t\t\tconst {\n\t\t\t\t\tgetBlocks,\n\t\t\t\t\tgetBlockEditingMode: editingMode,\n\t\t\t\t\tgetSettings,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\t\treturn {\n\t\t\t\t\tinnerBlocks: blocks,\n\t\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\t\tgetBlockEditingMode: editingMode,\n\t\t\t\t\tgetPostLinkProps: getSettings().getPostLinkProps,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ patternClientId, ref ]\n\t\t);\n\n\tconst editOriginalProps = getPostLinkProps\n\t\t? getPostLinkProps( {\n\t\t\t\tpostId: ref,\n\t\t\t\tpostType: 'wp_block',\n\t\t\t\tcanvas: 'edit',\n\t\t } )\n\t\t: {};\n\n\tuseEffect(\n\t\t() => setBlockEditMode( setBlockEditingMode, innerBlocks ),\n\t\t[ innerBlocks, setBlockEditingMode ]\n\t);\n\n\tconst hasOverridableBlocks = useMemo(\n\t\t() => getHasOverridableBlocks( innerBlocks ),\n\t\t[ innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\tdefaultValuesRef.current = {};\n\t\tconst editingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tpatternClientId,\n\t\t\t\t\tapplyInitialOverrides(\n\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\tinitialOverrides.current,\n\t\t\t\t\t\tdefaultValuesRef.current\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, editingMode );\n\t\t} );\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `overrides` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\toverrides: getOverridesFromBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultValuesRef.current\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}, blockEditorStore );\n\t}, [ syncDerivedUpdates, patternClientId, registry, setAttributes ] );\n\n\tconst handleEditOriginal = ( event ) => {\n\t\tsetBlockEditMode( setBlockEditingMode, innerBlocks, 'default' );\n\t\teditOriginalProps.onClick( event );\n\t};\n\n\tconst resetOverrides = () => {\n\t\tif ( overrides ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( hasAlreadyRendered ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t{ userCanEdit && editOriginalProps && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\thref={ editOriginalProps.href }\n\t\t\t\t\t\t\tonClick={ handleEditOriginal }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ hasOverridableBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetOverrides }\n\t\t\t\t\t\t\tdisabled={ ! overrides }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset to original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":"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"}
@@ -12,7 +12,7 @@ import { useEntityBlockEditor, useEntityProp, store as coreStore } from '@wordpr
12
12
  import { BottomSheet, Icon, Disabled, TextControl } from '@wordpress/components';
13
13
  import { useSelect, useDispatch } from '@wordpress/data';
14
14
  import { __, sprintf } from '@wordpress/i18n';
15
- import { __experimentalRecursionProvider as RecursionProvider, __experimentalUseHasRecursion as useHasRecursion, InnerBlocks, Warning, store as blockEditorStore } from '@wordpress/block-editor';
15
+ import { RecursionProvider, useHasRecursion, InnerBlocks, Warning, store as blockEditorStore } from '@wordpress/block-editor';
16
16
  import { usePreferredColorSchemeStyle } from '@wordpress/compose';
17
17
  import { help } from '@wordpress/icons';
18
18
  import { store as reusableBlocksStore } from '@wordpress/reusable-blocks';
@@ -22,8 +22,8 @@ import { store as noticesStore } from '@wordpress/notices';
22
22
  /**
23
23
  * Internal dependencies
24
24
  */
25
- import styles from '../editor.scss';
26
- import EditTitle from '../edit-title';
25
+ import styles from './editor.scss';
26
+ import EditTitle from './edit-title';
27
27
  export default function ReusableBlockEdit({
28
28
  attributes: {
29
29
  ref
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ActivityIndicator","Platform","Text","TouchableWithoutFeedback","View","useState","useCallback","useEntityBlockEditor","useEntityProp","store","coreStore","BottomSheet","Icon","Disabled","TextControl","useSelect","useDispatch","__","sprintf","RecursionProvider","useHasRecursion","InnerBlocks","Warning","blockEditorStore","usePreferredColorSchemeStyle","help","reusableBlocksStore","editorStore","noticesStore","styles","EditTitle","ReusableBlockEdit","attributes","ref","clientId","isSelected","hasAlreadyRendered","showHelp","setShowHelp","infoTextStyle","infoText","infoTextDark","infoTitleStyle","infoTitle","infoTitleDark","infoSheetIconStyle","infoSheetIcon","infoSheetIconDark","infoDescriptionStyle","infoDescription","infoDescriptionDark","actionButtonStyle","actionButton","actionButtonDark","spinnerStyle","spinner","spinnerDark","hasResolved","isEditing","isMissing","select","persistedBlock","getEntityRecord","hasResolvedBlock","hasFinishedResolution","getBlockCount","__experimentalIsEditingReusableBlock","innerBlockCount","hostAppNamespace","getEditorSettings","createSuccessNotice","__experimentalConvertBlockToStatic","convertBlockToStatic","clearSelectedBlock","blocks","onInput","onChange","id","title","openSheet","closeSheet","onConvertToRegularBlocks","successNotice","setImmediate","renderSheet","OS","createElement","isVisible","hideHeader","onClose","style","infoContainer","icon","color","size","label","separatorType","onPress","labelStyle","message","animating","element","value","uniqueId","disabled","accessibilityLabel","accessibilityRole","accessibilityHint"],"sources":["@wordpress/block-library/src/block/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tActivityIndicator,\n\tPlatform,\n\tText,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useCallback } from '@wordpress/element';\nimport {\n\tuseEntityBlockEditor,\n\tuseEntityProp,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport {\n\tBottomSheet,\n\tIcon,\n\tDisabled,\n\tTextControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tWarning,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { help } from '@wordpress/icons';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport styles from './editor.scss';\nimport EditTitle from './edit-title';\n\nexport default function ReusableBlockEdit( {\n\tattributes: { ref },\n\tclientId,\n\tisSelected,\n} ) {\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tconst [ showHelp, setShowHelp ] = useState( false );\n\tconst infoTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoText,\n\t\tstyles.infoTextDark\n\t);\n\tconst infoTitleStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoTitle,\n\t\tstyles.infoTitleDark\n\t);\n\tconst infoSheetIconStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoSheetIcon,\n\t\tstyles.infoSheetIconDark\n\t);\n\tconst infoDescriptionStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoDescription,\n\t\tstyles.infoDescriptionDark\n\t);\n\tconst actionButtonStyle = usePreferredColorSchemeStyle(\n\t\tstyles.actionButton,\n\t\tstyles.actionButtonDark\n\t);\n\tconst spinnerStyle = usePreferredColorSchemeStyle(\n\t\tstyles.spinner,\n\t\tstyles.spinnerDark\n\t);\n\n\tconst { hasResolved, isEditing, isMissing } = useSelect(\n\t\t( select ) => {\n\t\t\tconst persistedBlock = select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_block',\n\t\t\t\tref\n\t\t\t);\n\t\t\tconst hasResolvedBlock = select( coreStore ).hasFinishedResolution(\n\t\t\t\t'getEntityRecord',\n\t\t\t\t[ 'postType', 'wp_block', ref ]\n\t\t\t);\n\n\t\t\tconst { getBlockCount } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\thasResolved: hasResolvedBlock,\n\t\t\t\tisEditing:\n\t\t\t\t\tselect(\n\t\t\t\t\t\treusableBlocksStore\n\t\t\t\t\t).__experimentalIsEditingReusableBlock( clientId ),\n\t\t\t\tisMissing: hasResolvedBlock && ! persistedBlock,\n\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ ref, clientId ]\n\t);\n\tconst hostAppNamespace = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getEditorSettings().hostAppNamespace,\n\t\t[]\n\t);\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_block',\n\t\t{ id: ref }\n\t);\n\n\tconst [ title ] = useEntityProp( 'postType', 'wp_block', 'title', ref );\n\n\tfunction openSheet() {\n\t\tsetShowHelp( true );\n\t}\n\n\tfunction closeSheet() {\n\t\tsetShowHelp( false );\n\t}\n\n\tconst onConvertToRegularBlocks = useCallback( () => {\n\t\t/* translators: %s: name of the synced block */\n\t\tconst successNotice = __( '%s detached' );\n\t\tcreateSuccessNotice( sprintf( successNotice, title ) );\n\n\t\tclearSelectedBlock();\n\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t// to prevent issues related to undo/redo actions.\n\t\tsetImmediate( () => convertBlockToStatic( clientId ) );\n\t}, [ title, clientId ] );\n\n\tfunction renderSheet() {\n\t\tconst infoTitle =\n\t\t\tPlatform.OS === 'android'\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: name of the host app (e.g. WordPress) */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Editing synced patterns is not yet supported on %s for Android'\n\t\t\t\t\t\t),\n\t\t\t\t\t\thostAppNamespace\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: name of the host app (e.g. WordPress) */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Editing synced patterns is not yet supported on %s for iOS'\n\t\t\t\t\t\t),\n\t\t\t\t\t\thostAppNamespace\n\t\t\t\t );\n\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ showHelp }\n\t\t\t\thideHeader\n\t\t\t\tonClose={ closeSheet }\n\t\t\t>\n\t\t\t\t<View style={ styles.infoContainer }>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ help }\n\t\t\t\t\t\tcolor={ infoSheetIconStyle.color }\n\t\t\t\t\t\tsize={ styles.infoSheetIcon.size }\n\t\t\t\t\t/>\n\t\t\t\t\t<Text style={ [ infoTextStyle, infoTitleStyle ] }>\n\t\t\t\t\t\t{ infoTitle }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Text style={ [ infoTextStyle, infoDescriptionStyle ] }>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Alternatively, you can detach and edit this block separately by tapping “Detach”.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Detach' ) }\n\t\t\t\t\t\tseparatorType=\"topFullWidth\"\n\t\t\t\t\t\tonPress={ onConvertToRegularBlocks }\n\t\t\t\t\t\tlabelStyle={ actionButtonStyle }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</BottomSheet>\n\t\t);\n\t}\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tmessage={ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tmessage={ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t<View style={ spinnerStyle }>\n\t\t\t\t<ActivityIndicator animating />\n\t\t\t</View>\n\t\t);\n\t}\n\n\tlet element = (\n\t\t<InnerBlocks\n\t\t\tvalue={ blocks }\n\t\t\tonChange={ onChange }\n\t\t\tonInput={ onInput }\n\t\t/>\n\t);\n\n\tif ( ! isEditing ) {\n\t\telement = <Disabled>{ element }</Disabled>;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\taccessibilityLabel={ __( 'Help button' ) }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\taccessibilityHint={ __( 'Tap here to show help' ) }\n\t\t\t\tonPress={ openSheet }\n\t\t\t>\n\t\t\t\t<View>\n\t\t\t\t\t{ isSelected && <EditTitle title={ title } /> }\n\t\t\t\t\t{ element }\n\t\t\t\t\t{ renderSheet() }\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":"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"}