@wordpress/block-editor 15.3.1-next.836ecdcae.0 → 15.3.1-next.a730c9c8c.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/build/autocompleters/block.js +2 -4
  2. package/build/autocompleters/block.js.map +1 -1
  3. package/build/components/block-card/index.js +4 -2
  4. package/build/components/block-card/index.js.map +1 -1
  5. package/build/components/block-inspector/edit-contents-button.js +54 -0
  6. package/build/components/block-inspector/edit-contents-button.js.map +1 -0
  7. package/build/components/block-inspector/index.js +5 -1
  8. package/build/components/block-inspector/index.js.map +1 -1
  9. package/build/components/block-list/index.js +3 -1
  10. package/build/components/block-list/index.js.map +1 -1
  11. package/build/components/block-popover/use-popover-scroll.js +11 -2
  12. package/build/components/block-popover/use-popover-scroll.js.map +1 -1
  13. package/build/components/block-switcher/index.js +13 -8
  14. package/build/components/block-switcher/index.js.map +1 -1
  15. package/build/components/block-toolbar/index.js +5 -2
  16. package/build/components/block-toolbar/index.js.map +1 -1
  17. package/build/components/block-tools/insertion-point.js +10 -0
  18. package/build/components/block-tools/insertion-point.js.map +1 -1
  19. package/build/components/block-variation-transforms/index.js +10 -6
  20. package/build/components/block-variation-transforms/index.js.map +1 -1
  21. package/build/components/border-radius-control/utils.js.map +1 -1
  22. package/build/components/global-styles/border-panel.js +6 -6
  23. package/build/components/global-styles/border-panel.js.map +1 -1
  24. package/build/components/link-control/search-item.js +30 -12
  25. package/build/components/link-control/search-item.js.map +1 -1
  26. package/build/components/url-popover/image-url-input-ui.js +7 -2
  27. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  28. package/build/components/writing-flow/use-clipboard-handler.js +6 -1
  29. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  30. package/build/store/private-selectors.js +9 -21
  31. package/build/store/private-selectors.js.map +1 -1
  32. package/build/store/reducer.js +114 -0
  33. package/build/store/reducer.js.map +1 -1
  34. package/build/store/selectors.js +16 -30
  35. package/build/store/selectors.js.map +1 -1
  36. package/build/store/utils.js +18 -0
  37. package/build/store/utils.js.map +1 -1
  38. package/build/utils/block-bindings.js +1 -1
  39. package/build/utils/block-bindings.js.map +1 -1
  40. package/build-module/autocompleters/block.js +3 -5
  41. package/build-module/autocompleters/block.js.map +1 -1
  42. package/build-module/components/block-card/index.js +4 -2
  43. package/build-module/components/block-card/index.js.map +1 -1
  44. package/build-module/components/block-inspector/edit-contents-button.js +47 -0
  45. package/build-module/components/block-inspector/edit-contents-button.js.map +1 -0
  46. package/build-module/components/block-inspector/index.js +5 -1
  47. package/build-module/components/block-inspector/index.js.map +1 -1
  48. package/build-module/components/block-list/index.js +3 -1
  49. package/build-module/components/block-list/index.js.map +1 -1
  50. package/build-module/components/block-popover/use-popover-scroll.js +11 -2
  51. package/build-module/components/block-popover/use-popover-scroll.js.map +1 -1
  52. package/build-module/components/block-switcher/index.js +13 -8
  53. package/build-module/components/block-switcher/index.js.map +1 -1
  54. package/build-module/components/block-toolbar/index.js +5 -2
  55. package/build-module/components/block-toolbar/index.js.map +1 -1
  56. package/build-module/components/block-tools/insertion-point.js +11 -1
  57. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  58. package/build-module/components/block-variation-transforms/index.js +10 -6
  59. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  60. package/build-module/components/border-radius-control/utils.js.map +1 -1
  61. package/build-module/components/global-styles/border-panel.js +6 -6
  62. package/build-module/components/global-styles/border-panel.js.map +1 -1
  63. package/build-module/components/link-control/search-item.js +30 -12
  64. package/build-module/components/link-control/search-item.js.map +1 -1
  65. package/build-module/components/url-popover/image-url-input-ui.js +9 -4
  66. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  67. package/build-module/components/writing-flow/use-clipboard-handler.js +6 -1
  68. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  69. package/build-module/store/private-selectors.js +9 -21
  70. package/build-module/store/private-selectors.js.map +1 -1
  71. package/build-module/store/reducer.js +114 -0
  72. package/build-module/store/reducer.js.map +1 -1
  73. package/build-module/store/selectors.js +16 -30
  74. package/build-module/store/selectors.js.map +1 -1
  75. package/build-module/store/utils.js +17 -0
  76. package/build-module/store/utils.js.map +1 -1
  77. package/build-module/utils/block-bindings.js +1 -1
  78. package/build-module/utils/block-bindings.js.map +1 -1
  79. package/build-style/style-rtl.css +9 -5
  80. package/build-style/style.css +9 -5
  81. package/package.json +34 -34
  82. package/src/autocompleters/block.js +6 -11
  83. package/src/components/block-card/index.js +11 -1
  84. package/src/components/block-inspector/edit-contents-button.js +46 -0
  85. package/src/components/block-inspector/index.js +6 -1
  86. package/src/components/block-inspector/style.scss +5 -0
  87. package/src/components/block-list/index.js +7 -1
  88. package/src/components/block-popover/use-popover-scroll.js +10 -2
  89. package/src/components/block-switcher/index.js +13 -4
  90. package/src/components/block-toolbar/index.js +11 -5
  91. package/src/components/block-toolbar/style.scss +3 -5
  92. package/src/components/block-tools/insertion-point.js +19 -1
  93. package/src/components/block-variation-transforms/index.js +39 -27
  94. package/src/components/border-radius-control/test/utils.js +71 -0
  95. package/src/components/border-radius-control/utils.js +1 -0
  96. package/src/components/global-styles/border-panel.js +7 -6
  97. package/src/components/link-control/search-item.js +31 -12
  98. package/src/components/link-control/style.scss +0 -1
  99. package/src/components/link-control/test/index.js +14 -2
  100. package/src/components/url-popover/image-url-input-ui.js +18 -2
  101. package/src/components/writing-flow/use-clipboard-handler.js +6 -0
  102. package/src/store/private-selectors.js +12 -24
  103. package/src/store/reducer.js +188 -0
  104. package/src/store/selectors.js +38 -59
  105. package/src/store/test/reducer.js +398 -0
  106. package/src/store/test/selectors.js +65 -192
  107. package/src/store/utils.js +21 -0
  108. package/src/utils/block-bindings.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_i18n","_borderRadiusControl","_interopRequireDefault","_hooks","_utils","_object","_border","_shadowPanelComponents","_jsxRuntime","useHasBorderPanel","settings","controls","Object","values","useHasBorderPanelControls","some","Boolean","hasBorderColor","useHasBorderColorControl","hasBorderRadius","useHasBorderRadiusControl","hasBorderStyle","useHasBorderStyleControl","hasBorderWidth","useHasBorderWidthControl","hasShadow","useHasShadowControl","border","color","radius","style","width","shadows","useShadowPresets","shadow","length","BorderToolsPanel","resetAllFilter","onChange","value","panelId","children","label","dropdownMenuProps","useToolsPanelDropdownMenuProps","resetAll","updatedValue","jsx","__experimentalToolsPanel","DEFAULT_CONTROLS","BorderPanel","as","Wrapper","inheritedValue","name","defaultControls","_settings$shadow$pres","_ref","_ref2","_shadowPresets$custom","colors","useColorsPerOrigin","decodeValue","useCallback","rawValue","getValueFromVariable","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","find","slug","useMemo","hasSplitBorders","borderValue","forEach","side","undefined","setBorder","newBorder","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","topLeft","topRight","bottomLeft","bottomRight","setBorderRadius","newBorderRadius","borderValues","entries","hasShadowControl","shadowPresets","presets","mergedShadowPresets","custom","theme","default","setShadow","newValue","shadowName","setImmutably","resetShadow","resetBorder","onBorderChange","updatedBorder","previousValue","showBorderByDefault","hasBorderControl","useBorderPanelLabel","blockName","jsxs","__experimentalToolsPanelItem","hasValue","isDefinedBorder","__","onDeselect","isShownByDefault","BorderBoxControl","enableAlpha","enableStyle","popoverOffset","popoverPlacement","__experimentalIsRenderedInSidebar","size","hideLabelFromVision","radiusSizes","BaseControl","VisualLabel","ShadowPopover","onShadowChange"],"sources":["@wordpress/block-editor/src/components/global-styles/border-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tBaseControl,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BorderRadiusControl from '../border-radius-control';\nimport { useColorsPerOrigin } from './hooks';\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { ShadowPopover, useShadowPresets } from './shadow-panel-components';\n\nexport function useHasBorderPanel( settings ) {\n\tconst controls = Object.values( useHasBorderPanelControls( settings ) );\n\treturn controls.some( Boolean );\n}\n\nexport function useHasBorderPanelControls( settings ) {\n\tconst controls = {\n\t\thasBorderColor: useHasBorderColorControl( settings ),\n\t\thasBorderRadius: useHasBorderRadiusControl( settings ),\n\t\thasBorderStyle: useHasBorderStyleControl( settings ),\n\t\thasBorderWidth: useHasBorderWidthControl( settings ),\n\t\thasShadow: useHasShadowControl( settings ),\n\t};\n\n\treturn controls;\n}\n\nfunction useHasBorderColorControl( settings ) {\n\treturn settings?.border?.color;\n}\n\nfunction useHasBorderRadiusControl( settings ) {\n\treturn settings?.border?.radius;\n}\n\nfunction useHasBorderStyleControl( settings ) {\n\treturn settings?.border?.style;\n}\n\nfunction useHasBorderWidthControl( settings ) {\n\treturn settings?.border?.width;\n}\n\nfunction useHasShadowControl( settings ) {\n\tconst shadows = useShadowPresets( settings );\n\treturn !! settings?.shadow && shadows.length > 0;\n}\n\nfunction BorderToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\tlabel,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tradius: true,\n\tcolor: true,\n\twidth: true,\n\tshadow: true,\n};\n\nexport default function BorderPanel( {\n\tas: Wrapper = BorderToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tname,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst decodeValue = useCallback(\n\t\t( rawValue ) => getValueFromVariable( { settings }, '', rawValue ),\n\t\t[ settings ]\n\t);\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst border = useMemo( () => {\n\t\tif ( hasSplitBorders( inheritedValue?.border ) ) {\n\t\t\tconst borderValue = { ...inheritedValue?.border };\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tborderValue[ side ] = {\n\t\t\t\t\t...borderValue[ side ],\n\t\t\t\t\tcolor: decodeValue( borderValue[ side ]?.color ),\n\t\t\t\t};\n\t\t\t} );\n\t\t\treturn borderValue;\n\t\t}\n\t\treturn {\n\t\t\t...inheritedValue?.border,\n\t\t\tcolor: inheritedValue?.border?.color\n\t\t\t\t? decodeValue( inheritedValue?.border?.color )\n\t\t\t\t: undefined,\n\t\t};\n\t}, [ inheritedValue?.border, decodeValue ] );\n\tconst setBorder = ( newBorder ) =>\n\t\tonChange( { ...value, border: newBorder } );\n\tconst showBorderColor = useHasBorderColorControl( settings );\n\tconst showBorderStyle = useHasBorderStyleControl( settings );\n\tconst showBorderWidth = useHasBorderWidthControl( settings );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( settings );\n\tconst borderRadiusValues = useMemo( () => {\n\t\tif ( typeof border?.radius !== 'object' ) {\n\t\t\treturn decodeValue( border?.radius );\n\t\t}\n\t\treturn {\n\t\t\ttopLeft: decodeValue( border?.radius?.topLeft ),\n\t\t\ttopRight: decodeValue( border?.radius?.topRight ),\n\t\t\tbottomLeft: decodeValue( border?.radius?.bottomLeft ),\n\t\t\tbottomRight: decodeValue( border?.radius?.bottomRight ),\n\t\t};\n\t}, [ border?.radius, decodeValue ] );\n\tconst setBorderRadius = ( newBorderRadius ) =>\n\t\tsetBorder( { ...border, radius: newBorderRadius } );\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = value?.border?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\tconst hasShadowControl = useHasShadowControl( settings );\n\n\t// Shadow\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst shadowPresets = settings?.shadow?.presets ?? {};\n\tconst mergedShadowPresets =\n\t\tshadowPresets.custom ??\n\t\tshadowPresets.theme ??\n\t\tshadowPresets.default ??\n\t\t[];\n\tconst setShadow = ( newValue ) => {\n\t\tconst slug = mergedShadowPresets?.find(\n\t\t\t( { shadow: shadowName } ) => shadowName === newValue\n\t\t)?.slug;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'shadow' ],\n\t\t\t\tslug ? `var:preset|shadow|${ slug }` : newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: value?.border?.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Ensure we have a visible border style when a border width or\n\t\t// color is being selected.\n\t\tconst updatedBorder = { ...newBorder };\n\n\t\tif ( hasSplitBorders( updatedBorder ) ) {\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tif ( updatedBorder[ side ] ) {\n\t\t\t\t\tupdatedBorder[ side ] = {\n\t\t\t\t\t\t...updatedBorder[ side ],\n\t\t\t\t\t\tcolor: encodeColorValue( updatedBorder[ side ]?.color ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( updatedBorder ) {\n\t\t\tupdatedBorder.color = encodeColorValue( updatedBorder.color );\n\t\t}\n\n\t\t// As radius is maintained separately to color, style, and width\n\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t// global styles are saved.\n\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tborder: undefined,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\tconst showBorderByDefault =\n\t\tdefaultControls?.color || defaultControls?.width;\n\n\tconst hasBorderControl =\n\t\tshowBorderColor ||\n\t\tshowBorderStyle ||\n\t\tshowBorderWidth ||\n\t\tshowBorderRadius;\n\n\tconst label = useBorderPanelLabel( {\n\t\tblockName: name,\n\t\thasShadowControl,\n\t\thasBorderControl,\n\t} );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( value?.border ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha\n\t\t\t\t\t\tenableStyle={ showBorderStyle }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\thideLabelFromVision={ ! hasShadowControl }\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ defaultControls.radius }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tpresets={ settings?.border?.radiusSizes }\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tsetBorderRadius( newValue || undefined );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasShadowControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ hasBorderControl ? (\n\t\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t\t{ __( 'Shadow' ) }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t) : null }\n\n\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_element","_i18n","_borderRadiusControl","_interopRequireDefault","_hooks","_utils","_object","_border","_shadowPanelComponents","_jsxRuntime","useHasBorderPanel","settings","controls","Object","values","useHasBorderPanelControls","some","Boolean","hasBorderColor","useHasBorderColorControl","hasBorderRadius","useHasBorderRadiusControl","hasBorderStyle","useHasBorderStyleControl","hasBorderWidth","useHasBorderWidthControl","hasShadow","useHasShadowControl","border","color","radius","style","width","shadows","useShadowPresets","shadow","length","BorderToolsPanel","resetAllFilter","onChange","value","panelId","children","label","dropdownMenuProps","useToolsPanelDropdownMenuProps","resetAll","updatedValue","jsx","__experimentalToolsPanel","DEFAULT_CONTROLS","BorderPanel","as","Wrapper","inheritedValue","name","defaultControls","_settings$shadow$pres","_ref","_ref2","_shadowPresets$custom","colors","useColorsPerOrigin","decodeValue","useCallback","rawValue","getValueFromVariable","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","find","slug","useMemo","hasSplitBorders","borderValue","forEach","side","undefined","setBorder","newBorder","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","topLeft","topRight","bottomLeft","bottomRight","setBorderRadius","newBorderRadius","borderValues","entries","hasShadowControl","shadowPresets","presets","mergedShadowPresets","custom","theme","default","setShadow","newValue","shadowName","setImmutably","resetShadow","resetBorder","onBorderChange","updatedBorder","previousValue","showBorderByDefault","hasBorderControl","useBorderPanelLabel","blockName","jsxs","__experimentalToolsPanelItem","hasValue","isDefinedBorder","__","onDeselect","isShownByDefault","BorderBoxControl","enableAlpha","enableStyle","popoverOffset","popoverPlacement","__experimentalIsRenderedInSidebar","size","hideLabelFromVision","radiusSizes","BaseControl","VisualLabel","ShadowPopover","onShadowChange"],"sources":["@wordpress/block-editor/src/components/global-styles/border-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tBaseControl,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BorderRadiusControl from '../border-radius-control';\nimport { useColorsPerOrigin } from './hooks';\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { ShadowPopover, useShadowPresets } from './shadow-panel-components';\n\nexport function useHasBorderPanel( settings ) {\n\tconst controls = Object.values( useHasBorderPanelControls( settings ) );\n\treturn controls.some( Boolean );\n}\n\nexport function useHasBorderPanelControls( settings ) {\n\tconst controls = {\n\t\thasBorderColor: useHasBorderColorControl( settings ),\n\t\thasBorderRadius: useHasBorderRadiusControl( settings ),\n\t\thasBorderStyle: useHasBorderStyleControl( settings ),\n\t\thasBorderWidth: useHasBorderWidthControl( settings ),\n\t\thasShadow: useHasShadowControl( settings ),\n\t};\n\n\treturn controls;\n}\n\nfunction useHasBorderColorControl( settings ) {\n\treturn settings?.border?.color;\n}\n\nfunction useHasBorderRadiusControl( settings ) {\n\treturn settings?.border?.radius;\n}\n\nfunction useHasBorderStyleControl( settings ) {\n\treturn settings?.border?.style;\n}\n\nfunction useHasBorderWidthControl( settings ) {\n\treturn settings?.border?.width;\n}\n\nfunction useHasShadowControl( settings ) {\n\tconst shadows = useShadowPresets( settings );\n\treturn !! settings?.shadow && shadows.length > 0;\n}\n\nfunction BorderToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\tlabel,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tradius: true,\n\tcolor: true,\n\twidth: true,\n\tshadow: true,\n};\n\nexport default function BorderPanel( {\n\tas: Wrapper = BorderToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tname,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst decodeValue = useCallback(\n\t\t( rawValue ) => getValueFromVariable( { settings }, '', rawValue ),\n\t\t[ settings ]\n\t);\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst border = useMemo( () => {\n\t\tif ( hasSplitBorders( inheritedValue?.border ) ) {\n\t\t\tconst borderValue = { ...inheritedValue?.border };\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tborderValue[ side ] = {\n\t\t\t\t\t...borderValue[ side ],\n\t\t\t\t\tcolor: decodeValue( borderValue[ side ]?.color ),\n\t\t\t\t};\n\t\t\t} );\n\t\t\treturn borderValue;\n\t\t}\n\t\treturn {\n\t\t\t...inheritedValue?.border,\n\t\t\tcolor: inheritedValue?.border?.color\n\t\t\t\t? decodeValue( inheritedValue?.border?.color )\n\t\t\t\t: undefined,\n\t\t};\n\t}, [ inheritedValue?.border, decodeValue ] );\n\tconst setBorder = ( newBorder ) =>\n\t\tonChange( { ...value, border: newBorder } );\n\tconst showBorderColor = useHasBorderColorControl( settings );\n\tconst showBorderStyle = useHasBorderStyleControl( settings );\n\tconst showBorderWidth = useHasBorderWidthControl( settings );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( settings );\n\tconst borderRadiusValues = useMemo( () => {\n\t\tif ( typeof border?.radius !== 'object' ) {\n\t\t\treturn border?.radius;\n\t\t}\n\n\t\treturn {\n\t\t\ttopLeft: border?.radius?.topLeft,\n\t\t\ttopRight: border?.radius?.topRight,\n\t\t\tbottomLeft: border?.radius?.bottomLeft,\n\t\t\tbottomRight: border?.radius?.bottomRight,\n\t\t};\n\t}, [ border?.radius ] );\n\tconst setBorderRadius = ( newBorderRadius ) =>\n\t\tsetBorder( { ...border, radius: newBorderRadius } );\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = value?.border?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\tconst hasShadowControl = useHasShadowControl( settings );\n\n\t// Shadow\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst shadowPresets = settings?.shadow?.presets ?? {};\n\tconst mergedShadowPresets =\n\t\tshadowPresets.custom ??\n\t\tshadowPresets.theme ??\n\t\tshadowPresets.default ??\n\t\t[];\n\tconst setShadow = ( newValue ) => {\n\t\tconst slug = mergedShadowPresets?.find(\n\t\t\t( { shadow: shadowName } ) => shadowName === newValue\n\t\t)?.slug;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'shadow' ],\n\t\t\t\tslug ? `var:preset|shadow|${ slug }` : newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: value?.border?.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Ensure we have a visible border style when a border width or\n\t\t// color is being selected.\n\t\tconst updatedBorder = { ...newBorder };\n\n\t\tif ( hasSplitBorders( updatedBorder ) ) {\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tif ( updatedBorder[ side ] ) {\n\t\t\t\t\tupdatedBorder[ side ] = {\n\t\t\t\t\t\t...updatedBorder[ side ],\n\t\t\t\t\t\tcolor: encodeColorValue( updatedBorder[ side ]?.color ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( updatedBorder ) {\n\t\t\tupdatedBorder.color = encodeColorValue( updatedBorder.color );\n\t\t}\n\n\t\t// As radius is maintained separately to color, style, and width\n\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t// global styles are saved.\n\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tborder: undefined,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\tconst showBorderByDefault =\n\t\tdefaultControls?.color || defaultControls?.width;\n\n\tconst hasBorderControl =\n\t\tshowBorderColor ||\n\t\tshowBorderStyle ||\n\t\tshowBorderWidth ||\n\t\tshowBorderRadius;\n\n\tconst label = useBorderPanelLabel( {\n\t\tblockName: name,\n\t\thasShadowControl,\n\t\thasBorderControl,\n\t} );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( value?.border ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha\n\t\t\t\t\t\tenableStyle={ showBorderStyle }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\thideLabelFromVision={ ! hasShadowControl }\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ defaultControls.radius }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tpresets={ settings?.border?.radiusSizes }\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tsetBorderRadius( newValue || undefined );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasShadowControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ hasBorderControl ? (\n\t\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t\t{ __( 'Shadow' ) }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t) : null }\n\n\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,12 +17,27 @@ var _jsxRuntime = require("react/jsx-runtime");
17
17
  * WordPress dependencies
18
18
  */
19
19
 
20
- const ICONS_MAP = {
21
- post: _icons.postList,
22
- page: _icons.page,
23
- post_tag: _icons.tag,
24
- category: _icons.category,
25
- attachment: _icons.file
20
+ const TYPES = {
21
+ post: {
22
+ icon: _icons.postList,
23
+ label: (0, _i18n.__)('Post')
24
+ },
25
+ page: {
26
+ icon: _icons.page,
27
+ label: (0, _i18n.__)('Page')
28
+ },
29
+ post_tag: {
30
+ icon: _icons.tag,
31
+ label: (0, _i18n.__)('Tag')
32
+ },
33
+ category: {
34
+ icon: _icons.category,
35
+ label: (0, _i18n.__)('Category')
36
+ },
37
+ attachment: {
38
+ icon: _icons.file,
39
+ label: (0, _i18n.__)('Attachment')
40
+ }
26
41
  };
27
42
  function SearchItemIcon({
28
43
  isURL,
@@ -31,8 +46,8 @@ function SearchItemIcon({
31
46
  let icon = null;
32
47
  if (isURL) {
33
48
  icon = _icons.globe;
34
- } else if (suggestion.type in ICONS_MAP) {
35
- icon = ICONS_MAP[suggestion.type];
49
+ } else if (suggestion.type in TYPES) {
50
+ icon = TYPES[suggestion.type].icon;
36
51
  if (suggestion.type === 'page') {
37
52
  if (suggestion.isFrontPage) {
38
53
  icon = _icons.home;
@@ -121,14 +136,17 @@ const LinkControlSearchItem = ({
121
136
  exports.LinkControlSearchItem = LinkControlSearchItem;
122
137
  function getVisualTypeName(suggestion) {
123
138
  if (suggestion.isFrontPage) {
124
- return 'front page';
139
+ return (0, _i18n.__)('Front page');
125
140
  }
126
141
  if (suggestion.isBlogHome) {
127
- return 'blog home';
142
+ return (0, _i18n.__)('Blog home');
128
143
  }
129
144
 
130
- // Rename 'post_tag' to 'tag'. Ideally, the API would return the localised CPT or taxonomy label.
131
- return suggestion.type === 'post_tag' ? 'tag' : suggestion.type;
145
+ // Provide translated labels for built-in post types. Ideally, the API would return the localised CPT or taxonomy label.
146
+ if (suggestion.type in TYPES) {
147
+ return TYPES[suggestion.type].label;
148
+ }
149
+ return suggestion.type;
132
150
  }
133
151
  var _default = exports.default = LinkControlSearchItem;
134
152
  const __experimentalLinkControlSearchItem = props => {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_icons","_dom","_url","_compose","_deprecated","_interopRequireDefault","_jsxRuntime","ICONS_MAP","post","postList","page","post_tag","tag","category","attachment","file","SearchItemIcon","isURL","suggestion","icon","globe","type","isFrontPage","home","isBlogHome","verse","jsx","Icon","className","addLeadingSlash","url","trimmedURL","trim","length","replace","removeTrailingSlash","partialRight","fn","partialArgs","args","defaultTo","d","v","undefined","getURLForDisplay","pipe","safeDecodeURI","getPath","filterURLForDisplay","LinkControlSearchItem","itemProps","searchTerm","onClick","shouldShowType","info","__","MenuItem","iconPosition","shortcut","getVisualTypeName","children","TextHighlight","text","stripHTML","title","highlight","exports","_default","default","__experimentalLinkControlSearchItem","props","deprecated","since"],"sources":["@wordpress/block-editor/src/components/link-control/search-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem, TextHighlight } from '@wordpress/components';\nimport {\n\tIcon,\n\tglobe,\n\tpage,\n\ttag,\n\tpostList,\n\tcategory,\n\tfile,\n\thome,\n\tverse,\n} from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { safeDecodeURI, filterURLForDisplay, getPath } from '@wordpress/url';\nimport { pipe } from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\n\nconst ICONS_MAP = {\n\tpost: postList,\n\tpage,\n\tpost_tag: tag,\n\tcategory,\n\tattachment: file,\n};\n\nfunction SearchItemIcon( { isURL, suggestion } ) {\n\tlet icon = null;\n\n\tif ( isURL ) {\n\t\ticon = globe;\n\t} else if ( suggestion.type in ICONS_MAP ) {\n\t\ticon = ICONS_MAP[ suggestion.type ];\n\t\tif ( suggestion.type === 'page' ) {\n\t\t\tif ( suggestion.isFrontPage ) {\n\t\t\t\ticon = home;\n\t\t\t}\n\t\t\tif ( suggestion.isBlogHome ) {\n\t\t\t\ticon = verse;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( icon ) {\n\t\treturn (\n\t\t\t<Icon\n\t\t\t\tclassName=\"block-editor-link-control__search-item-icon\"\n\t\t\t\ticon={ icon }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\n/**\n * Adds a leading slash to a url if it doesn't already have one.\n * @param {string} url the url to add a leading slash to.\n * @return {string} the url with a leading slash.\n */\nfunction addLeadingSlash( url ) {\n\tconst trimmedURL = url?.trim();\n\n\tif ( ! trimmedURL?.length ) {\n\t\treturn url;\n\t}\n\n\treturn url?.replace( /^\\/?/, '/' );\n}\n\nfunction removeTrailingSlash( url ) {\n\tconst trimmedURL = url?.trim();\n\n\tif ( ! trimmedURL?.length ) {\n\t\treturn url;\n\t}\n\n\treturn url?.replace( /\\/$/, '' );\n}\n\nconst partialRight =\n\t( fn, ...partialArgs ) =>\n\t( ...args ) =>\n\t\tfn( ...args, ...partialArgs );\n\nconst defaultTo = ( d ) => ( v ) => {\n\treturn v === null || v === undefined || v !== v ? d : v;\n};\n\n/**\n * Prepares a URL for display in the UI.\n * - decodes the URL.\n * - filters it (removes protocol, www, etc.).\n * - truncates it if necessary.\n * - adds a leading slash.\n * @param {string} url the url.\n * @return {string} the processed url to display.\n */\nfunction getURLForDisplay( url ) {\n\tif ( ! url ) {\n\t\treturn url;\n\t}\n\n\treturn pipe(\n\t\tsafeDecodeURI,\n\t\tgetPath,\n\t\tdefaultTo( '' ),\n\t\tpartialRight( filterURLForDisplay, 24 ),\n\t\tremoveTrailingSlash,\n\t\taddLeadingSlash\n\t)( url );\n}\n\nexport const LinkControlSearchItem = ( {\n\titemProps,\n\tsuggestion,\n\tsearchTerm,\n\tonClick,\n\tisURL = false,\n\tshouldShowType = false,\n} ) => {\n\tconst info = isURL\n\t\t? __( 'Press ENTER to add this link' )\n\t\t: getURLForDisplay( suggestion.url );\n\n\treturn (\n\t\t<MenuItem\n\t\t\t{ ...itemProps }\n\t\t\tinfo={ info }\n\t\t\ticonPosition=\"left\"\n\t\t\ticon={\n\t\t\t\t<SearchItemIcon suggestion={ suggestion } isURL={ isURL } />\n\t\t\t}\n\t\t\tonClick={ onClick }\n\t\t\tshortcut={ shouldShowType && getVisualTypeName( suggestion ) }\n\t\t\tclassName=\"block-editor-link-control__search-item\"\n\t\t>\n\t\t\t<TextHighlight\n\t\t\t\t// The component expects a plain text string.\n\t\t\t\ttext={ stripHTML( suggestion.title ) }\n\t\t\t\thighlight={ searchTerm }\n\t\t\t/>\n\t\t</MenuItem>\n\t);\n};\n\nfunction getVisualTypeName( suggestion ) {\n\tif ( suggestion.isFrontPage ) {\n\t\treturn 'front page';\n\t}\n\n\tif ( suggestion.isBlogHome ) {\n\t\treturn 'blog home';\n\t}\n\n\t// Rename 'post_tag' to 'tag'. Ideally, the API would return the localised CPT or taxonomy label.\n\treturn suggestion.type === 'post_tag' ? 'tag' : suggestion.type;\n}\n\nexport default LinkControlSearchItem;\n\nexport const __experimentalLinkControlSearchItem = ( props ) => {\n\tdeprecated( 'wp.blockEditor.__experimentalLinkControlSearchItem', {\n\t\tsince: '6.8',\n\t} );\n\n\treturn <LinkControlSearchItem { ...props } />;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_icons","_dom","_url","_compose","_deprecated","_interopRequireDefault","_jsxRuntime","TYPES","post","icon","postList","label","__","page","post_tag","tag","category","attachment","file","SearchItemIcon","isURL","suggestion","globe","type","isFrontPage","home","isBlogHome","verse","jsx","Icon","className","addLeadingSlash","url","trimmedURL","trim","length","replace","removeTrailingSlash","partialRight","fn","partialArgs","args","defaultTo","d","v","undefined","getURLForDisplay","pipe","safeDecodeURI","getPath","filterURLForDisplay","LinkControlSearchItem","itemProps","searchTerm","onClick","shouldShowType","info","MenuItem","iconPosition","shortcut","getVisualTypeName","children","TextHighlight","text","stripHTML","title","highlight","exports","_default","default","__experimentalLinkControlSearchItem","props","deprecated","since"],"sources":["@wordpress/block-editor/src/components/link-control/search-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem, TextHighlight } from '@wordpress/components';\nimport {\n\tIcon,\n\tglobe,\n\tpage,\n\ttag,\n\tpostList,\n\tcategory,\n\tfile,\n\thome,\n\tverse,\n} from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { safeDecodeURI, filterURLForDisplay, getPath } from '@wordpress/url';\nimport { pipe } from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\n\nconst TYPES = {\n\tpost: {\n\t\ticon: postList,\n\t\tlabel: __( 'Post' ),\n\t},\n\tpage: {\n\t\ticon: page,\n\t\tlabel: __( 'Page' ),\n\t},\n\tpost_tag: {\n\t\ticon: tag,\n\t\tlabel: __( 'Tag' ),\n\t},\n\tcategory: {\n\t\ticon: category,\n\t\tlabel: __( 'Category' ),\n\t},\n\tattachment: {\n\t\ticon: file,\n\t\tlabel: __( 'Attachment' ),\n\t},\n};\n\nfunction SearchItemIcon( { isURL, suggestion } ) {\n\tlet icon = null;\n\n\tif ( isURL ) {\n\t\ticon = globe;\n\t} else if ( suggestion.type in TYPES ) {\n\t\ticon = TYPES[ suggestion.type ].icon;\n\t\tif ( suggestion.type === 'page' ) {\n\t\t\tif ( suggestion.isFrontPage ) {\n\t\t\t\ticon = home;\n\t\t\t}\n\t\t\tif ( suggestion.isBlogHome ) {\n\t\t\t\ticon = verse;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( icon ) {\n\t\treturn (\n\t\t\t<Icon\n\t\t\t\tclassName=\"block-editor-link-control__search-item-icon\"\n\t\t\t\ticon={ icon }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\n/**\n * Adds a leading slash to a url if it doesn't already have one.\n * @param {string} url the url to add a leading slash to.\n * @return {string} the url with a leading slash.\n */\nfunction addLeadingSlash( url ) {\n\tconst trimmedURL = url?.trim();\n\n\tif ( ! trimmedURL?.length ) {\n\t\treturn url;\n\t}\n\n\treturn url?.replace( /^\\/?/, '/' );\n}\n\nfunction removeTrailingSlash( url ) {\n\tconst trimmedURL = url?.trim();\n\n\tif ( ! trimmedURL?.length ) {\n\t\treturn url;\n\t}\n\n\treturn url?.replace( /\\/$/, '' );\n}\n\nconst partialRight =\n\t( fn, ...partialArgs ) =>\n\t( ...args ) =>\n\t\tfn( ...args, ...partialArgs );\n\nconst defaultTo = ( d ) => ( v ) => {\n\treturn v === null || v === undefined || v !== v ? d : v;\n};\n\n/**\n * Prepares a URL for display in the UI.\n * - decodes the URL.\n * - filters it (removes protocol, www, etc.).\n * - truncates it if necessary.\n * - adds a leading slash.\n * @param {string} url the url.\n * @return {string} the processed url to display.\n */\nfunction getURLForDisplay( url ) {\n\tif ( ! url ) {\n\t\treturn url;\n\t}\n\n\treturn pipe(\n\t\tsafeDecodeURI,\n\t\tgetPath,\n\t\tdefaultTo( '' ),\n\t\tpartialRight( filterURLForDisplay, 24 ),\n\t\tremoveTrailingSlash,\n\t\taddLeadingSlash\n\t)( url );\n}\n\nexport const LinkControlSearchItem = ( {\n\titemProps,\n\tsuggestion,\n\tsearchTerm,\n\tonClick,\n\tisURL = false,\n\tshouldShowType = false,\n} ) => {\n\tconst info = isURL\n\t\t? __( 'Press ENTER to add this link' )\n\t\t: getURLForDisplay( suggestion.url );\n\n\treturn (\n\t\t<MenuItem\n\t\t\t{ ...itemProps }\n\t\t\tinfo={ info }\n\t\t\ticonPosition=\"left\"\n\t\t\ticon={\n\t\t\t\t<SearchItemIcon suggestion={ suggestion } isURL={ isURL } />\n\t\t\t}\n\t\t\tonClick={ onClick }\n\t\t\tshortcut={ shouldShowType && getVisualTypeName( suggestion ) }\n\t\t\tclassName=\"block-editor-link-control__search-item\"\n\t\t>\n\t\t\t<TextHighlight\n\t\t\t\t// The component expects a plain text string.\n\t\t\t\ttext={ stripHTML( suggestion.title ) }\n\t\t\t\thighlight={ searchTerm }\n\t\t\t/>\n\t\t</MenuItem>\n\t);\n};\n\nfunction getVisualTypeName( suggestion ) {\n\tif ( suggestion.isFrontPage ) {\n\t\treturn __( 'Front page' );\n\t}\n\n\tif ( suggestion.isBlogHome ) {\n\t\treturn __( 'Blog home' );\n\t}\n\n\t// Provide translated labels for built-in post types. Ideally, the API would return the localised CPT or taxonomy label.\n\tif ( suggestion.type in TYPES ) {\n\t\treturn TYPES[ suggestion.type ].label;\n\t}\n\n\treturn suggestion.type;\n}\n\nexport default LinkControlSearchItem;\n\nexport const __experimentalLinkControlSearchItem = ( props ) => {\n\tdeprecated( 'wp.blockEditor.__experimentalLinkControlSearchItem', {\n\t\tsince: '6.8',\n\t} );\n\n\treturn <LinkControlSearchItem { ...props } />;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -191,9 +191,14 @@ const ImageURLInputUI = ({
191
191
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
192
192
  __next40pxDefaultSize: true,
193
193
  __nextHasNoMarginBottom: true,
194
- label: (0, _i18n.__)('Link rel'),
194
+ label: (0, _i18n.__)('Link relation'),
195
195
  value: rel !== null && rel !== void 0 ? rel : '',
196
- onChange: onSetLinkRel
196
+ onChange: onSetLinkRel,
197
+ help: (0, _element.createInterpolateElement)((0, _i18n.__)('The <a>Link Relation</a> attribute defines the relationship between a linked resource and the current document.'), {
198
+ a: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ExternalLink, {
199
+ href: "https://developer.mozilla.org/docs/Web/HTML/Attributes/rel"
200
+ })
201
+ })
197
202
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
198
203
  __next40pxDefaultSize: true,
199
204
  __nextHasNoMarginBottom: true,
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_dom","_components","_icons","_url","_index","_interopRequireDefault","_jsxRuntime","LINK_DESTINATION_NONE","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","NEW_TAB_REL","ImageURLInputUI","linkDestination","onChangeUrl","url","mediaType","mediaUrl","mediaLink","linkTarget","linkClass","rel","showLightboxSetting","lightboxEnabled","onSetLightbox","resetLightbox","isOpen","setIsOpen","useState","popoverAnchor","setPopoverAnchor","openLinkUI","isEditingLink","setIsEditingLink","urlInput","setUrlInput","autocompleteRef","useRef","wrapperRef","useEffect","current","nextFocusTarget","focus","focusable","find","startEditLink","stopEditLink","closeLinkUI","getUpdatedLinkTargetSettings","value","newLinkTarget","undefined","updatedRel","rels","split","forEach","relVal","includes","push","join","filter","length","onFocusOutside","event","autocompleteElement","contains","target","onSubmitLinkChange","selectedDestination","getLinkDestinations","destination","href","prependHTTP","lightbox","enabled","preventDefault","onLinkRemove","linkDestinations","title","__","icon","image","page","onSetHref","linkDestinationInput","onSetNewTab","updatedLinkTarget","onSetLinkRel","onSetLinkClass","advancedOptions","jsxs","__experimentalVStack","spacing","children","jsx","ToggleControl","__nextHasNoMarginBottom","label","onChange","checked","TextControl","__next40pxDefaultSize","linkEditorValue","hideLightboxPanel","showLinkEditor","urlLabel","PopoverChildren","className","Icon","fullscreen","Button","linkOff","onClick","size","default","LinkEditor","onChangeInputValue","onSubmit","Fragment","LinkViewer","onEditLinkClick","ToolbarButton","linkIcon","ref","isActive","anchor","onClose","renderSettings","additionalControls","NavigableMenu","map","link","MenuItem","iconPosition","info","offset","exports","__experimentalImageURLInputUI"],"sources":["@wordpress/block-editor/src/components/url-popover/image-url-input-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { focus } from '@wordpress/dom';\nimport {\n\tToolbarButton,\n\tNavigableMenu,\n\tButton,\n\tMenuItem,\n\tToggleControl,\n\tTextControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport {\n\tIcon,\n\tlink as linkIcon,\n\timage,\n\tpage,\n\tfullscreen,\n\tlinkOff,\n} from '@wordpress/icons';\nimport { prependHTTP } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport URLPopover from './index';\n\nconst LINK_DESTINATION_NONE = 'none';\nconst LINK_DESTINATION_CUSTOM = 'custom';\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\nconst NEW_TAB_REL = [ 'noreferrer', 'noopener' ];\n\nconst ImageURLInputUI = ( {\n\tlinkDestination,\n\tonChangeUrl,\n\turl,\n\tmediaType = 'image',\n\tmediaUrl,\n\tmediaLink,\n\tlinkTarget,\n\tlinkClass,\n\trel,\n\tshowLightboxSetting,\n\tlightboxEnabled,\n\tonSetLightbox,\n\tresetLightbox,\n} ) => {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst openLinkUI = () => {\n\t\tsetIsOpen( true );\n\t};\n\n\tconst [ isEditingLink, setIsEditingLink ] = useState( false );\n\tconst [ urlInput, setUrlInput ] = useState( null );\n\n\tconst autocompleteRef = useRef( null );\n\tconst wrapperRef = useRef();\n\n\tuseEffect( () => {\n\t\tif ( ! wrapperRef.current ) {\n\t\t\treturn;\n\t\t}\n\t\tconst nextFocusTarget =\n\t\t\tfocus.focusable.find( wrapperRef.current )[ 0 ] ||\n\t\t\twrapperRef.current;\n\t\tnextFocusTarget.focus();\n\t}, [ isEditingLink, url, lightboxEnabled ] );\n\n\tconst startEditLink = () => {\n\t\tif (\n\t\t\tlinkDestination === LINK_DESTINATION_MEDIA ||\n\t\t\tlinkDestination === LINK_DESTINATION_ATTACHMENT\n\t\t) {\n\t\t\tsetUrlInput( '' );\n\t\t}\n\t\tsetIsEditingLink( true );\n\t};\n\n\tconst stopEditLink = () => {\n\t\tsetIsEditingLink( false );\n\t};\n\n\tconst closeLinkUI = () => {\n\t\tsetUrlInput( null );\n\t\tstopEditLink();\n\t\tsetIsOpen( false );\n\t};\n\n\tconst getUpdatedLinkTargetSettings = ( value ) => {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel;\n\t\tif ( newLinkTarget ) {\n\t\t\tconst rels = ( rel ?? '' ).split( ' ' );\n\t\t\tNEW_TAB_REL.forEach( ( relVal ) => {\n\t\t\t\tif ( ! rels.includes( relVal ) ) {\n\t\t\t\t\trels.push( relVal );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tupdatedRel = rels.join( ' ' );\n\t\t} else {\n\t\t\tconst rels = ( rel ?? '' )\n\t\t\t\t.split( ' ' )\n\t\t\t\t.filter(\n\t\t\t\t\t( relVal ) => NEW_TAB_REL.includes( relVal ) === false\n\t\t\t\t);\n\t\t\tupdatedRel = rels.length ? rels.join( ' ' ) : undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t};\n\t};\n\n\tconst onFocusOutside = () => {\n\t\treturn ( event ) => {\n\t\t\t// The autocomplete suggestions list renders in a separate popover (in a portal),\n\t\t\t// so onFocusOutside fails to detect that a click on a suggestion occurred in the\n\t\t\t// LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and\n\t\t\t// return to avoid the popover being closed.\n\t\t\tconst autocompleteElement = autocompleteRef.current;\n\t\t\tif (\n\t\t\t\tautocompleteElement &&\n\t\t\t\tautocompleteElement.contains( event.target )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsOpen( false );\n\t\t\tsetUrlInput( null );\n\t\t\tstopEditLink();\n\t\t};\n\t};\n\n\tconst onSubmitLinkChange = () => {\n\t\treturn ( event ) => {\n\t\t\tif ( urlInput ) {\n\t\t\t\t// It is possible the entered URL actually matches a named link destination.\n\t\t\t\t// This check will ensure our link destination is correct.\n\t\t\t\tconst selectedDestination =\n\t\t\t\t\tgetLinkDestinations().find(\n\t\t\t\t\t\t( destination ) => destination.url === urlInput\n\t\t\t\t\t)?.linkDestination || LINK_DESTINATION_CUSTOM;\n\n\t\t\t\tonChangeUrl( {\n\t\t\t\t\thref: prependHTTP( urlInput ),\n\t\t\t\t\tlinkDestination: selectedDestination,\n\t\t\t\t\tlightbox: { enabled: false },\n\t\t\t\t} );\n\t\t\t}\n\t\t\tstopEditLink();\n\t\t\tsetUrlInput( null );\n\t\t\tevent.preventDefault();\n\t\t};\n\t};\n\n\tconst onLinkRemove = () => {\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: LINK_DESTINATION_NONE,\n\t\t\thref: '',\n\t\t} );\n\t};\n\n\tconst getLinkDestinations = () => {\n\t\tconst linkDestinations = [\n\t\t\t{\n\t\t\t\tlinkDestination: LINK_DESTINATION_MEDIA,\n\t\t\t\ttitle: __( 'Link to image file' ),\n\t\t\t\turl: mediaType === 'image' ? mediaUrl : undefined,\n\t\t\t\ticon: image,\n\t\t\t},\n\t\t];\n\t\tif ( mediaType === 'image' && mediaLink ) {\n\t\t\tlinkDestinations.push( {\n\t\t\t\tlinkDestination: LINK_DESTINATION_ATTACHMENT,\n\t\t\t\ttitle: __( 'Link to attachment page' ),\n\t\t\t\turl: mediaType === 'image' ? mediaLink : undefined,\n\t\t\t\ticon: page,\n\t\t\t} );\n\t\t}\n\t\treturn linkDestinations;\n\t};\n\n\tconst onSetHref = ( value ) => {\n\t\tconst linkDestinations = getLinkDestinations();\n\t\tlet linkDestinationInput;\n\t\tif ( ! value ) {\n\t\t\tlinkDestinationInput = LINK_DESTINATION_NONE;\n\t\t} else {\n\t\t\tlinkDestinationInput = (\n\t\t\t\tlinkDestinations.find( ( destination ) => {\n\t\t\t\t\treturn destination.url === value;\n\t\t\t\t} ) || { linkDestination: LINK_DESTINATION_CUSTOM }\n\t\t\t).linkDestination;\n\t\t}\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: linkDestinationInput,\n\t\t\thref: value,\n\t\t} );\n\t};\n\n\tconst onSetNewTab = ( value ) => {\n\t\tconst updatedLinkTarget = getUpdatedLinkTargetSettings( value );\n\t\tonChangeUrl( updatedLinkTarget );\n\t};\n\n\tconst onSetLinkRel = ( value ) => {\n\t\tonChangeUrl( { rel: value } );\n\t};\n\n\tconst onSetLinkClass = ( value ) => {\n\t\tonChangeUrl( { linkClass: value } );\n\t};\n\n\tconst advancedOptions = (\n\t\t<VStack spacing=\"3\">\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\tonChange={ onSetNewTab }\n\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\tvalue={ rel ?? '' }\n\t\t\t\tonChange={ onSetLinkRel }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link CSS class' ) }\n\t\t\t\tvalue={ linkClass || '' }\n\t\t\t\tonChange={ onSetLinkClass }\n\t\t\t/>\n\t\t</VStack>\n\t);\n\n\tconst linkEditorValue = urlInput !== null ? urlInput : url;\n\tconst hideLightboxPanel =\n\t\t! lightboxEnabled || ( lightboxEnabled && ! showLightboxSetting );\n\tconst showLinkEditor = ! linkEditorValue && hideLightboxPanel;\n\n\tconst urlLabel = (\n\t\tgetLinkDestinations().find(\n\t\t\t( destination ) => destination.linkDestination === linkDestination\n\t\t) || {}\n\t).title;\n\n\tconst PopoverChildren = () => {\n\t\tif (\n\t\t\tlightboxEnabled &&\n\t\t\tshowLightboxSetting &&\n\t\t\t! url &&\n\t\t\t! isEditingLink\n\t\t) {\n\t\t\treturn (\n\t\t\t\t<div className=\"block-editor-url-popover__expand-on-click\">\n\t\t\t\t\t<Icon icon={ fullscreen } />\n\t\t\t\t\t<div className=\"text\">\n\t\t\t\t\t\t<p>{ __( 'Enlarge on click' ) }</p>\n\t\t\t\t\t\t<p className=\"description\">\n\t\t\t\t\t\t\t{ __( 'Scales the image with a lightbox effect' ) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Disable enlarge on click' ) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSetLightbox?.( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if ( ! url || isEditingLink ) {\n\t\t\treturn (\n\t\t\t\t<URLPopover.LinkEditor\n\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\tvalue={ linkEditorValue }\n\t\t\t\t\tonChangeInputValue={ setUrlInput }\n\t\t\t\t\tonSubmit={ onSubmitLinkChange() }\n\t\t\t\t\tautocompleteRef={ autocompleteRef }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( url && ! isEditingLink ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<URLPopover.LinkViewer\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tonEditLinkClick={ startEditLink }\n\t\t\t\t\t\turlLabel={ urlLabel }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonLinkRemove();\n\t\t\t\t\t\t\tresetLightbox?.();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ linkIcon }\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t\tonClick={ openLinkUI }\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t\tisActive={\n\t\t\t\t\t!! url || ( lightboxEnabled && showLightboxSetting )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ isOpen && (\n\t\t\t\t<URLPopover\n\t\t\t\t\tref={ wrapperRef }\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonFocusOutside={ onFocusOutside() }\n\t\t\t\t\tonClose={ closeLinkUI }\n\t\t\t\t\trenderSettings={\n\t\t\t\t\t\thideLightboxPanel ? () => advancedOptions : null\n\t\t\t\t\t}\n\t\t\t\t\tadditionalControls={\n\t\t\t\t\t\tshowLinkEditor && (\n\t\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t\t{ getLinkDestinations().map( ( link ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ link.linkDestination }\n\t\t\t\t\t\t\t\t\t\ticon={ link.icon }\n\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonSetHref( link.url );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\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\t\t{ link.title }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t{ showLightboxSetting && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey=\"expand-on-click\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-url-popover__expand-on-click\"\n\t\t\t\t\t\t\t\t\t\ticon={ fullscreen }\n\t\t\t\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Scale the image with a lightbox effect.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonChangeUrl( {\n\t\t\t\t\t\t\t\t\t\t\t\tlinkDestination:\n\t\t\t\t\t\t\t\t\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t\t\t\t\t\t\t\t\t\thref: '',\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\tonSetLightbox?.( true );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\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\t\t{ __( 'Enlarge on click' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t>\n\t\t\t\t\t{ PopoverChildren() }\n\t\t\t\t</URLPopover>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport { ImageURLInputUI as __experimentalImageURLInputUI };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_element","_dom","_components","_icons","_url","_index","_interopRequireDefault","_jsxRuntime","LINK_DESTINATION_NONE","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","NEW_TAB_REL","ImageURLInputUI","linkDestination","onChangeUrl","url","mediaType","mediaUrl","mediaLink","linkTarget","linkClass","rel","showLightboxSetting","lightboxEnabled","onSetLightbox","resetLightbox","isOpen","setIsOpen","useState","popoverAnchor","setPopoverAnchor","openLinkUI","isEditingLink","setIsEditingLink","urlInput","setUrlInput","autocompleteRef","useRef","wrapperRef","useEffect","current","nextFocusTarget","focus","focusable","find","startEditLink","stopEditLink","closeLinkUI","getUpdatedLinkTargetSettings","value","newLinkTarget","undefined","updatedRel","rels","split","forEach","relVal","includes","push","join","filter","length","onFocusOutside","event","autocompleteElement","contains","target","onSubmitLinkChange","selectedDestination","getLinkDestinations","destination","href","prependHTTP","lightbox","enabled","preventDefault","onLinkRemove","linkDestinations","title","__","icon","image","page","onSetHref","linkDestinationInput","onSetNewTab","updatedLinkTarget","onSetLinkRel","onSetLinkClass","advancedOptions","jsxs","__experimentalVStack","spacing","children","jsx","ToggleControl","__nextHasNoMarginBottom","label","onChange","checked","TextControl","__next40pxDefaultSize","help","createInterpolateElement","a","ExternalLink","linkEditorValue","hideLightboxPanel","showLinkEditor","urlLabel","PopoverChildren","className","Icon","fullscreen","Button","linkOff","onClick","size","default","LinkEditor","onChangeInputValue","onSubmit","Fragment","LinkViewer","onEditLinkClick","ToolbarButton","linkIcon","ref","isActive","anchor","onClose","renderSettings","additionalControls","NavigableMenu","map","link","MenuItem","iconPosition","info","offset","exports","__experimentalImageURLInputUI"],"sources":["@wordpress/block-editor/src/components/url-popover/image-url-input-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseRef,\n\tuseEffect,\n\tuseState,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { focus } from '@wordpress/dom';\nimport {\n\tToolbarButton,\n\tNavigableMenu,\n\tButton,\n\tMenuItem,\n\tToggleControl,\n\tTextControl,\n\t__experimentalVStack as VStack,\n\tExternalLink,\n} from '@wordpress/components';\nimport {\n\tIcon,\n\tlink as linkIcon,\n\timage,\n\tpage,\n\tfullscreen,\n\tlinkOff,\n} from '@wordpress/icons';\nimport { prependHTTP } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport URLPopover from './index';\n\nconst LINK_DESTINATION_NONE = 'none';\nconst LINK_DESTINATION_CUSTOM = 'custom';\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\nconst NEW_TAB_REL = [ 'noreferrer', 'noopener' ];\n\nconst ImageURLInputUI = ( {\n\tlinkDestination,\n\tonChangeUrl,\n\turl,\n\tmediaType = 'image',\n\tmediaUrl,\n\tmediaLink,\n\tlinkTarget,\n\tlinkClass,\n\trel,\n\tshowLightboxSetting,\n\tlightboxEnabled,\n\tonSetLightbox,\n\tresetLightbox,\n} ) => {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst openLinkUI = () => {\n\t\tsetIsOpen( true );\n\t};\n\n\tconst [ isEditingLink, setIsEditingLink ] = useState( false );\n\tconst [ urlInput, setUrlInput ] = useState( null );\n\n\tconst autocompleteRef = useRef( null );\n\tconst wrapperRef = useRef();\n\n\tuseEffect( () => {\n\t\tif ( ! wrapperRef.current ) {\n\t\t\treturn;\n\t\t}\n\t\tconst nextFocusTarget =\n\t\t\tfocus.focusable.find( wrapperRef.current )[ 0 ] ||\n\t\t\twrapperRef.current;\n\t\tnextFocusTarget.focus();\n\t}, [ isEditingLink, url, lightboxEnabled ] );\n\n\tconst startEditLink = () => {\n\t\tif (\n\t\t\tlinkDestination === LINK_DESTINATION_MEDIA ||\n\t\t\tlinkDestination === LINK_DESTINATION_ATTACHMENT\n\t\t) {\n\t\t\tsetUrlInput( '' );\n\t\t}\n\t\tsetIsEditingLink( true );\n\t};\n\n\tconst stopEditLink = () => {\n\t\tsetIsEditingLink( false );\n\t};\n\n\tconst closeLinkUI = () => {\n\t\tsetUrlInput( null );\n\t\tstopEditLink();\n\t\tsetIsOpen( false );\n\t};\n\n\tconst getUpdatedLinkTargetSettings = ( value ) => {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel;\n\t\tif ( newLinkTarget ) {\n\t\t\tconst rels = ( rel ?? '' ).split( ' ' );\n\t\t\tNEW_TAB_REL.forEach( ( relVal ) => {\n\t\t\t\tif ( ! rels.includes( relVal ) ) {\n\t\t\t\t\trels.push( relVal );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tupdatedRel = rels.join( ' ' );\n\t\t} else {\n\t\t\tconst rels = ( rel ?? '' )\n\t\t\t\t.split( ' ' )\n\t\t\t\t.filter(\n\t\t\t\t\t( relVal ) => NEW_TAB_REL.includes( relVal ) === false\n\t\t\t\t);\n\t\t\tupdatedRel = rels.length ? rels.join( ' ' ) : undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t};\n\t};\n\n\tconst onFocusOutside = () => {\n\t\treturn ( event ) => {\n\t\t\t// The autocomplete suggestions list renders in a separate popover (in a portal),\n\t\t\t// so onFocusOutside fails to detect that a click on a suggestion occurred in the\n\t\t\t// LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and\n\t\t\t// return to avoid the popover being closed.\n\t\t\tconst autocompleteElement = autocompleteRef.current;\n\t\t\tif (\n\t\t\t\tautocompleteElement &&\n\t\t\t\tautocompleteElement.contains( event.target )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsOpen( false );\n\t\t\tsetUrlInput( null );\n\t\t\tstopEditLink();\n\t\t};\n\t};\n\n\tconst onSubmitLinkChange = () => {\n\t\treturn ( event ) => {\n\t\t\tif ( urlInput ) {\n\t\t\t\t// It is possible the entered URL actually matches a named link destination.\n\t\t\t\t// This check will ensure our link destination is correct.\n\t\t\t\tconst selectedDestination =\n\t\t\t\t\tgetLinkDestinations().find(\n\t\t\t\t\t\t( destination ) => destination.url === urlInput\n\t\t\t\t\t)?.linkDestination || LINK_DESTINATION_CUSTOM;\n\n\t\t\t\tonChangeUrl( {\n\t\t\t\t\thref: prependHTTP( urlInput ),\n\t\t\t\t\tlinkDestination: selectedDestination,\n\t\t\t\t\tlightbox: { enabled: false },\n\t\t\t\t} );\n\t\t\t}\n\t\t\tstopEditLink();\n\t\t\tsetUrlInput( null );\n\t\t\tevent.preventDefault();\n\t\t};\n\t};\n\n\tconst onLinkRemove = () => {\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: LINK_DESTINATION_NONE,\n\t\t\thref: '',\n\t\t} );\n\t};\n\n\tconst getLinkDestinations = () => {\n\t\tconst linkDestinations = [\n\t\t\t{\n\t\t\t\tlinkDestination: LINK_DESTINATION_MEDIA,\n\t\t\t\ttitle: __( 'Link to image file' ),\n\t\t\t\turl: mediaType === 'image' ? mediaUrl : undefined,\n\t\t\t\ticon: image,\n\t\t\t},\n\t\t];\n\t\tif ( mediaType === 'image' && mediaLink ) {\n\t\t\tlinkDestinations.push( {\n\t\t\t\tlinkDestination: LINK_DESTINATION_ATTACHMENT,\n\t\t\t\ttitle: __( 'Link to attachment page' ),\n\t\t\t\turl: mediaType === 'image' ? mediaLink : undefined,\n\t\t\t\ticon: page,\n\t\t\t} );\n\t\t}\n\t\treturn linkDestinations;\n\t};\n\n\tconst onSetHref = ( value ) => {\n\t\tconst linkDestinations = getLinkDestinations();\n\t\tlet linkDestinationInput;\n\t\tif ( ! value ) {\n\t\t\tlinkDestinationInput = LINK_DESTINATION_NONE;\n\t\t} else {\n\t\t\tlinkDestinationInput = (\n\t\t\t\tlinkDestinations.find( ( destination ) => {\n\t\t\t\t\treturn destination.url === value;\n\t\t\t\t} ) || { linkDestination: LINK_DESTINATION_CUSTOM }\n\t\t\t).linkDestination;\n\t\t}\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: linkDestinationInput,\n\t\t\thref: value,\n\t\t} );\n\t};\n\n\tconst onSetNewTab = ( value ) => {\n\t\tconst updatedLinkTarget = getUpdatedLinkTargetSettings( value );\n\t\tonChangeUrl( updatedLinkTarget );\n\t};\n\n\tconst onSetLinkRel = ( value ) => {\n\t\tonChangeUrl( { rel: value } );\n\t};\n\n\tconst onSetLinkClass = ( value ) => {\n\t\tonChangeUrl( { linkClass: value } );\n\t};\n\n\tconst advancedOptions = (\n\t\t<VStack spacing=\"3\">\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\tonChange={ onSetNewTab }\n\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\tvalue={ rel ?? '' }\n\t\t\t\tonChange={ onSetLinkRel }\n\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'The <a>Link Relation</a> attribute defines the relationship between a linked resource and the current document.'\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t<ExternalLink href=\"https://developer.mozilla.org/docs/Web/HTML/Attributes/rel\" />\n\t\t\t\t\t\t),\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link CSS class' ) }\n\t\t\t\tvalue={ linkClass || '' }\n\t\t\t\tonChange={ onSetLinkClass }\n\t\t\t/>\n\t\t</VStack>\n\t);\n\n\tconst linkEditorValue = urlInput !== null ? urlInput : url;\n\tconst hideLightboxPanel =\n\t\t! lightboxEnabled || ( lightboxEnabled && ! showLightboxSetting );\n\tconst showLinkEditor = ! linkEditorValue && hideLightboxPanel;\n\n\tconst urlLabel = (\n\t\tgetLinkDestinations().find(\n\t\t\t( destination ) => destination.linkDestination === linkDestination\n\t\t) || {}\n\t).title;\n\n\tconst PopoverChildren = () => {\n\t\tif (\n\t\t\tlightboxEnabled &&\n\t\t\tshowLightboxSetting &&\n\t\t\t! url &&\n\t\t\t! isEditingLink\n\t\t) {\n\t\t\treturn (\n\t\t\t\t<div className=\"block-editor-url-popover__expand-on-click\">\n\t\t\t\t\t<Icon icon={ fullscreen } />\n\t\t\t\t\t<div className=\"text\">\n\t\t\t\t\t\t<p>{ __( 'Enlarge on click' ) }</p>\n\t\t\t\t\t\t<p className=\"description\">\n\t\t\t\t\t\t\t{ __( 'Scales the image with a lightbox effect' ) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Disable enlarge on click' ) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSetLightbox?.( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if ( ! url || isEditingLink ) {\n\t\t\treturn (\n\t\t\t\t<URLPopover.LinkEditor\n\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\tvalue={ linkEditorValue }\n\t\t\t\t\tonChangeInputValue={ setUrlInput }\n\t\t\t\t\tonSubmit={ onSubmitLinkChange() }\n\t\t\t\t\tautocompleteRef={ autocompleteRef }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( url && ! isEditingLink ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<URLPopover.LinkViewer\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tonEditLinkClick={ startEditLink }\n\t\t\t\t\t\turlLabel={ urlLabel }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonLinkRemove();\n\t\t\t\t\t\t\tresetLightbox?.();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ linkIcon }\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t\tonClick={ openLinkUI }\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t\tisActive={\n\t\t\t\t\t!! url || ( lightboxEnabled && showLightboxSetting )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ isOpen && (\n\t\t\t\t<URLPopover\n\t\t\t\t\tref={ wrapperRef }\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonFocusOutside={ onFocusOutside() }\n\t\t\t\t\tonClose={ closeLinkUI }\n\t\t\t\t\trenderSettings={\n\t\t\t\t\t\thideLightboxPanel ? () => advancedOptions : null\n\t\t\t\t\t}\n\t\t\t\t\tadditionalControls={\n\t\t\t\t\t\tshowLinkEditor && (\n\t\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t\t{ getLinkDestinations().map( ( link ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ link.linkDestination }\n\t\t\t\t\t\t\t\t\t\ticon={ link.icon }\n\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonSetHref( link.url );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\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\t\t{ link.title }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t{ showLightboxSetting && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey=\"expand-on-click\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-url-popover__expand-on-click\"\n\t\t\t\t\t\t\t\t\t\ticon={ fullscreen }\n\t\t\t\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Scale the image with a lightbox effect.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonChangeUrl( {\n\t\t\t\t\t\t\t\t\t\t\t\tlinkDestination:\n\t\t\t\t\t\t\t\t\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t\t\t\t\t\t\t\t\t\thref: '',\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\tonSetLightbox?.( true );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\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\t\t{ __( 'Enlarge on click' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t>\n\t\t\t\t\t{ PopoverChildren() }\n\t\t\t\t</URLPopover>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport { ImageURLInputUI as __experimentalImageURLInputUI };\n"],"mappings":"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","ignoreList":[]}
@@ -117,7 +117,8 @@ function useClipboardHandler() {
117
117
  }
118
118
  } else if (event.type === 'paste') {
119
119
  const {
120
- __experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML
120
+ __experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML,
121
+ mediaUpload
121
122
  } = getSettings();
122
123
  const isInternal = event.clipboardData.getData('rich-text') === 'true';
123
124
  if (isInternal) {
@@ -131,6 +132,10 @@ function useClipboardHandler() {
131
132
  const isFullySelected = __unstableIsFullySelected();
132
133
  let blocks = [];
133
134
  if (files.length) {
135
+ if (!mediaUpload) {
136
+ event.preventDefault();
137
+ return;
138
+ }
134
139
  const fromTransforms = (0, _blocks.getBlockTransforms)('from');
135
140
  blocks = files.reduce((accumulator, file) => {
136
141
  const transformation = (0, _blocks.findTransform)(fromTransforms, transform => transform.type === 'files' && transform.isMatch([file]));
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_dom","_data","_compose","_store","_useNotifyCopy","_utils","_pasting","useClipboardHandler","registry","useRegistry","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","getBlockName","__unstableIsFullySelected","__unstableIsSelectionCollapsed","__unstableIsSelectionMergeable","__unstableGetSelectedBlocksWithPartialSelection","canInsertBlockType","getBlockRootClientId","useSelect","blockEditorStore","flashBlock","removeBlocks","replaceBlocks","__unstableDeleteSelection","__unstableExpandSelection","__unstableSplitSelection","useDispatch","notifyCopy","useNotifyCopy","useRefEffect","node","handler","event","defaultPrevented","selectedBlockClientIds","length","target","ownerDocument","hasSelection","type","documentHasUncollapsedSelection","documentHasSelection","activeElement","isContentEditable","contains","isSelectionMergeable","shouldHandleWholeBlocks","expandSelectionIsNeeded","preventDefault","blocks","head","tail","inBetweenBlocks","slice","setClipboardBlocks","contentEditable","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","isInternal","clipboardData","getData","plainText","html","files","getPasteEventData","isFullySelected","fromTransforms","getBlockTransforms","reduce","accumulator","file","transformation","findTransform","transform","isMatch","push","flat","pasteHandler","HTML","mode","hasBlockSupport","__deprecatedOnSplit","firstSelectedClientId","rootClientId","newBlocks","block","name","rootBlockName","switchedBlocks","switchToBlockType","switchedBlock","innerBlock","innerBlocks","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-clipboard-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tpasteHandler,\n\tfindTransform,\n\tgetBlockTransforms,\n\thasBlockSupport,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { setClipboardBlocks } from './utils';\nimport { getPasteEventData } from '../../utils/pasting';\n\nexport default function useClipboardHandler() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\tgetBlockName,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t\t__unstableSplitSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Let native copy/paste behaviour take over in input fields.\n\t\t\t// But always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument ) &&\n\t\t\t\t\t\t ! ownerDocument.activeElement.isContentEditable;\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst { activeElement } = event.target.ownerDocument;\n\n\t\t\tif ( ! node.contains( activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [ head, tail ] =\n\t\t\t\t\t\t\t__unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\n\t\t\t\t\tsetClipboardBlocks( event, blocks, registry );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\tevent.target.ownerDocument.activeElement.contentEditable = false;\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst isInternal =\n\t\t\t\t\tevent.clipboardData.getData( 'rich-text' ) === 'true';\n\t\t\t\tif ( isInternal ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst { plainText, html, files } = getPasteEventData( event );\n\t\t\t\tconst isFullySelected = __unstableIsFullySelected();\n\t\t\t\tlet blocks = [];\n\n\t\t\t\tif ( files.length ) {\n\t\t\t\t\tconst fromTransforms = getBlockTransforms( 'from' );\n\t\t\t\t\tblocks = files\n\t\t\t\t\t\t.reduce( ( accumulator, file ) => {\n\t\t\t\t\t\t\tconst transformation = findTransform(\n\t\t\t\t\t\t\t\tfromTransforms,\n\t\t\t\t\t\t\t\t( transform ) =>\n\t\t\t\t\t\t\t\t\ttransform.type === 'files' &&\n\t\t\t\t\t\t\t\t\ttransform.isMatch( [ file ] )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( transformation ) {\n\t\t\t\t\t\t\t\taccumulator.push(\n\t\t\t\t\t\t\t\t\ttransformation.transform( [ file ] )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t.flat();\n\t\t\t\t} else {\n\t\t\t\t\tblocks = pasteHandler( {\n\t\t\t\t\t\tHTML: html,\n\t\t\t\t\t\tplainText,\n\t\t\t\t\t\tmode: isFullySelected ? 'BLOCKS' : 'AUTO',\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Inline paste: let rich text handle it.\n\t\t\t\tif ( typeof blocks === 'string' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isFullySelected ) {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t\t-1\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If a block doesn't support splitting, let rich text paste\n\t\t\t\t// inline.\n\t\t\t\tif (\n\t\t\t\t\t! hasMultiSelection() &&\n\t\t\t\t\t! hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( selectedBlockClientIds[ 0 ] ),\n\t\t\t\t\t\t'splitting',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) &&\n\t\t\t\t\t! event.__deprecatedOnSplit\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst [ firstSelectedClientId ] = selectedBlockClientIds;\n\t\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\t\tfirstSelectedClientId\n\t\t\t\t);\n\n\t\t\t\tconst newBlocks = [];\n\n\t\t\t\tfor ( const block of blocks ) {\n\t\t\t\t\tif ( canInsertBlockType( block.name, rootClientId ) ) {\n\t\t\t\t\t\tnewBlocks.push( block );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If a block cannot be inserted in a root block, try\n\t\t\t\t\t\t// converting it to that root block type and insert the\n\t\t\t\t\t\t// inner blocks.\n\t\t\t\t\t\t// Example: paragraphs cannot be inserted into a list,\n\t\t\t\t\t\t// so convert the paragraphs to a list for list items.\n\t\t\t\t\t\tconst rootBlockName = getBlockName( rootClientId );\n\t\t\t\t\t\tconst switchedBlocks =\n\t\t\t\t\t\t\tblock.name !== rootBlockName\n\t\t\t\t\t\t\t\t? switchToBlockType( block, rootBlockName )\n\t\t\t\t\t\t\t\t: [ block ];\n\n\t\t\t\t\t\tif ( ! switchedBlocks ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( const switchedBlock of switchedBlocks ) {\n\t\t\t\t\t\t\tfor ( const innerBlock of switchedBlock.innerBlocks ) {\n\t\t\t\t\t\t\t\tnewBlocks.push( innerBlock );\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}\n\n\t\t\t\t__unstableSplitSelection( newBlocks );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_dom","_data","_compose","_store","_useNotifyCopy","_utils","_pasting","useClipboardHandler","registry","useRegistry","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","getBlockName","__unstableIsFullySelected","__unstableIsSelectionCollapsed","__unstableIsSelectionMergeable","__unstableGetSelectedBlocksWithPartialSelection","canInsertBlockType","getBlockRootClientId","useSelect","blockEditorStore","flashBlock","removeBlocks","replaceBlocks","__unstableDeleteSelection","__unstableExpandSelection","__unstableSplitSelection","useDispatch","notifyCopy","useNotifyCopy","useRefEffect","node","handler","event","defaultPrevented","selectedBlockClientIds","length","target","ownerDocument","hasSelection","type","documentHasUncollapsedSelection","documentHasSelection","activeElement","isContentEditable","contains","isSelectionMergeable","shouldHandleWholeBlocks","expandSelectionIsNeeded","preventDefault","blocks","head","tail","inBetweenBlocks","slice","setClipboardBlocks","contentEditable","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","mediaUpload","isInternal","clipboardData","getData","plainText","html","files","getPasteEventData","isFullySelected","fromTransforms","getBlockTransforms","reduce","accumulator","file","transformation","findTransform","transform","isMatch","push","flat","pasteHandler","HTML","mode","hasBlockSupport","__deprecatedOnSplit","firstSelectedClientId","rootClientId","newBlocks","block","name","rootBlockName","switchedBlocks","switchToBlockType","switchedBlock","innerBlock","innerBlocks","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-clipboard-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tpasteHandler,\n\tfindTransform,\n\tgetBlockTransforms,\n\thasBlockSupport,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { setClipboardBlocks } from './utils';\nimport { getPasteEventData } from '../../utils/pasting';\n\nexport default function useClipboardHandler() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\tgetBlockName,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t\t__unstableSplitSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Let native copy/paste behaviour take over in input fields.\n\t\t\t// But always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument ) &&\n\t\t\t\t\t\t ! ownerDocument.activeElement.isContentEditable;\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst { activeElement } = event.target.ownerDocument;\n\n\t\t\tif ( ! node.contains( activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [ head, tail ] =\n\t\t\t\t\t\t\t__unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\n\t\t\t\t\tsetClipboardBlocks( event, blocks, registry );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\tevent.target.ownerDocument.activeElement.contentEditable = false;\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\tmediaUpload,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst isInternal =\n\t\t\t\t\tevent.clipboardData.getData( 'rich-text' ) === 'true';\n\t\t\t\tif ( isInternal ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst { plainText, html, files } = getPasteEventData( event );\n\t\t\t\tconst isFullySelected = __unstableIsFullySelected();\n\t\t\t\tlet blocks = [];\n\n\t\t\t\tif ( files.length ) {\n\t\t\t\t\tif ( ! mediaUpload ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fromTransforms = getBlockTransforms( 'from' );\n\t\t\t\t\tblocks = files\n\t\t\t\t\t\t.reduce( ( accumulator, file ) => {\n\t\t\t\t\t\t\tconst transformation = findTransform(\n\t\t\t\t\t\t\t\tfromTransforms,\n\t\t\t\t\t\t\t\t( transform ) =>\n\t\t\t\t\t\t\t\t\ttransform.type === 'files' &&\n\t\t\t\t\t\t\t\t\ttransform.isMatch( [ file ] )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( transformation ) {\n\t\t\t\t\t\t\t\taccumulator.push(\n\t\t\t\t\t\t\t\t\ttransformation.transform( [ file ] )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t.flat();\n\t\t\t\t} else {\n\t\t\t\t\tblocks = pasteHandler( {\n\t\t\t\t\t\tHTML: html,\n\t\t\t\t\t\tplainText,\n\t\t\t\t\t\tmode: isFullySelected ? 'BLOCKS' : 'AUTO',\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Inline paste: let rich text handle it.\n\t\t\t\tif ( typeof blocks === 'string' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isFullySelected ) {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t\t-1\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If a block doesn't support splitting, let rich text paste\n\t\t\t\t// inline.\n\t\t\t\tif (\n\t\t\t\t\t! hasMultiSelection() &&\n\t\t\t\t\t! hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( selectedBlockClientIds[ 0 ] ),\n\t\t\t\t\t\t'splitting',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) &&\n\t\t\t\t\t! event.__deprecatedOnSplit\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst [ firstSelectedClientId ] = selectedBlockClientIds;\n\t\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\t\tfirstSelectedClientId\n\t\t\t\t);\n\n\t\t\t\tconst newBlocks = [];\n\n\t\t\t\tfor ( const block of blocks ) {\n\t\t\t\t\tif ( canInsertBlockType( block.name, rootClientId ) ) {\n\t\t\t\t\t\tnewBlocks.push( block );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If a block cannot be inserted in a root block, try\n\t\t\t\t\t\t// converting it to that root block type and insert the\n\t\t\t\t\t\t// inner blocks.\n\t\t\t\t\t\t// Example: paragraphs cannot be inserted into a list,\n\t\t\t\t\t\t// so convert the paragraphs to a list for list items.\n\t\t\t\t\t\tconst rootBlockName = getBlockName( rootClientId );\n\t\t\t\t\t\tconst switchedBlocks =\n\t\t\t\t\t\t\tblock.name !== rootBlockName\n\t\t\t\t\t\t\t\t? switchToBlockType( block, rootBlockName )\n\t\t\t\t\t\t\t\t: [ block ];\n\n\t\t\t\t\t\tif ( ! switchedBlocks ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( const switchedBlock of switchedBlocks ) {\n\t\t\t\t\t\t\tfor ( const innerBlock of switchedBlock.innerBlocks ) {\n\t\t\t\t\t\t\t\tnewBlocks.push( innerBlock );\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}\n\n\t\t\t\t__unstableSplitSelection( newBlocks );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -42,7 +42,6 @@ var _data = require("@wordpress/data");
42
42
  var _blocks = require("@wordpress/blocks");
43
43
  var _selectors = require("./selectors");
44
44
  var _utils = require("./utils");
45
- var _utils2 = require("../components/inserter/block-patterns-tab/utils");
46
45
  var _constants = require("./constants");
47
46
  var _lockUnlock = require("../lock-unlock");
48
47
  var _privateKeys = require("./private-keys");
@@ -144,7 +143,7 @@ function getEnabledClientIdsTreeUnmemoized(state, rootClientId) {
144
143
  *
145
144
  * @return {Object[]} Tree of block objects with only clientID and innerBlocks set.
146
145
  */
147
- const getEnabledClientIdsTree = exports.getEnabledClientIdsTree = (0, _data.createRegistrySelector)(select => (0, _data.createSelector)(getEnabledClientIdsTreeUnmemoized, state => [state.blocks.order, state.derivedBlockEditingModes, state.derivedNavModeBlockEditingModes, state.blockEditingModes, state.settings.templateLock, state.blockListSettings, select(_constants.STORE_NAME).__unstableGetEditorMode(state)]));
146
+ const getEnabledClientIdsTree = exports.getEnabledClientIdsTree = (0, _data.createRegistrySelector)(select => (0, _data.createSelector)(getEnabledClientIdsTreeUnmemoized, state => [state.blocks.order, state.derivedBlockEditingModes, state.derivedNavModeBlockEditingModes, state.blockEditingModes, select(_constants.STORE_NAME).__unstableGetEditorMode(state)]));
148
147
 
149
148
  /**
150
149
  * Returns a list of a given block's ancestors, from top to bottom. Blocks with
@@ -309,22 +308,6 @@ const hasAllowedPatterns = exports.hasAllowedPatterns = (0, _data.createRegistry
309
308
  }) => (0, _selectors.canInsertBlockType)(state, blockName, rootClientId));
310
309
  });
311
310
  }, (state, rootClientId) => [...(0, _utils.getAllPatternsDependants)(select)(state), ...(0, _utils.getInsertBlockTypeDependants)(select)(state, rootClientId)]));
312
- function mapUserPattern(userPattern, __experimentalUserPatternCategories = []) {
313
- return {
314
- name: `core/block/${userPattern.id}`,
315
- id: userPattern.id,
316
- type: _utils2.INSERTER_PATTERN_TYPES.user,
317
- title: userPattern.title.raw,
318
- categories: userPattern.wp_pattern_category?.map(catId => {
319
- const category = __experimentalUserPatternCategories.find(({
320
- id
321
- }) => id === catId);
322
- return category ? category.slug : catId;
323
- }),
324
- content: userPattern.content.raw,
325
- syncStatus: userPattern.wp_pattern_sync_status
326
- };
327
- }
328
311
  const getPatternBySlug = exports.getPatternBySlug = (0, _data.createRegistrySelector)(select => (0, _data.createSelector)((state, patternName) => {
329
312
  var _state$settings$__exp, _state$settings$selec;
330
313
  // Only fetch reusable blocks if we know we need them. To do: maybe
@@ -337,7 +320,7 @@ const getPatternBySlug = exports.getPatternBySlug = (0, _data.createRegistrySele
337
320
  if (!block) {
338
321
  return null;
339
322
  }
340
- return mapUserPattern(block, state.settings.__experimentalUserPatternCategories);
323
+ return (0, _utils.mapUserPattern)(block, state.settings.__experimentalUserPatternCategories);
341
324
  }
342
325
  return [
343
326
  // This setting is left for back compat.
@@ -347,7 +330,7 @@ const getPatternBySlug = exports.getPatternBySlug = (0, _data.createRegistrySele
347
330
  }, (state, patternName) => patternName?.startsWith('core/block/') ? [(0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks(), state.settings.__experimentalReusableBlocks] : [state.settings.__experimentalBlockPatterns, state.settings[_privateKeys.selectBlockPatternsKey]?.(select)]));
348
331
  const getAllPatterns = exports.getAllPatterns = (0, _data.createRegistrySelector)(select => (0, _data.createSelector)(state => {
349
332
  var _state$settings$__exp2, _state$settings$selec2;
350
- return [...(0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks().map(userPattern => mapUserPattern(userPattern, state.settings.__experimentalUserPatternCategories)),
333
+ return [...(0, _lockUnlock.unlock)(select(_constants.STORE_NAME)).getReusableBlocks().map(userPattern => (0, _utils.mapUserPattern)(userPattern, state.settings.__experimentalUserPatternCategories)),
351
334
  // This setting is left for back compat.
352
335
  ...((_state$settings$__exp2 = state.settings.__experimentalBlockPatterns) !== null && _state$settings$__exp2 !== void 0 ? _state$settings$__exp2 : []), ...((_state$settings$selec2 = state.settings[_privateKeys.selectBlockPatternsKey]?.(select)) !== null && _state$settings$selec2 !== void 0 ? _state$settings$selec2 : [])].filter((x, index, arr) => index === arr.findIndex(y => x.name === y.name));
353
336
  }, (0, _utils.getAllPatternsDependants)(select)));
@@ -447,10 +430,15 @@ function isSectionBlock(state, clientId) {
447
430
  if (blockName === 'core/block' || (0, _selectors.getTemplateLock)(state, clientId) === 'contentOnly') {
448
431
  return true;
449
432
  }
433
+ const attributes = (0, _selectors.getBlockAttributes)(state, clientId);
434
+ const isTemplatePart = blockName === 'core/template-part';
435
+ if ((attributes?.metadata?.patternName || isTemplatePart) && !!window?.__experimentalContentOnlyPatternInsertion) {
436
+ return true;
437
+ }
450
438
 
451
439
  // Template parts become sections in navigation mode.
452
440
  const _isNavigationMode = (0, _selectors.isNavigationMode)(state);
453
- if (_isNavigationMode && blockName === 'core/template-part') {
441
+ if (_isNavigationMode && isTemplatePart) {
454
442
  return true;
455
443
  }
456
444
  const sectionRootClientId = getSectionRootClientId(state);