@wordpress/format-library 4.27.1 → 4.28.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 (54) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/bold/index.js +1 -2
  3. package/build/bold/index.js.map +1 -1
  4. package/build/code/index.js +1 -2
  5. package/build/code/index.js.map +1 -1
  6. package/build/default-formats.js +1 -2
  7. package/build/default-formats.js.map +1 -1
  8. package/build/default-formats.native.js +1 -2
  9. package/build/default-formats.native.js.map +1 -1
  10. package/build/image/index.js +1 -2
  11. package/build/image/index.js.map +1 -1
  12. package/build/italic/index.js +1 -2
  13. package/build/italic/index.js.map +1 -1
  14. package/build/keyboard/index.js +1 -2
  15. package/build/keyboard/index.js.map +1 -1
  16. package/build/language/index.js +1 -2
  17. package/build/language/index.js.map +1 -1
  18. package/build/link/index.js +84 -24
  19. package/build/link/index.js.map +1 -1
  20. package/build/link/index.native.js +1 -2
  21. package/build/link/index.native.js.map +1 -1
  22. package/build/link/inline.js +59 -64
  23. package/build/link/inline.js.map +1 -1
  24. package/build/link/modal-screens/link-picker-screen.native.js +1 -2
  25. package/build/link/modal-screens/link-picker-screen.native.js.map +1 -1
  26. package/build/link/modal-screens/link-settings-screen.native.js +1 -2
  27. package/build/link/modal-screens/link-settings-screen.native.js.map +1 -1
  28. package/build/link/modal-screens/screens.native.js +1 -2
  29. package/build/link/modal-screens/screens.native.js.map +1 -1
  30. package/build/link/modal.native.js +1 -2
  31. package/build/link/modal.native.js.map +1 -1
  32. package/build/link/use-link-instance-key.js +1 -2
  33. package/build/link/use-link-instance-key.js.map +1 -1
  34. package/build/strikethrough/index.js +1 -2
  35. package/build/strikethrough/index.js.map +1 -1
  36. package/build/subscript/index.js +1 -2
  37. package/build/subscript/index.js.map +1 -1
  38. package/build/superscript/index.js +1 -2
  39. package/build/superscript/index.js.map +1 -1
  40. package/build/text-color/index.js +4 -6
  41. package/build/text-color/index.js.map +1 -1
  42. package/build/text-color/index.native.js +1 -2
  43. package/build/text-color/index.native.js.map +1 -1
  44. package/build/underline/index.js +1 -2
  45. package/build/underline/index.js.map +1 -1
  46. package/build/unknown/index.js +1 -2
  47. package/build/unknown/index.js.map +1 -1
  48. package/build-module/link/index.js +85 -24
  49. package/build-module/link/index.js.map +1 -1
  50. package/build-module/link/inline.js +54 -58
  51. package/build-module/link/inline.js.map +1 -1
  52. package/package.json +14 -14
  53. package/src/link/index.js +95 -35
  54. package/src/link/inline.js +65 -73
@@ -30,9 +30,9 @@ const LINK_SETTINGS = [..._blockEditor.__experimentalLinkControl.DEFAULT_LINK_SE
30
30
  function InlineLinkUI({
31
31
  isActive,
32
32
  activeAttributes,
33
- addingLink,
34
33
  value,
35
34
  onChange,
35
+ onFocusOutside,
36
36
  stopAddingLink,
37
37
  contentRef
38
38
  }) {
@@ -85,65 +85,61 @@ function InlineLinkUI({
85
85
  nofollow: nextValue.nofollow
86
86
  });
87
87
  const newText = nextValue.title || newUrl;
88
+
89
+ // Scenario: we have any active text selection or an active format.
90
+ let newValue;
88
91
  if ((0, _richText.isCollapsed)(value) && !isActive) {
89
92
  // Scenario: we don't have any actively selected text or formats.
90
- const toInsert = (0, _richText.applyFormat)((0, _richText.create)({
91
- text: newText
92
- }), linkFormat, 0, newText.length);
93
- onChange((0, _richText.insert)(value, toInsert));
93
+ const inserted = (0, _richText.insert)(value, newText);
94
+ newValue = (0, _richText.applyFormat)(inserted, linkFormat, value.start, value.end + newText.length);
95
+ } else if (newText === richTextText) {
96
+ newValue = (0, _richText.applyFormat)(value, linkFormat);
94
97
  } else {
95
- // Scenario: we have any active text selection or an active format.
96
- let newValue;
97
- if (newText === richTextText) {
98
- // If we're not updating the text then ignore.
99
- newValue = (0, _richText.applyFormat)(value, linkFormat);
100
- } else {
101
- // Create new RichText value for the new text in order that we
102
- // can apply formats to it.
103
- newValue = (0, _richText.create)({
104
- text: newText
105
- });
106
-
107
- // Apply the new Link format to this new text value.
108
- newValue = (0, _richText.applyFormat)(newValue, linkFormat, 0, newText.length);
109
-
110
- // Get the boundaries of the active link format.
111
- const boundary = (0, _utils.getFormatBoundary)(value, {
112
- type: 'core/link'
113
- });
114
-
115
- // Split the value at the start of the active link format.
116
- // Passing "start" as the 3rd parameter is required to ensure
117
- // the second half of the split value is split at the format's
118
- // start boundary and avoids relying on the value's "end" property
119
- // which may not correspond correctly.
120
- const [valBefore, valAfter] = (0, _richText.split)(value, boundary.start, boundary.start);
121
-
122
- // Update the original (full) RichTextValue replacing the
123
- // target text with the *new* RichTextValue containing:
124
- // 1. The new text content.
125
- // 2. The new link format.
126
- // As "replace" will operate on the first match only, it is
127
- // run only against the second half of the value which was
128
- // split at the active format's boundary. This avoids a bug
129
- // with incorrectly targetted replacements.
130
- // See: https://github.com/WordPress/gutenberg/issues/41771.
131
- // Note original formats will be lost when applying this change.
132
- // That is expected behaviour.
133
- // See: https://github.com/WordPress/gutenberg/pull/33849#issuecomment-936134179.
134
- const newValAfter = (0, _richText.replace)(valAfter, richTextText, newValue);
135
- newValue = (0, _richText.concat)(valBefore, newValAfter);
136
- }
137
- onChange(newValue);
98
+ // Scenario: Editing an existing link.
99
+
100
+ // Create new RichText value for the new text in order that we
101
+ // can apply formats to it.
102
+ newValue = (0, _richText.create)({
103
+ text: newText
104
+ });
105
+ // Apply the new Link format to this new text value.
106
+ newValue = (0, _richText.applyFormat)(newValue, linkFormat, 0, newText.length);
107
+
108
+ // Get the boundaries of the active link format.
109
+ const boundary = (0, _utils.getFormatBoundary)(value, {
110
+ type: 'core/link'
111
+ });
112
+
113
+ // Split the value at the start of the active link format.
114
+ // Passing "start" as the 3rd parameter is required to ensure
115
+ // the second half of the split value is split at the format's
116
+ // start boundary and avoids relying on the value's "end" property
117
+ // which may not correspond correctly.
118
+ const [valBefore, valAfter] = (0, _richText.split)(value, boundary.start, boundary.start);
119
+
120
+ // Update the original (full) RichTextValue replacing the
121
+ // target text with the *new* RichTextValue containing:
122
+ // 1. The new text content.
123
+ // 2. The new link format.
124
+ // As "replace" will operate on the first match only, it is
125
+ // run only against the second half of the value which was
126
+ // split at the active format's boundary. This avoids a bug
127
+ // with incorrectly targetted replacements.
128
+ // See: https://github.com/WordPress/gutenberg/issues/41771.
129
+ // Note original formats will be lost when applying this change.
130
+ // That is expected behaviour.
131
+ // See: https://github.com/WordPress/gutenberg/pull/33849#issuecomment-936134179.
132
+ const newValAfter = (0, _richText.replace)(valAfter, richTextText, newValue);
133
+ newValue = (0, _richText.concat)(valBefore, newValAfter);
138
134
  }
135
+ onChange(newValue);
139
136
 
140
137
  // Focus should only be returned to the rich text on submit if this link is not
141
138
  // being created for the first time. If it is then focus should remain within the
142
139
  // Link UI because it should remain open for the user to modify the link they have
143
140
  // just created.
144
141
  if (!isNewLink) {
145
- const returnFocusToRichText = true;
146
- stopAddingLink(returnFocusToRichText);
142
+ stopAddingLink();
147
143
  }
148
144
  if (!(0, _utils.isValidHref)(newUrl)) {
149
145
  (0, _a11y.speak)((0, _i18n.__)('Warning: the link has been inserted but may have errors. Please test it.'), 'assertive');
@@ -165,15 +161,17 @@ function InlineLinkUI({
165
161
  // This caches the last truthy value of the selection anchor reference.
166
162
  // This ensures the Popover is positioned correctly on initial submission of the link.
167
163
  const cachedRect = (0, _blockEditor.useCachedTruthy)(popoverAnchor.getBoundingClientRect());
168
- popoverAnchor.getBoundingClientRect = () => cachedRect;
169
-
170
- // Focus should only be moved into the Popover when the Link is being created or edited.
171
- // When the Link is in "preview" mode focus should remain on the rich text because at
172
- // this point the Link dialog is informational only and thus the user should be able to
173
- // continue editing the rich text.
174
- // Ref used because the focusOnMount prop shouldn't evolve during render of a Popover
175
- // otherwise it causes a render of the content.
176
- const focusOnMount = (0, _element.useRef)(addingLink ? 'firstElement' : false);
164
+
165
+ // If the link is not active (i.e. it is a new link) then we need to
166
+ // override the getBoundingClientRect method on the anchor element
167
+ // to return the cached value of the selection represented by the text
168
+ // that the user selected to be linked.
169
+ // If the link is active (i.e. it is an existing link) then we allow
170
+ // the default behaviour of the popover anchor to be used. This will get
171
+ // the anchor based on the `<a>` element in the rich text.
172
+ if (!isActive) {
173
+ popoverAnchor.getBoundingClientRect = () => cachedRect;
174
+ }
177
175
  async function handleCreate(pageTitle) {
178
176
  const page = await createPageEntity({
179
177
  title: pageTitle,
@@ -195,9 +193,8 @@ function InlineLinkUI({
195
193
  }
196
194
  return (0, _react.createElement)(_components.Popover, {
197
195
  anchor: popoverAnchor,
198
- focusOnMount: focusOnMount.current,
199
196
  onClose: stopAddingLink,
200
- onFocusOutside: () => stopAddingLink(false),
197
+ onFocusOutside: onFocusOutside,
201
198
  placement: "bottom",
202
199
  offset: 10,
203
200
  shift: true
@@ -205,7 +202,6 @@ function InlineLinkUI({
205
202
  value: linkValue,
206
203
  onChange: onChangeLink,
207
204
  onRemove: removeLink,
208
- forceIsEditingLink: addingLink,
209
205
  hasRichPreviews: true,
210
206
  createSuggestion: createPageEntity && handleCreate,
211
207
  withCreateSuggestion: userCanCreatePages,
@@ -245,6 +241,5 @@ function getRichTextValueFromSelection(value, isActive) {
245
241
  // Get a RichTextValue containing the selected text content.
246
242
  return (0, _richText.slice)(value, textStart, textEnd);
247
243
  }
248
- var _default = InlineLinkUI;
249
- exports.default = _default;
244
+ var _default = exports.default = InlineLinkUI;
250
245
  //# sourceMappingURL=inline.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","_a11y","_components","_url","_richText","_blockEditor","_data","_utils","_index","LINK_SETTINGS","LinkControl","DEFAULT_LINK_SETTINGS","id","title","__","InlineLinkUI","isActive","activeAttributes","addingLink","value","onChange","stopAddingLink","contentRef","richLinkTextValue","getRichTextValueFromSelection","richTextText","text","createPageEntity","userCanCreatePages","useSelect","select","getSettings","blockEditorStore","_settings","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","linkValue","useMemo","url","type","opensInNewTab","target","nofollow","rel","includes","removeLink","newValue","removeFormat","speak","onChangeLink","nextValue","hasLink","isNewLink","newUrl","prependHTTP","linkFormat","createLinkFormat","undefined","String","opensInNewWindow","newText","isCollapsed","toInsert","applyFormat","create","length","insert","boundary","getFormatBoundary","valBefore","valAfter","split","start","newValAfter","replace","concat","returnFocusToRichText","isValidHref","popoverAnchor","useAnchor","editableContentElement","current","settings","cachedRect","useCachedTruthy","getBoundingClientRect","focusOnMount","useRef","handleCreate","pageTitle","page","status","rendered","link","kind","createButtonText","searchTerm","createInterpolateElement","sprintf","mark","_react","createElement","Popover","anchor","onClose","onFocusOutside","placement","offset","shift","__experimentalLinkControl","onRemove","forceIsEditingLink","hasRichPreviews","createSuggestion","withCreateSuggestion","createSuggestionButtonText","hasTextControl","showInitialSuggestions","suggestionsQuery","initialSuggestionsSearchOptions","subtype","perPage","textStart","textEnd","end","slice","_default","exports","default"],"sources":["@wordpress/format-library/src/link/inline.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, 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\tremoveFormat,\n\tslice,\n\treplace,\n\tsplit,\n\tconcat,\n\tuseAnchor,\n} from '@wordpress/rich-text';\nimport {\n\t__experimentalLinkControl as LinkControl,\n\tstore as blockEditorStore,\n\tuseCachedTruthy,\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';\n\nconst LINK_SETTINGS = [\n\t...LinkControl.DEFAULT_LINK_SETTINGS,\n\t{\n\t\tid: 'nofollow',\n\t\ttitle: __( 'Mark as nofollow' ),\n\t},\n];\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 = useMemo(\n\t\t() => ( {\n\t\t\turl: activeAttributes.url,\n\t\t\ttype: activeAttributes.type,\n\t\t\tid: activeAttributes.id,\n\t\t\topensInNewTab: activeAttributes.target === '_blank',\n\t\t\tnofollow: activeAttributes.rel?.includes( 'nofollow' ),\n\t\t\ttitle: richTextText,\n\t\t} ),\n\t\t[\n\t\t\tactiveAttributes.id,\n\t\t\tactiveAttributes.rel,\n\t\t\tactiveAttributes.target,\n\t\t\tactiveAttributes.type,\n\t\t\tactiveAttributes.url,\n\t\t\trichTextText,\n\t\t]\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\tconst hasLink = linkValue?.url;\n\t\tconst isNewLink = ! hasLink;\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\tnofollow: nextValue.nofollow,\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\tonChange( newValue );\n\t\t}\n\n\t\t// Focus should only be returned to the rich text on submit if this link is not\n\t\t// being created for the first time. If it is then focus should remain within the\n\t\t// Link UI because it should remain open for the user to modify the link they have\n\t\t// just created.\n\t\tif ( ! isNewLink ) {\n\t\t\tconst returnFocusToRichText = true;\n\t\t\tstopAddingLink( returnFocusToRichText );\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// As you change the link by interacting with the Link UI\n\t// the return value of document.getSelection jumps to the field you're editing,\n\t// not the highlighted text. Given that useAnchor uses document.getSelection,\n\t// it will return null, since it can't find the <mark> element within the Link UI.\n\t// This caches the last truthy value of the selection anchor reference.\n\t// This ensures the Popover is positioned correctly on initial submission of the link.\n\tconst cachedRect = useCachedTruthy( popoverAnchor.getBoundingClientRect() );\n\tpopoverAnchor.getBoundingClientRect = () => cachedRect;\n\n\t// Focus should only be moved into the Popover when the Link is being created or edited.\n\t// When the Link is in \"preview\" mode focus should remain on the rich text because at\n\t// this point the Link dialog is informational only and thus the user should be able to\n\t// continue editing the rich text.\n\t// Ref used because 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\toffset={ 10 }\n\t\t\tshift\n\t\t>\n\t\t\t<LinkControl\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\tsettings={ LINK_SETTINGS }\n\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\tsuggestionsQuery={ {\n\t\t\t\t\t// always show Pages as initial suggestions\n\t\t\t\t\tinitialSuggestionsSearchOptions: {\n\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\tsubtype: 'page',\n\t\t\t\t\t\tperPage: 20,\n\t\t\t\t\t},\n\t\t\t\t} }\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":"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"}
1
+ {"version":3,"names":["_element","require","_i18n","_a11y","_components","_url","_richText","_blockEditor","_data","_utils","_index","LINK_SETTINGS","LinkControl","DEFAULT_LINK_SETTINGS","id","title","__","InlineLinkUI","isActive","activeAttributes","value","onChange","onFocusOutside","stopAddingLink","contentRef","richLinkTextValue","getRichTextValueFromSelection","richTextText","text","createPageEntity","userCanCreatePages","useSelect","select","getSettings","blockEditorStore","_settings","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","linkValue","useMemo","url","type","opensInNewTab","target","nofollow","rel","includes","removeLink","newValue","removeFormat","speak","onChangeLink","nextValue","hasLink","isNewLink","newUrl","prependHTTP","linkFormat","createLinkFormat","undefined","String","opensInNewWindow","newText","isCollapsed","inserted","insert","applyFormat","start","end","length","create","boundary","getFormatBoundary","valBefore","valAfter","split","newValAfter","replace","concat","isValidHref","popoverAnchor","useAnchor","editableContentElement","current","settings","cachedRect","useCachedTruthy","getBoundingClientRect","handleCreate","pageTitle","page","status","rendered","link","kind","createButtonText","searchTerm","createInterpolateElement","sprintf","mark","_react","createElement","Popover","anchor","onClose","placement","offset","shift","__experimentalLinkControl","onRemove","hasRichPreviews","createSuggestion","withCreateSuggestion","createSuggestionButtonText","hasTextControl","showInitialSuggestions","suggestionsQuery","initialSuggestionsSearchOptions","subtype","perPage","textStart","textEnd","slice","_default","exports","default"],"sources":["@wordpress/format-library/src/link/inline.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, 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\tremoveFormat,\n\tslice,\n\treplace,\n\tsplit,\n\tconcat,\n\tuseAnchor,\n} from '@wordpress/rich-text';\nimport {\n\t__experimentalLinkControl as LinkControl,\n\tstore as blockEditorStore,\n\tuseCachedTruthy,\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';\n\nconst LINK_SETTINGS = [\n\t...LinkControl.DEFAULT_LINK_SETTINGS,\n\t{\n\t\tid: 'nofollow',\n\t\ttitle: __( 'Mark as nofollow' ),\n\t},\n];\n\nfunction InlineLinkUI( {\n\tisActive,\n\tactiveAttributes,\n\tvalue,\n\tonChange,\n\tonFocusOutside,\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 = useMemo(\n\t\t() => ( {\n\t\t\turl: activeAttributes.url,\n\t\t\ttype: activeAttributes.type,\n\t\t\tid: activeAttributes.id,\n\t\t\topensInNewTab: activeAttributes.target === '_blank',\n\t\t\tnofollow: activeAttributes.rel?.includes( 'nofollow' ),\n\t\t\ttitle: richTextText,\n\t\t} ),\n\t\t[\n\t\t\tactiveAttributes.id,\n\t\t\tactiveAttributes.rel,\n\t\t\tactiveAttributes.target,\n\t\t\tactiveAttributes.type,\n\t\t\tactiveAttributes.url,\n\t\t\trichTextText,\n\t\t]\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\tconst hasLink = linkValue?.url;\n\t\tconst isNewLink = ! hasLink;\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\tnofollow: nextValue.nofollow,\n\t\t} );\n\n\t\tconst newText = nextValue.title || newUrl;\n\n\t\t// Scenario: we have any active text selection or an active format.\n\t\tlet newValue;\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 inserted = insert( value, newText );\n\n\t\t\tnewValue = applyFormat(\n\t\t\t\tinserted,\n\t\t\t\tlinkFormat,\n\t\t\t\tvalue.start,\n\t\t\t\tvalue.end + newText.length\n\t\t\t);\n\t\t} else if ( newText === richTextText ) {\n\t\t\tnewValue = applyFormat( value, linkFormat );\n\t\t} else {\n\t\t\t// Scenario: Editing an existing link.\n\n\t\t\t// Create new RichText value for the new text in order that we\n\t\t\t// can apply formats to it.\n\t\t\tnewValue = create( { text: newText } );\n\t\t\t// Apply the new Link format to this new text value.\n\t\t\tnewValue = applyFormat( newValue, linkFormat, 0, newText.length );\n\n\t\t\t// Get the boundaries of the active link format.\n\t\t\tconst boundary = getFormatBoundary( value, {\n\t\t\t\ttype: 'core/link',\n\t\t\t} );\n\n\t\t\t// Split the value at the start of the active link format.\n\t\t\t// Passing \"start\" as the 3rd parameter is required to ensure\n\t\t\t// the second half of the split value is split at the format's\n\t\t\t// start boundary and avoids relying on the value's \"end\" property\n\t\t\t// which may not correspond correctly.\n\t\t\tconst [ valBefore, valAfter ] = split(\n\t\t\t\tvalue,\n\t\t\t\tboundary.start,\n\t\t\t\tboundary.start\n\t\t\t);\n\n\t\t\t// Update the original (full) RichTextValue replacing the\n\t\t\t// target text with the *new* RichTextValue containing:\n\t\t\t// 1. The new text content.\n\t\t\t// 2. The new link format.\n\t\t\t// As \"replace\" will operate on the first match only, it is\n\t\t\t// run only against the second half of the value which was\n\t\t\t// split at the active format's boundary. This avoids a bug\n\t\t\t// with incorrectly targetted replacements.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/41771.\n\t\t\t// Note original formats will be lost when applying this change.\n\t\t\t// That is expected behaviour.\n\t\t\t// See: https://github.com/WordPress/gutenberg/pull/33849#issuecomment-936134179.\n\t\t\tconst newValAfter = replace( valAfter, richTextText, newValue );\n\n\t\t\tnewValue = concat( valBefore, newValAfter );\n\t\t}\n\n\t\tonChange( newValue );\n\n\t\t// Focus should only be returned to the rich text on submit if this link is not\n\t\t// being created for the first time. If it is then focus should remain within the\n\t\t// Link UI because it should remain open for the user to modify the link they have\n\t\t// just created.\n\t\tif ( ! isNewLink ) {\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// As you change the link by interacting with the Link UI\n\t// the return value of document.getSelection jumps to the field you're editing,\n\t// not the highlighted text. Given that useAnchor uses document.getSelection,\n\t// it will return null, since it can't find the <mark> element within the Link UI.\n\t// This caches the last truthy value of the selection anchor reference.\n\t// This ensures the Popover is positioned correctly on initial submission of the link.\n\tconst cachedRect = useCachedTruthy( popoverAnchor.getBoundingClientRect() );\n\n\t// If the link is not active (i.e. it is a new link) then we need to\n\t// override the getBoundingClientRect method on the anchor element\n\t// to return the cached value of the selection represented by the text\n\t// that the user selected to be linked.\n\t// If the link is active (i.e. it is an existing link) then we allow\n\t// the default behaviour of the popover anchor to be used. This will get\n\t// the anchor based on the `<a>` element in the rich text.\n\tif ( ! isActive ) {\n\t\tpopoverAnchor.getBoundingClientRect = () => cachedRect;\n\t}\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\tonClose={ stopAddingLink }\n\t\t\tonFocusOutside={ onFocusOutside }\n\t\t\tplacement=\"bottom\"\n\t\t\toffset={ 10 }\n\t\t\tshift\n\t\t>\n\t\t\t<LinkControl\n\t\t\t\tvalue={ linkValue }\n\t\t\t\tonChange={ onChangeLink }\n\t\t\t\tonRemove={ removeLink }\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\tsettings={ LINK_SETTINGS }\n\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\tsuggestionsQuery={ {\n\t\t\t\t\t// always show Pages as initial suggestions\n\t\t\t\t\tinitialSuggestionsSearchOptions: {\n\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\tsubtype: 'page',\n\t\t\t\t\t\tperPage: 20,\n\t\t\t\t\t},\n\t\t\t\t} }\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;AAKA,IAAAO,KAAA,GAAAP,OAAA;AAKA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AA/BA;AACA;AACA;;AAyBA;AACA;AACA;;AAIA,MAAMU,aAAa,GAAG,CACrB,GAAGC,sCAAW,CAACC,qBAAqB,EACpC;EACCC,EAAE,EAAE,UAAU;EACdC,KAAK,EAAE,IAAAC,QAAE,EAAE,kBAAmB;AAC/B,CAAC,CACD;AAED,SAASC,YAAYA,CAAE;EACtBC,QAAQ;EACRC,gBAAgB;EAChBC,KAAK;EACLC,QAAQ;EACRC,cAAc;EACdC,cAAc;EACdC;AACD,CAAC,EAAG;EACH,MAAMC,iBAAiB,GAAGC,6BAA6B,CAAEN,KAAK,EAAEF,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,IAAAC,gBAAO,EACxB,OAAQ;IACPC,GAAG,EAAErB,gBAAgB,CAACqB,GAAG;IACzBC,IAAI,EAAEtB,gBAAgB,CAACsB,IAAI;IAC3B3B,EAAE,EAAEK,gBAAgB,CAACL,EAAE;IACvB4B,aAAa,EAAEvB,gBAAgB,CAACwB,MAAM,KAAK,QAAQ;IACnDC,QAAQ,EAAEzB,gBAAgB,CAAC0B,GAAG,EAAEC,QAAQ,CAAE,UAAW,CAAC;IACtD/B,KAAK,EAAEY;EACR,CAAC,CAAE,EACH,CACCR,gBAAgB,CAACL,EAAE,EACnBK,gBAAgB,CAAC0B,GAAG,EACpB1B,gBAAgB,CAACwB,MAAM,EACvBxB,gBAAgB,CAACsB,IAAI,EACrBtB,gBAAgB,CAACqB,GAAG,EACpBb,YAAY,CAEd,CAAC;EAED,SAASoB,UAAUA,CAAA,EAAG;IACrB,MAAMC,QAAQ,GAAG,IAAAC,sBAAY,EAAE7B,KAAK,EAAE,WAAY,CAAC;IACnDC,QAAQ,CAAE2B,QAAS,CAAC;IACpBzB,cAAc,CAAC,CAAC;IAChB,IAAA2B,WAAK,EAAE,IAAAlC,QAAE,EAAE,eAAgB,CAAC,EAAE,WAAY,CAAC;EAC5C;EAEA,SAASmC,YAAYA,CAAEC,SAAS,EAAG;IAClC,MAAMC,OAAO,GAAGf,SAAS,EAAEE,GAAG;IAC9B,MAAMc,SAAS,GAAG,CAAED,OAAO;;IAE3B;IACAD,SAAS,GAAG;MACX,GAAGd,SAAS;MACZ,GAAGc;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;MACpB3B,EAAE,EACDsC,SAAS,CAACtC,EAAE,KAAK6C,SAAS,IAAIP,SAAS,CAACtC,EAAE,KAAK,IAAI,GAChD8C,MAAM,CAAER,SAAS,CAACtC,EAAG,CAAC,GACtB6C,SAAS;MACbE,gBAAgB,EAAET,SAAS,CAACV,aAAa;MACzCE,QAAQ,EAAEQ,SAAS,CAACR;IACrB,CAAE,CAAC;IAEH,MAAMkB,OAAO,GAAGV,SAAS,CAACrC,KAAK,IAAIwC,MAAM;;IAEzC;IACA,IAAIP,QAAQ;IACZ,IAAK,IAAAe,qBAAW,EAAE3C,KAAM,CAAC,IAAI,CAAEF,QAAQ,EAAG;MACzC;MACA,MAAM8C,QAAQ,GAAG,IAAAC,gBAAM,EAAE7C,KAAK,EAAE0C,OAAQ,CAAC;MAEzCd,QAAQ,GAAG,IAAAkB,qBAAW,EACrBF,QAAQ,EACRP,UAAU,EACVrC,KAAK,CAAC+C,KAAK,EACX/C,KAAK,CAACgD,GAAG,GAAGN,OAAO,CAACO,MACrB,CAAC;IACF,CAAC,MAAM,IAAKP,OAAO,KAAKnC,YAAY,EAAG;MACtCqB,QAAQ,GAAG,IAAAkB,qBAAW,EAAE9C,KAAK,EAAEqC,UAAW,CAAC;IAC5C,CAAC,MAAM;MACN;;MAEA;MACA;MACAT,QAAQ,GAAG,IAAAsB,gBAAM,EAAE;QAAE1C,IAAI,EAAEkC;MAAQ,CAAE,CAAC;MACtC;MACAd,QAAQ,GAAG,IAAAkB,qBAAW,EAAElB,QAAQ,EAAES,UAAU,EAAE,CAAC,EAAEK,OAAO,CAACO,MAAO,CAAC;;MAEjE;MACA,MAAME,QAAQ,GAAG,IAAAC,wBAAiB,EAAEpD,KAAK,EAAE;QAC1CqB,IAAI,EAAE;MACP,CAAE,CAAC;;MAEH;MACA;MACA;MACA;MACA;MACA,MAAM,CAAEgC,SAAS,EAAEC,QAAQ,CAAE,GAAG,IAAAC,eAAK,EACpCvD,KAAK,EACLmD,QAAQ,CAACJ,KAAK,EACdI,QAAQ,CAACJ,KACV,CAAC;;MAED;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAMS,WAAW,GAAG,IAAAC,iBAAO,EAAEH,QAAQ,EAAE/C,YAAY,EAAEqB,QAAS,CAAC;MAE/DA,QAAQ,GAAG,IAAA8B,gBAAM,EAAEL,SAAS,EAAEG,WAAY,CAAC;IAC5C;IAEAvD,QAAQ,CAAE2B,QAAS,CAAC;;IAEpB;IACA;IACA;IACA;IACA,IAAK,CAAEM,SAAS,EAAG;MAClB/B,cAAc,CAAC,CAAC;IACjB;IAEA,IAAK,CAAE,IAAAwD,kBAAW,EAAExB,MAAO,CAAC,EAAG;MAC9B,IAAAL,WAAK,EACJ,IAAAlC,QAAE,EACD,0EACD,CAAC,EACD,WACD,CAAC;IACF,CAAC,MAAM,IAAKE,QAAQ,EAAG;MACtB,IAAAgC,WAAK,EAAE,IAAAlC,QAAE,EAAE,cAAe,CAAC,EAAE,WAAY,CAAC;IAC3C,CAAC,MAAM;MACN,IAAAkC,WAAK,EAAE,IAAAlC,QAAE,EAAE,gBAAiB,CAAC,EAAE,WAAY,CAAC;IAC7C;EACD;EAEA,MAAMgE,aAAa,GAAG,IAAAC,mBAAS,EAAE;IAChCC,sBAAsB,EAAE1D,UAAU,CAAC2D,OAAO;IAC1CC,QAAQ,EAARA;EACD,CAAE,CAAC;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,UAAU,GAAG,IAAAC,4BAAe,EAAEN,aAAa,CAACO,qBAAqB,CAAC,CAAE,CAAC;;EAE3E;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAK,CAAErE,QAAQ,EAAG;IACjB8D,aAAa,CAACO,qBAAqB,GAAG,MAAMF,UAAU;EACvD;EAEA,eAAeG,YAAYA,CAAEC,SAAS,EAAG;IACxC,MAAMC,IAAI,GAAG,MAAM7D,gBAAgB,CAAE;MACpCd,KAAK,EAAE0E,SAAS;MAChBE,MAAM,EAAE;IACT,CAAE,CAAC;IAEH,OAAO;MACN7E,EAAE,EAAE4E,IAAI,CAAC5E,EAAE;MACX2B,IAAI,EAAEiD,IAAI,CAACjD,IAAI;MACf1B,KAAK,EAAE2E,IAAI,CAAC3E,KAAK,CAAC6E,QAAQ;MAC1BpD,GAAG,EAAEkD,IAAI,CAACG,IAAI;MACdC,IAAI,EAAE;IACP,CAAC;EACF;EAEA,SAASC,gBAAgBA,CAAEC,UAAU,EAAG;IACvC,OAAO,IAAAC,iCAAwB,EAC9B,IAAAC,aAAO,GACN;IACA,IAAAlF,QAAE,EAAE,8BAA+B,CAAC,EACpCgF,UACD,CAAC,EACD;MAAEG,IAAI,EAAE,IAAAC,MAAA,CAAAC,aAAA,cAAO;IAAE,CAClB,CAAC;EACF;EAEA,OACC,IAAAD,MAAA,CAAAC,aAAA,EAACjG,WAAA,CAAAkG,OAAO;IACPC,MAAM,EAAGvB,aAAe;IACxBwB,OAAO,EAAGjF,cAAgB;IAC1BD,cAAc,EAAGA,cAAgB;IACjCmF,SAAS,EAAC,QAAQ;IAClBC,MAAM,EAAG,EAAI;IACbC,KAAK;EAAA,GAEL,IAAAP,MAAA,CAAAC,aAAA,EAAC9F,YAAA,CAAAqG,yBAAW;IACXxF,KAAK,EAAGkB,SAAW;IACnBjB,QAAQ,EAAG8B,YAAc;IACzB0D,QAAQ,EAAG9D,UAAY;IACvB+D,eAAe;IACfC,gBAAgB,EAAGlF,gBAAgB,IAAI2D,YAAc;IACrDwB,oBAAoB,EAAGlF,kBAAoB;IAC3CmF,0BAA0B,EAAGlB,gBAAkB;IAC/CmB,cAAc;IACd9B,QAAQ,EAAGzE,aAAe;IAC1BwG,sBAAsB,EAAG,IAAM;IAC/BC,gBAAgB,EAAG;MAClB;MACAC,+BAA+B,EAAE;QAChC5E,IAAI,EAAE,MAAM;QACZ6E,OAAO,EAAE,MAAM;QACfC,OAAO,EAAE;MACV;IACD;EAAG,CACH,CACO,CAAC;AAEZ;AAEA,SAAS7F,6BAA6BA,CAAEN,KAAK,EAAEF,QAAQ,EAAG;EACzD;EACA,IAAIsG,SAAS,GAAGpG,KAAK,CAAC+C,KAAK;EAC3B,IAAIsD,OAAO,GAAGrG,KAAK,CAACgD,GAAG;;EAEvB;EACA;EACA;EACA,IAAKlD,QAAQ,EAAG;IACf,MAAMqD,QAAQ,GAAG,IAAAC,wBAAiB,EAAEpD,KAAK,EAAE;MAC1CqB,IAAI,EAAE;IACP,CAAE,CAAC;IAEH+E,SAAS,GAAGjD,QAAQ,CAACJ,KAAK;;IAE1B;IACA;IACAsD,OAAO,GAAGlD,QAAQ,CAACH,GAAG,GAAG,CAAC;EAC3B;;EAEA;EACA,OAAO,IAAAsD,eAAK,EAAEtG,KAAK,EAAEoG,SAAS,EAAEC,OAAQ,CAAC;AAC1C;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc5G,YAAY"}
@@ -63,6 +63,5 @@ const LinkPickerScreen = () => {
63
63
  });
64
64
  }, [inputValue]);
65
65
  };
66
- var _default = LinkPickerScreen;
67
- exports.default = _default;
66
+ var _default = exports.default = LinkPickerScreen;
68
67
  //# sourceMappingURL=link-picker-screen.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_native","_element","_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","_react","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":";;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAKA,IAAAE,QAAA,GAAAF,OAAA;AAEA,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,IAAAC,MAAA,CAAAC,aAAA,EAAC9B,WAAA,CAAA+B,UAAU;MACVC,KAAK,EAAGX,UAAY;MACpBV,YAAY,EAAGA,YAAc;MAC7BY,QAAQ,EAAGA;IAAU,CACrB,CAAC;EAEJ,CAAC,EAAE,CAAEF,UAAU,CAAG,CAAC;AACpB,CAAC;AAAC,IAAAY,QAAA,GAEa9B,gBAAgB;AAAA+B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_reactNative","require","_native","_element","_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","_react","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":";;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAKA,IAAAE,QAAA,GAAAF,OAAA;AAEA,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,IAAAC,MAAA,CAAAC,aAAA,EAAC9B,WAAA,CAAA+B,UAAU;MACVC,KAAK,EAAGX,UAAY;MACpBV,YAAY,EAAGA,YAAc;MAC7BY,QAAQ,EAAGA;IAAU,CACrB,CAAC;EAEJ,CAAC,EAAE,CAAEF,UAAU,CAAG,CAAC;AACpB,CAAC;AAAC,IAAAY,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEahC,gBAAgB"}
@@ -218,6 +218,5 @@ const LinkSettingsScreen = ({
218
218
  })));
219
219
  }, [inputValue, text, opensInNewWindow, listProps.safeAreaBottomInset]);
220
220
  };
221
- var _default = LinkSettingsScreen;
222
- exports.default = _default;
221
+ var _default = exports.default = LinkSettingsScreen;
223
222
  //# sourceMappingURL=link-settings-screen.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_native","require","_i18n","_element","_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","_react","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
+ {"version":3,"names":["_native","require","_i18n","_element","_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","_react","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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"}
@@ -4,9 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = {
7
+ var _default = exports.default = {
8
8
  settings: 'linkSettings',
9
9
  picker: 'linkPicker'
10
10
  };
11
- exports.default = _default;
12
11
  //# sourceMappingURL=screens.native.js.map
@@ -1 +1 @@
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
+ {"version":3,"names":["settings","picker"],"sources":["@wordpress/format-library/src/link/modal-screens/screens.native.js"],"sourcesContent":["export default {\n\tsettings: 'linkSettings',\n\tpicker: 'linkPicker',\n};\n"],"mappings":";;;;;;iCAAe;EACdA,QAAQ,EAAE,cAAc;EACxBC,MAAM,EAAE;AACT,CAAC"}
@@ -45,6 +45,5 @@ const ModalLinkUI = ({
45
45
  }, (0, _react.createElement)(_linkPickerScreen.default, null))));
46
46
  }, [isVisible]);
47
47
  };
48
- var _default = (0, _components.withSpokenMessages)(ModalLinkUI);
49
- exports.default = _default;
48
+ var _default = exports.default = (0, _components.withSpokenMessages)(ModalLinkUI);
50
49
  //# sourceMappingURL=modal.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_components","_screens","_interopRequireDefault","_linkSettingsScreen","_linkPickerScreen","ModalLinkUI","isVisible","restProps","useMemo","_react","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,IAAAC,MAAA,CAAAC,aAAA,EAACV,WAAA,CAAAW,WAAW;MACXL,SAAS,EAAGA,SAAW;MACvBM,UAAU;MACVC,OAAO,EAAGN,SAAS,CAACM,OAAS;MAC7BC,aAAa;MACbC,MAAM,EAAC;IAAqB,GAE5B,IAAAN,MAAA,CAAAC,aAAA,EAACV,WAAA,CAAAW,WAAW,CAACK,mBAAmB;MAACC,OAAO;MAACC,IAAI;IAAA,GAC5C,IAAAT,MAAA,CAAAC,aAAA,EAACV,WAAA,CAAAW,WAAW,CAACQ,gBAAgB;MAACC,IAAI,EAAGC,gBAAO,CAACC;IAAU,GACtD,IAAAb,MAAA,CAAAC,aAAA,EAACP,mBAAA,CAAAoB,OAAkB;MAClBjB,SAAS,EAAGA,SAAW;MAAA,GAClBC;IAAS,CACd,CAC4B,CAAC,EAC/B,IAAAE,MAAA,CAAAC,aAAA,EAACV,WAAA,CAAAW,WAAW,CAACQ,gBAAgB;MAC5BC,IAAI,EAAGC,gBAAO,CAACG,MAAQ;MACvBC,YAAY;MACZC,UAAU;IAAA,GAEV,IAAAjB,MAAA,CAAAC,aAAA,EAACN,iBAAA,CAAAmB,OAAgB,MAAE,CACU,CACE,CACrB,CAAC;EAEhB,CAAC,EAAE,CAAEjB,SAAS,CAAG,CAAC;AACnB,CAAC;AAAC,IAAAqB,QAAA,GAEa,IAAAC,8BAAkB,EAAEvB,WAAY,CAAC;AAAAwB,OAAA,CAAAN,OAAA,GAAAI,QAAA"}
1
+ {"version":3,"names":["_element","require","_components","_screens","_interopRequireDefault","_linkSettingsScreen","_linkPickerScreen","ModalLinkUI","isVisible","restProps","useMemo","_react","createElement","BottomSheet","hideHeader","onClose","hasNavigation","testID","NavigationContainer","animate","main","NavigationScreen","name","screens","settings","default","picker","isScrollable","fullScreen","_default","exports","withSpokenMessages"],"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,IAAAC,MAAA,CAAAC,aAAA,EAACV,WAAA,CAAAW,WAAW;MACXL,SAAS,EAAGA,SAAW;MACvBM,UAAU;MACVC,OAAO,EAAGN,SAAS,CAACM,OAAS;MAC7BC,aAAa;MACbC,MAAM,EAAC;IAAqB,GAE5B,IAAAN,MAAA,CAAAC,aAAA,EAACV,WAAA,CAAAW,WAAW,CAACK,mBAAmB;MAACC,OAAO;MAACC,IAAI;IAAA,GAC5C,IAAAT,MAAA,CAAAC,aAAA,EAACV,WAAA,CAAAW,WAAW,CAACQ,gBAAgB;MAACC,IAAI,EAAGC,gBAAO,CAACC;IAAU,GACtD,IAAAb,MAAA,CAAAC,aAAA,EAACP,mBAAA,CAAAoB,OAAkB;MAClBjB,SAAS,EAAGA,SAAW;MAAA,GAClBC;IAAS,CACd,CAC4B,CAAC,EAC/B,IAAAE,MAAA,CAAAC,aAAA,EAACV,WAAA,CAAAW,WAAW,CAACQ,gBAAgB;MAC5BC,IAAI,EAAGC,gBAAO,CAACG,MAAQ;MACvBC,YAAY;MACZC,UAAU;IAAA,GAEV,IAAAjB,MAAA,CAAAC,aAAA,EAACN,iBAAA,CAAAmB,OAAgB,MAAE,CACU,CACE,CACrB,CAAC;EAEhB,CAAC,EAAE,CAAEjB,SAAS,CAAG,CAAC;AACnB,CAAC;AAAC,IAAAqB,QAAA,GAAAC,OAAA,CAAAL,OAAA,GAEa,IAAAM,8BAAkB,EAAExB,WAAY,CAAC"}
@@ -31,6 +31,5 @@ function useLinkInstanceKey(instance) {
31
31
  weakMap.set(instance, id);
32
32
  return getKey(id);
33
33
  }
34
- var _default = useLinkInstanceKey;
35
- exports.default = _default;
34
+ var _default = exports.default = useLinkInstanceKey;
36
35
  //# sourceMappingURL=use-link-instance-key.js.map
@@ -1 +1 @@
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"}
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,GAAAC,OAAA,CAAAC,OAAA,GAEcP,kBAAkB"}
@@ -15,7 +15,7 @@ var _icons = require("@wordpress/icons");
15
15
 
16
16
  const name = 'core/strikethrough';
17
17
  const title = (0, _i18n.__)('Strikethrough');
18
- const strikethrough = {
18
+ const strikethrough = exports.strikethrough = {
19
19
  name,
20
20
  title,
21
21
  tagName: 's',
@@ -46,5 +46,4 @@ const strikethrough = {
46
46
  }));
47
47
  }
48
48
  };
49
- exports.strikethrough = strikethrough;
50
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","strikethrough","tagName","className","edit","isActive","value","onChange","onFocus","onClick","toggleFormat","type","_react","createElement","Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","formatStrikethrough","role","exports"],"sources":["@wordpress/format-library/src/strikethrough/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { formatStrikethrough } from '@wordpress/icons';\n\nconst name = 'core/strikethrough';\nconst title = __( 'Strikethrough' );\n\nexport const strikethrough = {\n\tname,\n\ttitle,\n\ttagName: 's',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onClick() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<RichTextShortcut\n\t\t\t\t\ttype=\"access\"\n\t\t\t\t\tcharacter=\"d\"\n\t\t\t\t\tonUse={ onClick }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\ticon={ formatStrikethrough }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAIA,IAAAG,MAAA,GAAAH,OAAA;AATA;AACA;AACA;;AASA,MAAMI,IAAI,GAAG,oBAAoB;AACjC,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,eAAgB,CAAC;AAE5B,MAAMC,aAAa,GAAG;EAC5BH,IAAI;EACJC,KAAK;EACLG,OAAO,EAAE,GAAG;EACZC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,OAAOA,CAAA,EAAG;MAClBF,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAE;QAAEK,IAAI,EAAEb,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;MACxDS,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAI,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACjB,YAAA,CAAAmB,gBAAgB;MAChBJ,IAAI,EAAC,QAAQ;MACbK,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGR;IAAS,CACjB,CAAC,EACF,IAAAG,MAAA,CAAAC,aAAA,EAACjB,YAAA,CAAAsB,qBAAqB;MACrBC,IAAI,EAAGC,0BAAqB;MAC5BrB,KAAK,EAAGA,KAAO;MACfU,OAAO,EAAGA,OAAS;MACnBJ,QAAQ,EAAGA,QAAU;MACrBgB,IAAI,EAAC;IAAkB,CACvB,CACA,CAAC;EAEL;AACD,CAAC;AAACC,OAAA,CAAArB,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","strikethrough","exports","tagName","className","edit","isActive","value","onChange","onFocus","onClick","toggleFormat","type","_react","createElement","Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","formatStrikethrough","role"],"sources":["@wordpress/format-library/src/strikethrough/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { formatStrikethrough } from '@wordpress/icons';\n\nconst name = 'core/strikethrough';\nconst title = __( 'Strikethrough' );\n\nexport const strikethrough = {\n\tname,\n\ttitle,\n\ttagName: 's',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onClick() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<RichTextShortcut\n\t\t\t\t\ttype=\"access\"\n\t\t\t\t\tcharacter=\"d\"\n\t\t\t\t\tonUse={ onClick }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\ticon={ formatStrikethrough }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAIA,IAAAG,MAAA,GAAAH,OAAA;AATA;AACA;AACA;;AASA,MAAMI,IAAI,GAAG,oBAAoB;AACjC,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,eAAgB,CAAC;AAE5B,MAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC5BH,IAAI;EACJC,KAAK;EACLI,OAAO,EAAE,GAAG;EACZC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,OAAOA,CAAA,EAAG;MAClBF,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAE;QAAEK,IAAI,EAAEd,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;MACxDU,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAI,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAClB,YAAA,CAAAoB,gBAAgB;MAChBJ,IAAI,EAAC,QAAQ;MACbK,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGR;IAAS,CACjB,CAAC,EACF,IAAAG,MAAA,CAAAC,aAAA,EAAClB,YAAA,CAAAuB,qBAAqB;MACrBC,IAAI,EAAGC,0BAAqB;MAC5BtB,KAAK,EAAGA,KAAO;MACfW,OAAO,EAAGA,OAAS;MACnBJ,QAAQ,EAAGA,QAAU;MACrBgB,IAAI,EAAC;IAAkB,CACvB,CACA,CAAC;EAEL;AACD,CAAC"}
@@ -15,7 +15,7 @@ var _icons = require("@wordpress/icons");
15
15
 
16
16
  const name = 'core/subscript';
17
17
  const title = (0, _i18n.__)('Subscript');
18
- const subscript = {
18
+ const subscript = exports.subscript = {
19
19
  name,
20
20
  title,
21
21
  tagName: 'sub',
@@ -45,5 +45,4 @@ const subscript = {
45
45
  });
46
46
  }
47
47
  };
48
- exports.subscript = subscript;
49
48
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","subscript","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","toggleFormat","type","onClick","_react","createElement","RichTextToolbarButton","icon","subscriptIcon","role","exports"],"sources":["@wordpress/format-library/src/subscript/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { subscript as subscriptIcon } from '@wordpress/icons';\n\nconst name = 'core/subscript';\nconst title = __( 'Subscript' );\n\nexport const subscript = {\n\tname,\n\ttitle,\n\ttagName: 'sub',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonToggle();\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ subscriptIcon }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t);\n\t},\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMA,MAAMI,IAAI,GAAG,gBAAgB;AAC7B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,WAAY,CAAC;AAExB,MAAMC,SAAS,GAAG;EACxBH,IAAI;EACJC,KAAK;EACLG,OAAO,EAAE,KAAK;EACdC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,QAAQA,CAAA,EAAG;MACnBF,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAE;QAAEK,IAAI,EAAEb,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;IACzD;IAEA,SAASa,OAAOA,CAAA,EAAG;MAClBH,QAAQ,CAAC,CAAC;MACVD,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAK,MAAA,CAAAC,aAAA,EAAClB,YAAA,CAAAmB,qBAAqB;MACrBC,IAAI,EAAGC,gBAAe;MACtBlB,KAAK,EAAGA,KAAO;MACfa,OAAO,EAAGA,OAAS;MACnBP,QAAQ,EAAGA,QAAU;MACrBa,IAAI,EAAC;IAAkB,CACvB,CAAC;EAEJ;AACD,CAAC;AAACC,OAAA,CAAAlB,SAAA,GAAAA,SAAA"}
1
+ {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","subscript","exports","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","toggleFormat","type","onClick","_react","createElement","RichTextToolbarButton","icon","subscriptIcon","role"],"sources":["@wordpress/format-library/src/subscript/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { subscript as subscriptIcon } from '@wordpress/icons';\n\nconst name = 'core/subscript';\nconst title = __( 'Subscript' );\n\nexport const subscript = {\n\tname,\n\ttitle,\n\ttagName: 'sub',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonToggle();\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ subscriptIcon }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t);\n\t},\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMA,MAAMI,IAAI,GAAG,gBAAgB;AAC7B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,WAAY,CAAC;AAExB,MAAMC,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG;EACxBH,IAAI;EACJC,KAAK;EACLI,OAAO,EAAE,KAAK;EACdC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,QAAQA,CAAA,EAAG;MACnBF,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAE;QAAEK,IAAI,EAAEd,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;IACzD;IAEA,SAASc,OAAOA,CAAA,EAAG;MAClBH,QAAQ,CAAC,CAAC;MACVD,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAK,MAAA,CAAAC,aAAA,EAACnB,YAAA,CAAAoB,qBAAqB;MACrBC,IAAI,EAAGC,gBAAe;MACtBnB,KAAK,EAAGA,KAAO;MACfc,OAAO,EAAGA,OAAS;MACnBP,QAAQ,EAAGA,QAAU;MACrBa,IAAI,EAAC;IAAkB,CACvB,CAAC;EAEJ;AACD,CAAC"}
@@ -15,7 +15,7 @@ var _icons = require("@wordpress/icons");
15
15
 
16
16
  const name = 'core/superscript';
17
17
  const title = (0, _i18n.__)('Superscript');
18
- const superscript = {
18
+ const superscript = exports.superscript = {
19
19
  name,
20
20
  title,
21
21
  tagName: 'sup',
@@ -45,5 +45,4 @@ const superscript = {
45
45
  });
46
46
  }
47
47
  };
48
- exports.superscript = superscript;
49
48
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","superscript","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","toggleFormat","type","onClick","_react","createElement","RichTextToolbarButton","icon","superscriptIcon","role","exports"],"sources":["@wordpress/format-library/src/superscript/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { superscript as superscriptIcon } from '@wordpress/icons';\n\nconst name = 'core/superscript';\nconst title = __( 'Superscript' );\n\nexport const superscript = {\n\tname,\n\ttitle,\n\ttagName: 'sup',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonToggle();\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ superscriptIcon }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t);\n\t},\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMA,MAAMI,IAAI,GAAG,kBAAkB;AAC/B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,aAAc,CAAC;AAE1B,MAAMC,WAAW,GAAG;EAC1BH,IAAI;EACJC,KAAK;EACLG,OAAO,EAAE,KAAK;EACdC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,QAAQA,CAAA,EAAG;MACnBF,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAE;QAAEK,IAAI,EAAEb,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;IACzD;IAEA,SAASa,OAAOA,CAAA,EAAG;MAClBH,QAAQ,CAAC,CAAC;MACVD,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAK,MAAA,CAAAC,aAAA,EAAClB,YAAA,CAAAmB,qBAAqB;MACrBC,IAAI,EAAGC,kBAAiB;MACxBlB,KAAK,EAAGA,KAAO;MACfa,OAAO,EAAGA,OAAS;MACnBP,QAAQ,EAAGA,QAAU;MACrBa,IAAI,EAAC;IAAkB,CACvB,CAAC;EAEJ;AACD,CAAC;AAACC,OAAA,CAAAlB,WAAA,GAAAA,WAAA"}
1
+ {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","superscript","exports","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","toggleFormat","type","onClick","_react","createElement","RichTextToolbarButton","icon","superscriptIcon","role"],"sources":["@wordpress/format-library/src/superscript/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { superscript as superscriptIcon } from '@wordpress/icons';\n\nconst name = 'core/superscript';\nconst title = __( 'Superscript' );\n\nexport const superscript = {\n\tname,\n\ttitle,\n\ttagName: 'sup',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonToggle();\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ superscriptIcon }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t);\n\t},\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMA,MAAMI,IAAI,GAAG,kBAAkB;AAC/B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,aAAc,CAAC;AAE1B,MAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EAC1BH,IAAI;EACJC,KAAK;EACLI,OAAO,EAAE,KAAK;EACdC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,QAAQA,CAAA,EAAG;MACnBF,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAE;QAAEK,IAAI,EAAEd,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;IACzD;IAEA,SAASc,OAAOA,CAAA,EAAG;MAClBH,QAAQ,CAAC,CAAC;MACVD,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAK,MAAA,CAAAC,aAAA,EAACnB,YAAA,CAAAoB,qBAAqB;MACrBC,IAAI,EAAGC,kBAAiB;MACxBnB,KAAK,EAAGA,KAAO;MACfc,OAAO,EAAGA,OAAS;MACnBP,QAAQ,EAAGA,QAAU;MACrBa,IAAI,EAAC;IAAkB,CACvB,CAAC;EAEJ;AACD,CAAC"}
@@ -11,8 +11,8 @@ var _blockEditor = require("@wordpress/block-editor");
11
11
  var _icons = require("@wordpress/icons");
12
12
  var _richText = require("@wordpress/rich-text");
13
13
  var _inline = _interopRequireWildcard(require("./inline"));
14
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
16
  /**
17
17
  * WordPress dependencies
18
18
  */
@@ -21,8 +21,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
21
21
  * Internal dependencies
22
22
  */
23
23
 
24
- const transparentValue = 'rgba(0, 0, 0, 0)';
25
- exports.transparentValue = transparentValue;
24
+ const transparentValue = exports.transparentValue = 'rgba(0, 0, 0, 0)';
26
25
  const name = 'core/text-color';
27
26
  const title = (0, _i18n.__)('Highlight');
28
27
  const EMPTY_ARRAY = [];
@@ -89,7 +88,7 @@ function TextColorEdit({
89
88
  contentRef: contentRef
90
89
  }));
91
90
  }
92
- const textColor = {
91
+ const textColor = exports.textColor = {
93
92
  name,
94
93
  title,
95
94
  tagName: 'mark',
@@ -100,5 +99,4 @@ const textColor = {
100
99
  },
101
100
  edit: TextColorEdit
102
101
  };
103
- exports.textColor = textColor;
104
102
  //# sourceMappingURL=index.js.map