@wordpress/block-library 6.0.9 → 6.0.10

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 (132) hide show
  1. package/build/cover/edit.js +8 -3
  2. package/build/cover/edit.js.map +1 -1
  3. package/build/gallery/edit.js +1 -1
  4. package/build/gallery/edit.js.map +1 -1
  5. package/build/gallery/v1/update-gallery-modal.js +1 -1
  6. package/build/gallery/v1/update-gallery-modal.js.map +1 -1
  7. package/build/index.js +3 -2
  8. package/build/index.js.map +1 -1
  9. package/build/navigation/deprecated.js +118 -12
  10. package/build/navigation/deprecated.js.map +1 -1
  11. package/build/navigation/edit/index.js +45 -31
  12. package/build/navigation/edit/index.js.map +1 -1
  13. package/build/navigation/edit/navigation-menu-selector.js +2 -2
  14. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  15. package/build/navigation/edit/placeholder/index.js +16 -48
  16. package/build/navigation/edit/placeholder/index.js.map +1 -1
  17. package/build/navigation/edit/unsaved-inner-blocks.js +4 -35
  18. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  19. package/build/navigation/edit/use-create-navigation-menu.js +50 -0
  20. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -0
  21. package/build/navigation/edit/use-generate-default-navigation-title.js +73 -0
  22. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -0
  23. package/build/navigation/index.js +1 -1
  24. package/build/navigation/save.js +2 -2
  25. package/build/navigation/save.js.map +1 -1
  26. package/build/navigation/use-navigation-menu.js +19 -8
  27. package/build/navigation/use-navigation-menu.js.map +1 -1
  28. package/build/pattern/index.js +1 -1
  29. package/build/post-featured-image/edit.js +2 -3
  30. package/build/post-featured-image/edit.js.map +1 -1
  31. package/build/post-terms/index.js +1 -1
  32. package/build/post-title/edit.js +2 -2
  33. package/build/post-title/edit.js.map +1 -1
  34. package/build/query-title/index.js +1 -1
  35. package/build/site-logo/index.js +1 -1
  36. package/build/site-tagline/index.js +1 -1
  37. package/build/site-title/index.js +1 -1
  38. package/build/template-part/edit/placeholder/index.js +1 -1
  39. package/build/template-part/edit/placeholder/index.js.map +1 -1
  40. package/build/template-part/index.js +2 -1
  41. package/build/template-part/index.js.map +1 -1
  42. package/build-module/cover/edit.js +8 -3
  43. package/build-module/cover/edit.js.map +1 -1
  44. package/build-module/gallery/edit.js +1 -1
  45. package/build-module/gallery/edit.js.map +1 -1
  46. package/build-module/gallery/v1/update-gallery-modal.js +1 -1
  47. package/build-module/gallery/v1/update-gallery-modal.js.map +1 -1
  48. package/build-module/index.js +3 -2
  49. package/build-module/index.js.map +1 -1
  50. package/build-module/navigation/deprecated.js +118 -12
  51. package/build-module/navigation/deprecated.js.map +1 -1
  52. package/build-module/navigation/edit/index.js +46 -31
  53. package/build-module/navigation/edit/index.js.map +1 -1
  54. package/build-module/navigation/edit/navigation-menu-selector.js +2 -2
  55. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  56. package/build-module/navigation/edit/placeholder/index.js +15 -45
  57. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  58. package/build-module/navigation/edit/unsaved-inner-blocks.js +6 -35
  59. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  60. package/build-module/navigation/edit/use-create-navigation-menu.js +36 -0
  61. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -0
  62. package/build-module/navigation/edit/use-generate-default-navigation-title.js +57 -0
  63. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -0
  64. package/build-module/navigation/index.js +1 -1
  65. package/build-module/navigation/save.js +2 -2
  66. package/build-module/navigation/save.js.map +1 -1
  67. package/build-module/navigation/use-navigation-menu.js +19 -8
  68. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  69. package/build-module/pattern/index.js +1 -1
  70. package/build-module/post-featured-image/edit.js +2 -3
  71. package/build-module/post-featured-image/edit.js.map +1 -1
  72. package/build-module/post-terms/index.js +1 -1
  73. package/build-module/post-title/edit.js +2 -2
  74. package/build-module/post-title/edit.js.map +1 -1
  75. package/build-module/query-title/index.js +1 -1
  76. package/build-module/site-logo/index.js +1 -1
  77. package/build-module/site-tagline/index.js +1 -1
  78. package/build-module/site-title/index.js +1 -1
  79. package/build-module/template-part/edit/placeholder/index.js +2 -2
  80. package/build-module/template-part/edit/placeholder/index.js.map +1 -1
  81. package/build-module/template-part/index.js +2 -1
  82. package/build-module/template-part/index.js.map +1 -1
  83. package/build-style/editor-rtl.css +5 -4
  84. package/build-style/editor.css +5 -4
  85. package/build-style/gallery/editor-rtl.css +1 -0
  86. package/build-style/gallery/editor.css +1 -0
  87. package/build-style/post-featured-image/editor-rtl.css +2 -2
  88. package/build-style/post-featured-image/editor.css +2 -2
  89. package/build-style/site-logo/editor-rtl.css +2 -2
  90. package/build-style/site-logo/editor.css +2 -2
  91. package/package.json +8 -8
  92. package/src/calendar/index.php +2 -2
  93. package/src/cover/edit.js +8 -1
  94. package/src/gallery/edit.js +1 -1
  95. package/src/gallery/editor.scss +1 -0
  96. package/src/gallery/v1/update-gallery-modal.js +1 -1
  97. package/src/index.js +27 -25
  98. package/src/navigation/block.json +1 -1
  99. package/src/navigation/deprecated.js +105 -4
  100. package/src/navigation/edit/index.js +43 -36
  101. package/src/navigation/edit/navigation-menu-selector.js +2 -2
  102. package/src/navigation/edit/placeholder/index.js +16 -62
  103. package/src/navigation/edit/unsaved-inner-blocks.js +6 -57
  104. package/src/navigation/edit/use-create-navigation-menu.js +39 -0
  105. package/src/navigation/edit/use-generate-default-navigation-title.js +79 -0
  106. package/src/navigation/index.php +128 -14
  107. package/src/navigation/save.js +2 -2
  108. package/src/navigation/use-navigation-menu.js +20 -9
  109. package/src/page-list/index.php +5 -0
  110. package/src/pattern/block.json +1 -1
  111. package/src/post-featured-image/edit.js +2 -5
  112. package/src/post-featured-image/editor.scss +2 -2
  113. package/src/post-terms/block.json +1 -1
  114. package/src/post-title/edit.js +2 -2
  115. package/src/query-title/block.json +1 -1
  116. package/src/site-logo/block.json +1 -1
  117. package/src/site-logo/editor.scss +2 -2
  118. package/src/site-tagline/block.json +1 -1
  119. package/src/site-title/block.json +1 -1
  120. package/src/template-part/block.json +2 -1
  121. package/src/template-part/edit/placeholder/index.js +2 -2
  122. package/src/template-part/index.php +2 -1
  123. package/build/navigation/edit/navigation-menu-name-modal.js +0 -55
  124. package/build/navigation/edit/navigation-menu-name-modal.js.map +0 -1
  125. package/build/navigation/edit/navigation-menu-publish-button.js +0 -53
  126. package/build/navigation/edit/navigation-menu-publish-button.js.map +0 -1
  127. package/build-module/navigation/edit/navigation-menu-name-modal.js +0 -47
  128. package/build-module/navigation/edit/navigation-menu-name-modal.js.map +0 -1
  129. package/build-module/navigation/edit/navigation-menu-publish-button.js +0 -40
  130. package/build-module/navigation/edit/navigation-menu-publish-button.js.map +0 -1
  131. package/src/navigation/edit/navigation-menu-name-modal.js +0 -69
  132. package/src/navigation/edit/navigation-menu-publish-button.js +0 -57
@@ -292,7 +292,8 @@ function CoverEdit(_ref5) {
292
292
  overlayColor,
293
293
  setAttributes,
294
294
  setOverlayColor,
295
- toggleSelection
295
+ toggleSelection,
296
+ markNextChangeAsNotPersistent
296
297
  } = _ref5;
297
298
  const {
298
299
  contentPosition,
@@ -366,6 +367,8 @@ function CoverEdit(_ref5) {
366
367
  const isDarkElement = (0, _element.useRef)();
367
368
  const isCoverDark = useCoverIsDark(url, dimRatio, overlayColor.color, isDarkElement);
368
369
  (0, _element.useEffect)(() => {
370
+ // This side-effect should not create an undo level.
371
+ markNextChangeAsNotPersistent();
369
372
  setAttributes({
370
373
  isDark: isCoverDark
371
374
  });
@@ -627,10 +630,12 @@ function CoverEdit(_ref5) {
627
630
 
628
631
  var _default = (0, _compose.compose)([(0, _data.withDispatch)(dispatch => {
629
632
  const {
630
- toggleSelection
633
+ toggleSelection,
634
+ __unstableMarkNextChangeAsNotPersistent
631
635
  } = dispatch(_blockEditor.store);
632
636
  return {
633
- toggleSelection
637
+ toggleSelection,
638
+ markNextChangeAsNotPersistent: __unstableMarkNextChangeAsNotPersistent
634
639
  };
635
640
  }), (0, _blockEditor.withColors)({
636
641
  overlayColor: 'background-color'
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/cover/edit.js"],"names":["namesPlugin","__Visualizer","BoxControlVisualizer","BoxControl","getInnerBlocksTemplate","attributes","align","placeholder","retrieveFastAverageColor","fastAverageColor","FastAverageColor","CoverHeightInput","onChange","onUnitChange","unit","value","temporaryInput","setTemporaryInput","instanceId","UnitControl","inputId","isPx","units","availableUnits","defaultValues","px","em","rem","vw","vh","handleOnChange","unprocessedValue","inputValue","parseFloat","undefined","isNaN","handleOnBlur","min","COVER_MIN_HEIGHT","maxWidth","RESIZABLE_BOX_ENABLE_OPTION","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","ResizableCover","className","onResizeStart","onResize","onResizeStop","props","isResizing","setIsResizing","_event","_direction","elt","clientHeight","useCoverIsDark","url","dimRatio","overlayColor","elementRef","isDark","setIsDark","current","getColorAsync","color","mediaPosition","x","y","Math","round","isTemporaryMedia","id","CoverPlaceholder","disableMediaButtons","children","noticeUI","noticeOperations","onSelectMedia","style","removeAllNotices","createErrorNotice","icon","title","instructions","ALLOWED_MEDIA_TYPES","message","CoverEdit","clientId","isSelected","setAttributes","setOverlayColor","toggleSelection","contentPosition","backgroundType","focalPoint","hasParallax","isRepeated","minHeight","minHeightUnit","styleAttribute","alt","allowedBlocks","templateLock","gradientClass","gradientValue","setGradient","isUploadingMedia","prevMinHeightValue","setPrevMinHeightValue","prevMinHeightUnit","setPrevMinHeightUnit","isMinFullHeight","toggleMinFullHeight","toggleParallax","toggleIsRepeated","isDarkElement","isCoverDark","isImageBackground","IMAGE_BACKGROUND_TYPE","isVideoBackground","VIDEO_BACKGROUND_TYPE","temporaryMinHeight","setTemporaryMinHeight","minHeightWithUnit","isImgElement","bgStyle","backgroundColor","mediaStyle","objectPosition","hasBackground","showFocalPointPicker","imperativeFocalPointPreview","styleOfRef","property","ref","hasInnerBlocks","select","blockEditorStore","getBlock","innerBlocks","length","controls","nextPosition","newFocalPoint","newAlt","colorValue","onColorChange","onGradientChange","label","newDimRation","newMinHeight","nextUnit","blockProps","hasFontSizes","innerBlocksTemplate","fontSize","innerBlocksProps","template","templateInsertUpdatesSelection","classes","spacing","padding","visualizers","class","backgroundImage","dispatch","withNotices","withInstanceId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport FastAverageColor from 'fast-average-color';\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport { Fragment, useEffect, useRef, useState } from '@wordpress/element';\nimport {\n\tBaseControl,\n\tButton,\n\tExternalLink,\n\tFocalPointPicker,\n\tPanelBody,\n\tPanelRow,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tToggleControl,\n\twithNotices,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { compose, withInstanceId, useInstanceId } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\twithColors,\n\tColorPalette,\n\tuseBlockProps,\n\tuseSetting,\n\tuseInnerBlocksProps,\n\t__experimentalUseGradient,\n\t__experimentalPanelColorGradientSettings as PanelColorGradientSettings,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalBlockAlignmentMatrixControl as BlockAlignmentMatrixControl,\n\t__experimentalBlockFullHeightAligmentControl as FullHeightAlignmentControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { withDispatch, useSelect } from '@wordpress/data';\nimport { cover as icon } from '@wordpress/icons';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport {\n\tALLOWED_MEDIA_TYPES,\n\tattributesFromMedia,\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n\tCOVER_MIN_HEIGHT,\n\tbackgroundImageStyles,\n\tdimRatioToClass,\n\tisContentPositionCenter,\n\tgetPositionClassName,\n} from './shared';\n\nextend( [ namesPlugin ] );\n\nconst { __Visualizer: BoxControlVisualizer } = BoxControl;\n\nfunction getInnerBlocksTemplate( attributes ) {\n\treturn [\n\t\t[\n\t\t\t'core/paragraph',\n\t\t\t{\n\t\t\t\talign: 'center',\n\t\t\t\tplaceholder: __( 'Write title…' ),\n\t\t\t\t...attributes,\n\t\t\t},\n\t\t],\n\t];\n}\n\nfunction retrieveFastAverageColor() {\n\tif ( ! retrieveFastAverageColor.fastAverageColor ) {\n\t\tretrieveFastAverageColor.fastAverageColor = new FastAverageColor();\n\t}\n\treturn retrieveFastAverageColor.fastAverageColor;\n}\n\nfunction CoverHeightInput( {\n\tonChange,\n\tonUnitChange,\n\tunit = 'px',\n\tvalue = '',\n} ) {\n\tconst [ temporaryInput, setTemporaryInput ] = useState( null );\n\n\tconst instanceId = useInstanceId( UnitControl );\n\tconst inputId = `block-cover-height-input-${ instanceId }`;\n\tconst isPx = unit === 'px';\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: { px: '430', em: '20', rem: '20', vw: '20', vh: '50' },\n\t} );\n\n\tconst handleOnChange = ( unprocessedValue ) => {\n\t\tconst inputValue =\n\t\t\tunprocessedValue !== ''\n\t\t\t\t? parseFloat( unprocessedValue )\n\t\t\t\t: undefined;\n\n\t\tif ( isNaN( inputValue ) && inputValue !== undefined ) {\n\t\t\tsetTemporaryInput( unprocessedValue );\n\t\t\treturn;\n\t\t}\n\t\tsetTemporaryInput( null );\n\t\tonChange( inputValue );\n\t\tif ( inputValue === undefined ) {\n\t\t\tonUnitChange();\n\t\t}\n\t};\n\n\tconst handleOnBlur = () => {\n\t\tif ( temporaryInput !== null ) {\n\t\t\tsetTemporaryInput( null );\n\t\t}\n\t};\n\n\tconst inputValue = temporaryInput !== null ? temporaryInput : value;\n\tconst min = isPx ? COVER_MIN_HEIGHT : 0;\n\n\treturn (\n\t\t<BaseControl label={ __( 'Minimum height of cover' ) } id={ inputId }>\n\t\t\t<UnitControl\n\t\t\t\tid={ inputId }\n\t\t\t\tisResetValueOnUnitChange\n\t\t\t\tmin={ min }\n\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\tonChange={ handleOnChange }\n\t\t\t\tonUnitChange={ onUnitChange }\n\t\t\t\tstyle={ { maxWidth: 80 } }\n\t\t\t\tunit={ unit }\n\t\t\t\tunits={ units }\n\t\t\t\tvalue={ inputValue }\n\t\t\t/>\n\t\t</BaseControl>\n\t);\n}\n\nconst RESIZABLE_BOX_ENABLE_OPTION = {\n\ttop: false,\n\tright: false,\n\tbottom: true,\n\tleft: false,\n\ttopRight: false,\n\tbottomRight: false,\n\tbottomLeft: false,\n\ttopLeft: false,\n};\n\nfunction ResizableCover( {\n\tclassName,\n\tonResizeStart,\n\tonResize,\n\tonResizeStop,\n\t...props\n} ) {\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tclassName={ classnames( className, {\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t} ) }\n\t\t\tenable={ RESIZABLE_BOX_ENABLE_OPTION }\n\t\t\tonResizeStart={ ( _event, _direction, elt ) => {\n\t\t\t\tonResizeStart( elt.clientHeight );\n\t\t\t\tonResize( elt.clientHeight );\n\t\t\t} }\n\t\t\tonResize={ ( _event, _direction, elt ) => {\n\t\t\t\tonResize( elt.clientHeight );\n\t\t\t\tif ( ! isResizing ) {\n\t\t\t\t\tsetIsResizing( true );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonResizeStop={ ( _event, _direction, elt ) => {\n\t\t\t\tonResizeStop( elt.clientHeight );\n\t\t\t\tsetIsResizing( false );\n\t\t\t} }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\n/**\n * useCoverIsDark is a hook that returns a boolean variable specifying if the cover\n * background is dark or not.\n *\n * @param {?string} url Url of the media background.\n * @param {?number} dimRatio Transparency of the overlay color. If an image and\n * color are set, dimRatio is used to decide what is used\n * for background darkness checking purposes.\n * @param {?string} overlayColor String containing the overlay color value if one exists.\n * @param {?Object} elementRef If a media background is set, elementRef should contain a reference to a\n * dom element that renders that media.\n *\n * @return {boolean} True if the cover background is considered \"dark\" and false otherwise.\n */\nfunction useCoverIsDark( url, dimRatio = 50, overlayColor, elementRef ) {\n\tconst [ isDark, setIsDark ] = useState( false );\n\tuseEffect( () => {\n\t\t// If opacity is lower than 50 the dominant color is the image or video color,\n\t\t// so use that color for the dark mode computation.\n\t\tif ( url && dimRatio <= 50 && elementRef.current ) {\n\t\t\tretrieveFastAverageColor().getColorAsync(\n\t\t\t\telementRef.current,\n\t\t\t\t( color ) => {\n\t\t\t\t\tsetIsDark( color.isDark );\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}, [ url, url && dimRatio <= 50 && elementRef.current, setIsDark ] );\n\tuseEffect( () => {\n\t\t// If opacity is greater than 50 the dominant color is the overlay color,\n\t\t// so use that color for the dark mode computation.\n\t\tif ( dimRatio > 50 || ! url ) {\n\t\t\tif ( ! overlayColor ) {\n\t\t\t\t// If no overlay color exists the overlay color is black (isDark )\n\t\t\t\tsetIsDark( true );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsDark( colord( overlayColor ).isDark() );\n\t\t}\n\t}, [ overlayColor, dimRatio > 50 || ! url, setIsDark ] );\n\tuseEffect( () => {\n\t\tif ( ! url && ! overlayColor ) {\n\t\t\t// Reset isDark\n\t\t\tsetIsDark( false );\n\t\t}\n\t}, [ ! url && ! overlayColor, setIsDark ] );\n\treturn isDark;\n}\n\nfunction mediaPosition( { x, y } ) {\n\treturn `${ Math.round( x * 100 ) }% ${ Math.round( y * 100 ) }%`;\n}\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while\n * the media (image or video) is being uploaded and will not have an id allocated yet.\n *\n * @param {number} id The id of the media.\n * @param {string} url The url of the media.\n *\n * @return {boolean} Is the URL a Blob URL.\n */\nconst isTemporaryMedia = ( id, url ) => ! id && isBlobURL( url );\n\nfunction CoverPlaceholder( {\n\tdisableMediaButtons = false,\n\tchildren,\n\tnoticeUI,\n\tnoticeOperations,\n\tonSelectMedia,\n\tstyle,\n} ) {\n\tconst { removeAllNotices, createErrorNotice } = noticeOperations;\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Cover' ),\n\t\t\t\tinstructions: __(\n\t\t\t\t\t'Drag and drop onto this block, upload, or select existing media from your library.'\n\t\t\t\t),\n\t\t\t} }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\taccept=\"image/*,video/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tnotices={ noticeUI }\n\t\t\tdisableMediaButtons={ disableMediaButtons }\n\t\t\tonError={ ( message ) => {\n\t\t\t\tremoveAllNotices();\n\t\t\t\tcreateErrorNotice( message );\n\t\t\t} }\n\t\t\tstyle={ style }\n\t\t>\n\t\t\t{ children }\n\t\t</MediaPlaceholder>\n\t);\n}\n\nfunction CoverEdit( {\n\tattributes,\n\tclientId,\n\tisSelected,\n\tnoticeUI,\n\tnoticeOperations,\n\toverlayColor,\n\tsetAttributes,\n\tsetOverlayColor,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tcontentPosition,\n\t\tid,\n\t\tbackgroundType,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisDark,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\tstyle: styleAttribute,\n\t\turl,\n\t\talt,\n\t\tallowedBlocks,\n\t\ttemplateLock,\n\t} = attributes;\n\tconst {\n\t\tgradientClass,\n\t\tgradientValue,\n\t\tsetGradient,\n\t} = __experimentalUseGradient();\n\tconst onSelectMedia = attributesFromMedia( setAttributes, dimRatio );\n\tconst isUploadingMedia = isTemporaryMedia( id, url );\n\n\tconst [ prevMinHeightValue, setPrevMinHeightValue ] = useState( minHeight );\n\tconst [ prevMinHeightUnit, setPrevMinHeightUnit ] = useState(\n\t\tminHeightUnit\n\t);\n\tconst isMinFullHeight = minHeightUnit === 'vh' && minHeight === 100;\n\n\tconst toggleMinFullHeight = () => {\n\t\tif ( isMinFullHeight ) {\n\t\t\t// If there aren't previous values, take the default ones.\n\t\t\tif ( prevMinHeightUnit === 'vh' && prevMinHeightValue === 100 ) {\n\t\t\t\treturn setAttributes( {\n\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Set the previous values of height.\n\t\t\treturn setAttributes( {\n\t\t\t\tminHeight: prevMinHeightValue,\n\t\t\t\tminHeightUnit: prevMinHeightUnit,\n\t\t\t} );\n\t\t}\n\n\t\tsetPrevMinHeightValue( minHeight );\n\t\tsetPrevMinHeightUnit( minHeightUnit );\n\n\t\t// Set full height.\n\t\treturn setAttributes( {\n\t\t\tminHeight: 100,\n\t\t\tminHeightUnit: 'vh',\n\t\t} );\n\t};\n\n\tconst toggleParallax = () => {\n\t\tsetAttributes( {\n\t\t\thasParallax: ! hasParallax,\n\t\t\t...( ! hasParallax ? { focalPoint: undefined } : {} ),\n\t\t} );\n\t};\n\n\tconst toggleIsRepeated = () => {\n\t\tsetAttributes( {\n\t\t\tisRepeated: ! isRepeated,\n\t\t} );\n\t};\n\n\tconst isDarkElement = useRef();\n\tconst isCoverDark = useCoverIsDark(\n\t\turl,\n\t\tdimRatio,\n\t\toverlayColor.color,\n\t\tisDarkElement\n\t);\n\n\tuseEffect( () => {\n\t\tsetAttributes( { isDark: isCoverDark } );\n\t}, [ isCoverDark ] );\n\n\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\tconst [ temporaryMinHeight, setTemporaryMinHeight ] = useState( null );\n\n\tconst minHeightWithUnit = minHeightUnit\n\t\t? `${ minHeight }${ minHeightUnit }`\n\t\t: minHeight;\n\n\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\tconst style = {\n\t\t...( isImageBackground && ! isImgElement\n\t\t\t? backgroundImageStyles( url )\n\t\t\t: undefined ),\n\t\tminHeight: temporaryMinHeight || minHeightWithUnit || undefined,\n\t};\n\n\tconst bgStyle = { backgroundColor: overlayColor.color };\n\tconst mediaStyle = {\n\t\tobjectPosition:\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t? mediaPosition( focalPoint )\n\t\t\t\t: undefined,\n\t};\n\n\tconst hasBackground = !! ( url || overlayColor.color || gradientValue );\n\tconst showFocalPointPicker =\n\t\tisVideoBackground ||\n\t\t( isImageBackground && ( ! hasParallax || isRepeated ) );\n\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst [ styleOfRef, property ] = isDarkElement.current\n\t\t\t? [ isDarkElement.current.style, 'objectPosition' ]\n\t\t\t: [ ref.current.style, 'backgroundPosition' ];\n\t\tstyleOfRef[ property ] = mediaPosition( value );\n\t};\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlock( clientId ).innerBlocks.length >\n\t\t\t0,\n\t\t[ clientId ]\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<BlockAlignmentMatrixControl\n\t\t\t\t\tlabel={ __( 'Change content position' ) }\n\t\t\t\t\tvalue={ contentPosition }\n\t\t\t\t\tonChange={ ( nextPosition ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tcontentPosition: nextPosition,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t/>\n\t\t\t\t<FullHeightAlignmentControl\n\t\t\t\t\tisActive={ isMinFullHeight }\n\t\t\t\t\tonToggle={ toggleMinFullHeight }\n\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*,video/*\"\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\tname={ ! url ? __( 'Add Media' ) : __( 'Replace' ) }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t{ !! url && (\n\t\t\t\t\t<PanelBody title={ __( 'Media settings' ) }>\n\t\t\t\t\t\t{ isImageBackground && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Repeated background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isRepeated }\n\t\t\t\t\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showFocalPointPicker && (\n\t\t\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonChange={ ( newFocalPoint ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfocalPoint: newFocalPoint,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ url && isImageBackground && isImgElement && (\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alt text (alternative text)' ) }\n\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\tonChange={ ( newAlt ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { alt: newAlt } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\tclassName=\"block-library-cover__reset-button\"\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\turl: undefined,\n\t\t\t\t\t\t\t\t\t\tid: undefined,\n\t\t\t\t\t\t\t\t\t\tbackgroundType: undefined,\n\t\t\t\t\t\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\t\t\t\t\t\thasParallax: undefined,\n\t\t\t\t\t\t\t\t\t\tisRepeated: undefined,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Clear Media' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</PanelRow>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t\t<PanelColorGradientSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\ttitle={ __( 'Overlay' ) }\n\t\t\t\t\tinitialOpen={ true }\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolorValue: overlayColor.color,\n\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\tonColorChange: setOverlayColor,\n\t\t\t\t\t\t\tonGradientChange: setGradient,\n\t\t\t\t\t\t\tlabel: __( 'Color' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Opacity' ) }\n\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\tonChange={ ( newDimRation ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdimRatio: newDimRation,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\tstep={ 10 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</PanelColorGradientSettings>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"dimensions\">\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! minHeight }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<CoverHeightInput\n\t\t\t\t\t\tvalue={ temporaryMinHeight || minHeight }\n\t\t\t\t\t\tunit={ minHeightUnit }\n\t\t\t\t\t\tonChange={ ( newMinHeight ) =>\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUnitChange={ ( nextUnit ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tminHeightUnit: nextUnit,\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</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( { ref } );\n\n\t// Check for fontSize support before we pass a fontSize attribute to the innerBlocks.\n\tconst hasFontSizes = !! useSetting( 'typography.fontSizes' )?.length;\n\tconst innerBlocksTemplate = getInnerBlocksTemplate( {\n\t\tfontSize: hasFontSizes ? 'large' : undefined,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t},\n\t\t{\n\t\t\ttemplate: innerBlocksTemplate,\n\t\t\ttemplateInsertUpdatesSelection: true,\n\t\t\tallowedBlocks,\n\t\t\ttemplateLock,\n\t\t}\n\t);\n\n\tif ( ! hasInnerBlocks && ! hasBackground ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'is-placeholder',\n\t\t\t\t\t\tblockProps.className\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<CoverPlaceholder\n\t\t\t\t\t\tnoticeUI={ noticeUI }\n\t\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\t\tnoticeOperations={ noticeOperations }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tminHeight:\n\t\t\t\t\t\t\t\ttemporaryMinHeight ||\n\t\t\t\t\t\t\t\tminHeightWithUnit ||\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"wp-block-cover__placeholder-background-options\">\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\t\t\tvalue={ overlayColor.color }\n\t\t\t\t\t\t\t\tonChange={ setOverlayColor }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CoverPlaceholder>\n\t\t\t\t\t<ResizableCover\n\t\t\t\t\t\tclassName=\"block-library-cover__resize-container\"\n\t\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResize={ setTemporaryMinHeight }\n\t\t\t\t\t\tonResizeStop={ ( newMinHeight ) => {\n\t\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t\t\t\t\t\tsetTemporaryMinHeight( null );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst classes = classnames(\n\t\t{\n\t\t\t'is-dark-theme': isDark,\n\t\t\t'is-light': ! isDark,\n\t\t\t'is-transient': isUploadingMedia,\n\t\t\t'has-parallax': hasParallax,\n\t\t\t'is-repeated': isRepeated,\n\t\t\t'has-custom-content-position': ! isContentPositionCenter(\n\t\t\t\tcontentPosition\n\t\t\t),\n\t\t},\n\t\tgetPositionClassName( contentPosition )\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( classes, blockProps.className ) }\n\t\t\t\tstyle={ { ...style, ...blockProps.style } }\n\t\t\t\tdata-url={ url }\n\t\t\t>\n\t\t\t\t<BoxControlVisualizer\n\t\t\t\t\tvalues={ styleAttribute?.spacing?.padding }\n\t\t\t\t\tshowValues={ styleAttribute?.visualizers?.padding }\n\t\t\t\t/>\n\t\t\t\t<ResizableCover\n\t\t\t\t\tclassName=\"block-library-cover__resize-container\"\n\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonResize={ setTemporaryMinHeight }\n\t\t\t\t\tonResizeStop={ ( newMinHeight ) => {\n\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t\t\t\t\tsetTemporaryMinHeight( null );\n\t\t\t\t\t} }\n\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t/>\n\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t{ [ overlayColor.class ]: overlayColor.class },\n\t\t\t\t\t\t'wp-block-cover__gradient-background',\n\t\t\t\t\t\tgradientClass,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t[ gradientClass ]: ! url && gradientClass,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ { backgroundImage: gradientValue, ...bgStyle } }\n\t\t\t\t/>\n\n\t\t\t\t{ url && isImageBackground && isImgElement && (\n\t\t\t\t\t<img\n\t\t\t\t\t\tref={ isDarkElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__image-background\"\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ url && isVideoBackground && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tref={ isDarkElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isUploadingMedia && <Spinner /> }\n\t\t\t\t<CoverPlaceholder\n\t\t\t\t\tdisableMediaButtons\n\t\t\t\t\tnoticeUI={ noticeUI }\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tnoticeOperations={ noticeOperations }\n\t\t\t\t/>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { toggleSelection } = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\ttoggleSelection,\n\t\t};\n\t} ),\n\twithColors( { overlayColor: 'background-color' } ),\n\twithNotices,\n\twithInstanceId,\n] )( CoverEdit );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/cover/edit.js"],"names":["namesPlugin","__Visualizer","BoxControlVisualizer","BoxControl","getInnerBlocksTemplate","attributes","align","placeholder","retrieveFastAverageColor","fastAverageColor","FastAverageColor","CoverHeightInput","onChange","onUnitChange","unit","value","temporaryInput","setTemporaryInput","instanceId","UnitControl","inputId","isPx","units","availableUnits","defaultValues","px","em","rem","vw","vh","handleOnChange","unprocessedValue","inputValue","parseFloat","undefined","isNaN","handleOnBlur","min","COVER_MIN_HEIGHT","maxWidth","RESIZABLE_BOX_ENABLE_OPTION","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","ResizableCover","className","onResizeStart","onResize","onResizeStop","props","isResizing","setIsResizing","_event","_direction","elt","clientHeight","useCoverIsDark","url","dimRatio","overlayColor","elementRef","isDark","setIsDark","current","getColorAsync","color","mediaPosition","x","y","Math","round","isTemporaryMedia","id","CoverPlaceholder","disableMediaButtons","children","noticeUI","noticeOperations","onSelectMedia","style","removeAllNotices","createErrorNotice","icon","title","instructions","ALLOWED_MEDIA_TYPES","message","CoverEdit","clientId","isSelected","setAttributes","setOverlayColor","toggleSelection","markNextChangeAsNotPersistent","contentPosition","backgroundType","focalPoint","hasParallax","isRepeated","minHeight","minHeightUnit","styleAttribute","alt","allowedBlocks","templateLock","gradientClass","gradientValue","setGradient","isUploadingMedia","prevMinHeightValue","setPrevMinHeightValue","prevMinHeightUnit","setPrevMinHeightUnit","isMinFullHeight","toggleMinFullHeight","toggleParallax","toggleIsRepeated","isDarkElement","isCoverDark","isImageBackground","IMAGE_BACKGROUND_TYPE","isVideoBackground","VIDEO_BACKGROUND_TYPE","temporaryMinHeight","setTemporaryMinHeight","minHeightWithUnit","isImgElement","bgStyle","backgroundColor","mediaStyle","objectPosition","hasBackground","showFocalPointPicker","imperativeFocalPointPreview","styleOfRef","property","ref","hasInnerBlocks","select","blockEditorStore","getBlock","innerBlocks","length","controls","nextPosition","newFocalPoint","newAlt","colorValue","onColorChange","onGradientChange","label","newDimRation","newMinHeight","nextUnit","blockProps","hasFontSizes","innerBlocksTemplate","fontSize","innerBlocksProps","template","templateInsertUpdatesSelection","classes","spacing","padding","visualizers","class","backgroundImage","dispatch","__unstableMarkNextChangeAsNotPersistent","withNotices","withInstanceId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport FastAverageColor from 'fast-average-color';\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport { Fragment, useEffect, useRef, useState } from '@wordpress/element';\nimport {\n\tBaseControl,\n\tButton,\n\tExternalLink,\n\tFocalPointPicker,\n\tPanelBody,\n\tPanelRow,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tToggleControl,\n\twithNotices,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { compose, withInstanceId, useInstanceId } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\twithColors,\n\tColorPalette,\n\tuseBlockProps,\n\tuseSetting,\n\tuseInnerBlocksProps,\n\t__experimentalUseGradient,\n\t__experimentalPanelColorGradientSettings as PanelColorGradientSettings,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalBlockAlignmentMatrixControl as BlockAlignmentMatrixControl,\n\t__experimentalBlockFullHeightAligmentControl as FullHeightAlignmentControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { withDispatch, useSelect } from '@wordpress/data';\nimport { cover as icon } from '@wordpress/icons';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport {\n\tALLOWED_MEDIA_TYPES,\n\tattributesFromMedia,\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n\tCOVER_MIN_HEIGHT,\n\tbackgroundImageStyles,\n\tdimRatioToClass,\n\tisContentPositionCenter,\n\tgetPositionClassName,\n} from './shared';\n\nextend( [ namesPlugin ] );\n\nconst { __Visualizer: BoxControlVisualizer } = BoxControl;\n\nfunction getInnerBlocksTemplate( attributes ) {\n\treturn [\n\t\t[\n\t\t\t'core/paragraph',\n\t\t\t{\n\t\t\t\talign: 'center',\n\t\t\t\tplaceholder: __( 'Write title…' ),\n\t\t\t\t...attributes,\n\t\t\t},\n\t\t],\n\t];\n}\n\nfunction retrieveFastAverageColor() {\n\tif ( ! retrieveFastAverageColor.fastAverageColor ) {\n\t\tretrieveFastAverageColor.fastAverageColor = new FastAverageColor();\n\t}\n\treturn retrieveFastAverageColor.fastAverageColor;\n}\n\nfunction CoverHeightInput( {\n\tonChange,\n\tonUnitChange,\n\tunit = 'px',\n\tvalue = '',\n} ) {\n\tconst [ temporaryInput, setTemporaryInput ] = useState( null );\n\n\tconst instanceId = useInstanceId( UnitControl );\n\tconst inputId = `block-cover-height-input-${ instanceId }`;\n\tconst isPx = unit === 'px';\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: { px: '430', em: '20', rem: '20', vw: '20', vh: '50' },\n\t} );\n\n\tconst handleOnChange = ( unprocessedValue ) => {\n\t\tconst inputValue =\n\t\t\tunprocessedValue !== ''\n\t\t\t\t? parseFloat( unprocessedValue )\n\t\t\t\t: undefined;\n\n\t\tif ( isNaN( inputValue ) && inputValue !== undefined ) {\n\t\t\tsetTemporaryInput( unprocessedValue );\n\t\t\treturn;\n\t\t}\n\t\tsetTemporaryInput( null );\n\t\tonChange( inputValue );\n\t\tif ( inputValue === undefined ) {\n\t\t\tonUnitChange();\n\t\t}\n\t};\n\n\tconst handleOnBlur = () => {\n\t\tif ( temporaryInput !== null ) {\n\t\t\tsetTemporaryInput( null );\n\t\t}\n\t};\n\n\tconst inputValue = temporaryInput !== null ? temporaryInput : value;\n\tconst min = isPx ? COVER_MIN_HEIGHT : 0;\n\n\treturn (\n\t\t<BaseControl label={ __( 'Minimum height of cover' ) } id={ inputId }>\n\t\t\t<UnitControl\n\t\t\t\tid={ inputId }\n\t\t\t\tisResetValueOnUnitChange\n\t\t\t\tmin={ min }\n\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\tonChange={ handleOnChange }\n\t\t\t\tonUnitChange={ onUnitChange }\n\t\t\t\tstyle={ { maxWidth: 80 } }\n\t\t\t\tunit={ unit }\n\t\t\t\tunits={ units }\n\t\t\t\tvalue={ inputValue }\n\t\t\t/>\n\t\t</BaseControl>\n\t);\n}\n\nconst RESIZABLE_BOX_ENABLE_OPTION = {\n\ttop: false,\n\tright: false,\n\tbottom: true,\n\tleft: false,\n\ttopRight: false,\n\tbottomRight: false,\n\tbottomLeft: false,\n\ttopLeft: false,\n};\n\nfunction ResizableCover( {\n\tclassName,\n\tonResizeStart,\n\tonResize,\n\tonResizeStop,\n\t...props\n} ) {\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tclassName={ classnames( className, {\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t} ) }\n\t\t\tenable={ RESIZABLE_BOX_ENABLE_OPTION }\n\t\t\tonResizeStart={ ( _event, _direction, elt ) => {\n\t\t\t\tonResizeStart( elt.clientHeight );\n\t\t\t\tonResize( elt.clientHeight );\n\t\t\t} }\n\t\t\tonResize={ ( _event, _direction, elt ) => {\n\t\t\t\tonResize( elt.clientHeight );\n\t\t\t\tif ( ! isResizing ) {\n\t\t\t\t\tsetIsResizing( true );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonResizeStop={ ( _event, _direction, elt ) => {\n\t\t\t\tonResizeStop( elt.clientHeight );\n\t\t\t\tsetIsResizing( false );\n\t\t\t} }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\n/**\n * useCoverIsDark is a hook that returns a boolean variable specifying if the cover\n * background is dark or not.\n *\n * @param {?string} url Url of the media background.\n * @param {?number} dimRatio Transparency of the overlay color. If an image and\n * color are set, dimRatio is used to decide what is used\n * for background darkness checking purposes.\n * @param {?string} overlayColor String containing the overlay color value if one exists.\n * @param {?Object} elementRef If a media background is set, elementRef should contain a reference to a\n * dom element that renders that media.\n *\n * @return {boolean} True if the cover background is considered \"dark\" and false otherwise.\n */\nfunction useCoverIsDark( url, dimRatio = 50, overlayColor, elementRef ) {\n\tconst [ isDark, setIsDark ] = useState( false );\n\tuseEffect( () => {\n\t\t// If opacity is lower than 50 the dominant color is the image or video color,\n\t\t// so use that color for the dark mode computation.\n\t\tif ( url && dimRatio <= 50 && elementRef.current ) {\n\t\t\tretrieveFastAverageColor().getColorAsync(\n\t\t\t\telementRef.current,\n\t\t\t\t( color ) => {\n\t\t\t\t\tsetIsDark( color.isDark );\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}, [ url, url && dimRatio <= 50 && elementRef.current, setIsDark ] );\n\tuseEffect( () => {\n\t\t// If opacity is greater than 50 the dominant color is the overlay color,\n\t\t// so use that color for the dark mode computation.\n\t\tif ( dimRatio > 50 || ! url ) {\n\t\t\tif ( ! overlayColor ) {\n\t\t\t\t// If no overlay color exists the overlay color is black (isDark )\n\t\t\t\tsetIsDark( true );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsDark( colord( overlayColor ).isDark() );\n\t\t}\n\t}, [ overlayColor, dimRatio > 50 || ! url, setIsDark ] );\n\tuseEffect( () => {\n\t\tif ( ! url && ! overlayColor ) {\n\t\t\t// Reset isDark\n\t\t\tsetIsDark( false );\n\t\t}\n\t}, [ ! url && ! overlayColor, setIsDark ] );\n\treturn isDark;\n}\n\nfunction mediaPosition( { x, y } ) {\n\treturn `${ Math.round( x * 100 ) }% ${ Math.round( y * 100 ) }%`;\n}\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while\n * the media (image or video) is being uploaded and will not have an id allocated yet.\n *\n * @param {number} id The id of the media.\n * @param {string} url The url of the media.\n *\n * @return {boolean} Is the URL a Blob URL.\n */\nconst isTemporaryMedia = ( id, url ) => ! id && isBlobURL( url );\n\nfunction CoverPlaceholder( {\n\tdisableMediaButtons = false,\n\tchildren,\n\tnoticeUI,\n\tnoticeOperations,\n\tonSelectMedia,\n\tstyle,\n} ) {\n\tconst { removeAllNotices, createErrorNotice } = noticeOperations;\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Cover' ),\n\t\t\t\tinstructions: __(\n\t\t\t\t\t'Drag and drop onto this block, upload, or select existing media from your library.'\n\t\t\t\t),\n\t\t\t} }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\taccept=\"image/*,video/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tnotices={ noticeUI }\n\t\t\tdisableMediaButtons={ disableMediaButtons }\n\t\t\tonError={ ( message ) => {\n\t\t\t\tremoveAllNotices();\n\t\t\t\tcreateErrorNotice( message );\n\t\t\t} }\n\t\t\tstyle={ style }\n\t\t>\n\t\t\t{ children }\n\t\t</MediaPlaceholder>\n\t);\n}\n\nfunction CoverEdit( {\n\tattributes,\n\tclientId,\n\tisSelected,\n\tnoticeUI,\n\tnoticeOperations,\n\toverlayColor,\n\tsetAttributes,\n\tsetOverlayColor,\n\ttoggleSelection,\n\tmarkNextChangeAsNotPersistent,\n} ) {\n\tconst {\n\t\tcontentPosition,\n\t\tid,\n\t\tbackgroundType,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisDark,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\tstyle: styleAttribute,\n\t\turl,\n\t\talt,\n\t\tallowedBlocks,\n\t\ttemplateLock,\n\t} = attributes;\n\tconst {\n\t\tgradientClass,\n\t\tgradientValue,\n\t\tsetGradient,\n\t} = __experimentalUseGradient();\n\tconst onSelectMedia = attributesFromMedia( setAttributes, dimRatio );\n\tconst isUploadingMedia = isTemporaryMedia( id, url );\n\n\tconst [ prevMinHeightValue, setPrevMinHeightValue ] = useState( minHeight );\n\tconst [ prevMinHeightUnit, setPrevMinHeightUnit ] = useState(\n\t\tminHeightUnit\n\t);\n\tconst isMinFullHeight = minHeightUnit === 'vh' && minHeight === 100;\n\n\tconst toggleMinFullHeight = () => {\n\t\tif ( isMinFullHeight ) {\n\t\t\t// If there aren't previous values, take the default ones.\n\t\t\tif ( prevMinHeightUnit === 'vh' && prevMinHeightValue === 100 ) {\n\t\t\t\treturn setAttributes( {\n\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Set the previous values of height.\n\t\t\treturn setAttributes( {\n\t\t\t\tminHeight: prevMinHeightValue,\n\t\t\t\tminHeightUnit: prevMinHeightUnit,\n\t\t\t} );\n\t\t}\n\n\t\tsetPrevMinHeightValue( minHeight );\n\t\tsetPrevMinHeightUnit( minHeightUnit );\n\n\t\t// Set full height.\n\t\treturn setAttributes( {\n\t\t\tminHeight: 100,\n\t\t\tminHeightUnit: 'vh',\n\t\t} );\n\t};\n\n\tconst toggleParallax = () => {\n\t\tsetAttributes( {\n\t\t\thasParallax: ! hasParallax,\n\t\t\t...( ! hasParallax ? { focalPoint: undefined } : {} ),\n\t\t} );\n\t};\n\n\tconst toggleIsRepeated = () => {\n\t\tsetAttributes( {\n\t\t\tisRepeated: ! isRepeated,\n\t\t} );\n\t};\n\n\tconst isDarkElement = useRef();\n\tconst isCoverDark = useCoverIsDark(\n\t\turl,\n\t\tdimRatio,\n\t\toverlayColor.color,\n\t\tisDarkElement\n\t);\n\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level.\n\t\tmarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isDark: isCoverDark } );\n\t}, [ isCoverDark ] );\n\n\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\tconst [ temporaryMinHeight, setTemporaryMinHeight ] = useState( null );\n\n\tconst minHeightWithUnit = minHeightUnit\n\t\t? `${ minHeight }${ minHeightUnit }`\n\t\t: minHeight;\n\n\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\tconst style = {\n\t\t...( isImageBackground && ! isImgElement\n\t\t\t? backgroundImageStyles( url )\n\t\t\t: undefined ),\n\t\tminHeight: temporaryMinHeight || minHeightWithUnit || undefined,\n\t};\n\n\tconst bgStyle = { backgroundColor: overlayColor.color };\n\tconst mediaStyle = {\n\t\tobjectPosition:\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t? mediaPosition( focalPoint )\n\t\t\t\t: undefined,\n\t};\n\n\tconst hasBackground = !! ( url || overlayColor.color || gradientValue );\n\tconst showFocalPointPicker =\n\t\tisVideoBackground ||\n\t\t( isImageBackground && ( ! hasParallax || isRepeated ) );\n\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst [ styleOfRef, property ] = isDarkElement.current\n\t\t\t? [ isDarkElement.current.style, 'objectPosition' ]\n\t\t\t: [ ref.current.style, 'backgroundPosition' ];\n\t\tstyleOfRef[ property ] = mediaPosition( value );\n\t};\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlock( clientId ).innerBlocks.length >\n\t\t\t0,\n\t\t[ clientId ]\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<BlockAlignmentMatrixControl\n\t\t\t\t\tlabel={ __( 'Change content position' ) }\n\t\t\t\t\tvalue={ contentPosition }\n\t\t\t\t\tonChange={ ( nextPosition ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tcontentPosition: nextPosition,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t/>\n\t\t\t\t<FullHeightAlignmentControl\n\t\t\t\t\tisActive={ isMinFullHeight }\n\t\t\t\t\tonToggle={ toggleMinFullHeight }\n\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*,video/*\"\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\tname={ ! url ? __( 'Add Media' ) : __( 'Replace' ) }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t{ !! url && (\n\t\t\t\t\t<PanelBody title={ __( 'Media settings' ) }>\n\t\t\t\t\t\t{ isImageBackground && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Repeated background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isRepeated }\n\t\t\t\t\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showFocalPointPicker && (\n\t\t\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonChange={ ( newFocalPoint ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfocalPoint: newFocalPoint,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ url && isImageBackground && isImgElement && (\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alt text (alternative text)' ) }\n\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\tonChange={ ( newAlt ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { alt: newAlt } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\tclassName=\"block-library-cover__reset-button\"\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\turl: undefined,\n\t\t\t\t\t\t\t\t\t\tid: undefined,\n\t\t\t\t\t\t\t\t\t\tbackgroundType: undefined,\n\t\t\t\t\t\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\t\t\t\t\t\thasParallax: undefined,\n\t\t\t\t\t\t\t\t\t\tisRepeated: undefined,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Clear Media' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</PanelRow>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t\t<PanelColorGradientSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\ttitle={ __( 'Overlay' ) }\n\t\t\t\t\tinitialOpen={ true }\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolorValue: overlayColor.color,\n\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\tonColorChange: setOverlayColor,\n\t\t\t\t\t\t\tonGradientChange: setGradient,\n\t\t\t\t\t\t\tlabel: __( 'Color' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Opacity' ) }\n\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\tonChange={ ( newDimRation ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdimRatio: newDimRation,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\tstep={ 10 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</PanelColorGradientSettings>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls __experimentalGroup=\"dimensions\">\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! minHeight }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<CoverHeightInput\n\t\t\t\t\t\tvalue={ temporaryMinHeight || minHeight }\n\t\t\t\t\t\tunit={ minHeightUnit }\n\t\t\t\t\t\tonChange={ ( newMinHeight ) =>\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUnitChange={ ( nextUnit ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tminHeightUnit: nextUnit,\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</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( { ref } );\n\n\t// Check for fontSize support before we pass a fontSize attribute to the innerBlocks.\n\tconst hasFontSizes = !! useSetting( 'typography.fontSizes' )?.length;\n\tconst innerBlocksTemplate = getInnerBlocksTemplate( {\n\t\tfontSize: hasFontSizes ? 'large' : undefined,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t},\n\t\t{\n\t\t\ttemplate: innerBlocksTemplate,\n\t\t\ttemplateInsertUpdatesSelection: true,\n\t\t\tallowedBlocks,\n\t\t\ttemplateLock,\n\t\t}\n\t);\n\n\tif ( ! hasInnerBlocks && ! hasBackground ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'is-placeholder',\n\t\t\t\t\t\tblockProps.className\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<CoverPlaceholder\n\t\t\t\t\t\tnoticeUI={ noticeUI }\n\t\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\t\tnoticeOperations={ noticeOperations }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tminHeight:\n\t\t\t\t\t\t\t\ttemporaryMinHeight ||\n\t\t\t\t\t\t\t\tminHeightWithUnit ||\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"wp-block-cover__placeholder-background-options\">\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\t\t\tvalue={ overlayColor.color }\n\t\t\t\t\t\t\t\tonChange={ setOverlayColor }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CoverPlaceholder>\n\t\t\t\t\t<ResizableCover\n\t\t\t\t\t\tclassName=\"block-library-cover__resize-container\"\n\t\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResize={ setTemporaryMinHeight }\n\t\t\t\t\t\tonResizeStop={ ( newMinHeight ) => {\n\t\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t\t\t\t\t\tsetTemporaryMinHeight( null );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst classes = classnames(\n\t\t{\n\t\t\t'is-dark-theme': isDark,\n\t\t\t'is-light': ! isDark,\n\t\t\t'is-transient': isUploadingMedia,\n\t\t\t'has-parallax': hasParallax,\n\t\t\t'is-repeated': isRepeated,\n\t\t\t'has-custom-content-position': ! isContentPositionCenter(\n\t\t\t\tcontentPosition\n\t\t\t),\n\t\t},\n\t\tgetPositionClassName( contentPosition )\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( classes, blockProps.className ) }\n\t\t\t\tstyle={ { ...style, ...blockProps.style } }\n\t\t\t\tdata-url={ url }\n\t\t\t>\n\t\t\t\t<BoxControlVisualizer\n\t\t\t\t\tvalues={ styleAttribute?.spacing?.padding }\n\t\t\t\t\tshowValues={ styleAttribute?.visualizers?.padding }\n\t\t\t\t/>\n\t\t\t\t<ResizableCover\n\t\t\t\t\tclassName=\"block-library-cover__resize-container\"\n\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonResize={ setTemporaryMinHeight }\n\t\t\t\t\tonResizeStop={ ( newMinHeight ) => {\n\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t\t\t\t\tsetTemporaryMinHeight( null );\n\t\t\t\t\t} }\n\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t/>\n\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t{ [ overlayColor.class ]: overlayColor.class },\n\t\t\t\t\t\t'wp-block-cover__gradient-background',\n\t\t\t\t\t\tgradientClass,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t[ gradientClass ]: ! url && gradientClass,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ { backgroundImage: gradientValue, ...bgStyle } }\n\t\t\t\t/>\n\n\t\t\t\t{ url && isImageBackground && isImgElement && (\n\t\t\t\t\t<img\n\t\t\t\t\t\tref={ isDarkElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__image-background\"\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ url && isVideoBackground && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tref={ isDarkElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isUploadingMedia && <Spinner /> }\n\t\t\t\t<CoverPlaceholder\n\t\t\t\t\tdisableMediaButtons\n\t\t\t\t\tnoticeUI={ noticeUI }\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tnoticeOperations={ noticeOperations }\n\t\t\t\t/>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst {\n\t\t\ttoggleSelection,\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\ttoggleSelection,\n\t\t\tmarkNextChangeAsNotPersistent: __unstableMarkNextChangeAsNotPersistent,\n\t\t};\n\t} ),\n\twithColors( { overlayColor: 'background-color' } ),\n\twithNotices,\n\twithInstanceId,\n] )( CoverEdit );\n"]}
@@ -419,7 +419,7 @@ function GalleryEdit(props) {
419
419
  options: imageSizeOptions,
420
420
  onChange: updateImagesSize,
421
421
  hideCancelButton: true
422
- }), _element.Platform.isWeb && !imageSizeOptions && (0, _element.createElement)(_components.BaseControl, {
422
+ }), _element.Platform.isWeb && !imageSizeOptions && hasImageIds && (0, _element.createElement)(_components.BaseControl, {
423
423
  className: 'gallery-image-sizes'
424
424
  }, (0, _element.createElement)(_components.BaseControl.VisualLabel, null, (0, _i18n.__)('Image size')), (0, _element.createElement)(_primitives.View, {
425
425
  className: 'gallery-image-sizes__loading'
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","noticeOperations","isSelected","noticeUI","insertBlocksAfter","columns","imageCrop","linkTarget","linkTo","shortCodeTransforms","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","blockEditorStore","createSuccessNotice","noticesStore","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","shortCodeImages","updateImages","imageSizeOptions","existingBlock","image","newClassName","isValidFileType","file","some","mediaType","indexOf","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","removeAllNotices","createErrorNotice","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","find","img","newImageList","existingImg","newBlocks","caption","alt","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","newLinkTarget","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","length","hasImageIds","imagesUploading","mediaPlaceholder","sharedIcon","title","instructions","blockProps","hasLinkTo","Math","min","isWeb","withNotices","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { concat, find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useShortCodeTransform from './use-short-code-transform';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\n\n/**\n * Internal dependencies\n */\nimport useMobileWarning from './use-mobile-warning';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tnoticeOperations,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst {\n\t\tcolumns,\n\t\timageCrop,\n\t\tlinkTarget,\n\t\tlinkTo,\n\t\tshortCodeTransforms,\n\t\tsizeSlug,\n\t} = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseMobileWarning( newImages );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( false, newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst shortCodeImages = useShortCodeTransform( shortCodeTransforms );\n\n\tuseEffect( () => {\n\t\tif ( ! shortCodeTransforms || ! shortCodeImages ) {\n\t\t\treturn;\n\t\t}\n\t\tupdateImages( shortCodeImages );\n\t\tsetAttributes( { shortCodeTransforms: undefined } );\n\t}, [ shortCodeTransforms, shortCodeImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} existingBlock Existing Image block that still exists after gallery update.\n\t * @param {Object} image Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( existingBlock, image ) {\n\t\tif ( existingBlock ) {\n\t\t\treturn existingBlock.attributes;\n\t\t}\n\n\t\tlet newClassName;\n\t\tif ( image.className && image.className !== '' ) {\n\t\t\tnewClassName = image.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination( image, linkTo ),\n\t\t\t...getUpdatedLinkTargetSettings( linkTarget, attributes ),\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => file.type?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tnoticeOperations.removeAllNotices();\n\t\t\tnoticeOperations.createErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\tconcat( existingImageBlocks, newBlocks ).sort(\n\t\t\t\t( a, b ) =>\n\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? find( imageData, { id: block.attributes.id } )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? find( imageData, { id: block.attributes.id } )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some(\n\t\t( img ) => ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t);\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\thandleUpload={ false }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading\n\t\t\t}\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Gallery settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image size' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","noticeOperations","isSelected","noticeUI","insertBlocksAfter","columns","imageCrop","linkTarget","linkTo","shortCodeTransforms","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","blockEditorStore","createSuccessNotice","noticesStore","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","shortCodeImages","updateImages","imageSizeOptions","existingBlock","image","newClassName","isValidFileType","file","some","mediaType","indexOf","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","removeAllNotices","createErrorNotice","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","find","img","newImageList","existingImg","newBlocks","caption","alt","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","newLinkTarget","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","length","hasImageIds","imagesUploading","mediaPlaceholder","sharedIcon","title","instructions","blockProps","hasLinkTo","Math","min","isWeb","withNotices","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { concat, find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useShortCodeTransform from './use-short-code-transform';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\n\n/**\n * Internal dependencies\n */\nimport useMobileWarning from './use-mobile-warning';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tnoticeOperations,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst {\n\t\tcolumns,\n\t\timageCrop,\n\t\tlinkTarget,\n\t\tlinkTo,\n\t\tshortCodeTransforms,\n\t\tsizeSlug,\n\t} = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseMobileWarning( newImages );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( false, newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst shortCodeImages = useShortCodeTransform( shortCodeTransforms );\n\n\tuseEffect( () => {\n\t\tif ( ! shortCodeTransforms || ! shortCodeImages ) {\n\t\t\treturn;\n\t\t}\n\t\tupdateImages( shortCodeImages );\n\t\tsetAttributes( { shortCodeTransforms: undefined } );\n\t}, [ shortCodeTransforms, shortCodeImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} existingBlock Existing Image block that still exists after gallery update.\n\t * @param {Object} image Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( existingBlock, image ) {\n\t\tif ( existingBlock ) {\n\t\t\treturn existingBlock.attributes;\n\t\t}\n\n\t\tlet newClassName;\n\t\tif ( image.className && image.className !== '' ) {\n\t\t\tnewClassName = image.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination( image, linkTo ),\n\t\t\t...getUpdatedLinkTargetSettings( linkTarget, attributes ),\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => file.type?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tnoticeOperations.removeAllNotices();\n\t\t\tnoticeOperations.createErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\tconcat( existingImageBlocks, newBlocks ).sort(\n\t\t\t\t( a, b ) =>\n\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? find( imageData, { id: block.attributes.id } )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? find( imageData, { id: block.attributes.id } )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some(\n\t\t( img ) => ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t);\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\thandleUpload={ false }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading\n\t\t\t}\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Gallery settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image size' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
@@ -59,7 +59,7 @@ const updateGallery = _ref => {
59
59
  }
60
60
 
61
61
  const innerBlocks = images.map(image => (0, _blocks.createBlock)('core/image', {
62
- id: parseInt(image.id, 10),
62
+ id: image.id ? parseInt(image.id, 10) : null,
63
63
  url: image.url,
64
64
  alt: image.alt,
65
65
  caption: image.caption,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/update-gallery-modal.js"],"names":["updateGallery","clientId","getBlock","replaceBlocks","link","attributes","sizeSlug","linkTo","images","caption","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","innerBlocks","map","image","id","parseInt","url","alt","linkDestination","UpdateGalleryModal","onClose","blockEditorStore","describedby","createBlock"],"mappings":";;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AAZA;AACA;AACA;;AAOA;AACA;AACA;AAOO,MAAMA,aAAa,GAAG;AAAA,MAAE;AAC9BC,IAAAA,QAD8B;AAE9BC,IAAAA,QAF8B;AAG9BC,IAAAA;AAH8B,GAAF;AAAA,SAItB,MAAM;AACZ,QAAIC,IAAJ;AACA,UAAM;AACLC,MAAAA,UAAU,EAAE;AAAEC,QAAAA,QAAF;AAAYC,QAAAA,MAAZ;AAAoBC,QAAAA,MAApB;AAA4BC,QAAAA;AAA5B;AADP,QAEFP,QAAQ,CAAED,QAAF,CAFZ;;AAIA,YAASM,MAAT;AACC,WAAK,MAAL;AACCH,QAAAA,IAAI,GAAGM,sCAAP;AACA;;AACD,WAAK,MAAL;AACCN,QAAAA,IAAI,GAAGO,iCAAP;AACA;;AACD;AACCP,QAAAA,IAAI,GAAGQ,gCAAP;AACA;AATF;;AAWA,UAAMC,WAAW,GAAGL,MAAM,CAACM,GAAP,CAAcC,KAAF,IAC/B,yBAAa,YAAb,EAA2B;AAC1BC,MAAAA,EAAE,EAAEC,QAAQ,CAAEF,KAAK,CAACC,EAAR,EAAY,EAAZ,CADc;AAE1BE,MAAAA,GAAG,EAAEH,KAAK,CAACG,GAFe;AAG1BC,MAAAA,GAAG,EAAEJ,KAAK,CAACI,GAHe;AAI1BV,MAAAA,OAAO,EAAEM,KAAK,CAACN,OAJW;AAK1BW,MAAAA,eAAe,EAAEhB;AALS,KAA3B,CADmB,CAApB;AAUAD,IAAAA,aAAa,CACZF,QADY,EAEZ,yBACC,cADD,EAEC;AAAEK,MAAAA,QAAF;AAAYC,MAAAA,MAAM,EAAEH,IAApB;AAA0BK,MAAAA;AAA1B,KAFD,EAGCI,WAHD,CAFY,CAAb;AAQA,GAvC4B;AAAA,CAAtB;;;;AAyCQ,SAASQ,kBAAT,QAAqD;AAAA,MAAxB;AAAEC,IAAAA,OAAF;AAAWrB,IAAAA;AAAX,GAAwB;AACnE,QAAM;AAAEC,IAAAA;AAAF,MAAe,qBAAWqB,kBAAX,CAArB;AACA,QAAM;AAAEpB,IAAAA;AAAF,MAAoB,uBAAaoB,kBAAb,CAA1B;AACA,SACC,4BAAC,iBAAD;AACC,IAAA,UAAU,EAAG,cAAI,OAAJ,CADd;AAEC,IAAA,cAAc,EAAGD,OAFlB;AAGC,IAAA,KAAK,EAAG,cAAI,gBAAJ,CAHT;AAIC,IAAA,SAAS,EAAG,+BAJb;AAKC,IAAA,IAAI,EAAG;AACNE,MAAAA,WAAW,EAAE;AADP;AALR,KASC;AAAG,IAAA,EAAE,EAAG;AAAR,KACG,cACD,gKADC,CADH,CATD,EAeC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,kBAAD;AAAQ,IAAA,UAAU,MAAlB;AAAmB,IAAA,OAAO,EAAGF;AAA7B,KACG,cAAI,QAAJ,CADH,CADD,EAIC,4BAAC,kBAAD;AACC,IAAA,SAAS,MADV;AAEC,IAAA,OAAO,EAAGtB,aAAa,CAAE;AACxBG,MAAAA,aADwB;AAExBD,MAAAA,QAFwB;AAGxBD,MAAAA,QAHwB;AAIxBwB,MAAAA,WAAW,EAAXA;AAJwB,KAAF;AAFxB,KASG,cAAI,QAAJ,CATH,CAJD,CAfD,CADD;AAkCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\n\nexport const updateGallery = ( {\n\tclientId,\n\tgetBlock,\n\treplaceBlocks,\n} ) => () => {\n\tlet link;\n\tconst {\n\t\tattributes: { sizeSlug, linkTo, images, caption },\n\t} = getBlock( clientId );\n\n\tswitch ( linkTo ) {\n\t\tcase 'post':\n\t\t\tlink = LINK_DESTINATION_ATTACHMENT;\n\t\t\tbreak;\n\t\tcase 'file':\n\t\t\tlink = LINK_DESTINATION_MEDIA;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tlink = LINK_DESTINATION_NONE;\n\t\t\tbreak;\n\t}\n\tconst innerBlocks = images.map( ( image ) =>\n\t\tcreateBlock( 'core/image', {\n\t\t\tid: parseInt( image.id, 10 ),\n\t\t\turl: image.url,\n\t\t\talt: image.alt,\n\t\t\tcaption: image.caption,\n\t\t\tlinkDestination: link,\n\t\t} )\n\t);\n\n\treplaceBlocks(\n\t\tclientId,\n\t\tcreateBlock(\n\t\t\t'core/gallery',\n\t\t\t{ sizeSlug, linkTo: link, caption },\n\t\t\tinnerBlocks\n\t\t)\n\t);\n};\n\nexport default function UpdateGalleryModal( { onClose, clientId } ) {\n\tconst { getBlock } = useSelect( blockEditorStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<Modal\n\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\ttitle={ __( 'Update gallery' ) }\n\t\t\tclassName={ 'wp-block-update-gallery-modal' }\n\t\t\taria={ {\n\t\t\t\tdescribedby: 'wp-block-update-gallery-modal__description',\n\t\t\t} }\n\t\t>\n\t\t\t<p id={ 'wp-block-update-gallery-modal__description' }>\n\t\t\t\t{ __(\n\t\t\t\t\t'Updating to the new format adds the ability to use custom links or styles on individual images in the gallery, and makes it easier to add or move them around.'\n\t\t\t\t) }\n\t\t\t</p>\n\n\t\t\t<div className=\"wp-block-update-gallery-modal-buttons\">\n\t\t\t\t<Button isTertiary onClick={ onClose }>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tisPrimary\n\t\t\t\t\tonClick={ updateGallery( {\n\t\t\t\t\t\treplaceBlocks,\n\t\t\t\t\t\tgetBlock,\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tcreateBlock,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/update-gallery-modal.js"],"names":["updateGallery","clientId","getBlock","replaceBlocks","link","attributes","sizeSlug","linkTo","images","caption","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","innerBlocks","map","image","id","parseInt","url","alt","linkDestination","UpdateGalleryModal","onClose","blockEditorStore","describedby","createBlock"],"mappings":";;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AAZA;AACA;AACA;;AAOA;AACA;AACA;AAOO,MAAMA,aAAa,GAAG;AAAA,MAAE;AAC9BC,IAAAA,QAD8B;AAE9BC,IAAAA,QAF8B;AAG9BC,IAAAA;AAH8B,GAAF;AAAA,SAItB,MAAM;AACZ,QAAIC,IAAJ;AACA,UAAM;AACLC,MAAAA,UAAU,EAAE;AAAEC,QAAAA,QAAF;AAAYC,QAAAA,MAAZ;AAAoBC,QAAAA,MAApB;AAA4BC,QAAAA;AAA5B;AADP,QAEFP,QAAQ,CAAED,QAAF,CAFZ;;AAIA,YAASM,MAAT;AACC,WAAK,MAAL;AACCH,QAAAA,IAAI,GAAGM,sCAAP;AACA;;AACD,WAAK,MAAL;AACCN,QAAAA,IAAI,GAAGO,iCAAP;AACA;;AACD;AACCP,QAAAA,IAAI,GAAGQ,gCAAP;AACA;AATF;;AAWA,UAAMC,WAAW,GAAGL,MAAM,CAACM,GAAP,CAAcC,KAAF,IAC/B,yBAAa,YAAb,EAA2B;AAC1BC,MAAAA,EAAE,EAAED,KAAK,CAACC,EAAN,GAAWC,QAAQ,CAAEF,KAAK,CAACC,EAAR,EAAY,EAAZ,CAAnB,GAAsC,IADhB;AAE1BE,MAAAA,GAAG,EAAEH,KAAK,CAACG,GAFe;AAG1BC,MAAAA,GAAG,EAAEJ,KAAK,CAACI,GAHe;AAI1BV,MAAAA,OAAO,EAAEM,KAAK,CAACN,OAJW;AAK1BW,MAAAA,eAAe,EAAEhB;AALS,KAA3B,CADmB,CAApB;AAUAD,IAAAA,aAAa,CACZF,QADY,EAEZ,yBACC,cADD,EAEC;AAAEK,MAAAA,QAAF;AAAYC,MAAAA,MAAM,EAAEH,IAApB;AAA0BK,MAAAA;AAA1B,KAFD,EAGCI,WAHD,CAFY,CAAb;AAQA,GAvC4B;AAAA,CAAtB;;;;AAyCQ,SAASQ,kBAAT,QAAqD;AAAA,MAAxB;AAAEC,IAAAA,OAAF;AAAWrB,IAAAA;AAAX,GAAwB;AACnE,QAAM;AAAEC,IAAAA;AAAF,MAAe,qBAAWqB,kBAAX,CAArB;AACA,QAAM;AAAEpB,IAAAA;AAAF,MAAoB,uBAAaoB,kBAAb,CAA1B;AACA,SACC,4BAAC,iBAAD;AACC,IAAA,UAAU,EAAG,cAAI,OAAJ,CADd;AAEC,IAAA,cAAc,EAAGD,OAFlB;AAGC,IAAA,KAAK,EAAG,cAAI,gBAAJ,CAHT;AAIC,IAAA,SAAS,EAAG,+BAJb;AAKC,IAAA,IAAI,EAAG;AACNE,MAAAA,WAAW,EAAE;AADP;AALR,KASC;AAAG,IAAA,EAAE,EAAG;AAAR,KACG,cACD,gKADC,CADH,CATD,EAeC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,kBAAD;AAAQ,IAAA,UAAU,MAAlB;AAAmB,IAAA,OAAO,EAAGF;AAA7B,KACG,cAAI,QAAJ,CADH,CADD,EAIC,4BAAC,kBAAD;AACC,IAAA,SAAS,MADV;AAEC,IAAA,OAAO,EAAGtB,aAAa,CAAE;AACxBG,MAAAA,aADwB;AAExBD,MAAAA,QAFwB;AAGxBD,MAAAA,QAHwB;AAIxBwB,MAAAA,WAAW,EAAXA;AAJwB,KAAF;AAFxB,KASG,cAAI,QAAJ,CATH,CAJD,CAfD,CADD;AAkCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\n\nexport const updateGallery = ( {\n\tclientId,\n\tgetBlock,\n\treplaceBlocks,\n} ) => () => {\n\tlet link;\n\tconst {\n\t\tattributes: { sizeSlug, linkTo, images, caption },\n\t} = getBlock( clientId );\n\n\tswitch ( linkTo ) {\n\t\tcase 'post':\n\t\t\tlink = LINK_DESTINATION_ATTACHMENT;\n\t\t\tbreak;\n\t\tcase 'file':\n\t\t\tlink = LINK_DESTINATION_MEDIA;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tlink = LINK_DESTINATION_NONE;\n\t\t\tbreak;\n\t}\n\tconst innerBlocks = images.map( ( image ) =>\n\t\tcreateBlock( 'core/image', {\n\t\t\tid: image.id ? parseInt( image.id, 10 ) : null,\n\t\t\turl: image.url,\n\t\t\talt: image.alt,\n\t\t\tcaption: image.caption,\n\t\t\tlinkDestination: link,\n\t\t} )\n\t);\n\n\treplaceBlocks(\n\t\tclientId,\n\t\tcreateBlock(\n\t\t\t'core/gallery',\n\t\t\t{ sizeSlug, linkTo: link, caption },\n\t\t\tinnerBlocks\n\t\t)\n\t);\n};\n\nexport default function UpdateGalleryModal( { onClose, clientId } ) {\n\tconst { getBlock } = useSelect( blockEditorStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<Modal\n\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\ttitle={ __( 'Update gallery' ) }\n\t\t\tclassName={ 'wp-block-update-gallery-modal' }\n\t\t\taria={ {\n\t\t\t\tdescribedby: 'wp-block-update-gallery-modal__description',\n\t\t\t} }\n\t\t>\n\t\t\t<p id={ 'wp-block-update-gallery-modal__description' }>\n\t\t\t\t{ __(\n\t\t\t\t\t'Updating to the new format adds the ability to use custom links or styles on individual images in the gallery, and makes it easier to add or move them around.'\n\t\t\t\t) }\n\t\t\t</p>\n\n\t\t\t<div className=\"wp-block-update-gallery-modal-buttons\">\n\t\t\t\t<Button isTertiary onClick={ onClose }>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tisPrimary\n\t\t\t\t\tonClick={ updateGallery( {\n\t\t\t\t\t\treplaceBlocks,\n\t\t\t\t\t\tgetBlock,\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tcreateBlock,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"]}
package/build/index.js CHANGED
@@ -223,8 +223,9 @@ const __experimentalGetCoreBlocks = () => [// Common blocks are grouped at the t
223
223
  // in various contexts — like the inserter and auto-complete components.
224
224
  paragraph, image, heading, gallery, list, quote, // Register all remaining core blocks.
225
225
  archives, audio, button, buttons, calendar, categories, window.wp && window.wp.oldEditor ? classic : null, // Only add the classic block in WP Context
226
- code, column, columns, cover, embed, file, group, html, latestComments, latestPosts, logInOut, mediaText, missing, more, navigation, navigationLink, navigationSubmenu, nextpage, pageList, pattern, postAuthor, postComments, postContent, postDate, postExcerpt, postFeaturedImage, postNavigationLink, postTemplate, postTerms, postTitle, preformatted, pullquote, query, queryPagination, queryPaginationNext, queryPaginationNumbers, queryPaginationPrevious, queryTitle, reusableBlock, rss, search, separator, shortcode, siteLogo, siteTagline, siteTitle, socialLink, socialLinks, spacer, table, // tableOfContents,
227
- tagCloud, templatePart, termDescription, textColumns, verse, video];
226
+ code, column, columns, cover, embed, file, group, html, latestComments, latestPosts, mediaText, missing, more, nextpage, pageList, pattern, preformatted, pullquote, reusableBlock, rss, search, separator, shortcode, socialLink, socialLinks, spacer, table, // tableOfContents,
227
+ tagCloud, textColumns, verse, video, // theme blocks
228
+ navigation, navigationLink, navigationSubmenu, siteLogo, siteTitle, siteTagline, query, templatePart, postTitle, postExcerpt, postFeaturedImage, postContent, postAuthor, postDate, postTerms, postNavigationLink, postTemplate, queryPagination, queryPaginationNext, queryPaginationNumbers, queryPaginationPrevious, postComments, logInOut, termDescription, queryTitle];
228
229
  /**
229
230
  * Function to register core blocks provided by the block editor.
230
231
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/index.js"],"names":["registerBlock","block","metadata","settings","name","__experimentalGetCoreBlocks","paragraph","image","heading","gallery","list","quote","archives","audio","button","buttons","calendar","categories","window","wp","oldEditor","classic","code","column","columns","cover","embed","file","group","html","latestComments","latestPosts","logInOut","mediaText","missing","more","navigation","navigationLink","navigationSubmenu","nextpage","pageList","pattern","postAuthor","postComments","postContent","postDate","postExcerpt","postFeaturedImage","postNavigationLink","postTemplate","postTerms","postTitle","preformatted","pullquote","query","queryPagination","queryPaginationNext","queryPaginationNumbers","queryPaginationPrevious","queryTitle","reusableBlock","rss","search","separator","shortcode","siteLogo","siteTagline","siteTitle","socialLink","socialLinks","spacer","table","tagCloud","templatePart","termDescription","textColumns","verse","video","registerCoreBlocks","blocks","forEach","__experimentalRegisterExperimentalCoreBlocks","process","env","GUTENBERG_PHASE","enableFSEBlocks","homeLink","commentAuthorAvatar","commentAuthorName","commentContent","commentDate","commentEditLink","commentReplyLink","commentTemplate","commentsQueryLoop","navigationArea","postComment","postCommentsCount","postCommentsForm","postCommentsLink","undefined"],"mappings":";;;;;;;AAGA;;AAWA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAjGA;AACA;AACA;;AASA;AACA;AACA;AA8EA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,aAAa,GAAKC,KAAF,IAAa;AAClC,MAAK,CAAEA,KAAP,EAAe;AACd;AACA;;AACD,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA;AAAtB,MAA+BH,KAArC;AACA,iCAAmB;AAAEG,IAAAA,IAAF;AAAQ,OAAGF;AAAX,GAAnB,EAA0CC,QAA1C;AACA,CAND;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,MAAME,2BAA2B,GAAG,MAAM,CAChD;AACA;AACAC,SAHgD,EAIhDC,KAJgD,EAKhDC,OALgD,EAMhDC,OANgD,EAOhDC,IAPgD,EAQhDC,KARgD,EAUhD;AACAC,QAXgD,EAYhDC,KAZgD,EAahDC,MAbgD,EAchDC,OAdgD,EAehDC,QAfgD,EAgBhDC,UAhBgD,EAiBhDC,MAAM,CAACC,EAAP,IAAaD,MAAM,CAACC,EAAP,CAAUC,SAAvB,GAAmCC,OAAnC,GAA6C,IAjBG,EAiBG;AACnDC,IAlBgD,EAmBhDC,MAnBgD,EAoBhDC,OApBgD,EAqBhDC,KArBgD,EAsBhDC,KAtBgD,EAuBhDC,IAvBgD,EAwBhDC,KAxBgD,EAyBhDC,IAzBgD,EA0BhDC,cA1BgD,EA2BhDC,WA3BgD,EA4BhDC,QA5BgD,EA6BhDC,SA7BgD,EA8BhDC,OA9BgD,EA+BhDC,IA/BgD,EAgChDC,UAhCgD,EAiChDC,cAjCgD,EAkChDC,iBAlCgD,EAmChDC,QAnCgD,EAoChDC,QApCgD,EAqChDC,OArCgD,EAsChDC,UAtCgD,EAuChDC,YAvCgD,EAwChDC,WAxCgD,EAyChDC,QAzCgD,EA0ChDC,WA1CgD,EA2ChDC,iBA3CgD,EA4ChDC,kBA5CgD,EA6ChDC,YA7CgD,EA8ChDC,SA9CgD,EA+ChDC,SA/CgD,EAgDhDC,YAhDgD,EAiDhDC,SAjDgD,EAkDhDC,KAlDgD,EAmDhDC,eAnDgD,EAoDhDC,mBApDgD,EAqDhDC,sBArDgD,EAsDhDC,uBAtDgD,EAuDhDC,UAvDgD,EAwDhDC,aAxDgD,EAyDhDC,GAzDgD,EA0DhDC,MA1DgD,EA2DhDC,SA3DgD,EA4DhDC,SA5DgD,EA6DhDC,QA7DgD,EA8DhDC,WA9DgD,EA+DhDC,SA/DgD,EAgEhDC,UAhEgD,EAiEhDC,WAjEgD,EAkEhDC,MAlEgD,EAmEhDC,KAnEgD,EAoEhD;AACAC,QArEgD,EAsEhDC,YAtEgD,EAuEhDC,eAvEgD,EAwEhDC,WAxEgD,EAyEhDC,KAzEgD,EA0EhDC,KA1EgD,CAA1C;AA6EP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,MAAMC,kBAAkB,GAAG,YAE7B;AAAA,MADJC,MACI,uEADK1E,2BAA2B,EAChC;AACJ0E,EAAAA,MAAM,CAACC,OAAP,CAAgBhF,aAAhB;AAEA,mCAAqBM,SAAS,CAACF,IAA/B;;AACA,MAAKc,MAAM,CAACC,EAAP,IAAaD,MAAM,CAACC,EAAP,CAAUC,SAA5B,EAAwC;AACvC,+CAA+BC,OAAO,CAACjB,IAAvC;AACA;;AACD,8CAAgC8B,OAAO,CAAC9B,IAAxC;AACA,oCAAsBwB,KAAK,CAACxB,IAA5B;AACA,CAXM;AAaP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,MAAM6E,4CAA4C,GACxDC,OAAO,CAACC,GAAR,CAAYC,eAAZ,KAAgC,CAAhC,GACG,YAAgC;AAAA,MAA9B;AAAEC,IAAAA;AAAF,GAA8B,uEAAR,EAAQ;AAChC,GACC;AACAC,EAAAA,QAFD,EAIC;AACA,MAAKD,eAAe,GACjB,CACAE,mBADA,EAEAC,iBAFA,EAGAC,cAHA,EAIAC,WAJA,EAKAC,eALA,EAMAC,gBANA,EAOAC,eAPA,EAQAC,iBARA,EASAC,cATA,EAUAC,WAVA,EAWAC,iBAXA,EAYAC,gBAZA,EAaAC,gBAbA,CADiB,GAgBjB,EAhBH,CALD,EAsBEnB,OAtBF,CAsBWhF,aAtBX;AAuBC,CAzBJ,GA0BGoG,SA3BG","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tregisterBlockType,\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport * as archives from './archives';\nimport * as audio from './audio';\nimport * as button from './button';\nimport * as buttons from './buttons';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as classic from './freeform';\nimport * as code from './code';\nimport * as column from './column';\nimport * as columns from './columns';\nimport * as commentAuthorAvatar from './comment-author-avatar';\nimport * as commentAuthorName from './comment-author-name';\nimport * as commentContent from './comment-content';\nimport * as commentDate from './comment-date';\nimport * as commentEditLink from './comment-edit-link';\nimport * as commentReplyLink from './comment-reply-link';\nimport * as commentTemplate from './comment-template';\nimport * as commentsQueryLoop from './comments-query-loop';\nimport * as cover from './cover';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as gallery from './gallery';\nimport * as group from './group';\nimport * as heading from './heading';\nimport * as homeLink from './home-link';\nimport * as html from './html';\nimport * as image from './image';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as logInOut from './loginout';\nimport * as mediaText from './media-text';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as navigation from './navigation';\nimport * as navigationArea from './navigation-area';\nimport * as navigationLink from './navigation-link';\nimport * as navigationSubmenu from './navigation-submenu';\nimport * as nextpage from './nextpage';\nimport * as pattern from './pattern';\nimport * as pageList from './page-list';\nimport * as paragraph from './paragraph';\nimport * as postAuthor from './post-author';\nimport * as postComment from './post-comment';\nimport * as postComments from './post-comments';\nimport * as postCommentsCount from './post-comments-count';\nimport * as postCommentsForm from './post-comments-form';\nimport * as postCommentsLink from './post-comments-link';\nimport * as postContent from './post-content';\nimport * as postDate from './post-date';\nimport * as postExcerpt from './post-excerpt';\nimport * as postFeaturedImage from './post-featured-image';\nimport * as postNavigationLink from './post-navigation-link';\nimport * as postTemplate from './post-template';\nimport * as postTerms from './post-terms';\nimport * as postTitle from './post-title';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as query from './query';\nimport * as queryPagination from './query-pagination';\nimport * as queryPaginationNext from './query-pagination-next';\nimport * as queryPaginationNumbers from './query-pagination-numbers';\nimport * as queryPaginationPrevious from './query-pagination-previous';\nimport * as queryTitle from './query-title';\nimport * as quote from './quote';\nimport * as reusableBlock from './block';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as siteLogo from './site-logo';\nimport * as siteTagline from './site-tagline';\nimport * as siteTitle from './site-title';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\nimport * as spacer from './spacer';\nimport * as table from './table';\n// import * as tableOfContents from './table-of-contents';\nimport * as tagCloud from './tag-cloud';\nimport * as templatePart from './template-part';\nimport * as termDescription from './term-description';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\n\n/**\n * Function to register an individual block.\n *\n * @param {Object} block The block to be registered.\n *\n */\nconst registerBlock = ( block ) => {\n\tif ( ! block ) {\n\t\treturn;\n\t}\n\tconst { metadata, settings, name } = block;\n\tregisterBlockType( { name, ...metadata }, settings );\n};\n\n/**\n * Function to get all the core blocks in an array.\n *\n * @example\n * ```js\n * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';\n *\n * const coreBlocks = __experimentalGetCoreBlocks();\n * ```\n */\nexport const __experimentalGetCoreBlocks = () => [\n\t// Common blocks are grouped at the top to prioritize their display\n\t// in various contexts — like the inserter and auto-complete components.\n\tparagraph,\n\timage,\n\theading,\n\tgallery,\n\tlist,\n\tquote,\n\n\t// Register all remaining core blocks.\n\tarchives,\n\taudio,\n\tbutton,\n\tbuttons,\n\tcalendar,\n\tcategories,\n\twindow.wp && window.wp.oldEditor ? classic : null, // Only add the classic block in WP Context\n\tcode,\n\tcolumn,\n\tcolumns,\n\tcover,\n\tembed,\n\tfile,\n\tgroup,\n\thtml,\n\tlatestComments,\n\tlatestPosts,\n\tlogInOut,\n\tmediaText,\n\tmissing,\n\tmore,\n\tnavigation,\n\tnavigationLink,\n\tnavigationSubmenu,\n\tnextpage,\n\tpageList,\n\tpattern,\n\tpostAuthor,\n\tpostComments,\n\tpostContent,\n\tpostDate,\n\tpostExcerpt,\n\tpostFeaturedImage,\n\tpostNavigationLink,\n\tpostTemplate,\n\tpostTerms,\n\tpostTitle,\n\tpreformatted,\n\tpullquote,\n\tquery,\n\tqueryPagination,\n\tqueryPaginationNext,\n\tqueryPaginationNumbers,\n\tqueryPaginationPrevious,\n\tqueryTitle,\n\treusableBlock,\n\trss,\n\tsearch,\n\tseparator,\n\tshortcode,\n\tsiteLogo,\n\tsiteTagline,\n\tsiteTitle,\n\tsocialLink,\n\tsocialLinks,\n\tspacer,\n\ttable,\n\t// tableOfContents,\n\ttagCloud,\n\ttemplatePart,\n\ttermDescription,\n\ttextColumns,\n\tverse,\n\tvideo,\n];\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @param {Array} blocks An optional array of the core blocks being registered.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = (\n\tblocks = __experimentalGetCoreBlocks()\n) => {\n\tblocks.forEach( registerBlock );\n\n\tsetDefaultBlockName( paragraph.name );\n\tif ( window.wp && window.wp.oldEditor ) {\n\t\tsetFreeformContentHandlerName( classic.name );\n\t}\n\tsetUnregisteredTypeHandlerName( missing.name );\n\tsetGroupingBlockName( group.name );\n};\n\n/**\n * Function to register experimental core blocks depending on editor settings.\n *\n * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.\n * @example\n * ```js\n * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';\n *\n * __experimentalRegisterExperimentalCoreBlocks( settings );\n * ```\n */\nexport const __experimentalRegisterExperimentalCoreBlocks =\n\tprocess.env.GUTENBERG_PHASE === 2\n\t\t? ( { enableFSEBlocks } = {} ) => {\n\t\t\t\t[\n\t\t\t\t\t// Experimental blocks.\n\t\t\t\t\thomeLink,\n\n\t\t\t\t\t// Full Site Editing blocks.\n\t\t\t\t\t...( enableFSEBlocks\n\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\tcommentAuthorAvatar,\n\t\t\t\t\t\t\t\tcommentAuthorName,\n\t\t\t\t\t\t\t\tcommentContent,\n\t\t\t\t\t\t\t\tcommentDate,\n\t\t\t\t\t\t\t\tcommentEditLink,\n\t\t\t\t\t\t\t\tcommentReplyLink,\n\t\t\t\t\t\t\t\tcommentTemplate,\n\t\t\t\t\t\t\t\tcommentsQueryLoop,\n\t\t\t\t\t\t\t\tnavigationArea,\n\t\t\t\t\t\t\t\tpostComment,\n\t\t\t\t\t\t\t\tpostCommentsCount,\n\t\t\t\t\t\t\t\tpostCommentsForm,\n\t\t\t\t\t\t\t\tpostCommentsLink,\n\t\t\t\t\t\t ]\n\t\t\t\t\t\t: [] ),\n\t\t\t\t].forEach( registerBlock );\n\t\t }\n\t\t: undefined;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/index.js"],"names":["registerBlock","block","metadata","settings","name","__experimentalGetCoreBlocks","paragraph","image","heading","gallery","list","quote","archives","audio","button","buttons","calendar","categories","window","wp","oldEditor","classic","code","column","columns","cover","embed","file","group","html","latestComments","latestPosts","mediaText","missing","more","nextpage","pageList","pattern","preformatted","pullquote","reusableBlock","rss","search","separator","shortcode","socialLink","socialLinks","spacer","table","tagCloud","textColumns","verse","video","navigation","navigationLink","navigationSubmenu","siteLogo","siteTitle","siteTagline","query","templatePart","postTitle","postExcerpt","postFeaturedImage","postContent","postAuthor","postDate","postTerms","postNavigationLink","postTemplate","queryPagination","queryPaginationNext","queryPaginationNumbers","queryPaginationPrevious","postComments","logInOut","termDescription","queryTitle","registerCoreBlocks","blocks","forEach","__experimentalRegisterExperimentalCoreBlocks","process","env","GUTENBERG_PHASE","enableFSEBlocks","homeLink","commentAuthorAvatar","commentAuthorName","commentContent","commentDate","commentEditLink","commentReplyLink","commentTemplate","commentsQueryLoop","navigationArea","postComment","postCommentsCount","postCommentsForm","postCommentsLink","undefined"],"mappings":";;;;;;;AAGA;;AAWA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAjGA;AACA;AACA;;AASA;AACA;AACA;AA8EA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,aAAa,GAAKC,KAAF,IAAa;AAClC,MAAK,CAAEA,KAAP,EAAe;AACd;AACA;;AACD,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA;AAAtB,MAA+BH,KAArC;AACA,iCAAmB;AAAEG,IAAAA,IAAF;AAAQ,OAAGF;AAAX,GAAnB,EAA0CC,QAA1C;AACA,CAND;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,MAAME,2BAA2B,GAAG,MAAM,CAChD;AACA;AACAC,SAHgD,EAIhDC,KAJgD,EAKhDC,OALgD,EAMhDC,OANgD,EAOhDC,IAPgD,EAQhDC,KARgD,EAUhD;AACAC,QAXgD,EAYhDC,KAZgD,EAahDC,MAbgD,EAchDC,OAdgD,EAehDC,QAfgD,EAgBhDC,UAhBgD,EAiBhDC,MAAM,CAACC,EAAP,IAAaD,MAAM,CAACC,EAAP,CAAUC,SAAvB,GAAmCC,OAAnC,GAA6C,IAjBG,EAiBG;AACnDC,IAlBgD,EAmBhDC,MAnBgD,EAoBhDC,OApBgD,EAqBhDC,KArBgD,EAsBhDC,KAtBgD,EAuBhDC,IAvBgD,EAwBhDC,KAxBgD,EAyBhDC,IAzBgD,EA0BhDC,cA1BgD,EA2BhDC,WA3BgD,EA4BhDC,SA5BgD,EA6BhDC,OA7BgD,EA8BhDC,IA9BgD,EA+BhDC,QA/BgD,EAgChDC,QAhCgD,EAiChDC,OAjCgD,EAkChDC,YAlCgD,EAmChDC,SAnCgD,EAoChDC,aApCgD,EAqChDC,GArCgD,EAsChDC,MAtCgD,EAuChDC,SAvCgD,EAwChDC,SAxCgD,EAyChDC,UAzCgD,EA0ChDC,WA1CgD,EA2ChDC,MA3CgD,EA4ChDC,KA5CgD,EA6ChD;AACAC,QA9CgD,EA+ChDC,WA/CgD,EAgDhDC,KAhDgD,EAiDhDC,KAjDgD,EAmDhD;AACAC,UApDgD,EAqDhDC,cArDgD,EAsDhDC,iBAtDgD,EAuDhDC,QAvDgD,EAwDhDC,SAxDgD,EAyDhDC,WAzDgD,EA0DhDC,KA1DgD,EA2DhDC,YA3DgD,EA4DhDC,SA5DgD,EA6DhDC,WA7DgD,EA8DhDC,iBA9DgD,EA+DhDC,WA/DgD,EAgEhDC,UAhEgD,EAiEhDC,QAjEgD,EAkEhDC,SAlEgD,EAmEhDC,kBAnEgD,EAoEhDC,YApEgD,EAqEhDC,eArEgD,EAsEhDC,mBAtEgD,EAuEhDC,sBAvEgD,EAwEhDC,uBAxEgD,EAyEhDC,YAzEgD,EA0EhDC,QA1EgD,EA2EhDC,eA3EgD,EA4EhDC,UA5EgD,CAA1C;AA+EP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,MAAMC,kBAAkB,GAAG,YAE7B;AAAA,MADJC,MACI,uEADK1E,2BAA2B,EAChC;AACJ0E,EAAAA,MAAM,CAACC,OAAP,CAAgBhF,aAAhB;AAEA,mCAAqBM,SAAS,CAACF,IAA/B;;AACA,MAAKc,MAAM,CAACC,EAAP,IAAaD,MAAM,CAACC,EAAP,CAAUC,SAA5B,EAAwC;AACvC,+CAA+BC,OAAO,CAACjB,IAAvC;AACA;;AACD,8CAAgC6B,OAAO,CAAC7B,IAAxC;AACA,oCAAsBwB,KAAK,CAACxB,IAA5B;AACA,CAXM;AAaP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,MAAM6E,4CAA4C,GACxDC,OAAO,CAACC,GAAR,CAAYC,eAAZ,KAAgC,CAAhC,GACG,YAAgC;AAAA,MAA9B;AAAEC,IAAAA;AAAF,GAA8B,uEAAR,EAAQ;AAChC,GACC;AACAC,EAAAA,QAFD,EAIC;AACA,MAAKD,eAAe,GACjB,CACAE,mBADA,EAEAC,iBAFA,EAGAC,cAHA,EAIAC,WAJA,EAKAC,eALA,EAMAC,gBANA,EAOAC,eAPA,EAQAC,iBARA,EASAC,cATA,EAUAC,WAVA,EAWAC,iBAXA,EAYAC,gBAZA,EAaAC,gBAbA,CADiB,GAgBjB,EAhBH,CALD,EAsBEnB,OAtBF,CAsBWhF,aAtBX;AAuBC,CAzBJ,GA0BGoG,SA3BG","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tregisterBlockType,\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport * as archives from './archives';\nimport * as audio from './audio';\nimport * as button from './button';\nimport * as buttons from './buttons';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as classic from './freeform';\nimport * as code from './code';\nimport * as column from './column';\nimport * as columns from './columns';\nimport * as commentAuthorAvatar from './comment-author-avatar';\nimport * as commentAuthorName from './comment-author-name';\nimport * as commentContent from './comment-content';\nimport * as commentDate from './comment-date';\nimport * as commentEditLink from './comment-edit-link';\nimport * as commentReplyLink from './comment-reply-link';\nimport * as commentTemplate from './comment-template';\nimport * as commentsQueryLoop from './comments-query-loop';\nimport * as cover from './cover';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as gallery from './gallery';\nimport * as group from './group';\nimport * as heading from './heading';\nimport * as homeLink from './home-link';\nimport * as html from './html';\nimport * as image from './image';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as logInOut from './loginout';\nimport * as mediaText from './media-text';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as navigation from './navigation';\nimport * as navigationArea from './navigation-area';\nimport * as navigationLink from './navigation-link';\nimport * as navigationSubmenu from './navigation-submenu';\nimport * as nextpage from './nextpage';\nimport * as pattern from './pattern';\nimport * as pageList from './page-list';\nimport * as paragraph from './paragraph';\nimport * as postAuthor from './post-author';\nimport * as postComment from './post-comment';\nimport * as postComments from './post-comments';\nimport * as postCommentsCount from './post-comments-count';\nimport * as postCommentsForm from './post-comments-form';\nimport * as postCommentsLink from './post-comments-link';\nimport * as postContent from './post-content';\nimport * as postDate from './post-date';\nimport * as postExcerpt from './post-excerpt';\nimport * as postFeaturedImage from './post-featured-image';\nimport * as postNavigationLink from './post-navigation-link';\nimport * as postTemplate from './post-template';\nimport * as postTerms from './post-terms';\nimport * as postTitle from './post-title';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as query from './query';\nimport * as queryPagination from './query-pagination';\nimport * as queryPaginationNext from './query-pagination-next';\nimport * as queryPaginationNumbers from './query-pagination-numbers';\nimport * as queryPaginationPrevious from './query-pagination-previous';\nimport * as queryTitle from './query-title';\nimport * as quote from './quote';\nimport * as reusableBlock from './block';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as siteLogo from './site-logo';\nimport * as siteTagline from './site-tagline';\nimport * as siteTitle from './site-title';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\nimport * as spacer from './spacer';\nimport * as table from './table';\n// import * as tableOfContents from './table-of-contents';\nimport * as tagCloud from './tag-cloud';\nimport * as templatePart from './template-part';\nimport * as termDescription from './term-description';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\n\n/**\n * Function to register an individual block.\n *\n * @param {Object} block The block to be registered.\n *\n */\nconst registerBlock = ( block ) => {\n\tif ( ! block ) {\n\t\treturn;\n\t}\n\tconst { metadata, settings, name } = block;\n\tregisterBlockType( { name, ...metadata }, settings );\n};\n\n/**\n * Function to get all the core blocks in an array.\n *\n * @example\n * ```js\n * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';\n *\n * const coreBlocks = __experimentalGetCoreBlocks();\n * ```\n */\nexport const __experimentalGetCoreBlocks = () => [\n\t// Common blocks are grouped at the top to prioritize their display\n\t// in various contexts — like the inserter and auto-complete components.\n\tparagraph,\n\timage,\n\theading,\n\tgallery,\n\tlist,\n\tquote,\n\n\t// Register all remaining core blocks.\n\tarchives,\n\taudio,\n\tbutton,\n\tbuttons,\n\tcalendar,\n\tcategories,\n\twindow.wp && window.wp.oldEditor ? classic : null, // Only add the classic block in WP Context\n\tcode,\n\tcolumn,\n\tcolumns,\n\tcover,\n\tembed,\n\tfile,\n\tgroup,\n\thtml,\n\tlatestComments,\n\tlatestPosts,\n\tmediaText,\n\tmissing,\n\tmore,\n\tnextpage,\n\tpageList,\n\tpattern,\n\tpreformatted,\n\tpullquote,\n\treusableBlock,\n\trss,\n\tsearch,\n\tseparator,\n\tshortcode,\n\tsocialLink,\n\tsocialLinks,\n\tspacer,\n\ttable,\n\t// tableOfContents,\n\ttagCloud,\n\ttextColumns,\n\tverse,\n\tvideo,\n\n\t// theme blocks\n\tnavigation,\n\tnavigationLink,\n\tnavigationSubmenu,\n\tsiteLogo,\n\tsiteTitle,\n\tsiteTagline,\n\tquery,\n\ttemplatePart,\n\tpostTitle,\n\tpostExcerpt,\n\tpostFeaturedImage,\n\tpostContent,\n\tpostAuthor,\n\tpostDate,\n\tpostTerms,\n\tpostNavigationLink,\n\tpostTemplate,\n\tqueryPagination,\n\tqueryPaginationNext,\n\tqueryPaginationNumbers,\n\tqueryPaginationPrevious,\n\tpostComments,\n\tlogInOut,\n\ttermDescription,\n\tqueryTitle,\n];\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @param {Array} blocks An optional array of the core blocks being registered.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = (\n\tblocks = __experimentalGetCoreBlocks()\n) => {\n\tblocks.forEach( registerBlock );\n\n\tsetDefaultBlockName( paragraph.name );\n\tif ( window.wp && window.wp.oldEditor ) {\n\t\tsetFreeformContentHandlerName( classic.name );\n\t}\n\tsetUnregisteredTypeHandlerName( missing.name );\n\tsetGroupingBlockName( group.name );\n};\n\n/**\n * Function to register experimental core blocks depending on editor settings.\n *\n * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.\n * @example\n * ```js\n * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';\n *\n * __experimentalRegisterExperimentalCoreBlocks( settings );\n * ```\n */\nexport const __experimentalRegisterExperimentalCoreBlocks =\n\tprocess.env.GUTENBERG_PHASE === 2\n\t\t? ( { enableFSEBlocks } = {} ) => {\n\t\t\t\t[\n\t\t\t\t\t// Experimental blocks.\n\t\t\t\t\thomeLink,\n\n\t\t\t\t\t// Full Site Editing blocks.\n\t\t\t\t\t...( enableFSEBlocks\n\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\tcommentAuthorAvatar,\n\t\t\t\t\t\t\t\tcommentAuthorName,\n\t\t\t\t\t\t\t\tcommentContent,\n\t\t\t\t\t\t\t\tcommentDate,\n\t\t\t\t\t\t\t\tcommentEditLink,\n\t\t\t\t\t\t\t\tcommentReplyLink,\n\t\t\t\t\t\t\t\tcommentTemplate,\n\t\t\t\t\t\t\t\tcommentsQueryLoop,\n\t\t\t\t\t\t\t\tnavigationArea,\n\t\t\t\t\t\t\t\tpostComment,\n\t\t\t\t\t\t\t\tpostCommentsCount,\n\t\t\t\t\t\t\t\tpostCommentsForm,\n\t\t\t\t\t\t\t\tpostCommentsLink,\n\t\t\t\t\t\t ]\n\t\t\t\t\t\t: [] ),\n\t\t\t\t].forEach( registerBlock );\n\t\t }\n\t\t: undefined;\n"]}