@wordpress/format-library 4.15.0 → 4.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/bold/index.js +1 -10
  3. package/build/bold/index.js.map +1 -1
  4. package/build/code/index.js +3 -17
  5. package/build/code/index.js.map +1 -1
  6. package/build/default-formats.js +0 -14
  7. package/build/default-formats.js.map +1 -1
  8. package/build/default-formats.native.js +0 -6
  9. package/build/default-formats.native.js.map +1 -1
  10. package/build/image/index.js +5 -14
  11. package/build/image/index.js.map +1 -1
  12. package/build/index.js +1 -3
  13. package/build/index.js.map +1 -1
  14. package/build/italic/index.js +1 -10
  15. package/build/italic/index.js.map +1 -1
  16. package/build/keyboard/index.js +1 -10
  17. package/build/keyboard/index.js.map +1 -1
  18. package/build/language/index.js +1 -11
  19. package/build/language/index.js.map +1 -1
  20. package/build/link/index.js +5 -26
  21. package/build/link/index.js.map +1 -1
  22. package/build/link/index.native.js +14 -39
  23. package/build/link/index.native.js.map +1 -1
  24. package/build/link/inline.js +47 -84
  25. package/build/link/inline.js.map +1 -1
  26. package/build/link/modal-screens/link-picker-screen.native.js +1 -13
  27. package/build/link/modal-screens/link-picker-screen.native.js.map +1 -1
  28. package/build/link/modal-screens/link-settings-screen.native.js +9 -36
  29. package/build/link/modal-screens/link-settings-screen.native.js.map +1 -1
  30. package/build/link/modal-screens/screens.native.js.map +1 -1
  31. package/build/link/modal.native.js +1 -9
  32. package/build/link/modal.native.js.map +1 -1
  33. package/build/link/use-link-instance-key.js +3 -7
  34. package/build/link/use-link-instance-key.js.map +1 -1
  35. package/build/link/utils.js +23 -47
  36. package/build/link/utils.js.map +1 -1
  37. package/build/strikethrough/index.js +1 -9
  38. package/build/strikethrough/index.js.map +1 -1
  39. package/build/subscript/index.js +1 -10
  40. package/build/subscript/index.js.map +1 -1
  41. package/build/superscript/index.js +1 -10
  42. package/build/superscript/index.js.map +1 -1
  43. package/build/text-color/index.js +7 -25
  44. package/build/text-color/index.js.map +1 -1
  45. package/build/text-color/index.native.js +11 -34
  46. package/build/text-color/index.native.js.map +1 -1
  47. package/build/text-color/inline.js +5 -26
  48. package/build/text-color/inline.js.map +1 -1
  49. package/build/text-color/inline.native.js +9 -25
  50. package/build/text-color/inline.native.js.map +1 -1
  51. package/build/underline/index.js +1 -8
  52. package/build/underline/index.js.map +1 -1
  53. package/build/unknown/index.js +1 -11
  54. package/build/unknown/index.js.map +1 -1
  55. package/build-module/bold/index.js +0 -7
  56. package/build-module/bold/index.js.map +1 -1
  57. package/build-module/code/index.js +2 -14
  58. package/build-module/code/index.js.map +1 -1
  59. package/build-module/default-formats.js.map +1 -1
  60. package/build-module/default-formats.native.js.map +1 -1
  61. package/build-module/image/index.js +4 -10
  62. package/build-module/image/index.js.map +1 -1
  63. package/build-module/index.js +1 -1
  64. package/build-module/index.js.map +1 -1
  65. package/build-module/italic/index.js +0 -7
  66. package/build-module/italic/index.js.map +1 -1
  67. package/build-module/keyboard/index.js +0 -7
  68. package/build-module/keyboard/index.js.map +1 -1
  69. package/build-module/language/index.js +1 -8
  70. package/build-module/language/index.js.map +1 -1
  71. package/build-module/link/index.js +5 -17
  72. package/build-module/link/index.js.map +1 -1
  73. package/build-module/link/index.native.js +15 -30
  74. package/build-module/link/index.native.js.map +1 -1
  75. package/build-module/link/inline.js +45 -72
  76. package/build-module/link/inline.js.map +1 -1
  77. package/build-module/link/modal-screens/link-picker-screen.native.js +2 -8
  78. package/build-module/link/modal-screens/link-picker-screen.native.js.map +1 -1
  79. package/build-module/link/modal-screens/link-settings-screen.native.js +10 -28
  80. package/build-module/link/modal-screens/link-settings-screen.native.js.map +1 -1
  81. package/build-module/link/modal-screens/screens.native.js.map +1 -1
  82. package/build-module/link/modal.native.js +1 -4
  83. package/build-module/link/modal.native.js.map +1 -1
  84. package/build-module/link/use-link-instance-key.js +3 -7
  85. package/build-module/link/use-link-instance-key.js.map +1 -1
  86. package/build-module/link/utils.js +24 -43
  87. package/build-module/link/utils.js.map +1 -1
  88. package/build-module/strikethrough/index.js +0 -6
  89. package/build-module/strikethrough/index.js.map +1 -1
  90. package/build-module/subscript/index.js +0 -7
  91. package/build-module/subscript/index.js.map +1 -1
  92. package/build-module/superscript/index.js +0 -7
  93. package/build-module/superscript/index.js.map +1 -1
  94. package/build-module/text-color/index.js +7 -20
  95. package/build-module/text-color/index.js.map +1 -1
  96. package/build-module/text-color/index.native.js +12 -24
  97. package/build-module/text-color/index.native.js.map +1 -1
  98. package/build-module/text-color/inline.js +5 -20
  99. package/build-module/text-color/inline.js.map +1 -1
  100. package/build-module/text-color/inline.native.js +9 -21
  101. package/build-module/text-color/inline.native.js.map +1 -1
  102. package/build-module/underline/index.js +0 -6
  103. package/build-module/underline/index.js.map +1 -1
  104. package/build-module/unknown/index.js +0 -8
  105. package/build-module/unknown/index.js.map +1 -1
  106. package/package.json +13 -13
  107. package/src/link/inline.js +14 -37
  108. package/src/link/test/__snapshots__/modal.native.js.snap +372 -295
  109. package/src/text-color/test/index.native.js +4 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/link/inline.js"],"names":["InlineLinkUI","isActive","activeAttributes","addingLink","value","onChange","speak","stopAddingLink","contentRef","richLinkTextValue","getRichTextValueFromSelection","richTextText","text","nextLinkValue","setNextLinkValue","createPageEntity","userCanCreatePages","select","getSettings","blockEditorStore","_settings","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","linkValue","url","type","id","opensInNewTab","target","title","removeLink","newValue","onChangeLink","nextValue","didToggleSetting","didToggleSettingForNewLink","undefined","newUrl","linkFormat","String","opensInNewWindow","newText","toInsert","length","boundary","valBefore","valAfter","start","newValAfter","end","activeFormats","popoverAnchor","editableContentElement","current","settings","forceRemountKey","focusOnMount","handleCreate","pageTitle","page","status","rendered","link","kind","createButtonText","searchTerm","mark","textStart","textEnd"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useRef, createInterpolateElement } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { withSpokenMessages, Popover } from '@wordpress/components';\nimport { prependHTTP } from '@wordpress/url';\nimport {\n\tcreate,\n\tinsert,\n\tisCollapsed,\n\tapplyFormat,\n\tuseAnchor,\n\tremoveFormat,\n\tslice,\n\treplace,\n\tsplit,\n\tconcat,\n} from '@wordpress/rich-text';\nimport {\n\t__experimentalLinkControl as LinkControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { createLinkFormat, isValidHref, getFormatBoundary } from './utils';\nimport { link as settings } from './index';\nimport useLinkInstanceKey from './use-link-instance-key';\n\nfunction InlineLinkUI( {\n\tisActive,\n\tactiveAttributes,\n\taddingLink,\n\tvalue,\n\tonChange,\n\tspeak,\n\tstopAddingLink,\n\tcontentRef,\n} ) {\n\tconst richLinkTextValue = getRichTextValueFromSelection( value, isActive );\n\n\t// Get the text content minus any HTML tags.\n\tconst richTextText = richLinkTextValue.text;\n\n\t/**\n\t * Pending settings to be applied to the next link. When inserting a new\n\t * link, toggle values cannot be applied immediately, because there is not\n\t * yet a link for them to apply to. Thus, they are maintained in a state\n\t * value until the time that the link can be inserted or edited.\n\t *\n\t * @type {[Object|undefined,Function]}\n\t */\n\tconst [ nextLinkValue, setNextLinkValue ] = useState();\n\n\tconst { createPageEntity, userCanCreatePages } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst _settings = getSettings();\n\n\t\treturn {\n\t\t\tcreatePageEntity: _settings.__experimentalCreatePageEntity,\n\t\t\tuserCanCreatePages: _settings.__experimentalUserCanCreatePages,\n\t\t};\n\t}, [] );\n\n\tconst linkValue = {\n\t\turl: activeAttributes.url,\n\t\ttype: activeAttributes.type,\n\t\tid: activeAttributes.id,\n\t\topensInNewTab: activeAttributes.target === '_blank',\n\t\ttitle: richTextText,\n\t\t...nextLinkValue,\n\t};\n\n\tfunction removeLink() {\n\t\tconst newValue = removeFormat( value, 'core/link' );\n\t\tonChange( newValue );\n\t\tstopAddingLink();\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\tfunction onChangeLink( nextValue ) {\n\t\t// Merge with values from state, both for the purpose of assigning the\n\t\t// next state value, and for use in constructing the new link format if\n\t\t// the link is ready to be applied.\n\t\tnextValue = {\n\t\t\t...nextLinkValue,\n\t\t\t...nextValue,\n\t\t};\n\n\t\t// LinkControl calls `onChange` immediately upon the toggling a setting.\n\t\tconst didToggleSetting =\n\t\t\tlinkValue.opensInNewTab !== nextValue.opensInNewTab &&\n\t\t\tlinkValue.url === nextValue.url;\n\n\t\t// If change handler was called as a result of a settings change during\n\t\t// link insertion, it must be held in state until the link is ready to\n\t\t// be applied.\n\t\tconst didToggleSettingForNewLink =\n\t\t\tdidToggleSetting && nextValue.url === undefined;\n\n\t\t// If link will be assigned, the state value can be considered flushed.\n\t\t// Otherwise, persist the pending changes.\n\t\tsetNextLinkValue( didToggleSettingForNewLink ? nextValue : undefined );\n\n\t\tif ( didToggleSettingForNewLink ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newUrl = prependHTTP( nextValue.url );\n\t\tconst linkFormat = createLinkFormat( {\n\t\t\turl: newUrl,\n\t\t\ttype: nextValue.type,\n\t\t\tid:\n\t\t\t\tnextValue.id !== undefined && nextValue.id !== null\n\t\t\t\t\t? String( nextValue.id )\n\t\t\t\t\t: undefined,\n\t\t\topensInNewWindow: nextValue.opensInNewTab,\n\t\t} );\n\n\t\tconst newText = nextValue.title || newUrl;\n\n\t\tif ( isCollapsed( value ) && ! isActive ) {\n\t\t\t// Scenario: we don't have any actively selected text or formats.\n\t\t\tconst toInsert = applyFormat(\n\t\t\t\tcreate( { text: newText } ),\n\t\t\t\tlinkFormat,\n\t\t\t\t0,\n\t\t\t\tnewText.length\n\t\t\t);\n\t\t\tonChange( insert( value, toInsert ) );\n\t\t} else {\n\t\t\t// Scenario: we have any active text selection or an active format.\n\t\t\tlet newValue;\n\n\t\t\tif ( newText === richTextText ) {\n\t\t\t\t// If we're not updating the text then ignore.\n\t\t\t\tnewValue = applyFormat( value, linkFormat );\n\t\t\t} else {\n\t\t\t\t// Create new RichText value for the new text in order that we\n\t\t\t\t// can apply formats to it.\n\t\t\t\tnewValue = create( { text: newText } );\n\n\t\t\t\t// Apply the new Link format to this new text value.\n\t\t\t\tnewValue = applyFormat(\n\t\t\t\t\tnewValue,\n\t\t\t\t\tlinkFormat,\n\t\t\t\t\t0,\n\t\t\t\t\tnewText.length\n\t\t\t\t);\n\n\t\t\t\t// Get the boundaries of the active link format.\n\t\t\t\tconst boundary = getFormatBoundary( value, {\n\t\t\t\t\ttype: 'core/link',\n\t\t\t\t} );\n\n\t\t\t\t// Split the value at the start of the active link format.\n\t\t\t\t// Passing \"start\" as the 3rd parameter is required to ensure\n\t\t\t\t// the second half of the split value is split at the format's\n\t\t\t\t// start boundary and avoids relying on the value's \"end\" property\n\t\t\t\t// which may not correspond correctly.\n\t\t\t\tconst [ valBefore, valAfter ] = split(\n\t\t\t\t\tvalue,\n\t\t\t\t\tboundary.start,\n\t\t\t\t\tboundary.start\n\t\t\t\t);\n\n\t\t\t\t// Update the original (full) RichTextValue replacing the\n\t\t\t\t// target text with the *new* RichTextValue containing:\n\t\t\t\t// 1. The new text content.\n\t\t\t\t// 2. The new link format.\n\t\t\t\t// As \"replace\" will operate on the first match only, it is\n\t\t\t\t// run only against the second half of the value which was\n\t\t\t\t// split at the active format's boundary. This avoids a bug\n\t\t\t\t// with incorrectly targetted replacements.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/41771.\n\t\t\t\t// Note original formats will be lost when applying this change.\n\t\t\t\t// That is expected behaviour.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/pull/33849#issuecomment-936134179.\n\t\t\t\tconst newValAfter = replace( valAfter, richTextText, newValue );\n\n\t\t\t\tnewValue = concat( valBefore, newValAfter );\n\t\t\t}\n\n\t\t\tnewValue.start = newValue.end;\n\t\t\tnewValue.activeFormats = [];\n\t\t\tonChange( newValue );\n\t\t}\n\n\t\t// Focus should only be shifted back to the formatted segment when the\n\t\t// URL is submitted.\n\t\tif ( ! didToggleSetting ) {\n\t\t\tstopAddingLink();\n\t\t}\n\n\t\tif ( ! isValidHref( newUrl ) ) {\n\t\t\tspeak(\n\t\t\t\t__(\n\t\t\t\t\t'Warning: the link has been inserted but may have errors. Please test it.'\n\t\t\t\t),\n\t\t\t\t'assertive'\n\t\t\t);\n\t\t} else if ( isActive ) {\n\t\t\tspeak( __( 'Link edited.' ), 'assertive' );\n\t\t} else {\n\t\t\tspeak( __( 'Link inserted.' ), 'assertive' );\n\t\t}\n\t}\n\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings,\n\t} );\n\n\t// Generate a string based key that is unique to this anchor reference.\n\t// This is used to force re-mount the LinkControl component to avoid\n\t// potential stale state bugs caused by the component not being remounted\n\t// See https://github.com/WordPress/gutenberg/pull/34742.\n\tconst forceRemountKey = useLinkInstanceKey( popoverAnchor );\n\n\t// The focusOnMount prop shouldn't evolve during render of a Popover\n\t// otherwise it causes a render of the content.\n\tconst focusOnMount = useRef( addingLink ? 'firstElement' : false );\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst page = await createPageEntity( {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: page.type,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tfunction createButtonText( searchTerm ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Create page: <mark>%s</mark>' ),\n\t\t\t\tsearchTerm\n\t\t\t),\n\t\t\t{ mark: <mark /> }\n\t\t);\n\t}\n\n\treturn (\n\t\t<Popover\n\t\t\tanchor={ popoverAnchor }\n\t\t\tfocusOnMount={ focusOnMount.current }\n\t\t\tonClose={ stopAddingLink }\n\t\t\tonFocusOutside={ () => stopAddingLink( false ) }\n\t\t\tplacement=\"bottom\"\n\t\t\tshift\n\t\t>\n\t\t\t<LinkControl\n\t\t\t\tkey={ forceRemountKey }\n\t\t\t\tvalue={ linkValue }\n\t\t\t\tonChange={ onChangeLink }\n\t\t\t\tonRemove={ removeLink }\n\t\t\t\tforceIsEditingLink={ addingLink }\n\t\t\t\thasRichPreviews\n\t\t\t\tcreateSuggestion={ createPageEntity && handleCreate }\n\t\t\t\twithCreateSuggestion={ userCanCreatePages }\n\t\t\t\tcreateSuggestionButtonText={ createButtonText }\n\t\t\t\thasTextControl\n\t\t\t/>\n\t\t</Popover>\n\t);\n}\n\nfunction getRichTextValueFromSelection( value, isActive ) {\n\t// Default to the selection ranges on the RichTextValue object.\n\tlet textStart = value.start;\n\tlet textEnd = value.end;\n\n\t// If the format is currently active then the rich text value\n\t// should always be taken from the bounds of the active format\n\t// and not the selected text.\n\tif ( isActive ) {\n\t\tconst boundary = getFormatBoundary( value, {\n\t\t\ttype: 'core/link',\n\t\t} );\n\n\t\ttextStart = boundary.start;\n\n\t\t// Text *selection* always extends +1 beyond the edge of the format.\n\t\t// We account for that here.\n\t\ttextEnd = boundary.end + 1;\n\t}\n\n\t// Get a RichTextValue containing the selected text content.\n\treturn slice( value, textStart, textEnd );\n}\n\nexport default withSpokenMessages( InlineLinkUI );\n"]}
1
+ {"version":3,"names":["_element","require","_i18n","_a11y","_components","_url","_richText","_blockEditor","_data","_utils","_index","_useLinkInstanceKey","_interopRequireDefault","InlineLinkUI","isActive","activeAttributes","addingLink","value","onChange","stopAddingLink","contentRef","richLinkTextValue","getRichTextValueFromSelection","richTextText","text","createPageEntity","userCanCreatePages","useSelect","select","getSettings","blockEditorStore","_settings","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","linkValue","url","type","id","opensInNewTab","target","title","removeLink","newValue","removeFormat","speak","__","onChangeLink","nextValue","didToggleSetting","undefined","newUrl","prependHTTP","linkFormat","createLinkFormat","String","opensInNewWindow","newText","isCollapsed","toInsert","applyFormat","create","length","insert","boundary","getFormatBoundary","valBefore","valAfter","split","start","newValAfter","replace","concat","end","activeFormats","isValidHref","popoverAnchor","useAnchor","editableContentElement","current","settings","forceRemountKey","useLinkInstanceKey","focusOnMount","useRef","handleCreate","pageTitle","page","status","rendered","link","kind","createButtonText","searchTerm","createInterpolateElement","sprintf","mark","createElement","Popover","anchor","onClose","onFocusOutside","placement","shift","__experimentalLinkControl","key","onRemove","forceIsEditingLink","hasRichPreviews","createSuggestion","withCreateSuggestion","createSuggestionButtonText","hasTextControl","textStart","textEnd","slice","_default","exports","default"],"sources":["@wordpress/format-library/src/link/inline.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef, createInterpolateElement } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { Popover } from '@wordpress/components';\nimport { prependHTTP } from '@wordpress/url';\nimport {\n\tcreate,\n\tinsert,\n\tisCollapsed,\n\tapplyFormat,\n\tuseAnchor,\n\tremoveFormat,\n\tslice,\n\treplace,\n\tsplit,\n\tconcat,\n} from '@wordpress/rich-text';\nimport {\n\t__experimentalLinkControl as LinkControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { createLinkFormat, isValidHref, getFormatBoundary } from './utils';\nimport { link as settings } from './index';\nimport useLinkInstanceKey from './use-link-instance-key';\n\nfunction InlineLinkUI( {\n\tisActive,\n\tactiveAttributes,\n\taddingLink,\n\tvalue,\n\tonChange,\n\tstopAddingLink,\n\tcontentRef,\n} ) {\n\tconst richLinkTextValue = getRichTextValueFromSelection( value, isActive );\n\n\t// Get the text content minus any HTML tags.\n\tconst richTextText = richLinkTextValue.text;\n\n\tconst { createPageEntity, userCanCreatePages } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst _settings = getSettings();\n\n\t\treturn {\n\t\t\tcreatePageEntity: _settings.__experimentalCreatePageEntity,\n\t\t\tuserCanCreatePages: _settings.__experimentalUserCanCreatePages,\n\t\t};\n\t}, [] );\n\n\tconst linkValue = {\n\t\turl: activeAttributes.url,\n\t\ttype: activeAttributes.type,\n\t\tid: activeAttributes.id,\n\t\topensInNewTab: activeAttributes.target === '_blank',\n\t\ttitle: richTextText,\n\t};\n\n\tfunction removeLink() {\n\t\tconst newValue = removeFormat( value, 'core/link' );\n\t\tonChange( newValue );\n\t\tstopAddingLink();\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\tfunction onChangeLink( nextValue ) {\n\t\t// LinkControl calls `onChange` immediately upon the toggling a setting.\n\t\t// Before merging the next value with the current link value, check if\n\t\t// the setting was toggled.\n\t\tconst didToggleSetting =\n\t\t\tlinkValue.opensInNewTab !== nextValue.opensInNewTab &&\n\t\t\tnextValue.url === undefined;\n\n\t\t// Merge the next value with the current link value.\n\t\tnextValue = {\n\t\t\t...linkValue,\n\t\t\t...nextValue,\n\t\t};\n\n\t\tconst newUrl = prependHTTP( nextValue.url );\n\t\tconst linkFormat = createLinkFormat( {\n\t\t\turl: newUrl,\n\t\t\ttype: nextValue.type,\n\t\t\tid:\n\t\t\t\tnextValue.id !== undefined && nextValue.id !== null\n\t\t\t\t\t? String( nextValue.id )\n\t\t\t\t\t: undefined,\n\t\t\topensInNewWindow: nextValue.opensInNewTab,\n\t\t} );\n\n\t\tconst newText = nextValue.title || newUrl;\n\n\t\tif ( isCollapsed( value ) && ! isActive ) {\n\t\t\t// Scenario: we don't have any actively selected text or formats.\n\t\t\tconst toInsert = applyFormat(\n\t\t\t\tcreate( { text: newText } ),\n\t\t\t\tlinkFormat,\n\t\t\t\t0,\n\t\t\t\tnewText.length\n\t\t\t);\n\t\t\tonChange( insert( value, toInsert ) );\n\t\t} else {\n\t\t\t// Scenario: we have any active text selection or an active format.\n\t\t\tlet newValue;\n\n\t\t\tif ( newText === richTextText ) {\n\t\t\t\t// If we're not updating the text then ignore.\n\t\t\t\tnewValue = applyFormat( value, linkFormat );\n\t\t\t} else {\n\t\t\t\t// Create new RichText value for the new text in order that we\n\t\t\t\t// can apply formats to it.\n\t\t\t\tnewValue = create( { text: newText } );\n\n\t\t\t\t// Apply the new Link format to this new text value.\n\t\t\t\tnewValue = applyFormat(\n\t\t\t\t\tnewValue,\n\t\t\t\t\tlinkFormat,\n\t\t\t\t\t0,\n\t\t\t\t\tnewText.length\n\t\t\t\t);\n\n\t\t\t\t// Get the boundaries of the active link format.\n\t\t\t\tconst boundary = getFormatBoundary( value, {\n\t\t\t\t\ttype: 'core/link',\n\t\t\t\t} );\n\n\t\t\t\t// Split the value at the start of the active link format.\n\t\t\t\t// Passing \"start\" as the 3rd parameter is required to ensure\n\t\t\t\t// the second half of the split value is split at the format's\n\t\t\t\t// start boundary and avoids relying on the value's \"end\" property\n\t\t\t\t// which may not correspond correctly.\n\t\t\t\tconst [ valBefore, valAfter ] = split(\n\t\t\t\t\tvalue,\n\t\t\t\t\tboundary.start,\n\t\t\t\t\tboundary.start\n\t\t\t\t);\n\n\t\t\t\t// Update the original (full) RichTextValue replacing the\n\t\t\t\t// target text with the *new* RichTextValue containing:\n\t\t\t\t// 1. The new text content.\n\t\t\t\t// 2. The new link format.\n\t\t\t\t// As \"replace\" will operate on the first match only, it is\n\t\t\t\t// run only against the second half of the value which was\n\t\t\t\t// split at the active format's boundary. This avoids a bug\n\t\t\t\t// with incorrectly targetted replacements.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/41771.\n\t\t\t\t// Note original formats will be lost when applying this change.\n\t\t\t\t// That is expected behaviour.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/pull/33849#issuecomment-936134179.\n\t\t\t\tconst newValAfter = replace( valAfter, richTextText, newValue );\n\n\t\t\t\tnewValue = concat( valBefore, newValAfter );\n\t\t\t}\n\n\t\t\tnewValue.start = newValue.end;\n\n\t\t\t// Hides the Link UI.\n\t\t\tnewValue.activeFormats = [];\n\t\t\tonChange( newValue );\n\t\t}\n\n\t\t// Focus should only be shifted back to the formatted segment when the\n\t\t// URL is submitted.\n\t\tif ( ! didToggleSetting ) {\n\t\t\tstopAddingLink();\n\t\t}\n\n\t\tif ( ! isValidHref( newUrl ) ) {\n\t\t\tspeak(\n\t\t\t\t__(\n\t\t\t\t\t'Warning: the link has been inserted but may have errors. Please test it.'\n\t\t\t\t),\n\t\t\t\t'assertive'\n\t\t\t);\n\t\t} else if ( isActive ) {\n\t\t\tspeak( __( 'Link edited.' ), 'assertive' );\n\t\t} else {\n\t\t\tspeak( __( 'Link inserted.' ), 'assertive' );\n\t\t}\n\t}\n\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings,\n\t} );\n\n\t// Generate a string based key that is unique to this anchor reference.\n\t// This is used to force re-mount the LinkControl component to avoid\n\t// potential stale state bugs caused by the component not being remounted\n\t// See https://github.com/WordPress/gutenberg/pull/34742.\n\tconst forceRemountKey = useLinkInstanceKey( popoverAnchor );\n\n\t// The focusOnMount prop shouldn't evolve during render of a Popover\n\t// otherwise it causes a render of the content.\n\tconst focusOnMount = useRef( addingLink ? 'firstElement' : false );\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst page = await createPageEntity( {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: page.type,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tfunction createButtonText( searchTerm ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Create page: <mark>%s</mark>' ),\n\t\t\t\tsearchTerm\n\t\t\t),\n\t\t\t{ mark: <mark /> }\n\t\t);\n\t}\n\n\treturn (\n\t\t<Popover\n\t\t\tanchor={ popoverAnchor }\n\t\t\tfocusOnMount={ focusOnMount.current }\n\t\t\tonClose={ stopAddingLink }\n\t\t\tonFocusOutside={ () => stopAddingLink( false ) }\n\t\t\tplacement=\"bottom\"\n\t\t\tshift\n\t\t>\n\t\t\t<LinkControl\n\t\t\t\tkey={ forceRemountKey }\n\t\t\t\tvalue={ linkValue }\n\t\t\t\tonChange={ onChangeLink }\n\t\t\t\tonRemove={ removeLink }\n\t\t\t\tforceIsEditingLink={ addingLink }\n\t\t\t\thasRichPreviews\n\t\t\t\tcreateSuggestion={ createPageEntity && handleCreate }\n\t\t\t\twithCreateSuggestion={ userCanCreatePages }\n\t\t\t\tcreateSuggestionButtonText={ createButtonText }\n\t\t\t\thasTextControl\n\t\t\t/>\n\t\t</Popover>\n\t);\n}\n\nfunction getRichTextValueFromSelection( value, isActive ) {\n\t// Default to the selection ranges on the RichTextValue object.\n\tlet textStart = value.start;\n\tlet textEnd = value.end;\n\n\t// If the format is currently active then the rich text value\n\t// should always be taken from the bounds of the active format\n\t// and not the selected text.\n\tif ( isActive ) {\n\t\tconst boundary = getFormatBoundary( value, {\n\t\t\ttype: 'core/link',\n\t\t} );\n\n\t\ttextStart = boundary.start;\n\n\t\t// Text *selection* always extends +1 beyond the edge of the format.\n\t\t// We account for that here.\n\t\ttextEnd = boundary.end + 1;\n\t}\n\n\t// Get a RichTextValue containing the selected text content.\n\treturn slice( value, textStart, textEnd );\n}\n\nexport default InlineLinkUI;\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,IAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAYA,IAAAM,YAAA,GAAAN,OAAA;AAIA,IAAAO,KAAA,GAAAP,OAAA;AAKA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,mBAAA,GAAAC,sBAAA,CAAAX,OAAA;AA/BA;AACA;AACA;;AAwBA;AACA;AACA;;AAKA,SAASY,YAAYA,CAAE;EACtBC,QAAQ;EACRC,gBAAgB;EAChBC,UAAU;EACVC,KAAK;EACLC,QAAQ;EACRC,cAAc;EACdC;AACD,CAAC,EAAG;EACH,MAAMC,iBAAiB,GAAGC,6BAA6B,CAAEL,KAAK,EAAEH,QAAS,CAAC;;EAE1E;EACA,MAAMS,YAAY,GAAGF,iBAAiB,CAACG,IAAI;EAE3C,MAAM;IAAEC,gBAAgB;IAAEC;EAAmB,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACzE,MAAM;MAAEC;IAAY,CAAC,GAAGD,MAAM,CAAEE,kBAAiB,CAAC;IAClD,MAAMC,SAAS,GAAGF,WAAW,CAAC,CAAC;IAE/B,OAAO;MACNJ,gBAAgB,EAAEM,SAAS,CAACC,8BAA8B;MAC1DN,kBAAkB,EAAEK,SAAS,CAACE;IAC/B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,SAAS,GAAG;IACjBC,GAAG,EAAEpB,gBAAgB,CAACoB,GAAG;IACzBC,IAAI,EAAErB,gBAAgB,CAACqB,IAAI;IAC3BC,EAAE,EAAEtB,gBAAgB,CAACsB,EAAE;IACvBC,aAAa,EAAEvB,gBAAgB,CAACwB,MAAM,KAAK,QAAQ;IACnDC,KAAK,EAAEjB;EACR,CAAC;EAED,SAASkB,UAAUA,CAAA,EAAG;IACrB,MAAMC,QAAQ,GAAG,IAAAC,sBAAY,EAAE1B,KAAK,EAAE,WAAY,CAAC;IACnDC,QAAQ,CAAEwB,QAAS,CAAC;IACpBvB,cAAc,CAAC,CAAC;IAChB,IAAAyB,WAAK,EAAE,IAAAC,QAAE,EAAE,eAAgB,CAAC,EAAE,WAAY,CAAC;EAC5C;EAEA,SAASC,YAAYA,CAAEC,SAAS,EAAG;IAClC;IACA;IACA;IACA,MAAMC,gBAAgB,GACrBd,SAAS,CAACI,aAAa,KAAKS,SAAS,CAACT,aAAa,IACnDS,SAAS,CAACZ,GAAG,KAAKc,SAAS;;IAE5B;IACAF,SAAS,GAAG;MACX,GAAGb,SAAS;MACZ,GAAGa;IACJ,CAAC;IAED,MAAMG,MAAM,GAAG,IAAAC,gBAAW,EAAEJ,SAAS,CAACZ,GAAI,CAAC;IAC3C,MAAMiB,UAAU,GAAG,IAAAC,uBAAgB,EAAE;MACpClB,GAAG,EAAEe,MAAM;MACXd,IAAI,EAAEW,SAAS,CAACX,IAAI;MACpBC,EAAE,EACDU,SAAS,CAACV,EAAE,KAAKY,SAAS,IAAIF,SAAS,CAACV,EAAE,KAAK,IAAI,GAChDiB,MAAM,CAAEP,SAAS,CAACV,EAAG,CAAC,GACtBY,SAAS;MACbM,gBAAgB,EAAER,SAAS,CAACT;IAC7B,CAAE,CAAC;IAEH,MAAMkB,OAAO,GAAGT,SAAS,CAACP,KAAK,IAAIU,MAAM;IAEzC,IAAK,IAAAO,qBAAW,EAAExC,KAAM,CAAC,IAAI,CAAEH,QAAQ,EAAG;MACzC;MACA,MAAM4C,QAAQ,GAAG,IAAAC,qBAAW,EAC3B,IAAAC,gBAAM,EAAE;QAAEpC,IAAI,EAAEgC;MAAQ,CAAE,CAAC,EAC3BJ,UAAU,EACV,CAAC,EACDI,OAAO,CAACK,MACT,CAAC;MACD3C,QAAQ,CAAE,IAAA4C,gBAAM,EAAE7C,KAAK,EAAEyC,QAAS,CAAE,CAAC;IACtC,CAAC,MAAM;MACN;MACA,IAAIhB,QAAQ;MAEZ,IAAKc,OAAO,KAAKjC,YAAY,EAAG;QAC/B;QACAmB,QAAQ,GAAG,IAAAiB,qBAAW,EAAE1C,KAAK,EAAEmC,UAAW,CAAC;MAC5C,CAAC,MAAM;QACN;QACA;QACAV,QAAQ,GAAG,IAAAkB,gBAAM,EAAE;UAAEpC,IAAI,EAAEgC;QAAQ,CAAE,CAAC;;QAEtC;QACAd,QAAQ,GAAG,IAAAiB,qBAAW,EACrBjB,QAAQ,EACRU,UAAU,EACV,CAAC,EACDI,OAAO,CAACK,MACT,CAAC;;QAED;QACA,MAAME,QAAQ,GAAG,IAAAC,wBAAiB,EAAE/C,KAAK,EAAE;UAC1CmB,IAAI,EAAE;QACP,CAAE,CAAC;;QAEH;QACA;QACA;QACA;QACA;QACA,MAAM,CAAE6B,SAAS,EAAEC,QAAQ,CAAE,GAAG,IAAAC,eAAK,EACpClD,KAAK,EACL8C,QAAQ,CAACK,KAAK,EACdL,QAAQ,CAACK,KACV,CAAC;;QAED;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAMC,WAAW,GAAG,IAAAC,iBAAO,EAAEJ,QAAQ,EAAE3C,YAAY,EAAEmB,QAAS,CAAC;QAE/DA,QAAQ,GAAG,IAAA6B,gBAAM,EAAEN,SAAS,EAAEI,WAAY,CAAC;MAC5C;MAEA3B,QAAQ,CAAC0B,KAAK,GAAG1B,QAAQ,CAAC8B,GAAG;;MAE7B;MACA9B,QAAQ,CAAC+B,aAAa,GAAG,EAAE;MAC3BvD,QAAQ,CAAEwB,QAAS,CAAC;IACrB;;IAEA;IACA;IACA,IAAK,CAAEM,gBAAgB,EAAG;MACzB7B,cAAc,CAAC,CAAC;IACjB;IAEA,IAAK,CAAE,IAAAuD,kBAAW,EAAExB,MAAO,CAAC,EAAG;MAC9B,IAAAN,WAAK,EACJ,IAAAC,QAAE,EACD,0EACD,CAAC,EACD,WACD,CAAC;IACF,CAAC,MAAM,IAAK/B,QAAQ,EAAG;MACtB,IAAA8B,WAAK,EAAE,IAAAC,QAAE,EAAE,cAAe,CAAC,EAAE,WAAY,CAAC;IAC3C,CAAC,MAAM;MACN,IAAAD,WAAK,EAAE,IAAAC,QAAE,EAAE,gBAAiB,CAAC,EAAE,WAAY,CAAC;IAC7C;EACD;EAEA,MAAM8B,aAAa,GAAG,IAAAC,mBAAS,EAAE;IAChCC,sBAAsB,EAAEzD,UAAU,CAAC0D,OAAO;IAC1CC,QAAQ,EAARA;EACD,CAAE,CAAC;;EAEH;EACA;EACA;EACA;EACA,MAAMC,eAAe,GAAG,IAAAC,2BAAkB,EAAEN,aAAc,CAAC;;EAE3D;EACA;EACA,MAAMO,YAAY,GAAG,IAAAC,eAAM,EAAEnE,UAAU,GAAG,cAAc,GAAG,KAAM,CAAC;EAElE,eAAeoE,YAAYA,CAAEC,SAAS,EAAG;IACxC,MAAMC,IAAI,GAAG,MAAM7D,gBAAgB,CAAE;MACpCe,KAAK,EAAE6C,SAAS;MAChBE,MAAM,EAAE;IACT,CAAE,CAAC;IAEH,OAAO;MACNlD,EAAE,EAAEiD,IAAI,CAACjD,EAAE;MACXD,IAAI,EAAEkD,IAAI,CAAClD,IAAI;MACfI,KAAK,EAAE8C,IAAI,CAAC9C,KAAK,CAACgD,QAAQ;MAC1BrD,GAAG,EAAEmD,IAAI,CAACG,IAAI;MACdC,IAAI,EAAE;IACP,CAAC;EACF;EAEA,SAASC,gBAAgBA,CAAEC,UAAU,EAAG;IACvC,OAAO,IAAAC,iCAAwB,EAC9B,IAAAC,aAAO,GACN;IACA,IAAAjD,QAAE,EAAE,8BAA+B,CAAC,EACpC+C,UACD,CAAC,EACD;MAAEG,IAAI,EAAE,IAAA/F,QAAA,CAAAgG,aAAA,cAAO;IAAE,CAClB,CAAC;EACF;EAEA,OACC,IAAAhG,QAAA,CAAAgG,aAAA,EAAC5F,WAAA,CAAA6F,OAAO;IACPC,MAAM,EAAGvB,aAAe;IACxBO,YAAY,EAAGA,YAAY,CAACJ,OAAS;IACrCqB,OAAO,EAAGhF,cAAgB;IAC1BiF,cAAc,EAAGA,CAAA,KAAMjF,cAAc,CAAE,KAAM,CAAG;IAChDkF,SAAS,EAAC,QAAQ;IAClBC,KAAK;EAAA,GAEL,IAAAtG,QAAA,CAAAgG,aAAA,EAACzF,YAAA,CAAAgG,yBAAW;IACXC,GAAG,EAAGxB,eAAiB;IACvB/D,KAAK,EAAGiB,SAAW;IACnBhB,QAAQ,EAAG4B,YAAc;IACzB2D,QAAQ,EAAGhE,UAAY;IACvBiE,kBAAkB,EAAG1F,UAAY;IACjC2F,eAAe;IACfC,gBAAgB,EAAGnF,gBAAgB,IAAI2D,YAAc;IACrDyB,oBAAoB,EAAGnF,kBAAoB;IAC3CoF,0BAA0B,EAAGnB,gBAAkB;IAC/CoB,cAAc;EAAA,CACd,CACO,CAAC;AAEZ;AAEA,SAASzF,6BAA6BA,CAAEL,KAAK,EAAEH,QAAQ,EAAG;EACzD;EACA,IAAIkG,SAAS,GAAG/F,KAAK,CAACmD,KAAK;EAC3B,IAAI6C,OAAO,GAAGhG,KAAK,CAACuD,GAAG;;EAEvB;EACA;EACA;EACA,IAAK1D,QAAQ,EAAG;IACf,MAAMiD,QAAQ,GAAG,IAAAC,wBAAiB,EAAE/C,KAAK,EAAE;MAC1CmB,IAAI,EAAE;IACP,CAAE,CAAC;IAEH4E,SAAS,GAAGjD,QAAQ,CAACK,KAAK;;IAE1B;IACA;IACA6C,OAAO,GAAGlD,QAAQ,CAACS,GAAG,GAAG,CAAC;EAC3B;;EAEA;EACA,OAAO,IAAA0C,eAAK,EAAEjG,KAAK,EAAE+F,SAAS,EAAEC,OAAQ,CAAC;AAC1C;AAAC,IAAAE,QAAA,GAEctG,YAAY;AAAAuG,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -1,22 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _element = require("@wordpress/element");
11
-
12
9
  var _reactNative = require("react-native");
13
-
14
10
  var _native = require("@react-navigation/native");
15
-
16
11
  var _components = require("@wordpress/components");
17
-
18
12
  var _screens = _interopRequireDefault(require("./screens"));
19
-
20
13
  /**
21
14
  * External dependencies
22
15
  */
@@ -28,18 +21,17 @@ var _screens = _interopRequireDefault(require("./screens"));
28
21
  /**
29
22
  * Internal dependencies
30
23
  */
24
+
31
25
  const LinkPickerScreen = () => {
32
26
  const navigation = (0, _native.useNavigation)();
33
27
  const route = (0, _native.useRoute)();
34
28
  const navigateToLinkTimeoutRef = (0, _element.useRef)(null);
35
29
  const navigateBackTimeoutRef = (0, _element.useRef)(null);
36
-
37
30
  const onLinkPicked = ({
38
31
  url,
39
32
  title
40
33
  }) => {
41
34
  _reactNative.Keyboard.dismiss();
42
-
43
35
  navigateToLinkTimeoutRef.current = setTimeout(() => {
44
36
  navigation.navigate(_screens.default.settings, {
45
37
  inputValue: url,
@@ -47,15 +39,12 @@ const LinkPickerScreen = () => {
47
39
  });
48
40
  }, 100);
49
41
  };
50
-
51
42
  const onCancel = () => {
52
43
  _reactNative.Keyboard.dismiss();
53
-
54
44
  navigateBackTimeoutRef.current = setTimeout(() => {
55
45
  navigation.goBack();
56
46
  }, 100);
57
47
  };
58
-
59
48
  (0, _element.useEffect)(() => {
60
49
  return () => {
61
50
  clearTimeout(navigateToLinkTimeoutRef.current);
@@ -73,7 +62,6 @@ const LinkPickerScreen = () => {
73
62
  });
74
63
  }, [inputValue]);
75
64
  };
76
-
77
65
  var _default = LinkPickerScreen;
78
66
  exports.default = _default;
79
67
  //# sourceMappingURL=link-picker-screen.native.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/link/modal-screens/link-picker-screen.native.js"],"names":["LinkPickerScreen","navigation","route","navigateToLinkTimeoutRef","navigateBackTimeoutRef","onLinkPicked","url","title","Keyboard","dismiss","current","setTimeout","navigate","linkSettingsScreens","settings","inputValue","text","onCancel","goBack","clearTimeout","params"],"mappings":";;;;;;;;;AASA;;AANA;;AACA;;AAOA;;AAKA;;AAhBA;AACA;AACA;;AAIA;AACA;AACA;;AAKA;AACA;AACA;AAGA,MAAMA,gBAAgB,GAAG,MAAM;AAC9B,QAAMC,UAAU,GAAG,4BAAnB;AACA,QAAMC,KAAK,GAAG,uBAAd;AACA,QAAMC,wBAAwB,GAAG,qBAAQ,IAAR,CAAjC;AACA,QAAMC,sBAAsB,GAAG,qBAAQ,IAAR,CAA/B;;AAEA,QAAMC,YAAY,GAAG,CAAE;AAAEC,IAAAA,GAAF;AAAOC,IAAAA;AAAP,GAAF,KAAsB;AAC1CC,0BAASC,OAAT;;AACAN,IAAAA,wBAAwB,CAACO,OAAzB,GAAmCC,UAAU,CAAE,MAAM;AACpDV,MAAAA,UAAU,CAACW,QAAX,CAAqBC,iBAAoBC,QAAzC,EAAmD;AAClDC,QAAAA,UAAU,EAAET,GADsC;AAElDU,QAAAA,IAAI,EAAET;AAF4C,OAAnD;AAIA,KAL4C,EAK1C,GAL0C,CAA7C;AAMA,GARD;;AAUA,QAAMU,QAAQ,GAAG,MAAM;AACtBT,0BAASC,OAAT;;AACAL,IAAAA,sBAAsB,CAACM,OAAvB,GAAiCC,UAAU,CAAE,MAAM;AAClDV,MAAAA,UAAU,CAACiB,MAAX;AACA,KAF0C,EAExC,GAFwC,CAA3C;AAGA,GALD;;AAOA,0BAAW,MAAM;AAChB,WAAO,MAAM;AACZC,MAAAA,YAAY,CAAEhB,wBAAwB,CAACO,OAA3B,CAAZ;AACAS,MAAAA,YAAY,CAAEf,sBAAsB,CAACM,OAAzB,CAAZ;AACA,KAHD;AAIA,GALD,EAKG,EALH;AAOA,QAAM;AAAEK,IAAAA;AAAF,MAAiBb,KAAK,CAACkB,MAA7B;AACA,SAAO,sBAAS,MAAM;AACrB,WACC,4BAAC,sBAAD;AACC,MAAA,KAAK,EAAGL,UADT;AAEC,MAAA,YAAY,EAAGV,YAFhB;AAGC,MAAA,QAAQ,EAAGY;AAHZ,MADD;AAOA,GARM,EAQJ,CAAEF,UAAF,CARI,CAAP;AASA,CAxCD;;eA0Cef,gB","sourcesContent":["/**\n * External dependencies\n */\nimport { Keyboard } from 'react-native';\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo, useRef } from '@wordpress/element';\n\nimport { LinkPicker } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport linkSettingsScreens from './screens';\n\nconst LinkPickerScreen = () => {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst navigateToLinkTimeoutRef = useRef( null );\n\tconst navigateBackTimeoutRef = useRef( null );\n\n\tconst onLinkPicked = ( { url, title } ) => {\n\t\tKeyboard.dismiss();\n\t\tnavigateToLinkTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.navigate( linkSettingsScreens.settings, {\n\t\t\t\tinputValue: url,\n\t\t\t\ttext: title,\n\t\t\t} );\n\t\t}, 100 );\n\t};\n\n\tconst onCancel = () => {\n\t\tKeyboard.dismiss();\n\t\tnavigateBackTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.goBack();\n\t\t}, 100 );\n\t};\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tclearTimeout( navigateToLinkTimeoutRef.current );\n\t\t\tclearTimeout( navigateBackTimeoutRef.current );\n\t\t};\n\t}, [] );\n\n\tconst { inputValue } = route.params;\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<LinkPicker\n\t\t\t\tvalue={ inputValue }\n\t\t\t\tonLinkPicked={ onLinkPicked }\n\t\t\t\tonCancel={ onCancel }\n\t\t\t/>\n\t\t);\n\t}, [ inputValue ] );\n};\n\nexport default LinkPickerScreen;\n"]}
1
+ {"version":3,"names":["_element","require","_reactNative","_native","_components","_screens","_interopRequireDefault","LinkPickerScreen","navigation","useNavigation","route","useRoute","navigateToLinkTimeoutRef","useRef","navigateBackTimeoutRef","onLinkPicked","url","title","Keyboard","dismiss","current","setTimeout","navigate","linkSettingsScreens","settings","inputValue","text","onCancel","goBack","useEffect","clearTimeout","params","useMemo","createElement","LinkPicker","value","_default","exports","default"],"sources":["@wordpress/format-library/src/link/modal-screens/link-picker-screen.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Keyboard } from 'react-native';\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo, useRef } from '@wordpress/element';\n\nimport { LinkPicker } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport linkSettingsScreens from './screens';\n\nconst LinkPickerScreen = () => {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst navigateToLinkTimeoutRef = useRef( null );\n\tconst navigateBackTimeoutRef = useRef( null );\n\n\tconst onLinkPicked = ( { url, title } ) => {\n\t\tKeyboard.dismiss();\n\t\tnavigateToLinkTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.navigate( linkSettingsScreens.settings, {\n\t\t\t\tinputValue: url,\n\t\t\t\ttext: title,\n\t\t\t} );\n\t\t}, 100 );\n\t};\n\n\tconst onCancel = () => {\n\t\tKeyboard.dismiss();\n\t\tnavigateBackTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.goBack();\n\t\t}, 100 );\n\t};\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tclearTimeout( navigateToLinkTimeoutRef.current );\n\t\t\tclearTimeout( navigateBackTimeoutRef.current );\n\t\t};\n\t}, [] );\n\n\tconst { inputValue } = route.params;\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<LinkPicker\n\t\t\t\tvalue={ inputValue }\n\t\t\t\tonLinkPicked={ onLinkPicked }\n\t\t\t\tonCancel={ onCancel }\n\t\t\t/>\n\t\t);\n\t}, [ inputValue ] );\n};\n\nexport default LinkPickerScreen;\n"],"mappings":";;;;;;;AASA,IAAAA,QAAA,GAAAC,OAAA;AANA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAOA,IAAAG,WAAA,GAAAH,OAAA;AAKA,IAAAI,QAAA,GAAAC,sBAAA,CAAAL,OAAA;AAhBA;AACA;AACA;;AAIA;AACA;AACA;;AAKA;AACA;AACA;;AAGA,MAAMM,gBAAgB,GAAGA,CAAA,KAAM;EAC9B,MAAMC,UAAU,GAAG,IAAAC,qBAAa,EAAC,CAAC;EAClC,MAAMC,KAAK,GAAG,IAAAC,gBAAQ,EAAC,CAAC;EACxB,MAAMC,wBAAwB,GAAG,IAAAC,eAAM,EAAE,IAAK,CAAC;EAC/C,MAAMC,sBAAsB,GAAG,IAAAD,eAAM,EAAE,IAAK,CAAC;EAE7C,MAAME,YAAY,GAAGA,CAAE;IAAEC,GAAG;IAAEC;EAAM,CAAC,KAAM;IAC1CC,qBAAQ,CAACC,OAAO,CAAC,CAAC;IAClBP,wBAAwB,CAACQ,OAAO,GAAGC,UAAU,CAAE,MAAM;MACpDb,UAAU,CAACc,QAAQ,CAAEC,gBAAmB,CAACC,QAAQ,EAAE;QAClDC,UAAU,EAAET,GAAG;QACfU,IAAI,EAAET;MACP,CAAE,CAAC;IACJ,CAAC,EAAE,GAAI,CAAC;EACT,CAAC;EAED,MAAMU,QAAQ,GAAGA,CAAA,KAAM;IACtBT,qBAAQ,CAACC,OAAO,CAAC,CAAC;IAClBL,sBAAsB,CAACM,OAAO,GAAGC,UAAU,CAAE,MAAM;MAClDb,UAAU,CAACoB,MAAM,CAAC,CAAC;IACpB,CAAC,EAAE,GAAI,CAAC;EACT,CAAC;EAED,IAAAC,kBAAS,EAAE,MAAM;IAChB,OAAO,MAAM;MACZC,YAAY,CAAElB,wBAAwB,CAACQ,OAAQ,CAAC;MAChDU,YAAY,CAAEhB,sBAAsB,CAACM,OAAQ,CAAC;IAC/C,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM;IAAEK;EAAW,CAAC,GAAGf,KAAK,CAACqB,MAAM;EACnC,OAAO,IAAAC,gBAAO,EAAE,MAAM;IACrB,OACC,IAAAhC,QAAA,CAAAiC,aAAA,EAAC7B,WAAA,CAAA8B,UAAU;MACVC,KAAK,EAAGV,UAAY;MACpBV,YAAY,EAAGA,YAAc;MAC7BY,QAAQ,EAAGA;IAAU,CACrB,CAAC;EAEJ,CAAC,EAAE,CAAEF,UAAU,CAAG,CAAC;AACpB,CAAC;AAAC,IAAAW,QAAA,GAEa7B,gBAAgB;AAAA8B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -1,32 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _element = require("@wordpress/element");
11
-
12
9
  var _native = require("@react-navigation/native");
13
-
14
10
  var _i18n = require("@wordpress/i18n");
15
-
16
11
  var _url = require("@wordpress/url");
17
-
18
12
  var _components = require("@wordpress/components");
19
-
20
13
  var _richText = require("@wordpress/rich-text");
21
-
22
14
  var _icons = require("@wordpress/icons");
23
-
24
15
  var _utils = require("../utils");
25
-
26
16
  var _screens = _interopRequireDefault(require("./screens"));
27
-
28
17
  var _modal = _interopRequireDefault(require("../modal.scss"));
29
-
30
18
  /**
31
19
  * External dependencies
32
20
  */
@@ -38,6 +26,7 @@ var _modal = _interopRequireDefault(require("../modal.scss"));
38
26
  /**
39
27
  * Internal dependencies
40
28
  */
29
+
41
30
  const LinkSettingsScreen = ({
42
31
  onRemove,
43
32
  onClose,
@@ -64,14 +53,12 @@ const LinkSettingsScreen = ({
64
53
  const {
65
54
  inputValue = activeAttributes.url || ''
66
55
  } = route.params || {};
67
-
68
56
  const onLinkCellPressed = () => {
69
57
  shouldEnableBottomSheetMaxHeight(false);
70
58
  navigation.navigate(_screens.default.picker, {
71
59
  inputValue
72
60
  });
73
61
  };
74
-
75
62
  (0, _element.useEffect)(() => {
76
63
  onHandleClosingBottomSheet(() => {
77
64
  submit(inputValue, {
@@ -84,7 +71,6 @@ const LinkSettingsScreen = ({
84
71
  isActiveLink,
85
72
  isRemovingLink
86
73
  } = linkValues;
87
-
88
74
  if (!!inputValue && !isActiveLink && isVisible) {
89
75
  submitLink({
90
76
  shouldCloseBottomSheet: false
@@ -95,14 +81,13 @@ const LinkSettingsScreen = ({
95
81
  });
96
82
  }
97
83
  }, [inputValue, isVisible, linkValues.isActiveLink, linkValues.isRemovingLink]);
98
-
99
84
  const clearFormat = ({
100
85
  skipStateUpdates = false
101
86
  } = {}) => {
102
- onChange({ ...value,
87
+ onChange({
88
+ ...value,
103
89
  activeFormats: []
104
90
  });
105
-
106
91
  if (!skipStateUpdates) {
107
92
  setLinkValues({
108
93
  isActiveLink: false,
@@ -110,7 +95,6 @@ const LinkSettingsScreen = ({
110
95
  });
111
96
  }
112
97
  };
113
-
114
98
  const submitLink = ({
115
99
  shouldCloseBottomSheet = true,
116
100
  skipStateUpdates = false
@@ -123,7 +107,6 @@ const LinkSettingsScreen = ({
123
107
  text: linkText
124
108
  });
125
109
  let newAttributes;
126
-
127
110
  if ((0, _richText.isCollapsed)(value) && !isActive) {
128
111
  // Insert link.
129
112
  const toInsert = (0, _richText.applyFormat)((0, _richText.create)({
@@ -139,30 +122,27 @@ const LinkSettingsScreen = ({
139
122
  } else {
140
123
  // Transform selected text into link.
141
124
  newAttributes = (0, _richText.applyFormat)(value, format);
142
- } // Move selection to end of link.
143
-
144
-
145
- const textLength = newAttributes.text.length; // check for zero width spaces
146
-
125
+ }
126
+ // Move selection to end of link.
127
+ const textLength = newAttributes.text.length;
128
+ // check for zero width spaces
147
129
  if (newAttributes.end > textLength) {
148
130
  newAttributes.start = textLength;
149
131
  newAttributes.end = textLength;
150
132
  } else {
151
133
  newAttributes.start = newAttributes.end;
152
134
  }
153
-
154
135
  newAttributes.activeFormats = [];
155
- onChange({ ...newAttributes,
136
+ onChange({
137
+ ...newAttributes,
156
138
  needsSelectionUpdate: true
157
139
  });
158
-
159
140
  if (!skipStateUpdates) {
160
141
  setLinkValues({
161
142
  isActiveLink: true,
162
143
  isRemovingLink: false
163
144
  });
164
145
  }
165
-
166
146
  if (!(0, _utils.isValidHref)(url)) {
167
147
  speak((0, _i18n.__)('Warning: the link has been inserted but may have errors. Please test it.'), 'assertive');
168
148
  } else if (isActive) {
@@ -170,12 +150,10 @@ const LinkSettingsScreen = ({
170
150
  } else {
171
151
  speak((0, _i18n.__)('Link inserted'), 'assertive');
172
152
  }
173
-
174
153
  if (shouldCloseBottomSheet) {
175
154
  onClose();
176
155
  }
177
156
  };
178
-
179
157
  const removeLink = ({
180
158
  shouldCloseBottomSheet = true,
181
159
  skipStateUpdates = false
@@ -184,12 +162,10 @@ const LinkSettingsScreen = ({
184
162
  skipStateUpdates
185
163
  });
186
164
  onRemove();
187
-
188
165
  if (shouldCloseBottomSheet) {
189
166
  onClose();
190
167
  }
191
168
  };
192
-
193
169
  const submit = (submitValue, {
194
170
  skipStateUpdates = false
195
171
  } = {}) => {
@@ -203,13 +179,11 @@ const LinkSettingsScreen = ({
203
179
  });
204
180
  }
205
181
  };
206
-
207
182
  (0, _element.useEffect)(() => {
208
183
  const unsubscribe = navigation.addListener('focus', () => {
209
184
  const {
210
185
  params = {}
211
186
  } = route;
212
-
213
187
  if (!text && params.text) {
214
188
  setText(params.text);
215
189
  }
@@ -243,7 +217,6 @@ const LinkSettingsScreen = ({
243
217
  })));
244
218
  }, [inputValue, text, opensInNewWindow, listProps.safeAreaBottomInset]);
245
219
  };
246
-
247
220
  var _default = LinkSettingsScreen;
248
221
  exports.default = _default;
249
222
  //# sourceMappingURL=link-settings-screen.native.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/link/modal-screens/link-settings-screen.native.js"],"names":["LinkSettingsScreen","onRemove","onClose","onChange","speak","value","isActive","activeAttributes","isVisible","text","setText","opensInNewWindow","setOpensInNewWindows","target","linkValues","setLinkValues","isActiveLink","isRemovingLink","shouldEnableBottomSheetMaxHeight","onHandleClosingBottomSheet","listProps","BottomSheetContext","navigation","route","inputValue","url","params","onLinkCellPressed","navigate","linkSettingsScreens","picker","submit","skipStateUpdates","submitLink","shouldCloseBottomSheet","removeLink","clearFormat","activeFormats","linkText","format","newAttributes","toInsert","length","start","end","textLength","needsSelectionUpdate","submitValue","unsubscribe","addListener","shouldShowLinkOptions","textColor","undefined","external","styles","clearLinkButton","safeAreaBottomInset"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useContext, useEffect, useMemo } from '@wordpress/element';\nimport { prependHTTP } from '@wordpress/url';\nimport { BottomSheet, BottomSheetContext } from '@wordpress/components';\nimport {\n\tcreate,\n\tinsert,\n\tisCollapsed,\n\tapplyFormat,\n\tgetTextContent,\n\tslice,\n} from '@wordpress/rich-text';\nimport { external, textColor } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { createLinkFormat, isValidHref } from '../utils';\nimport linkSettingsScreens from './screens';\n\nimport styles from '../modal.scss';\n\nconst LinkSettingsScreen = ( {\n\tonRemove,\n\tonClose,\n\tonChange,\n\tspeak,\n\tvalue,\n\tisActive,\n\tactiveAttributes,\n\tisVisible,\n} ) => {\n\tconst [ text, setText ] = useState( getTextContent( slice( value ) ) );\n\tconst [ opensInNewWindow, setOpensInNewWindows ] = useState(\n\t\tactiveAttributes.target === '_blank'\n\t);\n\tconst [ linkValues, setLinkValues ] = useState( {\n\t\tisActiveLink: isActive,\n\t\tisRemovingLink: false,\n\t} );\n\n\tconst {\n\t\tshouldEnableBottomSheetMaxHeight,\n\t\tonHandleClosingBottomSheet,\n\t\tlistProps,\n\t} = useContext( BottomSheetContext );\n\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst { inputValue = activeAttributes.url || '' } = route.params || {};\n\tconst onLinkCellPressed = () => {\n\t\tshouldEnableBottomSheetMaxHeight( false );\n\t\tnavigation.navigate( linkSettingsScreens.picker, { inputValue } );\n\t};\n\tuseEffect( () => {\n\t\tonHandleClosingBottomSheet( () => {\n\t\t\tsubmit( inputValue, { skipStateUpdates: true } );\n\t\t} );\n\t}, [ inputValue, opensInNewWindow, text ] );\n\n\tuseEffect( () => {\n\t\tconst { isActiveLink, isRemovingLink } = linkValues;\n\t\tif ( !! inputValue && ! isActiveLink && isVisible ) {\n\t\t\tsubmitLink( { shouldCloseBottomSheet: false } );\n\t\t} else if (\n\t\t\t( ( inputValue === '' && isActiveLink ) || isRemovingLink ) &&\n\t\t\tisVisible\n\t\t) {\n\t\t\tremoveLink( { shouldCloseBottomSheet: false } );\n\t\t}\n\t}, [\n\t\tinputValue,\n\t\tisVisible,\n\t\tlinkValues.isActiveLink,\n\t\tlinkValues.isRemovingLink,\n\t] );\n\n\tconst clearFormat = ( { skipStateUpdates = false } = {} ) => {\n\t\tonChange( { ...value, activeFormats: [] } );\n\t\tif ( ! skipStateUpdates ) {\n\t\t\tsetLinkValues( { isActiveLink: false, isRemovingLink: true } );\n\t\t}\n\t};\n\n\tconst submitLink = ( {\n\t\tshouldCloseBottomSheet = true,\n\t\tskipStateUpdates = false,\n\t} = {} ) => {\n\t\tconst url = prependHTTP( inputValue );\n\t\tconst linkText = text || inputValue;\n\t\tconst format = createLinkFormat( {\n\t\t\turl,\n\t\t\topensInNewWindow,\n\t\t\ttext: linkText,\n\t\t} );\n\t\tlet newAttributes;\n\t\tif ( isCollapsed( value ) && ! isActive ) {\n\t\t\t// Insert link.\n\t\t\tconst toInsert = applyFormat(\n\t\t\t\tcreate( { text: linkText } ),\n\t\t\t\tformat,\n\t\t\t\t0,\n\t\t\t\tlinkText.length\n\t\t\t);\n\t\t\tnewAttributes = insert( value, toInsert );\n\t\t} else if ( text !== getTextContent( slice( value ) ) ) {\n\t\t\t// Edit text in selected link.\n\t\t\tconst toInsert = applyFormat(\n\t\t\t\tcreate( { text } ),\n\t\t\t\tformat,\n\t\t\t\t0,\n\t\t\t\ttext.length\n\t\t\t);\n\t\t\tnewAttributes = insert( value, toInsert, value.start, value.end );\n\t\t} else {\n\t\t\t// Transform selected text into link.\n\t\t\tnewAttributes = applyFormat( value, format );\n\t\t}\n\t\t// Move selection to end of link.\n\t\tconst textLength = newAttributes.text.length;\n\t\t// check for zero width spaces\n\t\tif ( newAttributes.end > textLength ) {\n\t\t\tnewAttributes.start = textLength;\n\t\t\tnewAttributes.end = textLength;\n\t\t} else {\n\t\t\tnewAttributes.start = newAttributes.end;\n\t\t}\n\t\tnewAttributes.activeFormats = [];\n\t\tonChange( { ...newAttributes, needsSelectionUpdate: true } );\n\t\tif ( ! skipStateUpdates ) {\n\t\t\tsetLinkValues( { isActiveLink: true, isRemovingLink: false } );\n\t\t}\n\n\t\tif ( ! isValidHref( url ) ) {\n\t\t\tspeak(\n\t\t\t\t__(\n\t\t\t\t\t'Warning: the link has been inserted but may have errors. Please test it.'\n\t\t\t\t),\n\t\t\t\t'assertive'\n\t\t\t);\n\t\t} else if ( isActive ) {\n\t\t\tspeak( __( 'Link edited.' ), 'assertive' );\n\t\t} else {\n\t\t\tspeak( __( 'Link inserted' ), 'assertive' );\n\t\t}\n\n\t\tif ( shouldCloseBottomSheet ) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst removeLink = ( {\n\t\tshouldCloseBottomSheet = true,\n\t\tskipStateUpdates = false,\n\t} = {} ) => {\n\t\tclearFormat( { skipStateUpdates } );\n\t\tonRemove();\n\t\tif ( shouldCloseBottomSheet ) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst submit = ( submitValue, { skipStateUpdates = false } = {} ) => {\n\t\tif ( submitValue === '' ) {\n\t\t\tremoveLink( { skipStateUpdates } );\n\t\t} else {\n\t\t\tsubmitLink( { skipStateUpdates } );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tconst unsubscribe = navigation.addListener( 'focus', () => {\n\t\t\tconst { params = {} } = route;\n\t\t\tif ( ! text && params.text ) {\n\t\t\t\tsetText( params.text );\n\t\t\t}\n\t\t} );\n\t\treturn unsubscribe;\n\t}, [ navigation, route.params?.text, text ] );\n\n\treturn useMemo( () => {\n\t\tconst shouldShowLinkOptions = !! inputValue;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BottomSheet.LinkCell\n\t\t\t\t\tvalue={ inputValue }\n\t\t\t\t\tonPress={ onLinkCellPressed }\n\t\t\t\t/>\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\ticon={ textColor }\n\t\t\t\t\tlabel={ __( 'Link text' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tplaceholder={ __( 'Add link text' ) }\n\t\t\t\t\tonChangeValue={ setText }\n\t\t\t\t\tonSubmit={ submit }\n\t\t\t\t\tseparatorType={ shouldShowLinkOptions ? undefined : 'none' }\n\t\t\t\t/>\n\t\t\t\t{ shouldShowLinkOptions && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BottomSheet.SwitchCell\n\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tvalue={ opensInNewWindow }\n\t\t\t\t\t\t\tonValueChange={ setOpensInNewWindows }\n\t\t\t\t\t\t\tseparatorType={ 'fullWidth' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\t\tlabelStyle={ styles.clearLinkButton }\n\t\t\t\t\t\t\tseparatorType={ 'none' }\n\t\t\t\t\t\t\tonPress={ removeLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [ inputValue, text, opensInNewWindow, listProps.safeAreaBottomInset ] );\n};\n\nexport default LinkSettingsScreen;\n"]}
1
+ {"version":3,"names":["_element","require","_native","_i18n","_url","_components","_richText","_icons","_utils","_screens","_interopRequireDefault","_modal","LinkSettingsScreen","onRemove","onClose","onChange","speak","value","isActive","activeAttributes","isVisible","text","setText","useState","getTextContent","slice","opensInNewWindow","setOpensInNewWindows","target","linkValues","setLinkValues","isActiveLink","isRemovingLink","shouldEnableBottomSheetMaxHeight","onHandleClosingBottomSheet","listProps","useContext","BottomSheetContext","navigation","useNavigation","route","useRoute","inputValue","url","params","onLinkCellPressed","navigate","linkSettingsScreens","picker","useEffect","submit","skipStateUpdates","submitLink","shouldCloseBottomSheet","removeLink","clearFormat","activeFormats","prependHTTP","linkText","format","createLinkFormat","newAttributes","isCollapsed","toInsert","applyFormat","create","length","insert","start","end","textLength","needsSelectionUpdate","isValidHref","__","submitValue","unsubscribe","addListener","useMemo","shouldShowLinkOptions","createElement","Fragment","BottomSheet","LinkCell","onPress","Cell","icon","textColor","label","placeholder","onChangeValue","onSubmit","separatorType","undefined","SwitchCell","external","onValueChange","labelStyle","styles","clearLinkButton","safeAreaBottomInset","_default","exports","default"],"sources":["@wordpress/format-library/src/link/modal-screens/link-settings-screen.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useContext, useEffect, useMemo } from '@wordpress/element';\nimport { prependHTTP } from '@wordpress/url';\nimport { BottomSheet, BottomSheetContext } from '@wordpress/components';\nimport {\n\tcreate,\n\tinsert,\n\tisCollapsed,\n\tapplyFormat,\n\tgetTextContent,\n\tslice,\n} from '@wordpress/rich-text';\nimport { external, textColor } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { createLinkFormat, isValidHref } from '../utils';\nimport linkSettingsScreens from './screens';\n\nimport styles from '../modal.scss';\n\nconst LinkSettingsScreen = ( {\n\tonRemove,\n\tonClose,\n\tonChange,\n\tspeak,\n\tvalue,\n\tisActive,\n\tactiveAttributes,\n\tisVisible,\n} ) => {\n\tconst [ text, setText ] = useState( getTextContent( slice( value ) ) );\n\tconst [ opensInNewWindow, setOpensInNewWindows ] = useState(\n\t\tactiveAttributes.target === '_blank'\n\t);\n\tconst [ linkValues, setLinkValues ] = useState( {\n\t\tisActiveLink: isActive,\n\t\tisRemovingLink: false,\n\t} );\n\n\tconst {\n\t\tshouldEnableBottomSheetMaxHeight,\n\t\tonHandleClosingBottomSheet,\n\t\tlistProps,\n\t} = useContext( BottomSheetContext );\n\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst { inputValue = activeAttributes.url || '' } = route.params || {};\n\tconst onLinkCellPressed = () => {\n\t\tshouldEnableBottomSheetMaxHeight( false );\n\t\tnavigation.navigate( linkSettingsScreens.picker, { inputValue } );\n\t};\n\tuseEffect( () => {\n\t\tonHandleClosingBottomSheet( () => {\n\t\t\tsubmit( inputValue, { skipStateUpdates: true } );\n\t\t} );\n\t}, [ inputValue, opensInNewWindow, text ] );\n\n\tuseEffect( () => {\n\t\tconst { isActiveLink, isRemovingLink } = linkValues;\n\t\tif ( !! inputValue && ! isActiveLink && isVisible ) {\n\t\t\tsubmitLink( { shouldCloseBottomSheet: false } );\n\t\t} else if (\n\t\t\t( ( inputValue === '' && isActiveLink ) || isRemovingLink ) &&\n\t\t\tisVisible\n\t\t) {\n\t\t\tremoveLink( { shouldCloseBottomSheet: false } );\n\t\t}\n\t}, [\n\t\tinputValue,\n\t\tisVisible,\n\t\tlinkValues.isActiveLink,\n\t\tlinkValues.isRemovingLink,\n\t] );\n\n\tconst clearFormat = ( { skipStateUpdates = false } = {} ) => {\n\t\tonChange( { ...value, activeFormats: [] } );\n\t\tif ( ! skipStateUpdates ) {\n\t\t\tsetLinkValues( { isActiveLink: false, isRemovingLink: true } );\n\t\t}\n\t};\n\n\tconst submitLink = ( {\n\t\tshouldCloseBottomSheet = true,\n\t\tskipStateUpdates = false,\n\t} = {} ) => {\n\t\tconst url = prependHTTP( inputValue );\n\t\tconst linkText = text || inputValue;\n\t\tconst format = createLinkFormat( {\n\t\t\turl,\n\t\t\topensInNewWindow,\n\t\t\ttext: linkText,\n\t\t} );\n\t\tlet newAttributes;\n\t\tif ( isCollapsed( value ) && ! isActive ) {\n\t\t\t// Insert link.\n\t\t\tconst toInsert = applyFormat(\n\t\t\t\tcreate( { text: linkText } ),\n\t\t\t\tformat,\n\t\t\t\t0,\n\t\t\t\tlinkText.length\n\t\t\t);\n\t\t\tnewAttributes = insert( value, toInsert );\n\t\t} else if ( text !== getTextContent( slice( value ) ) ) {\n\t\t\t// Edit text in selected link.\n\t\t\tconst toInsert = applyFormat(\n\t\t\t\tcreate( { text } ),\n\t\t\t\tformat,\n\t\t\t\t0,\n\t\t\t\ttext.length\n\t\t\t);\n\t\t\tnewAttributes = insert( value, toInsert, value.start, value.end );\n\t\t} else {\n\t\t\t// Transform selected text into link.\n\t\t\tnewAttributes = applyFormat( value, format );\n\t\t}\n\t\t// Move selection to end of link.\n\t\tconst textLength = newAttributes.text.length;\n\t\t// check for zero width spaces\n\t\tif ( newAttributes.end > textLength ) {\n\t\t\tnewAttributes.start = textLength;\n\t\t\tnewAttributes.end = textLength;\n\t\t} else {\n\t\t\tnewAttributes.start = newAttributes.end;\n\t\t}\n\t\tnewAttributes.activeFormats = [];\n\t\tonChange( { ...newAttributes, needsSelectionUpdate: true } );\n\t\tif ( ! skipStateUpdates ) {\n\t\t\tsetLinkValues( { isActiveLink: true, isRemovingLink: false } );\n\t\t}\n\n\t\tif ( ! isValidHref( url ) ) {\n\t\t\tspeak(\n\t\t\t\t__(\n\t\t\t\t\t'Warning: the link has been inserted but may have errors. Please test it.'\n\t\t\t\t),\n\t\t\t\t'assertive'\n\t\t\t);\n\t\t} else if ( isActive ) {\n\t\t\tspeak( __( 'Link edited.' ), 'assertive' );\n\t\t} else {\n\t\t\tspeak( __( 'Link inserted' ), 'assertive' );\n\t\t}\n\n\t\tif ( shouldCloseBottomSheet ) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst removeLink = ( {\n\t\tshouldCloseBottomSheet = true,\n\t\tskipStateUpdates = false,\n\t} = {} ) => {\n\t\tclearFormat( { skipStateUpdates } );\n\t\tonRemove();\n\t\tif ( shouldCloseBottomSheet ) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst submit = ( submitValue, { skipStateUpdates = false } = {} ) => {\n\t\tif ( submitValue === '' ) {\n\t\t\tremoveLink( { skipStateUpdates } );\n\t\t} else {\n\t\t\tsubmitLink( { skipStateUpdates } );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tconst unsubscribe = navigation.addListener( 'focus', () => {\n\t\t\tconst { params = {} } = route;\n\t\t\tif ( ! text && params.text ) {\n\t\t\t\tsetText( params.text );\n\t\t\t}\n\t\t} );\n\t\treturn unsubscribe;\n\t}, [ navigation, route.params?.text, text ] );\n\n\treturn useMemo( () => {\n\t\tconst shouldShowLinkOptions = !! inputValue;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BottomSheet.LinkCell\n\t\t\t\t\tvalue={ inputValue }\n\t\t\t\t\tonPress={ onLinkCellPressed }\n\t\t\t\t/>\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\ticon={ textColor }\n\t\t\t\t\tlabel={ __( 'Link text' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tplaceholder={ __( 'Add link text' ) }\n\t\t\t\t\tonChangeValue={ setText }\n\t\t\t\t\tonSubmit={ submit }\n\t\t\t\t\tseparatorType={ shouldShowLinkOptions ? undefined : 'none' }\n\t\t\t\t/>\n\t\t\t\t{ shouldShowLinkOptions && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BottomSheet.SwitchCell\n\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tvalue={ opensInNewWindow }\n\t\t\t\t\t\t\tonValueChange={ setOpensInNewWindows }\n\t\t\t\t\t\t\tseparatorType={ 'fullWidth' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\t\tlabelStyle={ styles.clearLinkButton }\n\t\t\t\t\t\t\tseparatorType={ 'none' }\n\t\t\t\t\t\t\tonPress={ removeLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [ inputValue, text, opensInNewWindow, listProps.safeAreaBottomInset ] );\n};\n\nexport default LinkSettingsScreen;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/link/modal-screens/screens.native.js"],"names":["settings","picker"],"mappings":";;;;;;eAAe;AACdA,EAAAA,QAAQ,EAAE,cADI;AAEdC,EAAAA,MAAM,EAAE;AAFM,C","sourcesContent":["export default {\n\tsettings: 'linkSettings',\n\tpicker: 'linkPicker',\n};\n"]}
1
+ {"version":3,"names":["settings","picker","exports","default","_default"],"sources":["@wordpress/format-library/src/link/modal-screens/screens.native.js"],"sourcesContent":["export default {\n\tsettings: 'linkSettings',\n\tpicker: 'linkPicker',\n};\n"],"mappings":";;;;;;eAAe;EACdA,QAAQ,EAAE,cAAc;EACxBC,MAAM,EAAE;AACT,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAC,QAAA"}
@@ -1,22 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _element = require("@wordpress/element");
11
-
12
9
  var _components = require("@wordpress/components");
13
-
14
10
  var _screens = _interopRequireDefault(require("./modal-screens/screens"));
15
-
16
11
  var _linkSettingsScreen = _interopRequireDefault(require("./modal-screens/link-settings-screen"));
17
-
18
12
  var _linkPickerScreen = _interopRequireDefault(require("./modal-screens/link-picker-screen"));
19
-
20
13
  /**
21
14
  * WordPress dependencies
22
15
  */
@@ -24,6 +17,7 @@ var _linkPickerScreen = _interopRequireDefault(require("./modal-screens/link-pic
24
17
  /**
25
18
  * Internal dependencies
26
19
  */
20
+
27
21
  const ModalLinkUI = ({
28
22
  isVisible,
29
23
  ...restProps
@@ -50,8 +44,6 @@ const ModalLinkUI = ({
50
44
  }, (0, _element.createElement)(_linkPickerScreen.default, null))));
51
45
  }, [isVisible]);
52
46
  };
53
-
54
47
  var _default = (0, _components.withSpokenMessages)(ModalLinkUI);
55
-
56
48
  exports.default = _default;
57
49
  //# sourceMappingURL=modal.native.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/link/modal.native.js"],"names":["ModalLinkUI","isVisible","restProps","onClose","screens","settings","picker"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAXA;AACA;AACA;;AAIA;AACA;AACA;AAKA,MAAMA,WAAW,GAAG,CAAE;AAAEC,EAAAA,SAAF;AAAa,KAAGC;AAAhB,CAAF,KAAmC;AACtD,SAAO,sBAAS,MAAM;AACrB,WACC,4BAAC,uBAAD;AACC,MAAA,SAAS,EAAGD,SADb;AAEC,MAAA,UAAU,MAFX;AAGC,MAAA,OAAO,EAAGC,SAAS,CAACC,OAHrB;AAIC,MAAA,aAAa,MAJd;AAKC,MAAA,MAAM,EAAC;AALR,OAOC,4BAAC,uBAAD,CAAa,mBAAb;AAAiC,MAAA,OAAO,MAAxC;AAAyC,MAAA,IAAI;AAA7C,OACC,4BAAC,uBAAD,CAAa,gBAAb;AAA8B,MAAA,IAAI,EAAGC,iBAAQC;AAA7C,OACC,4BAAC,2BAAD;AACC,MAAA,SAAS,EAAGJ,SADb;AAAA,SAEMC;AAFN,MADD,CADD,EAOC,4BAAC,uBAAD,CAAa,gBAAb;AACC,MAAA,IAAI,EAAGE,iBAAQE,MADhB;AAEC,MAAA,YAAY,MAFb;AAGC,MAAA,UAAU;AAHX,OAKC,4BAAC,yBAAD,OALD,CAPD,CAPD,CADD;AAyBA,GA1BM,EA0BJ,CAAEL,SAAF,CA1BI,CAAP;AA2BA,CA5BD;;eA8Be,oCAAoBD,WAApB,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { BottomSheet, withSpokenMessages } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport screens from './modal-screens/screens';\nimport LinkSettingsScreen from './modal-screens/link-settings-screen';\nimport LinkPickerScreen from './modal-screens/link-picker-screen';\n\nconst ModalLinkUI = ( { isVisible, ...restProps } ) => {\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ isVisible }\n\t\t\t\thideHeader\n\t\t\t\tonClose={ restProps.onClose }\n\t\t\t\thasNavigation\n\t\t\t\ttestID=\"link-settings-modal\"\n\t\t\t>\n\t\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t\t<BottomSheet.NavigationScreen name={ screens.settings }>\n\t\t\t\t\t\t<LinkSettingsScreen\n\t\t\t\t\t\t\tisVisible={ isVisible }\n\t\t\t\t\t\t\t{ ...restProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\t\tname={ screens.picker }\n\t\t\t\t\t\tisScrollable\n\t\t\t\t\t\tfullScreen\n\t\t\t\t\t>\n\t\t\t\t\t\t<LinkPickerScreen />\n\t\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t</BottomSheet.NavigationContainer>\n\t\t\t</BottomSheet>\n\t\t);\n\t}, [ isVisible ] );\n};\n\nexport default withSpokenMessages( ModalLinkUI );\n"]}
1
+ {"version":3,"names":["_element","require","_components","_screens","_interopRequireDefault","_linkSettingsScreen","_linkPickerScreen","ModalLinkUI","isVisible","restProps","useMemo","createElement","BottomSheet","hideHeader","onClose","hasNavigation","testID","NavigationContainer","animate","main","NavigationScreen","name","screens","settings","default","picker","isScrollable","fullScreen","_default","withSpokenMessages","exports"],"sources":["@wordpress/format-library/src/link/modal.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { BottomSheet, withSpokenMessages } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport screens from './modal-screens/screens';\nimport LinkSettingsScreen from './modal-screens/link-settings-screen';\nimport LinkPickerScreen from './modal-screens/link-picker-screen';\n\nconst ModalLinkUI = ( { isVisible, ...restProps } ) => {\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ isVisible }\n\t\t\t\thideHeader\n\t\t\t\tonClose={ restProps.onClose }\n\t\t\t\thasNavigation\n\t\t\t\ttestID=\"link-settings-modal\"\n\t\t\t>\n\t\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t\t<BottomSheet.NavigationScreen name={ screens.settings }>\n\t\t\t\t\t\t<LinkSettingsScreen\n\t\t\t\t\t\t\tisVisible={ isVisible }\n\t\t\t\t\t\t\t{ ...restProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\t\tname={ screens.picker }\n\t\t\t\t\t\tisScrollable\n\t\t\t\t\t\tfullScreen\n\t\t\t\t\t>\n\t\t\t\t\t\t<LinkPickerScreen />\n\t\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t</BottomSheet.NavigationContainer>\n\t\t\t</BottomSheet>\n\t\t);\n\t}, [ isVisible ] );\n};\n\nexport default withSpokenMessages( ModalLinkUI );\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,iBAAA,GAAAF,sBAAA,CAAAH,OAAA;AAXA;AACA;AACA;;AAIA;AACA;AACA;;AAKA,MAAMM,WAAW,GAAGA,CAAE;EAAEC,SAAS;EAAE,GAAGC;AAAU,CAAC,KAAM;EACtD,OAAO,IAAAC,gBAAO,EAAE,MAAM;IACrB,OACC,IAAAV,QAAA,CAAAW,aAAA,EAACT,WAAA,CAAAU,WAAW;MACXJ,SAAS,EAAGA,SAAW;MACvBK,UAAU;MACVC,OAAO,EAAGL,SAAS,CAACK,OAAS;MAC7BC,aAAa;MACbC,MAAM,EAAC;IAAqB,GAE5B,IAAAhB,QAAA,CAAAW,aAAA,EAACT,WAAA,CAAAU,WAAW,CAACK,mBAAmB;MAACC,OAAO;MAACC,IAAI;IAAA,GAC5C,IAAAnB,QAAA,CAAAW,aAAA,EAACT,WAAA,CAAAU,WAAW,CAACQ,gBAAgB;MAACC,IAAI,EAAGC,gBAAO,CAACC;IAAU,GACtD,IAAAvB,QAAA,CAAAW,aAAA,EAACN,mBAAA,CAAAmB,OAAkB;MAClBhB,SAAS,EAAGA,SAAW;MAAA,GAClBC;IAAS,CACd,CAC4B,CAAC,EAC/B,IAAAT,QAAA,CAAAW,aAAA,EAACT,WAAA,CAAAU,WAAW,CAACQ,gBAAgB;MAC5BC,IAAI,EAAGC,gBAAO,CAACG,MAAQ;MACvBC,YAAY;MACZC,UAAU;IAAA,GAEV,IAAA3B,QAAA,CAAAW,aAAA,EAACL,iBAAA,CAAAkB,OAAgB,MAAE,CACU,CACE,CACrB,CAAC;EAEhB,CAAC,EAAE,CAAEhB,SAAS,CAAG,CAAC;AACnB,CAAC;AAAC,IAAAoB,QAAA,GAEa,IAAAC,8BAAkB,EAAEtB,WAAY,CAAC;AAAAuB,OAAA,CAAAN,OAAA,GAAAI,QAAA"}
@@ -5,36 +5,32 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  // Weakly referenced map allows unused ids to be garbage collected.
8
- const weakMap = new WeakMap(); // Incrementing zero-based ID value.
8
+ const weakMap = new WeakMap();
9
9
 
10
+ // Incrementing zero-based ID value.
10
11
  let id = -1;
11
12
  const prefix = 'link-control-instance';
12
-
13
13
  function getKey(_id) {
14
14
  return `${prefix}-${_id}`;
15
15
  }
16
+
16
17
  /**
17
18
  * Builds a unique link control key for the given object reference.
18
19
  *
19
20
  * @param {Object} instance an unique object reference specific to this link control instance.
20
21
  * @return {string | undefined} the unique key to use for this link control.
21
22
  */
22
-
23
-
24
23
  function useLinkInstanceKey(instance) {
25
24
  if (!instance) {
26
25
  return;
27
26
  }
28
-
29
27
  if (weakMap.has(instance)) {
30
28
  return getKey(weakMap.get(instance));
31
29
  }
32
-
33
30
  id += 1;
34
31
  weakMap.set(instance, id);
35
32
  return getKey(id);
36
33
  }
37
-
38
34
  var _default = useLinkInstanceKey;
39
35
  exports.default = _default;
40
36
  //# sourceMappingURL=use-link-instance-key.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/link/use-link-instance-key.js"],"names":["weakMap","WeakMap","id","prefix","getKey","_id","useLinkInstanceKey","instance","has","get","set"],"mappings":";;;;;;AAAA;AACA,MAAMA,OAAO,GAAG,IAAIC,OAAJ,EAAhB,C,CAEA;;AACA,IAAIC,EAAE,GAAG,CAAC,CAAV;AAEA,MAAMC,MAAM,GAAG,uBAAf;;AAEA,SAASC,MAAT,CAAiBC,GAAjB,EAAuB;AACtB,SAAQ,GAAGF,MAAQ,IAAIE,GAAK,EAA5B;AACA;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,kBAAT,CAA6BC,QAA7B,EAAwC;AACvC,MAAK,CAAEA,QAAP,EAAkB;AACjB;AACA;;AACD,MAAKP,OAAO,CAACQ,GAAR,CAAaD,QAAb,CAAL,EAA+B;AAC9B,WAAOH,MAAM,CAAEJ,OAAO,CAACS,GAAR,CAAaF,QAAb,CAAF,CAAb;AACA;;AAEDL,EAAAA,EAAE,IAAI,CAAN;AAEAF,EAAAA,OAAO,CAACU,GAAR,CAAaH,QAAb,EAAuBL,EAAvB;AAEA,SAAOE,MAAM,CAAEF,EAAF,CAAb;AACA;;eAEcI,kB","sourcesContent":["// Weakly referenced map allows unused ids to be garbage collected.\nconst weakMap = new WeakMap();\n\n// Incrementing zero-based ID value.\nlet id = -1;\n\nconst prefix = 'link-control-instance';\n\nfunction getKey( _id ) {\n\treturn `${ prefix }-${ _id }`;\n}\n\n/**\n * Builds a unique link control key for the given object reference.\n *\n * @param {Object} instance an unique object reference specific to this link control instance.\n * @return {string | undefined} the unique key to use for this link control.\n */\nfunction useLinkInstanceKey( instance ) {\n\tif ( ! instance ) {\n\t\treturn;\n\t}\n\tif ( weakMap.has( instance ) ) {\n\t\treturn getKey( weakMap.get( instance ) );\n\t}\n\n\tid += 1;\n\n\tweakMap.set( instance, id );\n\n\treturn getKey( id );\n}\n\nexport default useLinkInstanceKey;\n"]}
1
+ {"version":3,"names":["weakMap","WeakMap","id","prefix","getKey","_id","useLinkInstanceKey","instance","has","get","set","_default","exports","default"],"sources":["@wordpress/format-library/src/link/use-link-instance-key.js"],"sourcesContent":["// Weakly referenced map allows unused ids to be garbage collected.\nconst weakMap = new WeakMap();\n\n// Incrementing zero-based ID value.\nlet id = -1;\n\nconst prefix = 'link-control-instance';\n\nfunction getKey( _id ) {\n\treturn `${ prefix }-${ _id }`;\n}\n\n/**\n * Builds a unique link control key for the given object reference.\n *\n * @param {Object} instance an unique object reference specific to this link control instance.\n * @return {string | undefined} the unique key to use for this link control.\n */\nfunction useLinkInstanceKey( instance ) {\n\tif ( ! instance ) {\n\t\treturn;\n\t}\n\tif ( weakMap.has( instance ) ) {\n\t\treturn getKey( weakMap.get( instance ) );\n\t}\n\n\tid += 1;\n\n\tweakMap.set( instance, id );\n\n\treturn getKey( id );\n}\n\nexport default useLinkInstanceKey;\n"],"mappings":";;;;;;AAAA;AACA,MAAMA,OAAO,GAAG,IAAIC,OAAO,CAAC,CAAC;;AAE7B;AACA,IAAIC,EAAE,GAAG,CAAC,CAAC;AAEX,MAAMC,MAAM,GAAG,uBAAuB;AAEtC,SAASC,MAAMA,CAAEC,GAAG,EAAG;EACtB,OAAQ,GAAGF,MAAQ,IAAIE,GAAK,EAAC;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,kBAAkBA,CAAEC,QAAQ,EAAG;EACvC,IAAK,CAAEA,QAAQ,EAAG;IACjB;EACD;EACA,IAAKP,OAAO,CAACQ,GAAG,CAAED,QAAS,CAAC,EAAG;IAC9B,OAAOH,MAAM,CAAEJ,OAAO,CAACS,GAAG,CAAEF,QAAS,CAAE,CAAC;EACzC;EAEAL,EAAE,IAAI,CAAC;EAEPF,OAAO,CAACU,GAAG,CAAEH,QAAQ,EAAEL,EAAG,CAAC;EAE3B,OAAOE,MAAM,CAAEF,EAAG,CAAC;AACpB;AAAC,IAAAS,QAAA,GAEcL,kBAAkB;AAAAM,OAAA,CAAAC,OAAA,GAAAF,QAAA"}