@wordpress/block-editor 14.3.2 → 14.3.4

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 (128) hide show
  1. package/README.md +42 -0
  2. package/build/components/block-heading-level-dropdown/index.js +3 -1
  3. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  4. package/build/components/block-list/block.js +27 -4
  5. package/build/components/block-list/block.js.map +1 -1
  6. package/build/components/block-list/use-block-props/use-focus-first-element.js +0 -1
  7. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  8. package/build/components/block-list/zoom-out-separator.js +18 -1
  9. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  10. package/build/components/block-switcher/utils.js +1 -1
  11. package/build/components/block-switcher/utils.js.map +1 -1
  12. package/build/components/block-variation-transforms/index.js +6 -3
  13. package/build/components/block-variation-transforms/index.js.map +1 -1
  14. package/build/components/media-placeholder/index.js +17 -19
  15. package/build/components/media-placeholder/index.js.map +1 -1
  16. package/build/components/rich-text/event-listeners/paste-handler.js +2 -13
  17. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  18. package/build/components/rich-text/index.js +35 -25
  19. package/build/components/rich-text/index.js.map +1 -1
  20. package/build/components/writing-flow/index.js +1 -2
  21. package/build/components/writing-flow/index.js.map +1 -1
  22. package/build/components/writing-flow/use-arrow-nav.js +1 -4
  23. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  24. package/build/components/writing-flow/use-input.js +1 -31
  25. package/build/components/writing-flow/use-input.js.map +1 -1
  26. package/build/components/writing-flow/use-select-all.js +1 -14
  27. package/build/components/writing-flow/use-select-all.js.map +1 -1
  28. package/build/components/writing-flow/use-selection-observer.js +2 -6
  29. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  30. package/build/components/writing-flow/utils.js +0 -27
  31. package/build/components/writing-flow/utils.js.map +1 -1
  32. package/build/hooks/block-bindings.js +6 -13
  33. package/build/hooks/block-bindings.js.map +1 -1
  34. package/build/hooks/layout.js +12 -8
  35. package/build/hooks/layout.js.map +1 -1
  36. package/build/hooks/use-bindings-attributes.js +24 -29
  37. package/build/hooks/use-bindings-attributes.js.map +1 -1
  38. package/build/private-apis.js +0 -2
  39. package/build/private-apis.js.map +1 -1
  40. package/build/store/selectors.js +6 -3
  41. package/build/store/selectors.js.map +1 -1
  42. package/build/utils/block-bindings.js +48 -0
  43. package/build/utils/block-bindings.js.map +1 -1
  44. package/build/utils/index.js +7 -0
  45. package/build/utils/index.js.map +1 -1
  46. package/build-module/components/block-heading-level-dropdown/index.js +3 -1
  47. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  48. package/build-module/components/block-list/block.js +28 -7
  49. package/build-module/components/block-list/block.js.map +1 -1
  50. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +0 -1
  51. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  52. package/build-module/components/block-list/zoom-out-separator.js +18 -1
  53. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  54. package/build-module/components/block-switcher/utils.js +1 -1
  55. package/build-module/components/block-switcher/utils.js.map +1 -1
  56. package/build-module/components/block-variation-transforms/index.js +6 -3
  57. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  58. package/build-module/components/media-placeholder/index.js +18 -20
  59. package/build-module/components/media-placeholder/index.js.map +1 -1
  60. package/build-module/components/rich-text/event-listeners/paste-handler.js +2 -13
  61. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  62. package/build-module/components/rich-text/index.js +35 -25
  63. package/build-module/components/rich-text/index.js.map +1 -1
  64. package/build-module/components/writing-flow/index.js +1 -2
  65. package/build-module/components/writing-flow/index.js.map +1 -1
  66. package/build-module/components/writing-flow/use-arrow-nav.js +1 -4
  67. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  68. package/build-module/components/writing-flow/use-input.js +1 -31
  69. package/build-module/components/writing-flow/use-input.js.map +1 -1
  70. package/build-module/components/writing-flow/use-select-all.js +1 -14
  71. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  72. package/build-module/components/writing-flow/use-selection-observer.js +2 -6
  73. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  74. package/build-module/components/writing-flow/utils.js +0 -26
  75. package/build-module/components/writing-flow/utils.js.map +1 -1
  76. package/build-module/hooks/block-bindings.js +6 -13
  77. package/build-module/hooks/block-bindings.js.map +1 -1
  78. package/build-module/hooks/layout.js +13 -9
  79. package/build-module/hooks/layout.js.map +1 -1
  80. package/build-module/hooks/use-bindings-attributes.js +24 -29
  81. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  82. package/build-module/private-apis.js +0 -2
  83. package/build-module/private-apis.js.map +1 -1
  84. package/build-module/store/selectors.js +6 -3
  85. package/build-module/store/selectors.js.map +1 -1
  86. package/build-module/utils/block-bindings.js +48 -0
  87. package/build-module/utils/block-bindings.js.map +1 -1
  88. package/build-module/utils/index.js +1 -0
  89. package/build-module/utils/index.js.map +1 -1
  90. package/build-style/content-rtl.css +12 -14
  91. package/build-style/content.css +12 -14
  92. package/build-style/style-rtl.css +4 -0
  93. package/build-style/style.css +4 -0
  94. package/package.json +20 -20
  95. package/src/components/block-heading-level-dropdown/index.js +7 -1
  96. package/src/components/block-list/block.js +47 -11
  97. package/src/components/block-list/content.scss +12 -0
  98. package/src/components/block-list/use-block-props/use-focus-first-element.js +0 -1
  99. package/src/components/block-list/zoom-out-separator.js +14 -1
  100. package/src/components/block-switcher/test/use-transformed.patterns.js +3 -3
  101. package/src/components/block-switcher/test/utils.js +3 -3
  102. package/src/components/block-switcher/utils.js +1 -1
  103. package/src/components/block-toolbar/style.scss +7 -0
  104. package/src/components/block-variation-transforms/index.js +6 -7
  105. package/src/components/media-placeholder/content.scss +3 -19
  106. package/src/components/media-placeholder/index.js +17 -17
  107. package/src/components/rich-text/event-listeners/paste-handler.js +2 -7
  108. package/src/components/rich-text/index.js +37 -33
  109. package/src/components/writing-flow/index.js +0 -2
  110. package/src/components/writing-flow/use-arrow-nav.js +2 -9
  111. package/src/components/writing-flow/use-input.js +1 -36
  112. package/src/components/writing-flow/use-select-all.js +1 -18
  113. package/src/components/writing-flow/use-selection-observer.js +3 -14
  114. package/src/components/writing-flow/utils.js +0 -30
  115. package/src/hooks/block-bindings.js +9 -10
  116. package/src/hooks/layout.js +17 -12
  117. package/src/hooks/use-bindings-attributes.js +74 -76
  118. package/src/private-apis.js +0 -2
  119. package/src/store/selectors.js +6 -6
  120. package/src/store/test/private-selectors.js +2 -2
  121. package/src/store/test/selectors.js +10 -6
  122. package/src/utils/block-bindings.js +47 -0
  123. package/src/utils/index.js +1 -0
  124. package/build/components/writing-flow/use-event-redirect.js +0 -66
  125. package/build/components/writing-flow/use-event-redirect.js.map +0 -1
  126. package/build-module/components/writing-flow/use-event-redirect.js +0 -60
  127. package/build-module/components/writing-flow/use-event-redirect.js.map +0 -1
  128. package/src/components/writing-flow/use-event-redirect.js +0 -72
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_data","_compose","_richText","_components","_blocks","_deprecated","_i18n","_autocomplete","_blockEdit","_context","_formatToolbarContainer","_store","_useMarkPersistent","_useFormatTypes","_eventListeners","_formatEdit","_utils","_content","_withDeprecations","_lockUnlock","_useBindingsAttributes","_blockContext","_jsxRuntime","_shortcut","_toolbarButton","_inputEvent","keyboardShortcutContext","exports","createContext","inputEventContext","instanceIdKey","Symbol","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","children","tagName","value","adjustedValue","onChange","adjustedOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","readOnly","forwardedRef","deprecated","since","alternative","instanceId","useInstanceId","anchorRef","useRef","context","useBlockEditContext","clientId","isBlockSelected","name","blockName","blockBindings","blockBindingsKey","blockContext","useContext","BlockContext","registry","useRegistry","selector","select","getSelectionStart","getSelectionEnd","blockEditorStore","selectionStart","selectionEnd","undefined","attributeKey","offset","useSelect","disableBoundBlock","bindingsPlaceholder","_fieldsList$relatedBi","canBindBlock","relatedBinding","getBlockBindingsSource","unlock","blocksStore","blockBindingsSource","source","fieldsList","getFieldsList","_disableBoundBlock","canUserEditValue","args","bindingKey","key","label","_bindingsPlaceholder","sprintf","__","length","shouldDisableEditing","getBlockRootClientId","selectionChange","useDispatch","adjustedAllowedFormats","getAllowedFormats","hasFormats","onSelectionChange","useCallback","start","end","selection","unset","baseSelection","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","useFormatTypes","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","removeFormat","addInvisibleFormats","getValue","ref","richTextRef","useRichText","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","useBlockEditorAutocompleteProps","completers","record","useMarkPersistent","keyboardShortcuts","Set","inputEvents","onFocus","element","current","parentElement","isContentEditable","focus","TagName","jsxs","Fragment","jsx","Provider","Popover","__unstableSlotNameProvider","default","inline","editableContentElement","role","useMergeRefs","useEventListeners","contentEditable","suppressContentEditableWarning","className","clsx","tabIndex","PrivateRichText","withDeprecations","forwardRef","Content","isEmpty","PublicForwardedRichTextContainer","isPreviewMode","isPreviewModeKey","Tag","contentProps","dangerouslySetInnerHTML","__html","valueToHTMLString","_default"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useMergeRefs, useInstanceId } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { blockBindingsKey, isPreviewModeKey } from '../block-edit/context';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { useFormatTypes } from './use-format-types';\nimport { useEventListeners } from './event-listeners';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content, valueToHTMLString } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport { unlock } from '../../lock-unlock';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\nimport BlockContext from '../block-context';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\nconst instanceIdKey = Symbol( 'instanceId' );\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: adjustedValue = '',\n\t\tonChange: adjustedOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\treadOnly,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tif ( onSplit ) {\n\t\tdeprecated( 'wp.blockEditor.RichText onSplit prop', {\n\t\t\tsince: '6.4',\n\t\t\talternative: 'block.json support key: \"splitting\"',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\tconst anchorRef = useRef();\n\tconst context = useBlockEditContext();\n\tconst { clientId, isSelected: isBlockSelected, name: blockName } = context;\n\tconst blockBindings = context[ blockBindingsKey ];\n\tconst blockContext = useContext( BlockContext );\n\tconst registry = useRegistry();\n\tconst selector = ( select ) => {\n\t\t// Avoid subscribing to the block editor store if the block is not\n\t\t// selected.\n\t\tif ( ! isBlockSelected ) {\n\t\t\treturn { isSelected: false };\n\t\t}\n\n\t\tconst { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\t( identifier\n\t\t\t\t\t? selectionStart.attributeKey === identifier\n\t\t\t\t\t: selectionStart[ instanceIdKey ] === instanceId );\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector, [\n\t\tclientId,\n\t\tidentifier,\n\t\tinstanceId,\n\t\toriginalIsSelected,\n\t\tisBlockSelected,\n\t] );\n\n\tconst { disableBoundBlock, bindingsPlaceholder } = useSelect(\n\t\t( select ) => {\n\t\t\tif (\n\t\t\t\t! blockBindings?.[ identifier ] ||\n\t\t\t\t! canBindBlock( blockName )\n\t\t\t) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst relatedBinding = blockBindings[ identifier ];\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\trelatedBinding.source\n\t\t\t);\n\t\t\tconst fieldsList = blockBindingsSource?.getFieldsList?.( {\n\t\t\t\tregistry,\n\t\t\t\tcontext: blockContext,\n\t\t\t} );\n\n\t\t\tconst _disableBoundBlock =\n\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\tselect,\n\t\t\t\t\tcontext: blockContext,\n\t\t\t\t\targs: relatedBinding.args,\n\t\t\t\t} );\n\n\t\t\tconst bindingKey =\n\t\t\t\tfieldsList?.[ relatedBinding?.args?.key ]?.label ??\n\t\t\t\tblockBindingsSource?.label;\n\n\t\t\tconst _bindingsPlaceholder = _disableBoundBlock\n\t\t\t\t? bindingKey\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: connected field label or source label */\n\t\t\t\t\t\t__( 'Add %s' ),\n\t\t\t\t\t\tbindingKey\n\t\t\t\t );\n\n\t\t\treturn {\n\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\tbindingsPlaceholder:\n\t\t\t\t\t( ! adjustedValue || adjustedValue.length === 0 ) &&\n\t\t\t\t\t_bindingsPlaceholder,\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tblockBindings,\n\t\t\tidentifier,\n\t\t\tblockName,\n\t\t\tblockContext,\n\t\t\tregistry,\n\t\t\tadjustedValue,\n\t\t]\n\t);\n\n\tconst shouldDisableEditing = readOnly || disableBoundBlock;\n\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tconst baseSelection = {\n\t\t\t\tclientId,\n\t\t\t\t[ identifier ? 'attributeKey' : instanceIdKey ]: identifier\n\t\t\t\t\t? identifier\n\t\t\t\t\t: instanceId,\n\t\t\t};\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSelectionStart,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\tselectionChange,\n\t\t]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder: bindingsPlaceholder || placeholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tlet element = anchorRef.current;\n\n\t\tif ( ! element ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Writing flow might be editable, so we should make sure focus goes to\n\t\t// the root editable element.\n\t\twhile ( element.parentElement?.isContentEditable ) {\n\t\t\telement = element.parentElement;\n\t\t}\n\n\t\telement.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\taria-label={\n\t\t\t\t\tbindingsPlaceholder || props[ 'aria-label' ] || placeholder\n\t\t\t\t}\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t// Rich text ref must be first because its focus listener\n\t\t\t\t\t// must be set up before any other ref calls .focus() on\n\t\t\t\t\t// mount.\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\tuseEventListeners( {\n\t\t\t\t\t\tregistry,\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t\t\t\tkeyboardShortcuts,\n\t\t\t\t\t\tinputEvents,\n\t\t\t\t\t} ),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={\n\t\t\t\t\tprops.tabIndex === 0 && ! shouldDisableEditing\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: props.tabIndex\n\t\t\t\t}\n\t\t\t\tdata-wp-block-attribute-key={ identifier }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\n// This is the private API for the RichText component.\n// It allows access to all props, not just the public ones.\nexport const PrivateRichText = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nPrivateRichText.Content = Content;\nPrivateRichText.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n// This is the public API for the RichText component.\n// We wrap the PrivateRichText component to hide some props from the public API.\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nconst PublicForwardedRichTextContainer = forwardRef( ( props, ref ) => {\n\tconst context = useBlockEditContext();\n\tconst isPreviewMode = context[ isPreviewModeKey ];\n\n\tif ( isPreviewMode ) {\n\t\t// Remove all non-content props.\n\t\tconst {\n\t\t\tchildren,\n\t\t\ttagName: Tag = 'div',\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tisSelected,\n\t\t\tmultiline,\n\t\t\tinlineToolbar,\n\t\t\twrapperClassName,\n\t\t\tautocompleters,\n\t\t\tonReplace,\n\t\t\tplaceholder,\n\t\t\tallowedFormats,\n\t\t\twithoutInteractiveFormatting,\n\t\t\tonRemove,\n\t\t\tonMerge,\n\t\t\tonSplit,\n\t\t\t__unstableOnSplitAtEnd,\n\t\t\t__unstableOnSplitAtDoubleLineEnd,\n\t\t\tidentifier,\n\t\t\tpreserveWhiteSpace,\n\t\t\t__unstablePastePlainText,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t__unstableDisableFormats,\n\t\t\tdisableLineBreaks,\n\t\t\t__unstableAllowPrefixTransformations,\n\t\t\treadOnly,\n\t\t\t...contentProps\n\t\t} = removeNativeProps( props );\n\t\treturn (\n\t\t\t<Tag\n\t\t\t\t{ ...contentProps }\n\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t__html: valueToHTMLString( value, multiline ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn <PrivateRichText ref={ ref } { ...props } readOnly={ false } />;\n} );\n\nPublicForwardedRichTextContainer.Content = Content;\nPublicForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nexport default PublicForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_data","_compose","_richText","_components","_blocks","_deprecated","_i18n","_autocomplete","_blockEdit","_context","_formatToolbarContainer","_store","_useMarkPersistent","_useFormatTypes","_eventListeners","_formatEdit","_utils","_content","_withDeprecations","_useBindingsAttributes","_blockContext","_jsxRuntime","_shortcut","_toolbarButton","_inputEvent","keyboardShortcutContext","exports","createContext","inputEventContext","instanceIdKey","Symbol","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","children","tagName","value","adjustedValue","onChange","adjustedOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","readOnly","forwardedRef","deprecated","since","alternative","instanceId","useInstanceId","anchorRef","useRef","context","useBlockEditContext","clientId","isBlockSelected","name","blockName","blockBindings","blockBindingsKey","blockContext","useContext","BlockContext","registry","useRegistry","selector","select","getSelectionStart","getSelectionEnd","blockEditorStore","selectionStart","selectionEnd","undefined","attributeKey","offset","useSelect","disableBoundBlock","bindingsPlaceholder","bindingsLabel","_fieldsList$relatedBi","canBindBlock","relatedBinding","blockBindingsSource","getBlockBindingsSource","source","blockBindingsContext","usesContext","length","key","_disableBoundBlock","canUserEditValue","args","getBlockAttributes","blockAttributes","fieldsList","getFieldsList","bindingKey","label","_bindingsPlaceholder","sprintf","__","_bindingsLabel","shouldDisableEditing","getBlockRootClientId","selectionChange","useDispatch","adjustedAllowedFormats","getAllowedFormats","hasFormats","onSelectionChange","useCallback","start","end","selection","unset","baseSelection","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","useFormatTypes","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","removeFormat","addInvisibleFormats","getValue","ref","richTextRef","useRichText","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","useBlockEditorAutocompleteProps","completers","record","useMarkPersistent","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","jsxs","Fragment","jsx","Provider","Popover","__unstableSlotNameProvider","default","inline","editableContentElement","role","useMergeRefs","useEventListeners","contentEditable","suppressContentEditableWarning","className","clsx","tabIndex","PrivateRichText","withDeprecations","forwardRef","Content","isEmpty","PublicForwardedRichTextContainer","isPreviewMode","isPreviewModeKey","Tag","contentProps","dangerouslySetInnerHTML","__html","valueToHTMLString","_default"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useMergeRefs, useInstanceId } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { getBlockBindingsSource } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { blockBindingsKey, isPreviewModeKey } from '../block-edit/context';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { useFormatTypes } from './use-format-types';\nimport { useEventListeners } from './event-listeners';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content, valueToHTMLString } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\nimport BlockContext from '../block-context';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\nconst instanceIdKey = Symbol( 'instanceId' );\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: adjustedValue = '',\n\t\tonChange: adjustedOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\treadOnly,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tif ( onSplit ) {\n\t\tdeprecated( 'wp.blockEditor.RichText onSplit prop', {\n\t\t\tsince: '6.4',\n\t\t\talternative: 'block.json support key: \"splitting\"',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\tconst anchorRef = useRef();\n\tconst context = useBlockEditContext();\n\tconst { clientId, isSelected: isBlockSelected, name: blockName } = context;\n\tconst blockBindings = context[ blockBindingsKey ];\n\tconst blockContext = useContext( BlockContext );\n\tconst registry = useRegistry();\n\tconst selector = ( select ) => {\n\t\t// Avoid subscribing to the block editor store if the block is not\n\t\t// selected.\n\t\tif ( ! isBlockSelected ) {\n\t\t\treturn { isSelected: false };\n\t\t}\n\n\t\tconst { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\t( identifier\n\t\t\t\t\t? selectionStart.attributeKey === identifier\n\t\t\t\t\t: selectionStart[ instanceIdKey ] === instanceId );\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector, [\n\t\tclientId,\n\t\tidentifier,\n\t\tinstanceId,\n\t\toriginalIsSelected,\n\t\tisBlockSelected,\n\t] );\n\n\tconst { disableBoundBlock, bindingsPlaceholder, bindingsLabel } = useSelect(\n\t\t( select ) => {\n\t\t\tif (\n\t\t\t\t! blockBindings?.[ identifier ] ||\n\t\t\t\t! canBindBlock( blockName )\n\t\t\t) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst relatedBinding = blockBindings[ identifier ];\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\trelatedBinding.source\n\t\t\t);\n\t\t\tconst blockBindingsContext = {};\n\t\t\tif ( blockBindingsSource?.usesContext?.length ) {\n\t\t\t\tfor ( const key of blockBindingsSource.usesContext ) {\n\t\t\t\t\tblockBindingsContext[ key ] = blockContext[ key ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _disableBoundBlock =\n\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\tselect,\n\t\t\t\t\tcontext: blockBindingsContext,\n\t\t\t\t\targs: relatedBinding.args,\n\t\t\t\t} );\n\n\t\t\t// Don't modify placeholders if value is not empty.\n\t\t\tif ( adjustedValue.length > 0 ) {\n\t\t\t\treturn {\n\t\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\t\t// Null values will make them fall back to the default behavior.\n\t\t\t\t\tbindingsPlaceholder: null,\n\t\t\t\t\tbindingsLabel: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\t\t\tconst blockAttributes = getBlockAttributes( clientId );\n\t\t\tconst fieldsList = blockBindingsSource?.getFieldsList?.( {\n\t\t\t\tselect,\n\t\t\t\tcontext: blockBindingsContext,\n\t\t\t} );\n\t\t\tconst bindingKey =\n\t\t\t\tfieldsList?.[ relatedBinding?.args?.key ]?.label ??\n\t\t\t\tblockBindingsSource?.label;\n\n\t\t\tconst _bindingsPlaceholder = _disableBoundBlock\n\t\t\t\t? bindingKey\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: connected field label or source label */\n\t\t\t\t\t\t__( 'Add %s' ),\n\t\t\t\t\t\tbindingKey\n\t\t\t\t );\n\t\t\tconst _bindingsLabel = _disableBoundBlock\n\t\t\t\t? relatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: source label or key */\n\t\t\t\t\t\t__( 'Empty %s; start writing to edit its value' ),\n\t\t\t\t\t\trelatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t );\n\n\t\t\treturn {\n\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\tbindingsPlaceholder:\n\t\t\t\t\tblockAttributes?.placeholder || _bindingsPlaceholder,\n\t\t\t\tbindingsLabel: _bindingsLabel,\n\t\t\t};\n\t\t},\n\t\t[ blockBindings, identifier, blockName, blockContext, adjustedValue ]\n\t);\n\n\tconst shouldDisableEditing = readOnly || disableBoundBlock;\n\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tconst baseSelection = {\n\t\t\t\tclientId,\n\t\t\t\t[ identifier ? 'attributeKey' : instanceIdKey ]: identifier\n\t\t\t\t\t? identifier\n\t\t\t\t\t: instanceId,\n\t\t\t};\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSelectionStart,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\tselectionChange,\n\t\t]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder: bindingsPlaceholder || placeholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\taria-label={\n\t\t\t\t\tbindingsLabel || props[ 'aria-label' ] || placeholder\n\t\t\t\t}\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t// Rich text ref must be first because its focus listener\n\t\t\t\t\t// must be set up before any other ref calls .focus() on\n\t\t\t\t\t// mount.\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\tuseEventListeners( {\n\t\t\t\t\t\tregistry,\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t\t\t\tkeyboardShortcuts,\n\t\t\t\t\t\tinputEvents,\n\t\t\t\t\t} ),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={\n\t\t\t\t\tprops.tabIndex === 0 && ! shouldDisableEditing\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: props.tabIndex\n\t\t\t\t}\n\t\t\t\tdata-wp-block-attribute-key={ identifier }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\n// This is the private API for the RichText component.\n// It allows access to all props, not just the public ones.\nexport const PrivateRichText = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nPrivateRichText.Content = Content;\nPrivateRichText.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n// This is the public API for the RichText component.\n// We wrap the PrivateRichText component to hide some props from the public API.\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nconst PublicForwardedRichTextContainer = forwardRef( ( props, ref ) => {\n\tconst context = useBlockEditContext();\n\tconst isPreviewMode = context[ isPreviewModeKey ];\n\n\tif ( isPreviewMode ) {\n\t\t// Remove all non-content props.\n\t\tconst {\n\t\t\tchildren,\n\t\t\ttagName: Tag = 'div',\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tisSelected,\n\t\t\tmultiline,\n\t\t\tinlineToolbar,\n\t\t\twrapperClassName,\n\t\t\tautocompleters,\n\t\t\tonReplace,\n\t\t\tplaceholder,\n\t\t\tallowedFormats,\n\t\t\twithoutInteractiveFormatting,\n\t\t\tonRemove,\n\t\t\tonMerge,\n\t\t\tonSplit,\n\t\t\t__unstableOnSplitAtEnd,\n\t\t\t__unstableOnSplitAtDoubleLineEnd,\n\t\t\tidentifier,\n\t\t\tpreserveWhiteSpace,\n\t\t\t__unstablePastePlainText,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t__unstableDisableFormats,\n\t\t\tdisableLineBreaks,\n\t\t\t__unstableAllowPrefixTransformations,\n\t\t\treadOnly,\n\t\t\t...contentProps\n\t\t} = removeNativeProps( props );\n\t\treturn (\n\t\t\t<Tag\n\t\t\t\t{ ...contentProps }\n\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t__html: valueToHTMLString( value, multiline ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn <PrivateRichText ref={ ref } { ...props } readOnly={ false } />;\n} );\n\nPublicForwardedRichTextContainer.Content = Content;\nPublicForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nexport default PublicForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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","ignoreList":[]}
@@ -20,7 +20,6 @@ var _useSelectionObserver = _interopRequireDefault(require("./use-selection-obse
20
20
  var _useClickSelection = _interopRequireDefault(require("./use-click-selection"));
21
21
  var _useInput = _interopRequireDefault(require("./use-input"));
22
22
  var _useClipboardHandler = _interopRequireDefault(require("./use-clipboard-handler"));
23
- var _useEventRedirect = _interopRequireDefault(require("./use-event-redirect"));
24
23
  var _store = require("../../store");
25
24
  var _jsxRuntime = require("react/jsx-runtime");
26
25
  /**
@@ -49,7 +48,7 @@ function useWritingFlow() {
49
48
  node.classList.remove('has-multi-selection');
50
49
  node.removeAttribute('aria-label');
51
50
  };
52
- }, [hasMultiSelection]), (0, _useEventRedirect.default)()]), after];
51
+ }, [hasMultiSelection])]), after];
53
52
  }
54
53
  function WritingFlow({
55
54
  children,
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_i18n","_compose","_element","_useMultiSelection","_useTabNav","_useArrowNav","_useSelectAll","_useDragSelection","_useSelectionObserver","_useClickSelection","_useInput","_useClipboardHandler","_useEventRedirect","_store","_jsxRuntime","useWritingFlow","before","ref","after","useTabNav","hasMultiSelection","useSelect","select","blockEditorStore","useMergeRefs","useClipboardHandler","useInput","useDragSelection","useSelectionObserver","useClickSelection","useMultiSelection","useSelectAll","useArrowNav","useRefEffect","node","tabIndex","classList","add","setAttribute","__","remove","removeAttribute","useEventRedirect","WritingFlow","children","props","forwardedRef","jsxs","Fragment","jsx","className","clsx","_default","exports","default","forwardRef"],"sources":["@wordpress/block-editor/src/components/writing-flow/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useMultiSelection from './use-multi-selection';\nimport useTabNav from './use-tab-nav';\nimport useArrowNav from './use-arrow-nav';\nimport useSelectAll from './use-select-all';\nimport useDragSelection from './use-drag-selection';\nimport useSelectionObserver from './use-selection-observer';\nimport useClickSelection from './use-click-selection';\nimport useInput from './use-input';\nimport useClipboardHandler from './use-clipboard-handler';\nimport useEventRedirect from './use-event-redirect';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useWritingFlow() {\n\tconst [ before, ref, after ] = useTabNav();\n\tconst hasMultiSelection = useSelect(\n\t\t( select ) => select( blockEditorStore ).hasMultiSelection(),\n\t\t[]\n\t);\n\n\treturn [\n\t\tbefore,\n\t\tuseMergeRefs( [\n\t\t\tref,\n\t\t\tuseClipboardHandler(),\n\t\t\tuseInput(),\n\t\t\tuseDragSelection(),\n\t\t\tuseSelectionObserver(),\n\t\t\tuseClickSelection(),\n\t\t\tuseMultiSelection(),\n\t\t\tuseSelectAll(),\n\t\t\tuseArrowNav(),\n\t\t\tuseRefEffect(\n\t\t\t\t( node ) => {\n\t\t\t\t\tnode.tabIndex = 0;\n\n\t\t\t\t\tif ( ! hasMultiSelection ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tnode.classList.add( 'has-multi-selection' );\n\t\t\t\t\tnode.setAttribute(\n\t\t\t\t\t\t'aria-label',\n\t\t\t\t\t\t__( 'Multiple selected blocks' )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tnode.classList.remove( 'has-multi-selection' );\n\t\t\t\t\t\tnode.removeAttribute( 'aria-label' );\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t[ hasMultiSelection ]\n\t\t\t),\n\t\t\tuseEventRedirect(),\n\t\t] ),\n\t\tafter,\n\t];\n}\n\nfunction WritingFlow( { children, ...props }, forwardedRef ) {\n\tconst [ before, ref, after ] = useWritingFlow();\n\treturn (\n\t\t<>\n\t\t\t{ before }\n\t\t\t<div\n\t\t\t\t{ ...props }\n\t\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'block-editor-writing-flow'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t\t{ after }\n\t\t</>\n\t);\n}\n\n/**\n * Handles selection and navigation across blocks. This component should be\n * wrapped around BlockList.\n *\n * @param {Object} props Component properties.\n * @param {Element} props.children Children to be rendered.\n */\nexport default forwardRef( WritingFlow );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_i18n","_compose","_element","_useMultiSelection","_useTabNav","_useArrowNav","_useSelectAll","_useDragSelection","_useSelectionObserver","_useClickSelection","_useInput","_useClipboardHandler","_store","_jsxRuntime","useWritingFlow","before","ref","after","useTabNav","hasMultiSelection","useSelect","select","blockEditorStore","useMergeRefs","useClipboardHandler","useInput","useDragSelection","useSelectionObserver","useClickSelection","useMultiSelection","useSelectAll","useArrowNav","useRefEffect","node","tabIndex","classList","add","setAttribute","__","remove","removeAttribute","WritingFlow","children","props","forwardedRef","jsxs","Fragment","jsx","className","clsx","_default","exports","default","forwardRef"],"sources":["@wordpress/block-editor/src/components/writing-flow/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useMultiSelection from './use-multi-selection';\nimport useTabNav from './use-tab-nav';\nimport useArrowNav from './use-arrow-nav';\nimport useSelectAll from './use-select-all';\nimport useDragSelection from './use-drag-selection';\nimport useSelectionObserver from './use-selection-observer';\nimport useClickSelection from './use-click-selection';\nimport useInput from './use-input';\nimport useClipboardHandler from './use-clipboard-handler';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useWritingFlow() {\n\tconst [ before, ref, after ] = useTabNav();\n\tconst hasMultiSelection = useSelect(\n\t\t( select ) => select( blockEditorStore ).hasMultiSelection(),\n\t\t[]\n\t);\n\n\treturn [\n\t\tbefore,\n\t\tuseMergeRefs( [\n\t\t\tref,\n\t\t\tuseClipboardHandler(),\n\t\t\tuseInput(),\n\t\t\tuseDragSelection(),\n\t\t\tuseSelectionObserver(),\n\t\t\tuseClickSelection(),\n\t\t\tuseMultiSelection(),\n\t\t\tuseSelectAll(),\n\t\t\tuseArrowNav(),\n\t\t\tuseRefEffect(\n\t\t\t\t( node ) => {\n\t\t\t\t\tnode.tabIndex = 0;\n\n\t\t\t\t\tif ( ! hasMultiSelection ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tnode.classList.add( 'has-multi-selection' );\n\t\t\t\t\tnode.setAttribute(\n\t\t\t\t\t\t'aria-label',\n\t\t\t\t\t\t__( 'Multiple selected blocks' )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tnode.classList.remove( 'has-multi-selection' );\n\t\t\t\t\t\tnode.removeAttribute( 'aria-label' );\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t[ hasMultiSelection ]\n\t\t\t),\n\t\t] ),\n\t\tafter,\n\t];\n}\n\nfunction WritingFlow( { children, ...props }, forwardedRef ) {\n\tconst [ before, ref, after ] = useWritingFlow();\n\treturn (\n\t\t<>\n\t\t\t{ before }\n\t\t\t<div\n\t\t\t\t{ ...props }\n\t\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'block-editor-writing-flow'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t\t{ after }\n\t\t</>\n\t);\n}\n\n/**\n * Handles selection and navigation across blocks. This component should be\n * wrapped around BlockList.\n *\n * @param {Object} props Component properties.\n * @param {Element} props.children Children to be rendered.\n */\nexport default forwardRef( WritingFlow );\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,6 @@ var _data = require("@wordpress/data");
12
12
  var _compose = require("@wordpress/compose");
13
13
  var _dom2 = require("../../utils/dom");
14
14
  var _store = require("../../store");
15
- var _utils = require("./utils");
16
15
  /**
17
16
  * WordPress dependencies
18
17
  */
@@ -148,6 +147,7 @@ function useArrowNav() {
148
147
  }
149
148
  const {
150
149
  keyCode,
150
+ target,
151
151
  shiftKey,
152
152
  ctrlKey,
153
153
  altKey,
@@ -193,7 +193,6 @@ function useArrowNav() {
193
193
  }
194
194
  return;
195
195
  }
196
- const target = ownerDocument.activeElement === node ? (0, _utils.getSelectionRoot)(ownerDocument) : event.target;
197
196
 
198
197
  // Abort if our current target is not a candidate for navigation
199
198
  // (e.g. preserve native input behaviors).
@@ -230,7 +229,6 @@ function useArrowNav() {
230
229
  // When Alt is pressed, only intercept if the caret is also at
231
230
  // the horizontal edge.
232
231
  altKey ? (0, _dom.isHorizontalEdge)(target, isReverseDir) : true) && !keepCaretInsideBlock) {
233
- node.contentEditable = false;
234
232
  const closestTabbable = getClosestTabbable(target, isReverse, node, true);
235
233
  if (closestTabbable) {
236
234
  (0, _dom.placeCaretAtVerticalEdge)(closestTabbable,
@@ -240,7 +238,6 @@ function useArrowNav() {
240
238
  event.preventDefault();
241
239
  }
242
240
  } else if (isHorizontal && defaultView.getSelection().isCollapsed && (0, _dom.isHorizontalEdge)(target, isReverseDir) && !keepCaretInsideBlock) {
243
- node.contentEditable = false;
244
241
  const closestTabbable = getClosestTabbable(target, isReverseDir, node);
245
242
  (0, _dom.placeCaretAtHorizontalEdge)(closestTabbable, isReverse);
246
243
  event.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"names":["_dom","require","_keycodes","_data","_compose","_dom2","_store","_utils","isNavigationCandidate","element","keyCode","hasModifier","isVertical","UP","DOWN","tagName","elementType","getAttribute","verticalInputTypes","includes","simpleInputTypes","getClosestTabbable","target","isReverse","containerElement","onlyVertical","focusableNodes","focus","focusable","find","reverse","slice","indexOf","targetRect","getBoundingClientRect","isTabCandidate","node","closest","children","length","isInSameBlock","firstElementChild","tabbable","isTabbableIndex","isContentEditable","contentEditable","nodeRect","left","right","useArrowNav","getMultiSelectedBlocksStartClientId","getMultiSelectedBlocksEndClientId","getSettings","hasMultiSelection","__unstableIsFullySelected","useSelect","blockEditorStore","selectBlock","useDispatch","useRefEffect","verticalRect","onMouseDown","isClosestTabbableABlock","closestTabbable","getBlockClientId","onKeyDown","event","defaultPrevented","shiftKey","ctrlKey","altKey","metaKey","isUp","isDown","isLeft","LEFT","isRight","RIGHT","isHorizontal","isNav","isNavEdge","isVerticalEdge","isHorizontalEdge","ownerDocument","defaultView","preventDefault","activeElement","getSelectionRoot","computeCaretRect","isReverseDir","isRTL","keepCaretInsideBlock","placeCaretAtVerticalEdge","undefined","getSelection","isCollapsed","placeCaretAtHorizontalEdge","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-arrow-nav.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcomputeCaretRect,\n\tfocus,\n\tisHorizontalEdge,\n\tisVerticalEdge,\n\tplaceCaretAtHorizontalEdge,\n\tplaceCaretAtVerticalEdge,\n\tisRTL,\n} from '@wordpress/dom';\nimport { UP, DOWN, LEFT, RIGHT } from '@wordpress/keycodes';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getBlockClientId, isInSameBlock } from '../../utils/dom';\nimport { store as blockEditorStore } from '../../store';\nimport { getSelectionRoot } from './utils';\n\n/**\n * Returns true if the element should consider edge navigation upon a keyboard\n * event of the given directional key code, or false otherwise.\n *\n * @param {Element} element HTML element to test.\n * @param {number} keyCode KeyboardEvent keyCode to test.\n * @param {boolean} hasModifier Whether a modifier is pressed.\n *\n * @return {boolean} Whether element should consider edge navigation.\n */\nexport function isNavigationCandidate( element, keyCode, hasModifier ) {\n\tconst isVertical = keyCode === UP || keyCode === DOWN;\n\tconst { tagName } = element;\n\tconst elementType = element.getAttribute( 'type' );\n\n\t// Native inputs should not navigate vertically, unless they are simple types that don't need up/down arrow keys.\n\tif ( isVertical && ! hasModifier ) {\n\t\tif ( tagName === 'INPUT' ) {\n\t\t\tconst verticalInputTypes = [\n\t\t\t\t'date',\n\t\t\t\t'datetime-local',\n\t\t\t\t'month',\n\t\t\t\t'number',\n\t\t\t\t'range',\n\t\t\t\t'time',\n\t\t\t\t'week',\n\t\t\t];\n\t\t\treturn ! verticalInputTypes.includes( elementType );\n\t\t}\n\t\treturn true;\n\t}\n\n\t// Native inputs should not navigate horizontally, unless they are simple types that don't need left/right arrow keys.\n\tif ( tagName === 'INPUT' ) {\n\t\tconst simpleInputTypes = [\n\t\t\t'button',\n\t\t\t'checkbox',\n\t\t\t'number',\n\t\t\t'color',\n\t\t\t'file',\n\t\t\t'image',\n\t\t\t'radio',\n\t\t\t'reset',\n\t\t\t'submit',\n\t\t];\n\t\treturn simpleInputTypes.includes( elementType );\n\t}\n\n\t// Native textareas should not navigate horizontally.\n\treturn tagName !== 'TEXTAREA';\n}\n\n/**\n * Returns the optimal tab target from the given focused element in the desired\n * direction. A preference is made toward text fields, falling back to the block\n * focus stop if no other candidates exist for the block.\n *\n * @param {Element} target Currently focused text field.\n * @param {boolean} isReverse True if considering as the first field.\n * @param {Element} containerElement Element containing all blocks.\n * @param {boolean} onlyVertical Whether to only consider tabbable elements\n * that are visually above or under the\n * target.\n *\n * @return {?Element} Optimal tab target, if one exists.\n */\nexport function getClosestTabbable(\n\ttarget,\n\tisReverse,\n\tcontainerElement,\n\tonlyVertical\n) {\n\t// Since the current focus target is not guaranteed to be a text field, find\n\t// all focusables. Tabbability is considered later.\n\tlet focusableNodes = focus.focusable.find( containerElement );\n\n\tif ( isReverse ) {\n\t\tfocusableNodes.reverse();\n\t}\n\n\t// Consider as candidates those focusables after the current target. It's\n\t// assumed this can only be reached if the target is focusable (on its\n\t// keydown event), so no need to verify it exists in the set.\n\tfocusableNodes = focusableNodes.slice(\n\t\tfocusableNodes.indexOf( target ) + 1\n\t);\n\n\tlet targetRect;\n\n\tif ( onlyVertical ) {\n\t\ttargetRect = target.getBoundingClientRect();\n\t}\n\n\tfunction isTabCandidate( node ) {\n\t\tif ( node.closest( '[inert]' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Skip if there's only one child that is content editable (and thus a\n\t\t// better candidate).\n\t\tif (\n\t\t\tnode.children.length === 1 &&\n\t\t\tisInSameBlock( node, node.firstElementChild ) &&\n\t\t\tnode.firstElementChild.getAttribute( 'contenteditable' ) === 'true'\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Not a candidate if the node is not tabbable.\n\t\tif ( ! focus.tabbable.isTabbableIndex( node ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Skip focusable elements such as links within content editable nodes.\n\t\tif ( node.isContentEditable && node.contentEditable !== 'true' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( onlyVertical ) {\n\t\t\tconst nodeRect = node.getBoundingClientRect();\n\n\t\t\tif (\n\t\t\t\tnodeRect.left >= targetRect.right ||\n\t\t\t\tnodeRect.right <= targetRect.left\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\treturn focusableNodes.find( isTabCandidate );\n}\n\nexport default function useArrowNav() {\n\tconst {\n\t\tgetMultiSelectedBlocksStartClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetSettings,\n\t\thasMultiSelection,\n\t\t__unstableIsFullySelected,\n\t} = useSelect( blockEditorStore );\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\treturn useRefEffect( ( node ) => {\n\t\t// Here a DOMRect is stored while moving the caret vertically so\n\t\t// vertical position of the start position can be restored. This is to\n\t\t// recreate browser behaviour across blocks.\n\t\tlet verticalRect;\n\n\t\tfunction onMouseDown() {\n\t\t\tverticalRect = null;\n\t\t}\n\n\t\tfunction isClosestTabbableABlock( target, isReverse ) {\n\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\ttarget,\n\t\t\t\tisReverse,\n\t\t\t\tnode\n\t\t\t);\n\t\t\treturn closestTabbable && getBlockClientId( closestTabbable );\n\t\t}\n\n\t\tfunction onKeyDown( event ) {\n\t\t\t// Abort if navigation has already been handled (e.g. RichText\n\t\t\t// inline boundaries).\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { keyCode, shiftKey, ctrlKey, altKey, metaKey } = event;\n\t\t\tconst isUp = keyCode === UP;\n\t\t\tconst isDown = keyCode === DOWN;\n\t\t\tconst isLeft = keyCode === LEFT;\n\t\t\tconst isRight = keyCode === RIGHT;\n\t\t\tconst isReverse = isUp || isLeft;\n\t\t\tconst isHorizontal = isLeft || isRight;\n\t\t\tconst isVertical = isUp || isDown;\n\t\t\tconst isNav = isHorizontal || isVertical;\n\t\t\tconst hasModifier = shiftKey || ctrlKey || altKey || metaKey;\n\t\t\tconst isNavEdge = isVertical ? isVerticalEdge : isHorizontalEdge;\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView } = ownerDocument;\n\n\t\t\tif ( ! isNav ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If there is a multi-selection, the arrow keys should collapse the\n\t\t\t// selection to the start or end of the selection.\n\t\t\tif ( hasMultiSelection() ) {\n\t\t\t\tif ( shiftKey ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Only handle if we have a full selection (not a native partial\n\t\t\t\t// selection).\n\t\t\t\tif ( ! __unstableIsFullySelected() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( isReverse ) {\n\t\t\t\t\tselectBlock( getMultiSelectedBlocksStartClientId() );\n\t\t\t\t} else {\n\t\t\t\t\tselectBlock( getMultiSelectedBlocksEndClientId(), -1 );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst target =\n\t\t\t\townerDocument.activeElement === node\n\t\t\t\t\t? getSelectionRoot( ownerDocument )\n\t\t\t\t\t: event.target;\n\n\t\t\t// Abort if our current target is not a candidate for navigation\n\t\t\t// (e.g. preserve native input behaviors).\n\t\t\tif ( ! isNavigationCandidate( target, keyCode, hasModifier ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// When presing any key other than up or down, the initial vertical\n\t\t\t// position must ALWAYS be reset. The vertical position is saved so\n\t\t\t// it can be restored as well as possible on sebsequent vertical\n\t\t\t// arrow key presses. It may not always be possible to restore the\n\t\t\t// exact same position (such as at an empty line), so it wouldn't be\n\t\t\t// good to compute the position right before any vertical arrow key\n\t\t\t// press.\n\t\t\tif ( ! isVertical ) {\n\t\t\t\tverticalRect = null;\n\t\t\t} else if ( ! verticalRect ) {\n\t\t\t\tverticalRect = computeCaretRect( defaultView );\n\t\t\t}\n\n\t\t\t// In the case of RTL scripts, right means previous and left means\n\t\t\t// next, which is the exact reverse of LTR.\n\t\t\tconst isReverseDir = isRTL( target ) ? ! isReverse : isReverse;\n\t\t\tconst { keepCaretInsideBlock } = getSettings();\n\n\t\t\tif ( shiftKey ) {\n\t\t\t\tif (\n\t\t\t\t\tisClosestTabbableABlock( target, isReverse ) &&\n\t\t\t\t\tisNavEdge( target, isReverse )\n\t\t\t\t) {\n\t\t\t\t\tnode.contentEditable = true;\n\t\t\t\t\t// Firefox doesn't automatically move focus.\n\t\t\t\t\tnode.focus();\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tisVertical &&\n\t\t\t\tisVerticalEdge( target, isReverse ) &&\n\t\t\t\t// When Alt is pressed, only intercept if the caret is also at\n\t\t\t\t// the horizontal edge.\n\t\t\t\t( altKey ? isHorizontalEdge( target, isReverseDir ) : true ) &&\n\t\t\t\t! keepCaretInsideBlock\n\t\t\t) {\n\t\t\t\tnode.contentEditable = false;\n\t\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\t\ttarget,\n\t\t\t\t\tisReverse,\n\t\t\t\t\tnode,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\n\t\t\t\tif ( closestTabbable ) {\n\t\t\t\t\tplaceCaretAtVerticalEdge(\n\t\t\t\t\t\tclosestTabbable,\n\t\t\t\t\t\t// When Alt is pressed, place the caret at the furthest\n\t\t\t\t\t\t// horizontal edge and the furthest vertical edge.\n\t\t\t\t\t\taltKey ? ! isReverse : isReverse,\n\t\t\t\t\t\taltKey ? undefined : verticalRect\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tisHorizontal &&\n\t\t\t\tdefaultView.getSelection().isCollapsed &&\n\t\t\t\tisHorizontalEdge( target, isReverseDir ) &&\n\t\t\t\t! keepCaretInsideBlock\n\t\t\t) {\n\t\t\t\tnode.contentEditable = false;\n\t\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\t\ttarget,\n\t\t\t\t\tisReverseDir,\n\t\t\t\t\tnode\n\t\t\t\t);\n\t\t\t\tplaceCaretAtHorizontalEdge( closestTabbable, isReverse );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\t\tnode.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\tnode.removeEventListener( 'mousedown', onMouseDown );\n\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_dom","require","_keycodes","_data","_compose","_dom2","_store","isNavigationCandidate","element","keyCode","hasModifier","isVertical","UP","DOWN","tagName","elementType","getAttribute","verticalInputTypes","includes","simpleInputTypes","getClosestTabbable","target","isReverse","containerElement","onlyVertical","focusableNodes","focus","focusable","find","reverse","slice","indexOf","targetRect","getBoundingClientRect","isTabCandidate","node","closest","children","length","isInSameBlock","firstElementChild","tabbable","isTabbableIndex","isContentEditable","contentEditable","nodeRect","left","right","useArrowNav","getMultiSelectedBlocksStartClientId","getMultiSelectedBlocksEndClientId","getSettings","hasMultiSelection","__unstableIsFullySelected","useSelect","blockEditorStore","selectBlock","useDispatch","useRefEffect","verticalRect","onMouseDown","isClosestTabbableABlock","closestTabbable","getBlockClientId","onKeyDown","event","defaultPrevented","shiftKey","ctrlKey","altKey","metaKey","isUp","isDown","isLeft","LEFT","isRight","RIGHT","isHorizontal","isNav","isNavEdge","isVerticalEdge","isHorizontalEdge","ownerDocument","defaultView","preventDefault","computeCaretRect","isReverseDir","isRTL","keepCaretInsideBlock","placeCaretAtVerticalEdge","undefined","getSelection","isCollapsed","placeCaretAtHorizontalEdge","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-arrow-nav.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcomputeCaretRect,\n\tfocus,\n\tisHorizontalEdge,\n\tisVerticalEdge,\n\tplaceCaretAtHorizontalEdge,\n\tplaceCaretAtVerticalEdge,\n\tisRTL,\n} from '@wordpress/dom';\nimport { UP, DOWN, LEFT, RIGHT } from '@wordpress/keycodes';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getBlockClientId, isInSameBlock } from '../../utils/dom';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Returns true if the element should consider edge navigation upon a keyboard\n * event of the given directional key code, or false otherwise.\n *\n * @param {Element} element HTML element to test.\n * @param {number} keyCode KeyboardEvent keyCode to test.\n * @param {boolean} hasModifier Whether a modifier is pressed.\n *\n * @return {boolean} Whether element should consider edge navigation.\n */\nexport function isNavigationCandidate( element, keyCode, hasModifier ) {\n\tconst isVertical = keyCode === UP || keyCode === DOWN;\n\tconst { tagName } = element;\n\tconst elementType = element.getAttribute( 'type' );\n\n\t// Native inputs should not navigate vertically, unless they are simple types that don't need up/down arrow keys.\n\tif ( isVertical && ! hasModifier ) {\n\t\tif ( tagName === 'INPUT' ) {\n\t\t\tconst verticalInputTypes = [\n\t\t\t\t'date',\n\t\t\t\t'datetime-local',\n\t\t\t\t'month',\n\t\t\t\t'number',\n\t\t\t\t'range',\n\t\t\t\t'time',\n\t\t\t\t'week',\n\t\t\t];\n\t\t\treturn ! verticalInputTypes.includes( elementType );\n\t\t}\n\t\treturn true;\n\t}\n\n\t// Native inputs should not navigate horizontally, unless they are simple types that don't need left/right arrow keys.\n\tif ( tagName === 'INPUT' ) {\n\t\tconst simpleInputTypes = [\n\t\t\t'button',\n\t\t\t'checkbox',\n\t\t\t'number',\n\t\t\t'color',\n\t\t\t'file',\n\t\t\t'image',\n\t\t\t'radio',\n\t\t\t'reset',\n\t\t\t'submit',\n\t\t];\n\t\treturn simpleInputTypes.includes( elementType );\n\t}\n\n\t// Native textareas should not navigate horizontally.\n\treturn tagName !== 'TEXTAREA';\n}\n\n/**\n * Returns the optimal tab target from the given focused element in the desired\n * direction. A preference is made toward text fields, falling back to the block\n * focus stop if no other candidates exist for the block.\n *\n * @param {Element} target Currently focused text field.\n * @param {boolean} isReverse True if considering as the first field.\n * @param {Element} containerElement Element containing all blocks.\n * @param {boolean} onlyVertical Whether to only consider tabbable elements\n * that are visually above or under the\n * target.\n *\n * @return {?Element} Optimal tab target, if one exists.\n */\nexport function getClosestTabbable(\n\ttarget,\n\tisReverse,\n\tcontainerElement,\n\tonlyVertical\n) {\n\t// Since the current focus target is not guaranteed to be a text field, find\n\t// all focusables. Tabbability is considered later.\n\tlet focusableNodes = focus.focusable.find( containerElement );\n\n\tif ( isReverse ) {\n\t\tfocusableNodes.reverse();\n\t}\n\n\t// Consider as candidates those focusables after the current target. It's\n\t// assumed this can only be reached if the target is focusable (on its\n\t// keydown event), so no need to verify it exists in the set.\n\tfocusableNodes = focusableNodes.slice(\n\t\tfocusableNodes.indexOf( target ) + 1\n\t);\n\n\tlet targetRect;\n\n\tif ( onlyVertical ) {\n\t\ttargetRect = target.getBoundingClientRect();\n\t}\n\n\tfunction isTabCandidate( node ) {\n\t\tif ( node.closest( '[inert]' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Skip if there's only one child that is content editable (and thus a\n\t\t// better candidate).\n\t\tif (\n\t\t\tnode.children.length === 1 &&\n\t\t\tisInSameBlock( node, node.firstElementChild ) &&\n\t\t\tnode.firstElementChild.getAttribute( 'contenteditable' ) === 'true'\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Not a candidate if the node is not tabbable.\n\t\tif ( ! focus.tabbable.isTabbableIndex( node ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Skip focusable elements such as links within content editable nodes.\n\t\tif ( node.isContentEditable && node.contentEditable !== 'true' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( onlyVertical ) {\n\t\t\tconst nodeRect = node.getBoundingClientRect();\n\n\t\t\tif (\n\t\t\t\tnodeRect.left >= targetRect.right ||\n\t\t\t\tnodeRect.right <= targetRect.left\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\treturn focusableNodes.find( isTabCandidate );\n}\n\nexport default function useArrowNav() {\n\tconst {\n\t\tgetMultiSelectedBlocksStartClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetSettings,\n\t\thasMultiSelection,\n\t\t__unstableIsFullySelected,\n\t} = useSelect( blockEditorStore );\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\treturn useRefEffect( ( node ) => {\n\t\t// Here a DOMRect is stored while moving the caret vertically so\n\t\t// vertical position of the start position can be restored. This is to\n\t\t// recreate browser behaviour across blocks.\n\t\tlet verticalRect;\n\n\t\tfunction onMouseDown() {\n\t\t\tverticalRect = null;\n\t\t}\n\n\t\tfunction isClosestTabbableABlock( target, isReverse ) {\n\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\ttarget,\n\t\t\t\tisReverse,\n\t\t\t\tnode\n\t\t\t);\n\t\t\treturn closestTabbable && getBlockClientId( closestTabbable );\n\t\t}\n\n\t\tfunction onKeyDown( event ) {\n\t\t\t// Abort if navigation has already been handled (e.g. RichText\n\t\t\t// inline boundaries).\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { keyCode, target, shiftKey, ctrlKey, altKey, metaKey } =\n\t\t\t\tevent;\n\t\t\tconst isUp = keyCode === UP;\n\t\t\tconst isDown = keyCode === DOWN;\n\t\t\tconst isLeft = keyCode === LEFT;\n\t\t\tconst isRight = keyCode === RIGHT;\n\t\t\tconst isReverse = isUp || isLeft;\n\t\t\tconst isHorizontal = isLeft || isRight;\n\t\t\tconst isVertical = isUp || isDown;\n\t\t\tconst isNav = isHorizontal || isVertical;\n\t\t\tconst hasModifier = shiftKey || ctrlKey || altKey || metaKey;\n\t\t\tconst isNavEdge = isVertical ? isVerticalEdge : isHorizontalEdge;\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView } = ownerDocument;\n\n\t\t\tif ( ! isNav ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If there is a multi-selection, the arrow keys should collapse the\n\t\t\t// selection to the start or end of the selection.\n\t\t\tif ( hasMultiSelection() ) {\n\t\t\t\tif ( shiftKey ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Only handle if we have a full selection (not a native partial\n\t\t\t\t// selection).\n\t\t\t\tif ( ! __unstableIsFullySelected() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( isReverse ) {\n\t\t\t\t\tselectBlock( getMultiSelectedBlocksStartClientId() );\n\t\t\t\t} else {\n\t\t\t\t\tselectBlock( getMultiSelectedBlocksEndClientId(), -1 );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Abort if our current target is not a candidate for navigation\n\t\t\t// (e.g. preserve native input behaviors).\n\t\t\tif ( ! isNavigationCandidate( target, keyCode, hasModifier ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// When presing any key other than up or down, the initial vertical\n\t\t\t// position must ALWAYS be reset. The vertical position is saved so\n\t\t\t// it can be restored as well as possible on sebsequent vertical\n\t\t\t// arrow key presses. It may not always be possible to restore the\n\t\t\t// exact same position (such as at an empty line), so it wouldn't be\n\t\t\t// good to compute the position right before any vertical arrow key\n\t\t\t// press.\n\t\t\tif ( ! isVertical ) {\n\t\t\t\tverticalRect = null;\n\t\t\t} else if ( ! verticalRect ) {\n\t\t\t\tverticalRect = computeCaretRect( defaultView );\n\t\t\t}\n\n\t\t\t// In the case of RTL scripts, right means previous and left means\n\t\t\t// next, which is the exact reverse of LTR.\n\t\t\tconst isReverseDir = isRTL( target ) ? ! isReverse : isReverse;\n\t\t\tconst { keepCaretInsideBlock } = getSettings();\n\n\t\t\tif ( shiftKey ) {\n\t\t\t\tif (\n\t\t\t\t\tisClosestTabbableABlock( target, isReverse ) &&\n\t\t\t\t\tisNavEdge( target, isReverse )\n\t\t\t\t) {\n\t\t\t\t\tnode.contentEditable = true;\n\t\t\t\t\t// Firefox doesn't automatically move focus.\n\t\t\t\t\tnode.focus();\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tisVertical &&\n\t\t\t\tisVerticalEdge( target, isReverse ) &&\n\t\t\t\t// When Alt is pressed, only intercept if the caret is also at\n\t\t\t\t// the horizontal edge.\n\t\t\t\t( altKey ? isHorizontalEdge( target, isReverseDir ) : true ) &&\n\t\t\t\t! keepCaretInsideBlock\n\t\t\t) {\n\t\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\t\ttarget,\n\t\t\t\t\tisReverse,\n\t\t\t\t\tnode,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\n\t\t\t\tif ( closestTabbable ) {\n\t\t\t\t\tplaceCaretAtVerticalEdge(\n\t\t\t\t\t\tclosestTabbable,\n\t\t\t\t\t\t// When Alt is pressed, place the caret at the furthest\n\t\t\t\t\t\t// horizontal edge and the furthest vertical edge.\n\t\t\t\t\t\taltKey ? ! isReverse : isReverse,\n\t\t\t\t\t\taltKey ? undefined : verticalRect\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tisHorizontal &&\n\t\t\t\tdefaultView.getSelection().isCollapsed &&\n\t\t\t\tisHorizontalEdge( target, isReverseDir ) &&\n\t\t\t\t! keepCaretInsideBlock\n\t\t\t) {\n\t\t\t\tconst closestTabbable = getClosestTabbable(\n\t\t\t\t\ttarget,\n\t\t\t\t\tisReverseDir,\n\t\t\t\t\tnode\n\t\t\t\t);\n\t\t\t\tplaceCaretAtHorizontalEdge( closestTabbable, isReverse );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\t\tnode.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\tnode.removeEventListener( 'mousedown', onMouseDown );\n\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,6 @@ var _compose = require("@wordpress/compose");
9
9
  var _keycodes = require("@wordpress/keycodes");
10
10
  var _blocks = require("@wordpress/blocks");
11
11
  var _store = require("../../store");
12
- var _utils = require("./utils");
13
12
  /**
14
13
  * WordPress dependencies
15
14
  */
@@ -49,22 +48,7 @@ function useInput() {
49
48
  // DOM. This will cause React errors (and the DOM should only be
50
49
  // altered in a controlled fashion).
51
50
  if (node.contentEditable === 'true') {
52
- const selection = node.ownerDocument.defaultView.getSelection();
53
- const range = selection.rangeCount ? selection.getRangeAt(0) : null;
54
- const root = (0, _utils.getSelectionRoot)(node.ownerDocument);
55
-
56
- // If selection is contained within a nested editable, allow
57
- // input. We need to ensure that selection is maintained.
58
- if (root) {
59
- node.contentEditable = false;
60
- root.focus();
61
- selection.removeAllRanges();
62
- if (range) {
63
- selection.addRange(range);
64
- }
65
- } else {
66
- event.preventDefault();
67
- }
51
+ event.preventDefault();
68
52
  }
69
53
  }
70
54
  function onKeyDown(event) {
@@ -72,20 +56,6 @@ function useInput() {
72
56
  return;
73
57
  }
74
58
  if (!hasMultiSelection()) {
75
- const {
76
- ownerDocument
77
- } = node;
78
- if (node === ownerDocument.activeElement) {
79
- if (event.key === 'End' || event.key === 'Home') {
80
- const selectionRoot = (0, _utils.getSelectionRoot)(ownerDocument);
81
- const selection = ownerDocument.defaultView.getSelection();
82
- selection.selectAllChildren(selectionRoot);
83
- const method = event.key === 'End' ? 'collapseToEnd' : 'collapseToStart';
84
- selection[method]();
85
- event.preventDefault();
86
- return;
87
- }
88
- }
89
59
  if (event.keyCode === _keycodes.ENTER) {
90
60
  if (event.shiftKey || __unstableIsFullySelected()) {
91
61
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_compose","_keycodes","_blocks","_store","_utils","useInput","__unstableIsFullySelected","getSelectedBlockClientIds","getSelectedBlockClientId","__unstableIsSelectionMergeable","hasMultiSelection","getBlockName","canInsertBlockType","getBlockRootClientId","getSelectionStart","getSelectionEnd","getBlockAttributes","useSelect","blockEditorStore","replaceBlocks","__unstableSplitSelection","removeBlocks","__unstableDeleteSelection","__unstableExpandSelection","__unstableMarkAutomaticChange","useDispatch","useRefEffect","node","onBeforeInput","event","contentEditable","selection","ownerDocument","defaultView","getSelection","range","rangeCount","getRangeAt","root","getSelectionRoot","focus","removeAllRanges","addRange","preventDefault","onKeyDown","defaultPrevented","activeElement","key","selectionRoot","selectAllChildren","method","keyCode","ENTER","shiftKey","clientId","blockName","selectionStart","selectionEnd","attributeKey","selectedAttributeValue","transforms","getBlockTransforms","filter","type","transformation","findTransform","item","regExp","test","transform","content","hasBlockSupport","__deprecatedOnSplit","createBlock","getDefaultBlockName","BACKSPACE","DELETE","length","metaKey","ctrlKey","onCompositionStart","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-input.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\nimport { ENTER, BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tgetBlockTransforms,\n\tfindTransform,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getSelectionRoot } from './utils';\n\n/**\n * Handles input for selections across blocks.\n */\nexport default function useInput() {\n\tconst {\n\t\t__unstableIsFullySelected,\n\t\tgetSelectedBlockClientIds,\n\t\tgetSelectedBlockClientId,\n\t\t__unstableIsSelectionMergeable,\n\t\thasMultiSelection,\n\t\tgetBlockName,\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetSelectionStart,\n\t\tgetSelectionEnd,\n\t\tgetBlockAttributes,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\treplaceBlocks,\n\t\t__unstableSplitSelection,\n\t\tremoveBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t\t__unstableMarkAutomaticChange,\n\t} = useDispatch( blockEditorStore );\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction onBeforeInput( event ) {\n\t\t\t// If writing flow is editable, NEVER allow the browser to alter the\n\t\t\t// DOM. This will cause React errors (and the DOM should only be\n\t\t\t// altered in a controlled fashion).\n\t\t\tif ( node.contentEditable === 'true' ) {\n\t\t\t\tconst selection = node.ownerDocument.defaultView.getSelection();\n\t\t\t\tconst range = selection.rangeCount\n\t\t\t\t\t? selection.getRangeAt( 0 )\n\t\t\t\t\t: null;\n\t\t\t\tconst root = getSelectionRoot( node.ownerDocument );\n\n\t\t\t\t// If selection is contained within a nested editable, allow\n\t\t\t\t// input. We need to ensure that selection is maintained.\n\t\t\t\tif ( root ) {\n\t\t\t\t\tnode.contentEditable = false;\n\t\t\t\t\troot.focus();\n\t\t\t\t\tselection.removeAllRanges();\n\t\t\t\t\tif ( range ) {\n\t\t\t\t\t\tselection.addRange( range );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { ownerDocument } = node;\n\t\t\t\tif ( node === ownerDocument.activeElement ) {\n\t\t\t\t\tif ( event.key === 'End' || event.key === 'Home' ) {\n\t\t\t\t\t\tconst selectionRoot = getSelectionRoot( ownerDocument );\n\t\t\t\t\t\tconst selection =\n\t\t\t\t\t\t\townerDocument.defaultView.getSelection();\n\t\t\t\t\t\tselection.selectAllChildren( selectionRoot );\n\t\t\t\t\t\tconst method =\n\t\t\t\t\t\t\tevent.key === 'End'\n\t\t\t\t\t\t\t\t? 'collapseToEnd'\n\t\t\t\t\t\t\t\t: 'collapseToStart';\n\t\t\t\t\t\tselection[ method ]();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( event.keyCode === ENTER ) {\n\t\t\t\t\tif ( event.shiftKey || __unstableIsFullySelected() ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\t\t\tconst blockName = getBlockName( clientId );\n\t\t\t\t\tconst selectionStart = getSelectionStart();\n\t\t\t\t\tconst selectionEnd = getSelectionEnd();\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tselectionStart.attributeKey ===\n\t\t\t\t\t\tselectionEnd.attributeKey\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst selectedAttributeValue =\n\t\t\t\t\t\t\tgetBlockAttributes( clientId )[\n\t\t\t\t\t\t\t\tselectionStart.attributeKey\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst transformation = findTransform(\n\t\t\t\t\t\t\ttransforms,\n\t\t\t\t\t\t\t( item ) => {\n\t\t\t\t\t\t\t\treturn item.regExp.test(\n\t\t\t\t\t\t\t\t\tselectedAttributeValue\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( transformation ) {\n\t\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\ttransformation.transform( {\n\t\t\t\t\t\t\t\t\tcontent: selectedAttributeValue,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! hasBlockSupport( blockName, 'splitting', false ) &&\n\t\t\t\t\t\t! event.__deprecatedOnSplit\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ensure template is not locked.\n\t\t\t\t\tif (\n\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\t__unstableSplitSelection();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.keyCode === ENTER ) {\n\t\t\t\tnode.contentEditable = false;\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif ( __unstableIsFullySelected() ) {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tgetSelectedBlockClientIds(),\n\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t__unstableSplitSelection();\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tevent.keyCode === BACKSPACE ||\n\t\t\t\tevent.keyCode === DELETE\n\t\t\t) {\n\t\t\t\tnode.contentEditable = false;\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif ( __unstableIsFullySelected() ) {\n\t\t\t\t\tremoveBlocks( getSelectedBlockClientIds() );\n\t\t\t\t} else if ( __unstableIsSelectionMergeable() ) {\n\t\t\t\t\t__unstableDeleteSelection( event.keyCode === DELETE );\n\t\t\t\t} else {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\t// If key.length is longer than 1, it's a control key that doesn't\n\t\t\t\t// input anything.\n\t\t\t\tevent.key.length === 1 &&\n\t\t\t\t! ( event.metaKey || event.ctrlKey )\n\t\t\t) {\n\t\t\t\tnode.contentEditable = false;\n\t\t\t\tif ( __unstableIsSelectionMergeable() ) {\n\t\t\t\t\t__unstableDeleteSelection( event.keyCode === DELETE );\n\t\t\t\t} else {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t// Safari does not stop default behaviour with either\n\t\t\t\t\t// event.preventDefault() or node.contentEditable = false, so\n\t\t\t\t\t// remove the selection to stop browser manipulation.\n\t\t\t\t\tnode.ownerDocument.defaultView\n\t\t\t\t\t\t.getSelection()\n\t\t\t\t\t\t.removeAllRanges();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction onCompositionStart( event ) {\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tnode.contentEditable = false;\n\n\t\t\tif ( __unstableIsSelectionMergeable() ) {\n\t\t\t\t__unstableDeleteSelection();\n\t\t\t} else {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// Safari does not stop default behaviour with either\n\t\t\t\t// event.preventDefault() or node.contentEditable = false, so\n\t\t\t\t// remove the selection to stop browser manipulation.\n\t\t\t\tnode.ownerDocument.defaultView.getSelection().removeAllRanges();\n\t\t\t}\n\t\t}\n\n\t\tnode.addEventListener( 'beforeinput', onBeforeInput );\n\t\tnode.addEventListener( 'keydown', onKeyDown );\n\t\tnode.addEventListener( 'compositionstart', onCompositionStart );\n\t\treturn () => {\n\t\t\tnode.removeEventListener( 'beforeinput', onBeforeInput );\n\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t\tnode.removeEventListener( 'compositionstart', onCompositionStart );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_compose","_keycodes","_blocks","_store","useInput","__unstableIsFullySelected","getSelectedBlockClientIds","getSelectedBlockClientId","__unstableIsSelectionMergeable","hasMultiSelection","getBlockName","canInsertBlockType","getBlockRootClientId","getSelectionStart","getSelectionEnd","getBlockAttributes","useSelect","blockEditorStore","replaceBlocks","__unstableSplitSelection","removeBlocks","__unstableDeleteSelection","__unstableExpandSelection","__unstableMarkAutomaticChange","useDispatch","useRefEffect","node","onBeforeInput","event","contentEditable","preventDefault","onKeyDown","defaultPrevented","keyCode","ENTER","shiftKey","clientId","blockName","selectionStart","selectionEnd","attributeKey","selectedAttributeValue","transforms","getBlockTransforms","filter","type","transformation","findTransform","item","regExp","test","transform","content","hasBlockSupport","__deprecatedOnSplit","createBlock","getDefaultBlockName","BACKSPACE","DELETE","key","length","metaKey","ctrlKey","ownerDocument","defaultView","getSelection","removeAllRanges","onCompositionStart","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-input.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\nimport { ENTER, BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tgetBlockTransforms,\n\tfindTransform,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Handles input for selections across blocks.\n */\nexport default function useInput() {\n\tconst {\n\t\t__unstableIsFullySelected,\n\t\tgetSelectedBlockClientIds,\n\t\tgetSelectedBlockClientId,\n\t\t__unstableIsSelectionMergeable,\n\t\thasMultiSelection,\n\t\tgetBlockName,\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetSelectionStart,\n\t\tgetSelectionEnd,\n\t\tgetBlockAttributes,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\treplaceBlocks,\n\t\t__unstableSplitSelection,\n\t\tremoveBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t\t__unstableMarkAutomaticChange,\n\t} = useDispatch( blockEditorStore );\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction onBeforeInput( event ) {\n\t\t\t// If writing flow is editable, NEVER allow the browser to alter the\n\t\t\t// DOM. This will cause React errors (and the DOM should only be\n\t\t\t// altered in a controlled fashion).\n\t\t\tif ( node.contentEditable === 'true' ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tif ( event.keyCode === ENTER ) {\n\t\t\t\t\tif ( event.shiftKey || __unstableIsFullySelected() ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\t\t\tconst blockName = getBlockName( clientId );\n\t\t\t\t\tconst selectionStart = getSelectionStart();\n\t\t\t\t\tconst selectionEnd = getSelectionEnd();\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tselectionStart.attributeKey ===\n\t\t\t\t\t\tselectionEnd.attributeKey\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst selectedAttributeValue =\n\t\t\t\t\t\t\tgetBlockAttributes( clientId )[\n\t\t\t\t\t\t\t\tselectionStart.attributeKey\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst transformation = findTransform(\n\t\t\t\t\t\t\ttransforms,\n\t\t\t\t\t\t\t( item ) => {\n\t\t\t\t\t\t\t\treturn item.regExp.test(\n\t\t\t\t\t\t\t\t\tselectedAttributeValue\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( transformation ) {\n\t\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\ttransformation.transform( {\n\t\t\t\t\t\t\t\t\tcontent: selectedAttributeValue,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! hasBlockSupport( blockName, 'splitting', false ) &&\n\t\t\t\t\t\t! event.__deprecatedOnSplit\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ensure template is not locked.\n\t\t\t\t\tif (\n\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\t__unstableSplitSelection();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.keyCode === ENTER ) {\n\t\t\t\tnode.contentEditable = false;\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif ( __unstableIsFullySelected() ) {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tgetSelectedBlockClientIds(),\n\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t__unstableSplitSelection();\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tevent.keyCode === BACKSPACE ||\n\t\t\t\tevent.keyCode === DELETE\n\t\t\t) {\n\t\t\t\tnode.contentEditable = false;\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif ( __unstableIsFullySelected() ) {\n\t\t\t\t\tremoveBlocks( getSelectedBlockClientIds() );\n\t\t\t\t} else if ( __unstableIsSelectionMergeable() ) {\n\t\t\t\t\t__unstableDeleteSelection( event.keyCode === DELETE );\n\t\t\t\t} else {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\t// If key.length is longer than 1, it's a control key that doesn't\n\t\t\t\t// input anything.\n\t\t\t\tevent.key.length === 1 &&\n\t\t\t\t! ( event.metaKey || event.ctrlKey )\n\t\t\t) {\n\t\t\t\tnode.contentEditable = false;\n\t\t\t\tif ( __unstableIsSelectionMergeable() ) {\n\t\t\t\t\t__unstableDeleteSelection( event.keyCode === DELETE );\n\t\t\t\t} else {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t// Safari does not stop default behaviour with either\n\t\t\t\t\t// event.preventDefault() or node.contentEditable = false, so\n\t\t\t\t\t// remove the selection to stop browser manipulation.\n\t\t\t\t\tnode.ownerDocument.defaultView\n\t\t\t\t\t\t.getSelection()\n\t\t\t\t\t\t.removeAllRanges();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction onCompositionStart( event ) {\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tnode.contentEditable = false;\n\n\t\t\tif ( __unstableIsSelectionMergeable() ) {\n\t\t\t\t__unstableDeleteSelection();\n\t\t\t} else {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// Safari does not stop default behaviour with either\n\t\t\t\t// event.preventDefault() or node.contentEditable = false, so\n\t\t\t\t// remove the selection to stop browser manipulation.\n\t\t\t\tnode.ownerDocument.defaultView.getSelection().removeAllRanges();\n\t\t\t}\n\t\t}\n\n\t\tnode.addEventListener( 'beforeinput', onBeforeInput );\n\t\tnode.addEventListener( 'keydown', onKeyDown );\n\t\tnode.addEventListener( 'compositionstart', onCompositionStart );\n\t\treturn () => {\n\t\t\tnode.removeEventListener( 'beforeinput', onBeforeInput );\n\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t\tnode.removeEventListener( 'compositionstart', onCompositionStart );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,6 @@ var _data = require("@wordpress/data");
9
9
  var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
10
10
  var _compose = require("@wordpress/compose");
11
11
  var _store = require("../../store");
12
- var _utils = require("./utils");
13
12
  /**
14
13
  * WordPress dependencies
15
14
  */
@@ -34,19 +33,8 @@ function useSelectAll() {
34
33
  if (!isMatch('core/block-editor/select-all', event)) {
35
34
  return;
36
35
  }
37
- const selectionRoot = (0, _utils.getSelectionRoot)(node.ownerDocument);
38
36
  const selectedClientIds = getSelectedBlockClientIds();
39
-
40
- // Abort if there is selection, but it is not within a block.
41
- if (selectionRoot && !selectedClientIds.length) {
42
- return;
43
- }
44
- if (selectionRoot && selectedClientIds.length < 2 && !(0, _dom.isEntirelySelected)(selectionRoot)) {
45
- if (node === node.ownerDocument.activeElement) {
46
- event.preventDefault();
47
- node.ownerDocument.defaultView.getSelection().selectAllChildren(selectionRoot);
48
- return;
49
- }
37
+ if (selectedClientIds.length < 2 && !(0, _dom.isEntirelySelected)(event.target)) {
50
38
  return;
51
39
  }
52
40
  event.preventDefault();
@@ -59,7 +47,6 @@ function useSelectAll() {
59
47
  if (selectedClientIds.length === blockClientIds.length) {
60
48
  if (rootClientId) {
61
49
  node.ownerDocument.defaultView.getSelection().removeAllRanges();
62
- node.contentEditable = 'false';
63
50
  selectBlock(rootClientId);
64
51
  }
65
52
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["_dom","require","_data","_keyboardShortcuts","_compose","_store","_utils","useSelectAll","getBlockOrder","getSelectedBlockClientIds","getBlockRootClientId","useSelect","blockEditorStore","multiSelect","selectBlock","useDispatch","isMatch","useShortcutEventMatch","useRefEffect","node","onKeyDown","event","selectionRoot","getSelectionRoot","ownerDocument","selectedClientIds","length","isEntirelySelected","activeElement","preventDefault","defaultView","getSelection","selectAllChildren","firstSelectedClientId","rootClientId","blockClientIds","removeAllRanges","contentEditable","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-select-all.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isEntirelySelected } from '@wordpress/dom';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getSelectionRoot } from './utils';\n\nexport default function useSelectAll() {\n\tconst { getBlockOrder, getSelectedBlockClientIds, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { multiSelect, selectBlock } = useDispatch( blockEditorStore );\n\tconst isMatch = useShortcutEventMatch();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( ! isMatch( 'core/block-editor/select-all', event ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectionRoot = getSelectionRoot( node.ownerDocument );\n\t\t\tconst selectedClientIds = getSelectedBlockClientIds();\n\n\t\t\t// Abort if there is selection, but it is not within a block.\n\t\t\tif ( selectionRoot && ! selectedClientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tselectionRoot &&\n\t\t\t\tselectedClientIds.length < 2 &&\n\t\t\t\t! isEntirelySelected( selectionRoot )\n\t\t\t) {\n\t\t\t\tif ( node === node.ownerDocument.activeElement ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnode.ownerDocument.defaultView\n\t\t\t\t\t\t.getSelection()\n\t\t\t\t\t\t.selectAllChildren( selectionRoot );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconst [ firstSelectedClientId ] = selectedClientIds;\n\t\t\tconst rootClientId = getBlockRootClientId( firstSelectedClientId );\n\t\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\n\t\t\t// If we have selected all sibling nested blocks, try selecting up a\n\t\t\t// level. See: https://github.com/WordPress/gutenberg/pull/31859/\n\t\t\tif ( selectedClientIds.length === blockClientIds.length ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tnode.ownerDocument.defaultView\n\t\t\t\t\t\t.getSelection()\n\t\t\t\t\t\t.removeAllRanges();\n\t\t\t\t\tnode.contentEditable = 'false';\n\t\t\t\t\tselectBlock( rootClientId );\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tmultiSelect(\n\t\t\t\tblockClientIds[ 0 ],\n\t\t\t\tblockClientIds[ blockClientIds.length - 1 ]\n\t\t\t);\n\t\t}\n\n\t\tnode.addEventListener( 'keydown', onKeyDown );\n\n\t\treturn () => {\n\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAZA;AACA;AACA;;AAMA;AACA;AACA;;AAIe,SAASM,YAAYA,CAAA,EAAG;EACtC,MAAM;IAAEC,aAAa;IAAEC,yBAAyB;IAAEC;EAAqB,CAAC,GACvE,IAAAC,eAAS,EAAEC,YAAiB,CAAC;EAC9B,MAAM;IAAEC,WAAW;IAAEC;EAAY,CAAC,GAAG,IAAAC,iBAAW,EAAEH,YAAiB,CAAC;EACpE,MAAMI,OAAO,GAAG,IAAAC,kDAAqB,EAAC,CAAC;EAEvC,OAAO,IAAAC,qBAAY,EAAIC,IAAI,IAAM;IAChC,SAASC,SAASA,CAAEC,KAAK,EAAG;MAC3B,IAAK,CAAEL,OAAO,CAAE,8BAA8B,EAAEK,KAAM,CAAC,EAAG;QACzD;MACD;MAEA,MAAMC,aAAa,GAAG,IAAAC,uBAAgB,EAAEJ,IAAI,CAACK,aAAc,CAAC;MAC5D,MAAMC,iBAAiB,GAAGhB,yBAAyB,CAAC,CAAC;;MAErD;MACA,IAAKa,aAAa,IAAI,CAAEG,iBAAiB,CAACC,MAAM,EAAG;QAClD;MACD;MAEA,IACCJ,aAAa,IACbG,iBAAiB,CAACC,MAAM,GAAG,CAAC,IAC5B,CAAE,IAAAC,uBAAkB,EAAEL,aAAc,CAAC,EACpC;QACD,IAAKH,IAAI,KAAKA,IAAI,CAACK,aAAa,CAACI,aAAa,EAAG;UAChDP,KAAK,CAACQ,cAAc,CAAC,CAAC;UACtBV,IAAI,CAACK,aAAa,CAACM,WAAW,CAC5BC,YAAY,CAAC,CAAC,CACdC,iBAAiB,CAAEV,aAAc,CAAC;UACpC;QACD;QAEA;MACD;MAEAD,KAAK,CAACQ,cAAc,CAAC,CAAC;MAEtB,MAAM,CAAEI,qBAAqB,CAAE,GAAGR,iBAAiB;MACnD,MAAMS,YAAY,GAAGxB,oBAAoB,CAAEuB,qBAAsB,CAAC;MAClE,MAAME,cAAc,GAAG3B,aAAa,CAAE0B,YAAa,CAAC;;MAEpD;MACA;MACA,IAAKT,iBAAiB,CAACC,MAAM,KAAKS,cAAc,CAACT,MAAM,EAAG;QACzD,IAAKQ,YAAY,EAAG;UACnBf,IAAI,CAACK,aAAa,CAACM,WAAW,CAC5BC,YAAY,CAAC,CAAC,CACdK,eAAe,CAAC,CAAC;UACnBjB,IAAI,CAACkB,eAAe,GAAG,OAAO;UAC9BvB,WAAW,CAAEoB,YAAa,CAAC;QAC5B;QACA;MACD;MAEArB,WAAW,CACVsB,cAAc,CAAE,CAAC,CAAE,EACnBA,cAAc,CAAEA,cAAc,CAACT,MAAM,GAAG,CAAC,CAC1C,CAAC;IACF;IAEAP,IAAI,CAACmB,gBAAgB,CAAE,SAAS,EAAElB,SAAU,CAAC;IAE7C,OAAO,MAAM;MACZD,IAAI,CAACoB,mBAAmB,CAAE,SAAS,EAAEnB,SAAU,CAAC;IACjD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;AACR","ignoreList":[]}
1
+ {"version":3,"names":["_dom","require","_data","_keyboardShortcuts","_compose","_store","useSelectAll","getBlockOrder","getSelectedBlockClientIds","getBlockRootClientId","useSelect","blockEditorStore","multiSelect","selectBlock","useDispatch","isMatch","useShortcutEventMatch","useRefEffect","node","onKeyDown","event","selectedClientIds","length","isEntirelySelected","target","preventDefault","firstSelectedClientId","rootClientId","blockClientIds","ownerDocument","defaultView","getSelection","removeAllRanges","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-select-all.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isEntirelySelected } from '@wordpress/dom';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport default function useSelectAll() {\n\tconst { getBlockOrder, getSelectedBlockClientIds, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { multiSelect, selectBlock } = useDispatch( blockEditorStore );\n\tconst isMatch = useShortcutEventMatch();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( ! isMatch( 'core/block-editor/select-all', event ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedClientIds = getSelectedBlockClientIds();\n\n\t\t\tif (\n\t\t\t\tselectedClientIds.length < 2 &&\n\t\t\t\t! isEntirelySelected( event.target )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconst [ firstSelectedClientId ] = selectedClientIds;\n\t\t\tconst rootClientId = getBlockRootClientId( firstSelectedClientId );\n\t\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\n\t\t\t// If we have selected all sibling nested blocks, try selecting up a\n\t\t\t// level. See: https://github.com/WordPress/gutenberg/pull/31859/\n\t\t\tif ( selectedClientIds.length === blockClientIds.length ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tnode.ownerDocument.defaultView\n\t\t\t\t\t\t.getSelection()\n\t\t\t\t\t\t.removeAllRanges();\n\t\t\t\t\tselectBlock( rootClientId );\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tmultiSelect(\n\t\t\t\tblockClientIds[ 0 ],\n\t\t\t\tblockClientIds[ blockClientIds.length - 1 ]\n\t\t\t);\n\t\t}\n\n\t\tnode.addEventListener( 'keydown', onKeyDown );\n\n\t\treturn () => {\n\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGe,SAASK,YAAYA,CAAA,EAAG;EACtC,MAAM;IAAEC,aAAa;IAAEC,yBAAyB;IAAEC;EAAqB,CAAC,GACvE,IAAAC,eAAS,EAAEC,YAAiB,CAAC;EAC9B,MAAM;IAAEC,WAAW;IAAEC;EAAY,CAAC,GAAG,IAAAC,iBAAW,EAAEH,YAAiB,CAAC;EACpE,MAAMI,OAAO,GAAG,IAAAC,kDAAqB,EAAC,CAAC;EAEvC,OAAO,IAAAC,qBAAY,EAAIC,IAAI,IAAM;IAChC,SAASC,SAASA,CAAEC,KAAK,EAAG;MAC3B,IAAK,CAAEL,OAAO,CAAE,8BAA8B,EAAEK,KAAM,CAAC,EAAG;QACzD;MACD;MAEA,MAAMC,iBAAiB,GAAGb,yBAAyB,CAAC,CAAC;MAErD,IACCa,iBAAiB,CAACC,MAAM,GAAG,CAAC,IAC5B,CAAE,IAAAC,uBAAkB,EAAEH,KAAK,CAACI,MAAO,CAAC,EACnC;QACD;MACD;MAEAJ,KAAK,CAACK,cAAc,CAAC,CAAC;MAEtB,MAAM,CAAEC,qBAAqB,CAAE,GAAGL,iBAAiB;MACnD,MAAMM,YAAY,GAAGlB,oBAAoB,CAAEiB,qBAAsB,CAAC;MAClE,MAAME,cAAc,GAAGrB,aAAa,CAAEoB,YAAa,CAAC;;MAEpD;MACA;MACA,IAAKN,iBAAiB,CAACC,MAAM,KAAKM,cAAc,CAACN,MAAM,EAAG;QACzD,IAAKK,YAAY,EAAG;UACnBT,IAAI,CAACW,aAAa,CAACC,WAAW,CAC5BC,YAAY,CAAC,CAAC,CACdC,eAAe,CAAC,CAAC;UACnBnB,WAAW,CAAEc,YAAa,CAAC;QAC5B;QACA;MACD;MAEAf,WAAW,CACVgB,cAAc,CAAE,CAAC,CAAE,EACnBA,cAAc,CAAEA,cAAc,CAACN,MAAM,GAAG,CAAC,CAC1C,CAAC;IACF;IAEAJ,IAAI,CAACe,gBAAgB,CAAE,SAAS,EAAEd,SAAU,CAAC;IAE7C,OAAO,MAAM;MACZD,IAAI,CAACgB,mBAAmB,CAAE,SAAS,EAAEf,SAAU,CAAC;IACjD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;AACR","ignoreList":[]}
@@ -115,8 +115,7 @@ function useSelectionObserver() {
115
115
  const {
116
116
  getBlockParents,
117
117
  getBlockSelectionStart,
118
- isMultiSelecting,
119
- getSelectedBlockClientId
118
+ isMultiSelecting
120
119
  } = (0, _data.useSelect)(_store.store);
121
120
  return (0, _compose.useRefEffect)(node => {
122
121
  const {
@@ -179,13 +178,10 @@ function useSelectionObserver() {
179
178
  setContentEditableWrapper(node, false);
180
179
  return;
181
180
  }
182
- setContentEditableWrapper(node, !!(startClientId && endClientId));
183
181
  const isSingularSelection = startClientId === endClientId;
184
182
  if (isSingularSelection) {
185
183
  if (!isMultiSelecting()) {
186
- if (getSelectedBlockClientId() !== startClientId) {
187
- selectBlock(startClientId);
188
- }
184
+ selectBlock(startClientId);
189
185
  } else {
190
186
  multiSelect(startClientId, startClientId);
191
187
  }