@wordpress/block-library 6.0.6 → 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 (187) hide show
  1. package/build/cover/edit.js +8 -3
  2. package/build/cover/edit.js.map +1 -1
  3. package/build/cover/transforms.js +2 -0
  4. package/build/cover/transforms.js.map +1 -1
  5. package/build/gallery/edit.js +1 -1
  6. package/build/gallery/edit.js.map +1 -1
  7. package/build/gallery/v1/update-gallery-modal.js +1 -1
  8. package/build/gallery/v1/update-gallery-modal.js.map +1 -1
  9. package/build/index.js +4 -3
  10. package/build/index.js.map +1 -1
  11. package/build/navigation/deprecated.js +118 -12
  12. package/build/navigation/deprecated.js.map +1 -1
  13. package/build/navigation/edit/index.js +59 -33
  14. package/build/navigation/edit/index.js.map +1 -1
  15. package/build/navigation/edit/inner-blocks.js +1 -1
  16. package/build/navigation/edit/inner-blocks.js.map +1 -1
  17. package/build/navigation/edit/navigation-menu-selector.js +2 -2
  18. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  19. package/build/navigation/edit/placeholder/index.js +16 -48
  20. package/build/navigation/edit/placeholder/index.js.map +1 -1
  21. package/build/navigation/edit/responsive-wrapper.js +5 -2
  22. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  23. package/build/navigation/edit/unsaved-inner-blocks.js +4 -35
  24. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  25. package/build/navigation/edit/use-create-navigation-menu.js +50 -0
  26. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -0
  27. package/build/navigation/edit/use-generate-default-navigation-title.js +73 -0
  28. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -0
  29. package/build/navigation/index.js +1 -1
  30. package/build/navigation/save.js +2 -2
  31. package/build/navigation/save.js.map +1 -1
  32. package/build/navigation/use-navigation-menu.js +19 -8
  33. package/build/navigation/use-navigation-menu.js.map +1 -1
  34. package/build/navigation-area/edit.js +5 -0
  35. package/build/navigation-area/edit.js.map +1 -1
  36. package/build/page-list/edit.js +40 -42
  37. package/build/page-list/edit.js.map +1 -1
  38. package/build/pattern/index.js +1 -1
  39. package/build/post-featured-image/edit.js +53 -23
  40. package/build/post-featured-image/edit.js.map +1 -1
  41. package/build/post-terms/index.js +1 -1
  42. package/build/post-title/edit.js +2 -2
  43. package/build/post-title/edit.js.map +1 -1
  44. package/build/query-title/index.js +1 -1
  45. package/build/site-logo/index.js +1 -1
  46. package/build/site-tagline/index.js +1 -1
  47. package/build/site-title/index.js +1 -1
  48. package/build/template-part/edit/placeholder/index.js +1 -1
  49. package/build/template-part/edit/placeholder/index.js.map +1 -1
  50. package/build/template-part/index.js +2 -1
  51. package/build/template-part/index.js.map +1 -1
  52. package/build-module/cover/edit.js +8 -3
  53. package/build-module/cover/edit.js.map +1 -1
  54. package/build-module/cover/transforms.js +2 -0
  55. package/build-module/cover/transforms.js.map +1 -1
  56. package/build-module/gallery/edit.js +1 -1
  57. package/build-module/gallery/edit.js.map +1 -1
  58. package/build-module/gallery/v1/update-gallery-modal.js +1 -1
  59. package/build-module/gallery/v1/update-gallery-modal.js.map +1 -1
  60. package/build-module/index.js +4 -3
  61. package/build-module/index.js.map +1 -1
  62. package/build-module/navigation/deprecated.js +118 -12
  63. package/build-module/navigation/deprecated.js.map +1 -1
  64. package/build-module/navigation/edit/index.js +60 -33
  65. package/build-module/navigation/edit/index.js.map +1 -1
  66. package/build-module/navigation/edit/inner-blocks.js +1 -1
  67. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  68. package/build-module/navigation/edit/navigation-menu-selector.js +2 -2
  69. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  70. package/build-module/navigation/edit/placeholder/index.js +15 -45
  71. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  72. package/build-module/navigation/edit/responsive-wrapper.js +5 -2
  73. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  74. package/build-module/navigation/edit/unsaved-inner-blocks.js +6 -35
  75. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  76. package/build-module/navigation/edit/use-create-navigation-menu.js +36 -0
  77. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -0
  78. package/build-module/navigation/edit/use-generate-default-navigation-title.js +57 -0
  79. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -0
  80. package/build-module/navigation/index.js +1 -1
  81. package/build-module/navigation/save.js +2 -2
  82. package/build-module/navigation/save.js.map +1 -1
  83. package/build-module/navigation/use-navigation-menu.js +19 -8
  84. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  85. package/build-module/navigation-area/edit.js +4 -0
  86. package/build-module/navigation-area/edit.js.map +1 -1
  87. package/build-module/page-list/edit.js +41 -43
  88. package/build-module/page-list/edit.js.map +1 -1
  89. package/build-module/pattern/index.js +1 -1
  90. package/build-module/post-featured-image/edit.js +55 -26
  91. package/build-module/post-featured-image/edit.js.map +1 -1
  92. package/build-module/post-terms/index.js +1 -1
  93. package/build-module/post-title/edit.js +2 -2
  94. package/build-module/post-title/edit.js.map +1 -1
  95. package/build-module/query-title/index.js +1 -1
  96. package/build-module/site-logo/index.js +1 -1
  97. package/build-module/site-tagline/index.js +1 -1
  98. package/build-module/site-title/index.js +1 -1
  99. package/build-module/template-part/edit/placeholder/index.js +2 -2
  100. package/build-module/template-part/edit/placeholder/index.js.map +1 -1
  101. package/build-module/template-part/index.js +2 -1
  102. package/build-module/template-part/index.js.map +1 -1
  103. package/build-style/code/theme-rtl.css +1 -1
  104. package/build-style/code/theme.css +1 -1
  105. package/build-style/cover/style-rtl.css +8 -2
  106. package/build-style/cover/style.css +8 -2
  107. package/build-style/editor-rtl.css +104 -53
  108. package/build-style/editor.css +104 -53
  109. package/build-style/gallery/editor-rtl.css +1 -0
  110. package/build-style/gallery/editor.css +1 -0
  111. package/build-style/navigation/style-rtl.css +40 -3
  112. package/build-style/navigation/style.css +40 -3
  113. package/build-style/post-comments-form/style-rtl.css +18 -0
  114. package/build-style/post-comments-form/style.css +18 -0
  115. package/build-style/post-featured-image/editor-rtl.css +100 -16
  116. package/build-style/post-featured-image/editor.css +100 -16
  117. package/build-style/site-logo/editor-rtl.css +2 -2
  118. package/build-style/site-logo/editor.css +2 -2
  119. package/build-style/social-links/editor-rtl.css +1 -35
  120. package/build-style/social-links/editor.css +1 -35
  121. package/build-style/style-rtl.css +66 -27
  122. package/build-style/style.css +66 -27
  123. package/build-style/theme-rtl.css +1 -1
  124. package/build-style/theme.css +1 -1
  125. package/package.json +8 -8
  126. package/src/calendar/index.php +3 -3
  127. package/src/code/theme.scss +1 -1
  128. package/src/cover/edit.js +8 -1
  129. package/src/cover/style.scss +9 -2
  130. package/src/cover/transforms.js +2 -0
  131. package/src/gallery/edit.js +1 -1
  132. package/src/gallery/editor.scss +1 -0
  133. package/src/gallery/index.php +1 -1
  134. package/src/gallery/v1/update-gallery-modal.js +1 -1
  135. package/src/home-link/index.php +1 -1
  136. package/src/image/index.php +1 -1
  137. package/src/index.js +28 -26
  138. package/src/navigation/block.json +1 -1
  139. package/src/navigation/deprecated.js +105 -4
  140. package/src/navigation/edit/index.js +68 -36
  141. package/src/navigation/edit/inner-blocks.js +2 -1
  142. package/src/navigation/edit/navigation-menu-selector.js +2 -2
  143. package/src/navigation/edit/placeholder/index.js +16 -62
  144. package/src/navigation/edit/responsive-wrapper.js +8 -1
  145. package/src/navigation/edit/unsaved-inner-blocks.js +6 -57
  146. package/src/navigation/edit/use-create-navigation-menu.js +39 -0
  147. package/src/navigation/edit/use-generate-default-navigation-title.js +79 -0
  148. package/src/navigation/index.php +173 -19
  149. package/src/navigation/save.js +2 -2
  150. package/src/navigation/style.scss +56 -5
  151. package/src/navigation/use-navigation-menu.js +20 -9
  152. package/src/navigation-area/edit.js +5 -0
  153. package/src/navigation-area/index.php +2 -1
  154. package/src/navigation-link/index.php +1 -1
  155. package/src/navigation-submenu/index.php +2 -8
  156. package/src/page-list/edit.js +35 -44
  157. package/src/page-list/index.php +10 -5
  158. package/src/pattern/block.json +1 -1
  159. package/src/post-comments-form/style.scss +20 -1
  160. package/src/post-featured-image/edit.js +58 -26
  161. package/src/post-featured-image/editor.scss +124 -20
  162. package/src/post-terms/block.json +1 -1
  163. package/src/post-title/edit.js +2 -2
  164. package/src/query-title/block.json +1 -1
  165. package/src/site-logo/block.json +1 -1
  166. package/src/site-logo/editor.scss +3 -2
  167. package/src/site-tagline/block.json +1 -1
  168. package/src/site-title/block.json +1 -1
  169. package/src/social-links/editor.scss +1 -47
  170. package/src/style.scss +0 -1
  171. package/src/table-of-contents/index.php +1 -1
  172. package/src/template-part/block.json +2 -1
  173. package/src/template-part/edit/placeholder/index.js +2 -2
  174. package/src/template-part/index.php +2 -1
  175. package/build/navigation/edit/navigation-menu-name-modal.js +0 -55
  176. package/build/navigation/edit/navigation-menu-name-modal.js.map +0 -1
  177. package/build/navigation/edit/navigation-menu-publish-button.js +0 -53
  178. package/build/navigation/edit/navigation-menu-publish-button.js.map +0 -1
  179. package/build-module/navigation/edit/navigation-menu-name-modal.js +0 -47
  180. package/build-module/navigation/edit/navigation-menu-name-modal.js.map +0 -1
  181. package/build-module/navigation/edit/navigation-menu-publish-button.js +0 -40
  182. package/build-module/navigation/edit/navigation-menu-publish-button.js.map +0 -1
  183. package/build-style/navigation-submenu/style-rtl.css +0 -97
  184. package/build-style/navigation-submenu/style.css +0 -97
  185. package/src/navigation/edit/navigation-menu-name-modal.js +0 -69
  186. package/src/navigation/edit/navigation-menu-publish-button.js +0 -57
  187. package/src/navigation-submenu/style.scss +0 -25
@@ -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":";;;;;;;;;AAWA;;;;AARA;;AACA;;AACA;;AACA;;AAMA;;AAiBA;;AACA;;AAkBA;;AACA;;AACA;;AACA;;AAKA;;AAxDA;AACA;AACA;;AAMA;AACA;AACA;;AA2CA;AACA;AACA;AAaA,oBAAQ,CAAEA,cAAF,CAAR;AAEA,MAAM;AAAEC,EAAAA,YAAY,EAAEC;AAAhB,IAAyCC,oCAA/C;;AAEA,SAASC,sBAAT,CAAiCC,UAAjC,EAA8C;AAC7C,SAAO,CACN,CACC,gBADD,EAEC;AACCC,IAAAA,KAAK,EAAE,QADR;AAECC,IAAAA,WAAW,EAAE,cAAI,cAAJ,CAFd;AAGC,OAAGF;AAHJ,GAFD,CADM,CAAP;AAUA;;AAED,SAASG,wBAAT,GAAoC;AACnC,MAAK,CAAEA,wBAAwB,CAACC,gBAAhC,EAAmD;AAClDD,IAAAA,wBAAwB,CAACC,gBAAzB,GAA4C,IAAIC,yBAAJ,EAA5C;AACA;;AACD,SAAOF,wBAAwB,CAACC,gBAAhC;AACA;;AAED,SAASE,gBAAT,OAKI;AAAA,MALuB;AAC1BC,IAAAA,QAD0B;AAE1BC,IAAAA,YAF0B;AAG1BC,IAAAA,IAAI,GAAG,IAHmB;AAI1BC,IAAAA,KAAK,GAAG;AAJkB,GAKvB;AACH,QAAM,CAAEC,cAAF,EAAkBC,iBAAlB,IAAwC,uBAAU,IAAV,CAA9C;AAEA,QAAMC,UAAU,GAAG,4BAAeC,sCAAf,CAAnB;AACA,QAAMC,OAAO,GAAI,4BAA4BF,UAAY,EAAzD;AACA,QAAMG,IAAI,GAAGP,IAAI,KAAK,IAAtB;AAEA,QAAMQ,KAAK,GAAG,8CAAgB;AAC7BC,IAAAA,cAAc,EAAE,6BAAY,eAAZ,KAAiC,CAChD,IADgD,EAEhD,IAFgD,EAGhD,KAHgD,EAIhD,IAJgD,EAKhD,IALgD,CADpB;AAQ7BC,IAAAA,aAAa,EAAE;AAAEC,MAAAA,EAAE,EAAE,KAAN;AAAaC,MAAAA,EAAE,EAAE,IAAjB;AAAuBC,MAAAA,GAAG,EAAE,IAA5B;AAAkCC,MAAAA,EAAE,EAAE,IAAtC;AAA4CC,MAAAA,EAAE,EAAE;AAAhD;AARc,GAAhB,CAAd;;AAWA,QAAMC,cAAc,GAAKC,gBAAF,IAAwB;AAC9C,UAAMC,UAAU,GACfD,gBAAgB,KAAK,EAArB,GACGE,UAAU,CAAEF,gBAAF,CADb,GAEGG,SAHJ;;AAKA,QAAKC,KAAK,CAAEH,UAAF,CAAL,IAAuBA,UAAU,KAAKE,SAA3C,EAAuD;AACtDjB,MAAAA,iBAAiB,CAAEc,gBAAF,CAAjB;AACA;AACA;;AACDd,IAAAA,iBAAiB,CAAE,IAAF,CAAjB;AACAL,IAAAA,QAAQ,CAAEoB,UAAF,CAAR;;AACA,QAAKA,UAAU,KAAKE,SAApB,EAAgC;AAC/BrB,MAAAA,YAAY;AACZ;AACD,GAfD;;AAiBA,QAAMuB,YAAY,GAAG,MAAM;AAC1B,QAAKpB,cAAc,KAAK,IAAxB,EAA+B;AAC9BC,MAAAA,iBAAiB,CAAE,IAAF,CAAjB;AACA;AACD,GAJD;;AAMA,QAAMe,UAAU,GAAGhB,cAAc,KAAK,IAAnB,GAA0BA,cAA1B,GAA2CD,KAA9D;AACA,QAAMsB,GAAG,GAAGhB,IAAI,GAAGiB,wBAAH,GAAsB,CAAtC;AAEA,SACC,4BAAC,uBAAD;AAAa,IAAA,KAAK,EAAG,cAAI,yBAAJ,CAArB;AAAuD,IAAA,EAAE,EAAGlB;AAA5D,KACC,4BAAC,sCAAD;AACC,IAAA,EAAE,EAAGA,OADN;AAEC,IAAA,wBAAwB,MAFzB;AAGC,IAAA,GAAG,EAAGiB,GAHP;AAIC,IAAA,MAAM,EAAGD,YAJV;AAKC,IAAA,QAAQ,EAAGN,cALZ;AAMC,IAAA,YAAY,EAAGjB,YANhB;AAOC,IAAA,KAAK,EAAG;AAAE0B,MAAAA,QAAQ,EAAE;AAAZ,KAPT;AAQC,IAAA,IAAI,EAAGzB,IARR;AASC,IAAA,KAAK,EAAGQ,KATT;AAUC,IAAA,KAAK,EAAGU;AAVT,IADD,CADD;AAgBA;;AAED,MAAMQ,2BAA2B,GAAG;AACnCC,EAAAA,GAAG,EAAE,KAD8B;AAEnCC,EAAAA,KAAK,EAAE,KAF4B;AAGnCC,EAAAA,MAAM,EAAE,IAH2B;AAInCC,EAAAA,IAAI,EAAE,KAJ6B;AAKnCC,EAAAA,QAAQ,EAAE,KALyB;AAMnCC,EAAAA,WAAW,EAAE,KANsB;AAOnCC,EAAAA,UAAU,EAAE,KAPuB;AAQnCC,EAAAA,OAAO,EAAE;AAR0B,CAApC;;AAWA,SAASC,cAAT,QAMI;AAAA,MANqB;AACxBC,IAAAA,SADwB;AAExBC,IAAAA,aAFwB;AAGxBC,IAAAA,QAHwB;AAIxBC,IAAAA,YAJwB;AAKxB,OAAGC;AALqB,GAMrB;AACH,QAAM,CAAEC,UAAF,EAAcC,aAAd,IAAgC,uBAAU,KAAV,CAAtC;AAEA,SACC,4BAAC,wBAAD;AACC,IAAA,SAAS,EAAG,yBAAYN,SAAZ,EAAuB;AAClC,qBAAeK;AADmB,KAAvB,CADb;AAIC,IAAA,MAAM,EAAGf,2BAJV;AAKC,IAAA,aAAa,EAAG,CAAEiB,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AAC9CR,MAAAA,aAAa,CAAEQ,GAAG,CAACC,YAAN,CAAb;AACAR,MAAAA,QAAQ,CAAEO,GAAG,CAACC,YAAN,CAAR;AACA,KARF;AASC,IAAA,QAAQ,EAAG,CAAEH,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AACzCP,MAAAA,QAAQ,CAAEO,GAAG,CAACC,YAAN,CAAR;;AACA,UAAK,CAAEL,UAAP,EAAoB;AACnBC,QAAAA,aAAa,CAAE,IAAF,CAAb;AACA;AACD,KAdF;AAeC,IAAA,YAAY,EAAG,CAAEC,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AAC7CN,MAAAA,YAAY,CAAEM,GAAG,CAACC,YAAN,CAAZ;AACAJ,MAAAA,aAAa,CAAE,KAAF,CAAb;AACA;AAlBF,KAmBMF,KAnBN,EADD;AAuBA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASO,cAAT,CAAyBC,GAAzB,EAAwE;AAAA,MAA1CC,QAA0C,uEAA/B,EAA+B;AAAA,MAA3BC,YAA2B;AAAA,MAAbC,UAAa;AACvE,QAAM,CAAEC,MAAF,EAAUC,SAAV,IAAwB,uBAAU,KAAV,CAA9B;AACA,0BAAW,MAAM;AAChB;AACA;AACA,QAAKL,GAAG,IAAIC,QAAQ,IAAI,EAAnB,IAAyBE,UAAU,CAACG,OAAzC,EAAmD;AAClD5D,MAAAA,wBAAwB,GAAG6D,aAA3B,CACCJ,UAAU,CAACG,OADZ,EAEGE,KAAF,IAAa;AACZH,QAAAA,SAAS,CAAEG,KAAK,CAACJ,MAAR,CAAT;AACA,OAJF;AAMA;AACD,GAXD,EAWG,CAAEJ,GAAF,EAAOA,GAAG,IAAIC,QAAQ,IAAI,EAAnB,IAAyBE,UAAU,CAACG,OAA3C,EAAoDD,SAApD,CAXH;AAYA,0BAAW,MAAM;AAChB;AACA;AACA,QAAKJ,QAAQ,GAAG,EAAX,IAAiB,CAAED,GAAxB,EAA8B;AAC7B,UAAK,CAAEE,YAAP,EAAsB;AACrB;AACAG,QAAAA,SAAS,CAAE,IAAF,CAAT;AACA;AACA;;AACDA,MAAAA,SAAS,CAAE,oBAAQH,YAAR,EAAuBE,MAAvB,EAAF,CAAT;AACA;AACD,GAXD,EAWG,CAAEF,YAAF,EAAgBD,QAAQ,GAAG,EAAX,IAAiB,CAAED,GAAnC,EAAwCK,SAAxC,CAXH;AAYA,0BAAW,MAAM;AAChB,QAAK,CAAEL,GAAF,IAAS,CAAEE,YAAhB,EAA+B;AAC9B;AACAG,MAAAA,SAAS,CAAE,KAAF,CAAT;AACA;AACD,GALD,EAKG,CAAE,CAAEL,GAAF,IAAS,CAAEE,YAAb,EAA2BG,SAA3B,CALH;AAMA,SAAOD,MAAP;AACA;;AAED,SAASK,aAAT,QAAmC;AAAA,MAAX;AAAEC,IAAAA,CAAF;AAAKC,IAAAA;AAAL,GAAW;AAClC,SAAQ,GAAGC,IAAI,CAACC,KAAL,CAAYH,CAAC,GAAG,GAAhB,CAAuB,KAAKE,IAAI,CAACC,KAAL,CAAYF,CAAC,GAAG,GAAhB,CAAuB,GAA9D;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMG,gBAAgB,GAAG,CAAEC,EAAF,EAAMf,GAAN,KAAe,CAAEe,EAAF,IAAQ,qBAAWf,GAAX,CAAhD;;AAEA,SAASgB,gBAAT,QAOI;AAAA,MAPuB;AAC1BC,IAAAA,mBAAmB,GAAG,KADI;AAE1BC,IAAAA,QAF0B;AAG1BC,IAAAA,QAH0B;AAI1BC,IAAAA,gBAJ0B;AAK1BC,IAAAA,aAL0B;AAM1BC,IAAAA;AAN0B,GAOvB;AACH,QAAM;AAAEC,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MAA0CJ,gBAAhD;AACA,SACC,4BAAC,6BAAD;AACC,IAAA,IAAI,EAAG,4BAAC,sBAAD;AAAW,MAAA,IAAI,EAAGK;AAAlB,MADR;AAEC,IAAA,MAAM,EAAG;AACRC,MAAAA,KAAK,EAAE,cAAI,OAAJ,CADC;AAERC,MAAAA,YAAY,EAAE,cACb,oFADa;AAFN,KAFV;AAQC,IAAA,QAAQ,EAAGN,aARZ;AASC,IAAA,MAAM,EAAC,iBATR;AAUC,IAAA,YAAY,EAAGO,2BAVhB;AAWC,IAAA,OAAO,EAAGT,QAXX;AAYC,IAAA,mBAAmB,EAAGF,mBAZvB;AAaC,IAAA,OAAO,EAAKY,OAAF,IAAe;AACxBN,MAAAA,gBAAgB;AAChBC,MAAAA,iBAAiB,CAAEK,OAAF,CAAjB;AACA,KAhBF;AAiBC,IAAA,KAAK,EAAGP;AAjBT,KAmBGJ,QAnBH,CADD;AAuBA;;AAED,SAASY,SAAT,QAUI;AAAA;;AAAA,MAVgB;AACnBvF,IAAAA,UADmB;AAEnBwF,IAAAA,QAFmB;AAGnBC,IAAAA,UAHmB;AAInBb,IAAAA,QAJmB;AAKnBC,IAAAA,gBALmB;AAMnBlB,IAAAA,YANmB;AAOnB+B,IAAAA,aAPmB;AAQnBC,IAAAA,eARmB;AASnBC,IAAAA;AATmB,GAUhB;AACH,QAAM;AACLC,IAAAA,eADK;AAELrB,IAAAA,EAFK;AAGLsB,IAAAA,cAHK;AAILpC,IAAAA,QAJK;AAKLqC,IAAAA,UALK;AAMLC,IAAAA,WANK;AAOLnC,IAAAA,MAPK;AAQLoC,IAAAA,UARK;AASLC,IAAAA,SATK;AAULC,IAAAA,aAVK;AAWLpB,IAAAA,KAAK,EAAEqB,cAXF;AAYL3C,IAAAA,GAZK;AAaL4C,IAAAA,GAbK;AAcLC,IAAAA,aAdK;AAeLC,IAAAA;AAfK,MAgBFvG,UAhBJ;AAiBA,QAAM;AACLwG,IAAAA,aADK;AAELC,IAAAA,aAFK;AAGLC,IAAAA;AAHK,MAIF,6CAJJ;AAKA,QAAM5B,aAAa,GAAG,iCAAqBY,aAArB,EAAoChC,QAApC,CAAtB;AACA,QAAMiD,gBAAgB,GAAGpC,gBAAgB,CAAEC,EAAF,EAAMf,GAAN,CAAzC;AAEA,QAAM,CAAEmD,kBAAF,EAAsBC,qBAAtB,IAAgD,uBAAUX,SAAV,CAAtD;AACA,QAAM,CAAEY,iBAAF,EAAqBC,oBAArB,IAA8C,uBACnDZ,aADmD,CAApD;AAGA,QAAMa,eAAe,GAAGb,aAAa,KAAK,IAAlB,IAA0BD,SAAS,KAAK,GAAhE;;AAEA,QAAMe,mBAAmB,GAAG,MAAM;AACjC,QAAKD,eAAL,EAAuB;AACtB;AACA,UAAKF,iBAAiB,KAAK,IAAtB,IAA8BF,kBAAkB,KAAK,GAA1D,EAAgE;AAC/D,eAAOlB,aAAa,CAAE;AACrBQ,UAAAA,SAAS,EAAErE,SADU;AAErBsE,UAAAA,aAAa,EAAEtE;AAFM,SAAF,CAApB;AAIA,OAPqB,CAStB;;;AACA,aAAO6D,aAAa,CAAE;AACrBQ,QAAAA,SAAS,EAAEU,kBADU;AAErBT,QAAAA,aAAa,EAAEW;AAFM,OAAF,CAApB;AAIA;;AAEDD,IAAAA,qBAAqB,CAAEX,SAAF,CAArB;AACAa,IAAAA,oBAAoB,CAAEZ,aAAF,CAApB,CAlBiC,CAoBjC;;AACA,WAAOT,aAAa,CAAE;AACrBQ,MAAAA,SAAS,EAAE,GADU;AAErBC,MAAAA,aAAa,EAAE;AAFM,KAAF,CAApB;AAIA,GAzBD;;AA2BA,QAAMe,cAAc,GAAG,MAAM;AAC5BxB,IAAAA,aAAa,CAAE;AACdM,MAAAA,WAAW,EAAE,CAAEA,WADD;AAEd,UAAK,CAAEA,WAAF,GAAgB;AAAED,QAAAA,UAAU,EAAElE;AAAd,OAAhB,GAA4C,EAAjD;AAFc,KAAF,CAAb;AAIA,GALD;;AAOA,QAAMsF,gBAAgB,GAAG,MAAM;AAC9BzB,IAAAA,aAAa,CAAE;AACdO,MAAAA,UAAU,EAAE,CAAEA;AADA,KAAF,CAAb;AAGA,GAJD;;AAMA,QAAMmB,aAAa,GAAG,sBAAtB;AACA,QAAMC,WAAW,GAAG7D,cAAc,CACjCC,GADiC,EAEjCC,QAFiC,EAGjCC,YAAY,CAACM,KAHoB,EAIjCmD,aAJiC,CAAlC;AAOA,0BAAW,MAAM;AAChB1B,IAAAA,aAAa,CAAE;AAAE7B,MAAAA,MAAM,EAAEwD;AAAV,KAAF,CAAb;AACA,GAFD,EAEG,CAAEA,WAAF,CAFH;AAIA,QAAMC,iBAAiB,GAAGC,kCAA0BzB,cAApD;AACA,QAAM0B,iBAAiB,GAAGC,kCAA0B3B,cAApD;AAEA,QAAM,CAAE4B,kBAAF,EAAsBC,qBAAtB,IAAgD,uBAAU,IAAV,CAAtD;AAEA,QAAMC,iBAAiB,GAAGzB,aAAa,GACnC,GAAGD,SAAW,GAAGC,aAAe,EADG,GAEpCD,SAFH;AAIA,QAAM2B,YAAY,GAAG,EAAI7B,WAAW,IAAIC,UAAnB,CAArB;AAEA,QAAMlB,KAAK,GAAG,EACb,IAAKuC,iBAAiB,IAAI,CAAEO,YAAvB,GACF,mCAAuBpE,GAAvB,CADE,GAEF5B,SAFH,CADa;AAIbqE,IAAAA,SAAS,EAAEwB,kBAAkB,IAAIE,iBAAtB,IAA2C/F;AAJzC,GAAd;AAOA,QAAMiG,OAAO,GAAG;AAAEC,IAAAA,eAAe,EAAEpE,YAAY,CAACM;AAAhC,GAAhB;AACA,QAAM+D,UAAU,GAAG;AAClBC,IAAAA,cAAc,EACblC,UAAU,IAAI8B,YAAd,GACG3D,aAAa,CAAE6B,UAAF,CADhB,GAEGlE;AAJc,GAAnB;AAOA,QAAMqG,aAAa,GAAG,CAAC,EAAIzE,GAAG,IAAIE,YAAY,CAACM,KAApB,IAA6BwC,aAAjC,CAAvB;AACA,QAAM0B,oBAAoB,GACzBX,iBAAiB,IACfF,iBAAiB,KAAM,CAAEtB,WAAF,IAAiBC,UAAvB,CAFpB;;AAIA,QAAMmC,2BAA2B,GAAK1H,KAAF,IAAa;AAChD,UAAM,CAAE2H,UAAF,EAAcC,QAAd,IAA2BlB,aAAa,CAACrD,OAAd,GAC9B,CAAEqD,aAAa,CAACrD,OAAd,CAAsBgB,KAAxB,EAA+B,gBAA/B,CAD8B,GAE9B,CAAEwD,GAAG,CAACxE,OAAJ,CAAYgB,KAAd,EAAqB,oBAArB,CAFH;AAGAsD,IAAAA,UAAU,CAAEC,QAAF,CAAV,GAAyBpE,aAAa,CAAExD,KAAF,CAAtC;AACA,GALD;;AAOA,QAAM8H,cAAc,GAAG,qBACpBC,MAAF,IACCA,MAAM,CAAEC,kBAAF,CAAN,CAA2BC,QAA3B,CAAqCnD,QAArC,EAAgDoD,WAAhD,CAA4DC,MAA5D,GACA,CAHqB,EAItB,CAAErD,QAAF,CAJsB,CAAvB;AAOA,QAAMsD,QAAQ,GACb,qDACC,4BAAC,0BAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,sDAAD;AACC,IAAA,KAAK,EAAG,cAAI,yBAAJ,CADT;AAEC,IAAA,KAAK,EAAGjD,eAFT;AAGC,IAAA,QAAQ,EAAKkD,YAAF,IACVrD,aAAa,CAAE;AACdG,MAAAA,eAAe,EAAEkD;AADH,KAAF,CAJf;AAQC,IAAA,UAAU,EAAG,CAAEP;AARhB,IADD,EAWC,4BAAC,yDAAD;AACC,IAAA,QAAQ,EAAGxB,eADZ;AAEC,IAAA,QAAQ,EAAGC,mBAFZ;AAGC,IAAA,UAAU,EAAG,CAAEuB;AAHhB,IAXD,CADD,EAkBC,4BAAC,0BAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,6BAAD;AACC,IAAA,OAAO,EAAGhE,EADX;AAEC,IAAA,QAAQ,EAAGf,GAFZ;AAGC,IAAA,YAAY,EAAG4B,2BAHhB;AAIC,IAAA,MAAM,EAAC,iBAJR;AAKC,IAAA,QAAQ,EAAGP,aALZ;AAMC,IAAA,IAAI,EAAG,CAAErB,GAAF,GAAQ,cAAI,WAAJ,CAAR,GAA4B,cAAI,SAAJ;AANpC,IADD,CAlBD,EA4BC,4BAAC,8BAAD,QACG,CAAC,CAAEA,GAAH,IACD,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,gBAAJ;AAAnB,KACG6D,iBAAiB,IAClB,4BAAC,iBAAD,QACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,kBAAJ,CADT;AAEC,IAAA,OAAO,EAAGtB,WAFX;AAGC,IAAA,QAAQ,EAAGkB;AAHZ,IADD,EAOC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,qBAAJ,CADT;AAEC,IAAA,OAAO,EAAGjB,UAFX;AAGC,IAAA,QAAQ,EAAGkB;AAHZ,IAPD,CAFF,EAgBGgB,oBAAoB,IACrB,4BAAC,4BAAD;AACC,IAAA,KAAK,EAAG,cAAI,oBAAJ,CADT;AAEC,IAAA,GAAG,EAAG1E,GAFP;AAGC,IAAA,KAAK,EAAGsC,UAHT;AAIC,IAAA,WAAW,EAAGqC,2BAJf;AAKC,IAAA,MAAM,EAAGA,2BALV;AAMC,IAAA,QAAQ,EAAKY,aAAF,IACVtD,aAAa,CAAE;AACdK,MAAAA,UAAU,EAAEiD;AADE,KAAF;AAPf,IAjBF,EA8BGvF,GAAG,IAAI6D,iBAAP,IAA4BO,YAA5B,IACD,4BAAC,2BAAD;AACC,IAAA,KAAK,EAAG,cAAI,6BAAJ,CADT;AAEC,IAAA,KAAK,EAAGxB,GAFT;AAGC,IAAA,QAAQ,EAAK4C,MAAF,IACVvD,aAAa,CAAE;AAAEW,MAAAA,GAAG,EAAE4C;AAAP,KAAF,CAJf;AAMC,IAAA,IAAI,EACH,qDACC,4BAAC,wBAAD;AAAc,MAAA,IAAI,EAAC;AAAnB,OACG,cACD,mCADC,CADH,CADD,EAMG,cACD,gDADC,CANH;AAPF,IA/BF,EAmDC,4BAAC,oBAAD,QACC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAC,WADT;AAEC,IAAA,OAAO,MAFR;AAGC,IAAA,SAAS,EAAC,mCAHX;AAIC,IAAA,OAAO,EAAG,MACTvD,aAAa,CAAE;AACdjC,MAAAA,GAAG,EAAE5B,SADS;AAEd2C,MAAAA,EAAE,EAAE3C,SAFU;AAGdiE,MAAAA,cAAc,EAAEjE,SAHF;AAIdkE,MAAAA,UAAU,EAAElE,SAJE;AAKdmE,MAAAA,WAAW,EAAEnE,SALC;AAMdoE,MAAAA,UAAU,EAAEpE;AANE,KAAF;AALf,KAeG,cAAI,aAAJ,CAfH,CADD,CAnDD,CAFF,EA0EC,4BAAC,qDAAD;AACC,IAAA,gCAAgC,MADjC;AAEC,IAAA,KAAK,EAAG,cAAI,SAAJ,CAFT;AAGC,IAAA,WAAW,EAAG,IAHf;AAIC,IAAA,QAAQ,EAAG,CACV;AACCqH,MAAAA,UAAU,EAAEvF,YAAY,CAACM,KAD1B;AAECwC,MAAAA,aAFD;AAGC0C,MAAAA,aAAa,EAAExD,eAHhB;AAICyD,MAAAA,gBAAgB,EAAE1C,WAJnB;AAKC2C,MAAAA,KAAK,EAAE,cAAI,OAAJ;AALR,KADU;AAJZ,KAcC,4BAAC,wBAAD;AACC,IAAA,KAAK,EAAG,cAAI,SAAJ,CADT;AAEC,IAAA,KAAK,EAAG3F,QAFT;AAGC,IAAA,QAAQ,EAAK4F,YAAF,IACV5D,aAAa,CAAE;AACdhC,MAAAA,QAAQ,EAAE4F;AADI,KAAF,CAJf;AAQC,IAAA,GAAG,EAAG,CARP;AASC,IAAA,GAAG,EAAG,GATP;AAUC,IAAA,IAAI,EAAG,EAVR;AAWC,IAAA,QAAQ;AAXT,IAdD,CA1ED,CA5BD,EAmIC,4BAAC,8BAAD;AAAmB,IAAA,mBAAmB,EAAC;AAAvC,KACC,4BAAC,wCAAD;AACC,IAAA,QAAQ,EAAG,MAAM,CAAC,CAAEpD,SADrB;AAEC,IAAA,KAAK,EAAG,cAAI,gBAAJ,CAFT;AAGC,IAAA,UAAU,EAAG,MACZR,aAAa,CAAE;AACdQ,MAAAA,SAAS,EAAErE,SADG;AAEdsE,MAAAA,aAAa,EAAEtE;AAFD,KAAF,CAJf;AASC,IAAA,cAAc,EAAG,OAAQ;AACxBqE,MAAAA,SAAS,EAAErE,SADa;AAExBsE,MAAAA,aAAa,EAAEtE;AAFS,KAAR,CATlB;AAaC,IAAA,gBAAgB,EAAG,IAbpB;AAcC,IAAA,OAAO,EAAG2D;AAdX,KAgBC,4BAAC,gBAAD;AACC,IAAA,KAAK,EAAGkC,kBAAkB,IAAIxB,SAD/B;AAEC,IAAA,IAAI,EAAGC,aAFR;AAGC,IAAA,QAAQ,EAAKoD,YAAF,IACV7D,aAAa,CAAE;AAAEQ,MAAAA,SAAS,EAAEqD;AAAb,KAAF,CAJf;AAMC,IAAA,YAAY,EAAKC,QAAF,IACd9D,aAAa,CAAE;AACdS,MAAAA,aAAa,EAAEqD;AADD,KAAF;AAPf,IAhBD,CADD,CAnID,CADD;AAsKA,QAAMjB,GAAG,GAAG,sBAAZ;AACA,QAAMkB,UAAU,GAAG,gCAAe;AAAElB,IAAAA;AAAF,GAAf,CAAnB,CAxSG,CA0SH;;AACA,QAAMmB,YAAY,GAAG,CAAC,iBAAE,6BAAY,sBAAZ,CAAF,wCAAE,YAAsCb,MAAxC,CAAtB;AACA,QAAMc,mBAAmB,GAAG5J,sBAAsB,CAAE;AACnD6J,IAAAA,QAAQ,EAAEF,YAAY,GAAG,OAAH,GAAa7H;AADgB,GAAF,CAAlD;AAIA,QAAMgI,gBAAgB,GAAG,sCACxB;AACChH,IAAAA,SAAS,EAAE;AADZ,GADwB,EAIxB;AACCiH,IAAAA,QAAQ,EAAEH,mBADX;AAECI,IAAAA,8BAA8B,EAAE,IAFjC;AAGCzD,IAAAA,aAHD;AAICC,IAAAA;AAJD,GAJwB,CAAzB;;AAYA,MAAK,CAAEiC,cAAF,IAAoB,CAAEN,aAA3B,EAA2C;AAC1C,WACC,qDACGY,QADH,EAEC,8DACMW,UADN;AAEC,MAAA,SAAS,EAAG,yBACX,gBADW,EAEXA,UAAU,CAAC5G,SAFA;AAFb,QAOC,4BAAC,gBAAD;AACC,MAAA,QAAQ,EAAG+B,QADZ;AAEC,MAAA,aAAa,EAAGE,aAFjB;AAGC,MAAA,gBAAgB,EAAGD,gBAHpB;AAIC,MAAA,KAAK,EAAG;AACPqB,QAAAA,SAAS,EACRwB,kBAAkB,IAClBE,iBADA,IAEA/F;AAJM;AAJT,OAWC;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,4BAAC,yBAAD;AACC,MAAA,mBAAmB,EAAG,IADvB;AAEC,MAAA,KAAK,EAAG8B,YAAY,CAACM,KAFtB;AAGC,MAAA,QAAQ,EAAG0B,eAHZ;AAIC,MAAA,SAAS,EAAG;AAJb,MADD,CAXD,CAPD,EA2BC,4BAAC,cAAD;AACC,MAAA,SAAS,EAAC,uCADX;AAEC,MAAA,aAAa,EAAG,MAAM;AACrBD,QAAAA,aAAa,CAAE;AAAES,UAAAA,aAAa,EAAE;AAAjB,SAAF,CAAb;AACAP,QAAAA,eAAe,CAAE,KAAF,CAAf;AACA,OALF;AAMC,MAAA,QAAQ,EAAG+B,qBANZ;AAOC,MAAA,YAAY,EAAK4B,YAAF,IAAoB;AAClC3D,QAAAA,eAAe,CAAE,IAAF,CAAf;AACAF,QAAAA,aAAa,CAAE;AAAEQ,UAAAA,SAAS,EAAEqD;AAAb,SAAF,CAAb;AACA5B,QAAAA,qBAAqB,CAAE,IAAF,CAArB;AACA,OAXF;AAYC,MAAA,UAAU,EAAGlC;AAZd,MA3BD,CAFD,CADD;AA+CA;;AAED,QAAMuE,OAAO,GAAG,yBACf;AACC,qBAAiBnG,MADlB;AAEC,gBAAY,CAAEA,MAFf;AAGC,oBAAgB8C,gBAHjB;AAIC,oBAAgBX,WAJjB;AAKC,mBAAeC,UALhB;AAMC,mCAA+B,CAAE,qCAChCJ,eADgC;AANlC,GADe,EAWf,kCAAsBA,eAAtB,CAXe,CAAhB;AAcA,SACC,qDACGiD,QADH,EAEC,8DACMW,UADN;AAEC,IAAA,SAAS,EAAG,yBAAYO,OAAZ,EAAqBP,UAAU,CAAC5G,SAAhC,CAFb;AAGC,IAAA,KAAK,EAAG,EAAE,GAAGkC,KAAL;AAAY,SAAG0E,UAAU,CAAC1E;AAA1B,KAHT;AAIC,gBAAWtB;AAJZ,MAMC,4BAAC,oBAAD;AACC,IAAA,MAAM,EAAG2C,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAE6D,OAAnB,0DAAG,sBAAyBC,OADnC;AAEC,IAAA,UAAU,EAAG9D,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAE+D,WAAnB,0DAAG,sBAA6BD;AAF3C,IAND,EAUC,4BAAC,cAAD;AACC,IAAA,SAAS,EAAC,uCADX;AAEC,IAAA,aAAa,EAAG,MAAM;AACrBxE,MAAAA,aAAa,CAAE;AAAES,QAAAA,aAAa,EAAE;AAAjB,OAAF,CAAb;AACAP,MAAAA,eAAe,CAAE,KAAF,CAAf;AACA,KALF;AAMC,IAAA,QAAQ,EAAG+B,qBANZ;AAOC,IAAA,YAAY,EAAK4B,YAAF,IAAoB;AAClC3D,MAAAA,eAAe,CAAE,IAAF,CAAf;AACAF,MAAAA,aAAa,CAAE;AAAEQ,QAAAA,SAAS,EAAEqD;AAAb,OAAF,CAAb;AACA5B,MAAAA,qBAAqB,CAAE,IAAF,CAArB;AACA,KAXF;AAYC,IAAA,UAAU,EAAGlC;AAZd,IAVD,EAyBC;AACC,mBAAY,MADb;AAEC,IAAA,SAAS,EAAG,yBACX,6BAAiB/B,QAAjB,CADW,EAEX;AAAE,OAAEC,YAAY,CAACyG,KAAf,GAAwBzG,YAAY,CAACyG;AAAvC,KAFW,EAGX,qCAHW,EAIX5D,aAJW,EAKX;AACC,4BAAsB9C,QAAQ,KAAK7B,SADpC;AAEC,iCAA2B4E,aAF5B;AAGC,OAAED,aAAF,GAAmB,CAAE/C,GAAF,IAAS+C;AAH7B,KALW,CAFb;AAaC,IAAA,KAAK,EAAG;AAAE6D,MAAAA,eAAe,EAAE5D,aAAnB;AAAkC,SAAGqB;AAArC;AAbT,IAzBD,EAyCGrE,GAAG,IAAI6D,iBAAP,IAA4BO,YAA5B,IACD;AACC,IAAA,GAAG,EAAGT,aADP;AAEC,IAAA,SAAS,EAAC,kCAFX;AAGC,IAAA,GAAG,EAAGf,GAHP;AAIC,IAAA,GAAG,EAAG5C,GAJP;AAKC,IAAA,KAAK,EAAGuE;AALT,IA1CF,EAkDGvE,GAAG,IAAI+D,iBAAP,IACD;AACC,IAAA,GAAG,EAAGJ,aADP;AAEC,IAAA,SAAS,EAAC,kCAFX;AAGC,IAAA,QAAQ,MAHT;AAIC,IAAA,KAAK,MAJN;AAKC,IAAA,IAAI,MALL;AAMC,IAAA,GAAG,EAAG3D,GANP;AAOC,IAAA,KAAK,EAAGuE;AAPT,IAnDF,EA6DGrB,gBAAgB,IAAI,4BAAC,mBAAD,OA7DvB,EA8DC,4BAAC,gBAAD;AACC,IAAA,mBAAmB,MADpB;AAEC,IAAA,QAAQ,EAAG/B,QAFZ;AAGC,IAAA,aAAa,EAAGE,aAHjB;AAIC,IAAA,gBAAgB,EAAGD;AAJpB,IA9DD,EAoEC,mCAAUgF,gBAAV,CApED,CAFD,CADD;AA2EA;;eAEc,sBAAS,CACvB,wBAAgBS,QAAF,IAAgB;AAC7B,QAAM;AAAE1E,IAAAA;AAAF,MAAsB0E,QAAQ,CAAE5B,kBAAF,CAApC;AAEA,SAAO;AACN9C,IAAAA;AADM,GAAP;AAGA,CAND,CADuB,EAQvB,6BAAY;AAAEjC,EAAAA,YAAY,EAAE;AAAhB,CAAZ,CARuB,EASvB4G,uBATuB,EAUvBC,uBAVuB,CAAT,EAWVjF,SAXU,C","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"]}
@@ -33,6 +33,7 @@ const transforms = {
33
33
  style
34
34
  } = _ref;
35
35
  return (0, _blocks.createBlock)('core/cover', {
36
+ dimRatio: 50,
36
37
  url,
37
38
  alt,
38
39
  align,
@@ -60,6 +61,7 @@ const transforms = {
60
61
  anchor
61
62
  } = _ref2;
62
63
  return (0, _blocks.createBlock)('core/cover', {
64
+ dimRatio: 50,
63
65
  url: src,
64
66
  align,
65
67
  id,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/cover/transforms.js"],"names":["transforms","from","type","blocks","transform","caption","url","alt","align","id","anchor","style","color","duotone","content","fontSize","src","backgroundType","VIDEO_BACKGROUND_TYPE","isMatch","backgroundColor","gradient","background","innerBlocks","overlayColor","customOverlayColor","customGradient","to","IMAGE_BACKGROUND_TYPE","title"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { IMAGE_BACKGROUND_TYPE, VIDEO_BACKGROUND_TYPE } from './shared';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { caption, url, alt, align, id, anchor, style } ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\turl,\n\t\t\t\t\t\talt,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t\tduotone: style?.color?.duotone,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: caption,\n\t\t\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\t\t} ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\ttransform: ( { caption, src, align, id, anchor } ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\turl: src,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tbackgroundType: VIDEO_BACKGROUND_TYPE,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: caption,\n\t\t\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\t\t} ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\tisMatch: ( { backgroundColor, gradient, style } ) => {\n\t\t\t\t/*\n\t\t\t\t * Make this transformation available only if the Group has background\n\t\t\t\t * or gradient set, because otherwise `Cover` block displays a Placeholder.\n\t\t\t\t *\n\t\t\t\t * This helps avoid arbitrary decisions about the Cover block's background\n\t\t\t\t * and user confusion about the existence of previous content.\n\t\t\t\t */\n\t\t\t\treturn (\n\t\t\t\t\tbackgroundColor ||\n\t\t\t\t\tstyle?.color?.background ||\n\t\t\t\t\tstyle?.color?.gradient ||\n\t\t\t\t\tgradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: (\n\t\t\t\t{ align, anchor, backgroundColor, gradient, style },\n\t\t\t\tinnerBlocks\n\t\t\t) => {\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\toverlayColor: backgroundColor,\n\t\t\t\t\t\tcustomOverlayColor: style?.color?.background,\n\t\t\t\t\t\tgradient,\n\t\t\t\t\t\tcustomGradient: style?.color?.gradient,\n\t\t\t\t\t},\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\tisMatch: ( {\n\t\t\t\tbackgroundType,\n\t\t\t\turl,\n\t\t\t\toverlayColor,\n\t\t\t\tcustomOverlayColor,\n\t\t\t\tgradient,\n\t\t\t\tcustomGradient,\n\t\t\t} ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\t// If a url exists the transform could happen if that URL represents an image background.\n\t\t\t\t\treturn backgroundType === IMAGE_BACKGROUND_TYPE;\n\t\t\t\t}\n\t\t\t\t// If a url is not set the transform could happen if the cover has no background color or gradient;\n\t\t\t\treturn (\n\t\t\t\t\t! overlayColor &&\n\t\t\t\t\t! customOverlayColor &&\n\t\t\t\t\t! gradient &&\n\t\t\t\t\t! customGradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: ( { title, url, alt, align, id, anchor, style } ) =>\n\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\tcaption: title,\n\t\t\t\t\turl,\n\t\t\t\t\talt,\n\t\t\t\t\talign,\n\t\t\t\t\tid,\n\t\t\t\t\tanchor,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\tduotone: style?.color?.duotone,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\tisMatch: ( {\n\t\t\t\tbackgroundType,\n\t\t\t\turl,\n\t\t\t\toverlayColor,\n\t\t\t\tcustomOverlayColor,\n\t\t\t\tgradient,\n\t\t\t\tcustomGradient,\n\t\t\t} ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\t// If a url exists the transform could happen if that URL represents a video background.\n\t\t\t\t\treturn backgroundType === VIDEO_BACKGROUND_TYPE;\n\t\t\t\t}\n\t\t\t\t// If a url is not set the transform could happen if the cover has no background color or gradient;\n\t\t\t\treturn (\n\t\t\t\t\t! overlayColor &&\n\t\t\t\t\t! customOverlayColor &&\n\t\t\t\t\t! gradient &&\n\t\t\t\t\t! customGradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: ( { title, url, align, id, anchor } ) =>\n\t\t\t\tcreateBlock( 'core/video', {\n\t\t\t\t\tcaption: title,\n\t\t\t\t\tsrc: url,\n\t\t\t\t\tid,\n\t\t\t\t\talign,\n\t\t\t\t\tanchor,\n\t\t\t\t} ),\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/cover/transforms.js"],"names":["transforms","from","type","blocks","transform","caption","url","alt","align","id","anchor","style","dimRatio","color","duotone","content","fontSize","src","backgroundType","VIDEO_BACKGROUND_TYPE","isMatch","backgroundColor","gradient","background","innerBlocks","overlayColor","customOverlayColor","customGradient","to","IMAGE_BACKGROUND_TYPE","title"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { IMAGE_BACKGROUND_TYPE, VIDEO_BACKGROUND_TYPE } from './shared';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { caption, url, alt, align, id, anchor, style } ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\tdimRatio: 50,\n\t\t\t\t\t\turl,\n\t\t\t\t\t\talt,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t\tduotone: style?.color?.duotone,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: caption,\n\t\t\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\t\t} ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\ttransform: ( { caption, src, align, id, anchor } ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\tdimRatio: 50,\n\t\t\t\t\t\turl: src,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tbackgroundType: VIDEO_BACKGROUND_TYPE,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: caption,\n\t\t\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\t\t} ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\tisMatch: ( { backgroundColor, gradient, style } ) => {\n\t\t\t\t/*\n\t\t\t\t * Make this transformation available only if the Group has background\n\t\t\t\t * or gradient set, because otherwise `Cover` block displays a Placeholder.\n\t\t\t\t *\n\t\t\t\t * This helps avoid arbitrary decisions about the Cover block's background\n\t\t\t\t * and user confusion about the existence of previous content.\n\t\t\t\t */\n\t\t\t\treturn (\n\t\t\t\t\tbackgroundColor ||\n\t\t\t\t\tstyle?.color?.background ||\n\t\t\t\t\tstyle?.color?.gradient ||\n\t\t\t\t\tgradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: (\n\t\t\t\t{ align, anchor, backgroundColor, gradient, style },\n\t\t\t\tinnerBlocks\n\t\t\t) => {\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\toverlayColor: backgroundColor,\n\t\t\t\t\t\tcustomOverlayColor: style?.color?.background,\n\t\t\t\t\t\tgradient,\n\t\t\t\t\t\tcustomGradient: style?.color?.gradient,\n\t\t\t\t\t},\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\tisMatch: ( {\n\t\t\t\tbackgroundType,\n\t\t\t\turl,\n\t\t\t\toverlayColor,\n\t\t\t\tcustomOverlayColor,\n\t\t\t\tgradient,\n\t\t\t\tcustomGradient,\n\t\t\t} ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\t// If a url exists the transform could happen if that URL represents an image background.\n\t\t\t\t\treturn backgroundType === IMAGE_BACKGROUND_TYPE;\n\t\t\t\t}\n\t\t\t\t// If a url is not set the transform could happen if the cover has no background color or gradient;\n\t\t\t\treturn (\n\t\t\t\t\t! overlayColor &&\n\t\t\t\t\t! customOverlayColor &&\n\t\t\t\t\t! gradient &&\n\t\t\t\t\t! customGradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: ( { title, url, alt, align, id, anchor, style } ) =>\n\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\tcaption: title,\n\t\t\t\t\turl,\n\t\t\t\t\talt,\n\t\t\t\t\talign,\n\t\t\t\t\tid,\n\t\t\t\t\tanchor,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\tduotone: style?.color?.duotone,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\tisMatch: ( {\n\t\t\t\tbackgroundType,\n\t\t\t\turl,\n\t\t\t\toverlayColor,\n\t\t\t\tcustomOverlayColor,\n\t\t\t\tgradient,\n\t\t\t\tcustomGradient,\n\t\t\t} ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\t// If a url exists the transform could happen if that URL represents a video background.\n\t\t\t\t\treturn backgroundType === VIDEO_BACKGROUND_TYPE;\n\t\t\t\t}\n\t\t\t\t// If a url is not set the transform could happen if the cover has no background color or gradient;\n\t\t\t\treturn (\n\t\t\t\t\t! overlayColor &&\n\t\t\t\t\t! customOverlayColor &&\n\t\t\t\t\t! gradient &&\n\t\t\t\t\t! customGradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: ( { title, url, align, id, anchor } ) =>\n\t\t\t\tcreateBlock( 'core/video', {\n\t\t\t\t\tcaption: title,\n\t\t\t\t\tsrc: url,\n\t\t\t\t\tid,\n\t\t\t\t\talign,\n\t\t\t\t\tanchor,\n\t\t\t\t} ),\n\t\t},\n\t],\n};\n\nexport default transforms;\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, navigationArea, 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
  *
@@ -274,7 +275,7 @@ const __experimentalRegisterExperimentalCoreBlocks = process.env.GUTENBERG_PHASE
274
275
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
275
276
  [// Experimental blocks.
276
277
  homeLink, // Full Site Editing blocks.
277
- ...(enableFSEBlocks ? [commentAuthorAvatar, commentAuthorName, commentContent, commentDate, commentEditLink, commentReplyLink, commentTemplate, commentsQueryLoop, postComment, postCommentsCount, postCommentsForm, postCommentsLink] : [])].forEach(registerBlock);
278
+ ...(enableFSEBlocks ? [commentAuthorAvatar, commentAuthorName, commentContent, commentDate, commentEditLink, commentReplyLink, commentTemplate, commentsQueryLoop, navigationArea, postComment, postCommentsCount, postCommentsForm, postCommentsLink] : [])].forEach(registerBlock);
278
279
  } : undefined;
279
280
 
280
281
  exports.__experimentalRegisterExperimentalCoreBlocks = __experimentalRegisterExperimentalCoreBlocks;