@wordpress/format-library 4.27.2 → 4.28.1

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 (62) 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 +73 -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 +74 -76
  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 +6 -7
  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/text-color/inline.js +6 -12
  45. package/build/text-color/inline.js.map +1 -1
  46. package/build/underline/index.js +1 -2
  47. package/build/underline/index.js.map +1 -1
  48. package/build/unknown/index.js +1 -2
  49. package/build/unknown/index.js.map +1 -1
  50. package/build-module/link/index.js +74 -24
  51. package/build-module/link/index.js.map +1 -1
  52. package/build-module/link/inline.js +72 -73
  53. package/build-module/link/inline.js.map +1 -1
  54. package/build-module/text-color/index.js +2 -1
  55. package/build-module/text-color/index.js.map +1 -1
  56. package/build-module/text-color/inline.js +7 -13
  57. package/build-module/text-color/inline.js.map +1 -1
  58. package/package.json +14 -14
  59. package/src/link/index.js +84 -35
  60. package/src/link/inline.js +87 -93
  61. package/src/text-color/index.js +1 -0
  62. package/src/text-color/inline.js +2 -12
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 4.28.0 (2024-02-09)
6
+
5
7
  ## 4.27.0 (2024-01-24)
6
8
 
7
9
  ## 4.26.0 (2024-01-10)
@@ -15,7 +15,7 @@ var _icons = require("@wordpress/icons");
15
15
 
16
16
  const name = 'core/bold';
17
17
  const title = (0, _i18n.__)('Bold');
18
- const bold = {
18
+ const bold = exports.bold = {
19
19
  name,
20
20
  title,
21
21
  tagName: 'strong',
@@ -56,5 +56,4 @@ const bold = {
56
56
  }));
57
57
  }
58
58
  };
59
- exports.bold = bold;
60
59
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","bold","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","toggleFormat","type","onClick","_react","createElement","Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","formatBold","shortcutType","shortcutCharacter","__unstableRichTextInputEvent","inputType","onInput","exports"],"sources":["@wordpress/format-library/src/bold/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n\t__unstableRichTextInputEvent,\n} from '@wordpress/block-editor';\nimport { formatBold } from '@wordpress/icons';\n\nconst name = 'core/bold';\nconst title = __( 'Bold' );\n\nexport const bold = {\n\tname,\n\ttitle,\n\ttagName: 'strong',\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\tonChange( toggleFormat( value, { type: name } ) );\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=\"primary\"\n\t\t\t\t\tcharacter=\"b\"\n\t\t\t\t\tonUse={ onToggle }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"bold\"\n\t\t\t\t\ticon={ formatBold }\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\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"b\"\n\t\t\t\t/>\n\t\t\t\t<__unstableRichTextInputEvent\n\t\t\t\t\tinputType=\"formatBold\"\n\t\t\t\t\tonInput={ onToggle }\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;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAUA,MAAMI,IAAI,GAAG,WAAW;AACxB,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,MAAO,CAAC;AAEnB,MAAMC,IAAI,GAAG;EACnBH,IAAI;EACJC,KAAK;EACLG,OAAO,EAAE,QAAQ;EACjBC,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;MAClBL,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAE;QAAEK,IAAI,EAAEb;MAAK,CAAE,CAAE,CAAC;MACjDU,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAK,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAClB,YAAA,CAAAoB,gBAAgB;MAChBL,IAAI,EAAC,SAAS;MACdM,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGT;IAAU,CAClB,CAAC,EACF,IAAAI,MAAA,CAAAC,aAAA,EAAClB,YAAA,CAAAuB,qBAAqB;MACrBrB,IAAI,EAAC,MAAM;MACXsB,IAAI,EAAGC,iBAAY;MACnBtB,KAAK,EAAGA,KAAO;MACfa,OAAO,EAAGA,OAAS;MACnBP,QAAQ,EAAGA,QAAU;MACrBiB,YAAY,EAAC,SAAS;MACtBC,iBAAiB,EAAC;IAAG,CACrB,CAAC,EACF,IAAAV,MAAA,CAAAC,aAAA,EAAClB,YAAA,CAAA4B,4BAA4B;MAC5BC,SAAS,EAAC,YAAY;MACtBC,OAAO,EAAGjB;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC;AAACkB,OAAA,CAAA1B,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","bold","exports","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","toggleFormat","type","onClick","_react","createElement","Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","formatBold","shortcutType","shortcutCharacter","__unstableRichTextInputEvent","inputType","onInput"],"sources":["@wordpress/format-library/src/bold/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n\t__unstableRichTextInputEvent,\n} from '@wordpress/block-editor';\nimport { formatBold } from '@wordpress/icons';\n\nconst name = 'core/bold';\nconst title = __( 'Bold' );\n\nexport const bold = {\n\tname,\n\ttitle,\n\ttagName: 'strong',\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\tonChange( toggleFormat( value, { type: name } ) );\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=\"primary\"\n\t\t\t\t\tcharacter=\"b\"\n\t\t\t\t\tonUse={ onToggle }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"bold\"\n\t\t\t\t\ticon={ formatBold }\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\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"b\"\n\t\t\t\t/>\n\t\t\t\t<__unstableRichTextInputEvent\n\t\t\t\t\tinputType=\"formatBold\"\n\t\t\t\t\tonInput={ onToggle }\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;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAUA,MAAMI,IAAI,GAAG,WAAW;AACxB,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,MAAO,CAAC;AAEnB,MAAMC,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EACnBH,IAAI;EACJC,KAAK;EACLI,OAAO,EAAE,QAAQ;EACjBC,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;MAClBL,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAE;QAAEK,IAAI,EAAEd;MAAK,CAAE,CAAE,CAAC;MACjDW,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAK,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACnB,YAAA,CAAAqB,gBAAgB;MAChBL,IAAI,EAAC,SAAS;MACdM,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGT;IAAU,CAClB,CAAC,EACF,IAAAI,MAAA,CAAAC,aAAA,EAACnB,YAAA,CAAAwB,qBAAqB;MACrBtB,IAAI,EAAC,MAAM;MACXuB,IAAI,EAAGC,iBAAY;MACnBvB,KAAK,EAAGA,KAAO;MACfc,OAAO,EAAGA,OAAS;MACnBP,QAAQ,EAAGA,QAAU;MACrBiB,YAAY,EAAC,SAAS;MACtBC,iBAAiB,EAAC;IAAG,CACrB,CAAC,EACF,IAAAV,MAAA,CAAAC,aAAA,EAACnB,YAAA,CAAA6B,4BAA4B;MAC5BC,SAAS,EAAC,YAAY;MACtBC,OAAO,EAAGjB;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC"}
@@ -15,7 +15,7 @@ var _icons = require("@wordpress/icons");
15
15
 
16
16
  const name = 'core/code';
17
17
  const title = (0, _i18n.__)('Inline code');
18
- const code = {
18
+ const code = exports.code = {
19
19
  name,
20
20
  title,
21
21
  tagName: 'code',
@@ -77,5 +77,4 @@ const code = {
77
77
  }));
78
78
  }
79
79
  };
80
- exports.code = code;
81
80
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","code","tagName","className","__unstableInputRule","value","BACKTICK","start","text","characterBefore","indexBefore","lastIndexOf","startIndex","endIndex","remove","applyFormat","type","edit","onChange","onFocus","isActive","onClick","toggleFormat","_react","createElement","Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","codeIcon","role","exports"],"sources":["@wordpress/format-library/src/code/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat, remove, applyFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { code as codeIcon } from '@wordpress/icons';\n\nconst name = 'core/code';\nconst title = __( 'Inline code' );\n\nexport const code = {\n\tname,\n\ttitle,\n\ttagName: 'code',\n\tclassName: null,\n\t__unstableInputRule( value ) {\n\t\tconst BACKTICK = '`';\n\t\tconst { start, text } = value;\n\t\tconst characterBefore = text[ start - 1 ];\n\n\t\t// Quick check the text for the necessary character.\n\t\tif ( characterBefore !== BACKTICK ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( start - 2 < 0 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst indexBefore = text.lastIndexOf( BACKTICK, start - 2 );\n\t\tif ( indexBefore === -1 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst startIndex = indexBefore;\n\t\tconst endIndex = start - 2;\n\n\t\tif ( startIndex === endIndex ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tvalue = remove( value, startIndex, startIndex + 1 );\n\t\tvalue = remove( value, endIndex, endIndex + 1 );\n\t\tvalue = applyFormat( value, { type: name }, startIndex, endIndex );\n\n\t\treturn value;\n\t},\n\tedit( { value, onChange, onFocus, isActive } ) {\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=\"x\"\n\t\t\t\t\tonUse={ onClick }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\ticon={ codeIcon }\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,WAAW;AACxB,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,aAAc,CAAC;AAE1B,MAAMC,IAAI,GAAG;EACnBH,IAAI;EACJC,KAAK;EACLG,OAAO,EAAE,MAAM;EACfC,SAAS,EAAE,IAAI;EACfC,mBAAmBA,CAAEC,KAAK,EAAG;IAC5B,MAAMC,QAAQ,GAAG,GAAG;IACpB,MAAM;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGH,KAAK;IAC7B,MAAMI,eAAe,GAAGD,IAAI,CAAED,KAAK,GAAG,CAAC,CAAE;;IAEzC;IACA,IAAKE,eAAe,KAAKH,QAAQ,EAAG;MACnC,OAAOD,KAAK;IACb;IAEA,IAAKE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAG;MACpB,OAAOF,KAAK;IACb;IAEA,MAAMK,WAAW,GAAGF,IAAI,CAACG,WAAW,CAAEL,QAAQ,EAAEC,KAAK,GAAG,CAAE,CAAC;IAC3D,IAAKG,WAAW,KAAK,CAAC,CAAC,EAAG;MACzB,OAAOL,KAAK;IACb;IAEA,MAAMO,UAAU,GAAGF,WAAW;IAC9B,MAAMG,QAAQ,GAAGN,KAAK,GAAG,CAAC;IAE1B,IAAKK,UAAU,KAAKC,QAAQ,EAAG;MAC9B,OAAOR,KAAK;IACb;IAEAA,KAAK,GAAG,IAAAS,gBAAM,EAAET,KAAK,EAAEO,UAAU,EAAEA,UAAU,GAAG,CAAE,CAAC;IACnDP,KAAK,GAAG,IAAAS,gBAAM,EAAET,KAAK,EAAEQ,QAAQ,EAAEA,QAAQ,GAAG,CAAE,CAAC;IAC/CR,KAAK,GAAG,IAAAU,qBAAW,EAAEV,KAAK,EAAE;MAAEW,IAAI,EAAElB;IAAK,CAAC,EAAEc,UAAU,EAAEC,QAAS,CAAC;IAElE,OAAOR,KAAK;EACb,CAAC;EACDY,IAAIA,CAAE;IAAEZ,KAAK;IAAEa,QAAQ;IAAEC,OAAO;IAAEC;EAAS,CAAC,EAAG;IAC9C,SAASC,OAAOA,CAAA,EAAG;MAClBH,QAAQ,CAAE,IAAAI,sBAAY,EAAEjB,KAAK,EAAE;QAAEW,IAAI,EAAElB,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;MACxDoB,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAI,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAC5B,YAAA,CAAA8B,gBAAgB;MAChBV,IAAI,EAAC,QAAQ;MACbW,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGP;IAAS,CACjB,CAAC,EACF,IAAAE,MAAA,CAAAC,aAAA,EAAC5B,YAAA,CAAAiC,qBAAqB;MACrBC,IAAI,EAAGC,WAAU;MACjBhC,KAAK,EAAGA,KAAO;MACfsB,OAAO,EAAGA,OAAS;MACnBD,QAAQ,EAAGA,QAAU;MACrBY,IAAI,EAAC;IAAkB,CACvB,CACA,CAAC;EAEL;AACD,CAAC;AAACC,OAAA,CAAAhC,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","code","exports","tagName","className","__unstableInputRule","value","BACKTICK","start","text","characterBefore","indexBefore","lastIndexOf","startIndex","endIndex","remove","applyFormat","type","edit","onChange","onFocus","isActive","onClick","toggleFormat","_react","createElement","Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","codeIcon","role"],"sources":["@wordpress/format-library/src/code/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat, remove, applyFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { code as codeIcon } from '@wordpress/icons';\n\nconst name = 'core/code';\nconst title = __( 'Inline code' );\n\nexport const code = {\n\tname,\n\ttitle,\n\ttagName: 'code',\n\tclassName: null,\n\t__unstableInputRule( value ) {\n\t\tconst BACKTICK = '`';\n\t\tconst { start, text } = value;\n\t\tconst characterBefore = text[ start - 1 ];\n\n\t\t// Quick check the text for the necessary character.\n\t\tif ( characterBefore !== BACKTICK ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( start - 2 < 0 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst indexBefore = text.lastIndexOf( BACKTICK, start - 2 );\n\t\tif ( indexBefore === -1 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst startIndex = indexBefore;\n\t\tconst endIndex = start - 2;\n\n\t\tif ( startIndex === endIndex ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tvalue = remove( value, startIndex, startIndex + 1 );\n\t\tvalue = remove( value, endIndex, endIndex + 1 );\n\t\tvalue = applyFormat( value, { type: name }, startIndex, endIndex );\n\n\t\treturn value;\n\t},\n\tedit( { value, onChange, onFocus, isActive } ) {\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=\"x\"\n\t\t\t\t\tonUse={ onClick }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\ticon={ codeIcon }\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,WAAW;AACxB,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,aAAc,CAAC;AAE1B,MAAMC,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EACnBH,IAAI;EACJC,KAAK;EACLI,OAAO,EAAE,MAAM;EACfC,SAAS,EAAE,IAAI;EACfC,mBAAmBA,CAAEC,KAAK,EAAG;IAC5B,MAAMC,QAAQ,GAAG,GAAG;IACpB,MAAM;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGH,KAAK;IAC7B,MAAMI,eAAe,GAAGD,IAAI,CAAED,KAAK,GAAG,CAAC,CAAE;;IAEzC;IACA,IAAKE,eAAe,KAAKH,QAAQ,EAAG;MACnC,OAAOD,KAAK;IACb;IAEA,IAAKE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAG;MACpB,OAAOF,KAAK;IACb;IAEA,MAAMK,WAAW,GAAGF,IAAI,CAACG,WAAW,CAAEL,QAAQ,EAAEC,KAAK,GAAG,CAAE,CAAC;IAC3D,IAAKG,WAAW,KAAK,CAAC,CAAC,EAAG;MACzB,OAAOL,KAAK;IACb;IAEA,MAAMO,UAAU,GAAGF,WAAW;IAC9B,MAAMG,QAAQ,GAAGN,KAAK,GAAG,CAAC;IAE1B,IAAKK,UAAU,KAAKC,QAAQ,EAAG;MAC9B,OAAOR,KAAK;IACb;IAEAA,KAAK,GAAG,IAAAS,gBAAM,EAAET,KAAK,EAAEO,UAAU,EAAEA,UAAU,GAAG,CAAE,CAAC;IACnDP,KAAK,GAAG,IAAAS,gBAAM,EAAET,KAAK,EAAEQ,QAAQ,EAAEA,QAAQ,GAAG,CAAE,CAAC;IAC/CR,KAAK,GAAG,IAAAU,qBAAW,EAAEV,KAAK,EAAE;MAAEW,IAAI,EAAEnB;IAAK,CAAC,EAAEe,UAAU,EAAEC,QAAS,CAAC;IAElE,OAAOR,KAAK;EACb,CAAC;EACDY,IAAIA,CAAE;IAAEZ,KAAK;IAAEa,QAAQ;IAAEC,OAAO;IAAEC;EAAS,CAAC,EAAG;IAC9C,SAASC,OAAOA,CAAA,EAAG;MAClBH,QAAQ,CAAE,IAAAI,sBAAY,EAAEjB,KAAK,EAAE;QAAEW,IAAI,EAAEnB,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;MACxDqB,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAI,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAC7B,YAAA,CAAA+B,gBAAgB;MAChBV,IAAI,EAAC,QAAQ;MACbW,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGP;IAAS,CACjB,CAAC,EACF,IAAAE,MAAA,CAAAC,aAAA,EAAC7B,YAAA,CAAAkC,qBAAqB;MACrBC,IAAI,EAAGC,WAAU;MACjBjC,KAAK,EAAGA,KAAO;MACfuB,OAAO,EAAGA,OAAS;MACnBD,QAAQ,EAAGA,QAAU;MACrBY,IAAI,EAAC;IAAkB,CACvB,CACA,CAAC;EAEL;AACD,CAAC"}
@@ -20,6 +20,5 @@ var _language = require("./language");
20
20
  /**
21
21
  * Internal dependencies
22
22
  */
23
- var _default = [_bold.bold, _code.code, _image.image, _italic.italic, _link.link, _strikethrough.strikethrough, _underline.underline, _textColor.textColor, _subscript.subscript, _superscript.superscript, _keyboard.keyboard, _unknown.unknown, _language.language];
24
- exports.default = _default;
23
+ var _default = exports.default = [_bold.bold, _code.code, _image.image, _italic.italic, _link.link, _strikethrough.strikethrough, _underline.underline, _textColor.textColor, _subscript.subscript, _superscript.superscript, _keyboard.keyboard, _unknown.unknown, _language.language];
25
24
  //# sourceMappingURL=default-formats.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_bold","require","_code","_image","_italic","_link","_strikethrough","_underline","_textColor","_subscript","_superscript","_keyboard","_unknown","_language","_default","bold","code","image","italic","link","strikethrough","underline","textColor","subscript","superscript","keyboard","unknown","language","exports","default"],"sources":["@wordpress/format-library/src/default-formats.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { bold } from './bold';\nimport { code } from './code';\nimport { image } from './image';\nimport { italic } from './italic';\nimport { link } from './link';\nimport { strikethrough } from './strikethrough';\nimport { underline } from './underline';\nimport { textColor } from './text-color';\nimport { subscript } from './subscript';\nimport { superscript } from './superscript';\nimport { keyboard } from './keyboard';\nimport { unknown } from './unknown';\nimport { language } from './language';\n\nexport default [\n\tbold,\n\tcode,\n\timage,\n\titalic,\n\tlink,\n\tstrikethrough,\n\tunderline,\n\ttextColor,\n\tsubscript,\n\tsuperscript,\n\tkeyboard,\n\tunknown,\n\tlanguage,\n];\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AACA,IAAAY,SAAA,GAAAZ,OAAA;AAfA;AACA;AACA;AAFA,IAAAa,QAAA,GAiBe,CACdC,UAAI,EACJC,UAAI,EACJC,YAAK,EACLC,cAAM,EACNC,UAAI,EACJC,4BAAa,EACbC,oBAAS,EACTC,oBAAS,EACTC,oBAAS,EACTC,wBAAW,EACXC,kBAAQ,EACRC,gBAAO,EACPC,kBAAQ,CACR;AAAAC,OAAA,CAAAC,OAAA,GAAAf,QAAA"}
1
+ {"version":3,"names":["_bold","require","_code","_image","_italic","_link","_strikethrough","_underline","_textColor","_subscript","_superscript","_keyboard","_unknown","_language","_default","exports","default","bold","code","image","italic","link","strikethrough","underline","textColor","subscript","superscript","keyboard","unknown","language"],"sources":["@wordpress/format-library/src/default-formats.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { bold } from './bold';\nimport { code } from './code';\nimport { image } from './image';\nimport { italic } from './italic';\nimport { link } from './link';\nimport { strikethrough } from './strikethrough';\nimport { underline } from './underline';\nimport { textColor } from './text-color';\nimport { subscript } from './subscript';\nimport { superscript } from './superscript';\nimport { keyboard } from './keyboard';\nimport { unknown } from './unknown';\nimport { language } from './language';\n\nexport default [\n\tbold,\n\tcode,\n\timage,\n\titalic,\n\tlink,\n\tstrikethrough,\n\tunderline,\n\ttextColor,\n\tsubscript,\n\tsuperscript,\n\tkeyboard,\n\tunknown,\n\tlanguage,\n];\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AACA,IAAAY,SAAA,GAAAZ,OAAA;AAfA;AACA;AACA;AAFA,IAAAa,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAiBe,CACdC,UAAI,EACJC,UAAI,EACJC,YAAK,EACLC,cAAM,EACNC,UAAI,EACJC,4BAAa,EACbC,oBAAS,EACTC,oBAAS,EACTC,oBAAS,EACTC,wBAAW,EACXC,kBAAQ,EACRC,gBAAO,EACPC,kBAAQ,CACR"}
@@ -12,6 +12,5 @@ var _textColor = require("./text-color");
12
12
  /**
13
13
  * Internal dependencies
14
14
  */
15
- var _default = [_bold.bold, _italic.italic, _link.link, _strikethrough.strikethrough, _textColor.textColor];
16
- exports.default = _default;
15
+ var _default = exports.default = [_bold.bold, _italic.italic, _link.link, _strikethrough.strikethrough, _textColor.textColor];
17
16
  //# sourceMappingURL=default-formats.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_bold","require","_italic","_link","_strikethrough","_textColor","_default","bold","italic","link","strikethrough","textColor","exports","default"],"sources":["@wordpress/format-library/src/default-formats.native.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { bold } from './bold';\nimport { italic } from './italic';\nimport { link } from './link';\nimport { strikethrough } from './strikethrough';\nimport { textColor } from './text-color';\n\nexport default [ bold, italic, link, strikethrough, textColor ];\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAPA;AACA;AACA;AAFA,IAAAK,QAAA,GASe,CAAEC,UAAI,EAAEC,cAAM,EAAEC,UAAI,EAAEC,4BAAa,EAAEC,oBAAS,CAAE;AAAAC,OAAA,CAAAC,OAAA,GAAAP,QAAA"}
1
+ {"version":3,"names":["_bold","require","_italic","_link","_strikethrough","_textColor","_default","exports","default","bold","italic","link","strikethrough","textColor"],"sources":["@wordpress/format-library/src/default-formats.native.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { bold } from './bold';\nimport { italic } from './italic';\nimport { link } from './link';\nimport { strikethrough } from './strikethrough';\nimport { textColor } from './text-color';\n\nexport default [ bold, italic, link, strikethrough, textColor ];\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAPA;AACA;AACA;AAFA,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GASe,CAAEC,UAAI,EAAEC,cAAM,EAAEC,UAAI,EAAEC,4BAAa,EAAEC,oBAAS,CAAE"}
@@ -18,7 +18,7 @@ var _icons = require("@wordpress/icons");
18
18
  const ALLOWED_MEDIA_TYPES = ['image'];
19
19
  const name = 'core/image';
20
20
  const title = (0, _i18n.__)('Inline image');
21
- const image = {
21
+ const image = exports.image = {
22
22
  name,
23
23
  title,
24
24
  keywords: [(0, _i18n.__)('photo'), (0, _i18n.__)('media')],
@@ -33,7 +33,6 @@ const image = {
33
33
  },
34
34
  edit: Edit
35
35
  };
36
- exports.image = image;
37
36
  function InlineUI({
38
37
  value,
39
38
  onChange,
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_richText","_blockEditor","_icons","ALLOWED_MEDIA_TYPES","name","title","__","image","keywords","object","tagName","className","attributes","style","url","alt","edit","Edit","exports","InlineUI","value","onChange","activeObjectAttributes","contentRef","width","setWidth","useState","replace","popoverAnchor","useAnchor","editableContentElement","current","settings","_react","createElement","Popover","placement","focusOnMount","anchor","onSubmit","event","newReplacements","replacements","slice","start","type","preventDefault","__experimentalHStack","alignment","spacing","__experimentalNumberControl","label","min","newWidth","Button","icon","keyboardReturn","onFocus","isObjectActive","isModalOpen","setIsModalOpen","openModal","closeModal","MediaUploadCheck","RichTextToolbarButton","SVG","xmlns","viewBox","Path","d","onClick","isActive","MediaUpload","allowedTypes","onSelect","id","imgWidth","insertObject","Math","onClose","render","open"],"sources":["@wordpress/format-library/src/image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPath,\n\tSVG,\n\tPopover,\n\tButton,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { insertObject, useAnchor } from '@wordpress/rich-text';\nimport {\n\tMediaUpload,\n\tRichTextToolbarButton,\n\tMediaUploadCheck,\n} from '@wordpress/block-editor';\nimport { keyboardReturn } from '@wordpress/icons';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst name = 'core/image';\nconst title = __( 'Inline image' );\n\nexport const image = {\n\tname,\n\ttitle,\n\tkeywords: [ __( 'photo' ), __( 'media' ) ],\n\tobject: true,\n\ttagName: 'img',\n\tclassName: null,\n\tattributes: {\n\t\tclassName: 'class',\n\t\tstyle: 'style',\n\t\turl: 'src',\n\t\talt: 'alt',\n\t},\n\tedit: Edit,\n};\n\nfunction InlineUI( { value, onChange, activeObjectAttributes, contentRef } ) {\n\tconst { style } = activeObjectAttributes;\n\tconst [ width, setWidth ] = useState( style?.replace( /\\D/g, '' ) );\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: image,\n\t} );\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-format-toolbar__image-popover\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tconst newReplacements = value.replacements.slice();\n\n\t\t\t\t\tnewReplacements[ value.start ] = {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...activeObjectAttributes,\n\t\t\t\t\t\t\tstyle: width ? `width: ${ width }px;` : '',\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\treplacements: newReplacements,\n\t\t\t\t\t} );\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<HStack alignment=\"bottom\" spacing=\"0\">\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-value\"\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tonChange={ ( newWidth ) => setWidth( newWidth ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-button\"\n\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n\nfunction Edit( {\n\tvalue,\n\tonChange,\n\tonFocus,\n\tisObjectActive,\n\tactiveObjectAttributes,\n\tcontentRef,\n} ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tfunction openModal() {\n\t\tsetIsModalOpen( true );\n\t}\n\n\tfunction closeModal() {\n\t\tsetIsModalOpen( false );\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={\n\t\t\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t\t\t\t\t<Path d=\"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z\" />\n\t\t\t\t\t</SVG>\n\t\t\t\t}\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ openModal }\n\t\t\t\tisActive={ isObjectActive }\n\t\t\t/>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<MediaUpload\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonSelect={ ( { id, url, alt, width: imgWidth } ) => {\n\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsertObject( value, {\n\t\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tclassName: `wp-image-${ id }`,\n\t\t\t\t\t\t\t\t\tstyle: `width: ${ Math.min(\n\t\t\t\t\t\t\t\t\t\timgWidth,\n\t\t\t\t\t\t\t\t\t\t150\n\t\t\t\t\t\t\t\t\t) }px;`,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tonFocus();\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\trender={ ( { open } ) => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isObjectActive && (\n\t\t\t\t<InlineUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tactiveObjectAttributes={ activeObjectAttributes }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</MediaUploadCheck>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_richText","_blockEditor","_icons","ALLOWED_MEDIA_TYPES","name","title","__","image","exports","keywords","object","tagName","className","attributes","style","url","alt","edit","Edit","InlineUI","value","onChange","activeObjectAttributes","contentRef","width","setWidth","useState","replace","popoverAnchor","useAnchor","editableContentElement","current","settings","_react","createElement","Popover","placement","focusOnMount","anchor","onSubmit","event","newReplacements","replacements","slice","start","type","preventDefault","__experimentalHStack","alignment","spacing","__experimentalNumberControl","label","min","newWidth","Button","icon","keyboardReturn","onFocus","isObjectActive","isModalOpen","setIsModalOpen","openModal","closeModal","MediaUploadCheck","RichTextToolbarButton","SVG","xmlns","viewBox","Path","d","onClick","isActive","MediaUpload","allowedTypes","onSelect","id","imgWidth","insertObject","Math","onClose","render","open"],"sources":["@wordpress/format-library/src/image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPath,\n\tSVG,\n\tPopover,\n\tButton,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { insertObject, useAnchor } from '@wordpress/rich-text';\nimport {\n\tMediaUpload,\n\tRichTextToolbarButton,\n\tMediaUploadCheck,\n} from '@wordpress/block-editor';\nimport { keyboardReturn } from '@wordpress/icons';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst name = 'core/image';\nconst title = __( 'Inline image' );\n\nexport const image = {\n\tname,\n\ttitle,\n\tkeywords: [ __( 'photo' ), __( 'media' ) ],\n\tobject: true,\n\ttagName: 'img',\n\tclassName: null,\n\tattributes: {\n\t\tclassName: 'class',\n\t\tstyle: 'style',\n\t\turl: 'src',\n\t\talt: 'alt',\n\t},\n\tedit: Edit,\n};\n\nfunction InlineUI( { value, onChange, activeObjectAttributes, contentRef } ) {\n\tconst { style } = activeObjectAttributes;\n\tconst [ width, setWidth ] = useState( style?.replace( /\\D/g, '' ) );\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: image,\n\t} );\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-format-toolbar__image-popover\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tconst newReplacements = value.replacements.slice();\n\n\t\t\t\t\tnewReplacements[ value.start ] = {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...activeObjectAttributes,\n\t\t\t\t\t\t\tstyle: width ? `width: ${ width }px;` : '',\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\treplacements: newReplacements,\n\t\t\t\t\t} );\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<HStack alignment=\"bottom\" spacing=\"0\">\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-value\"\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tonChange={ ( newWidth ) => setWidth( newWidth ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-button\"\n\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n\nfunction Edit( {\n\tvalue,\n\tonChange,\n\tonFocus,\n\tisObjectActive,\n\tactiveObjectAttributes,\n\tcontentRef,\n} ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tfunction openModal() {\n\t\tsetIsModalOpen( true );\n\t}\n\n\tfunction closeModal() {\n\t\tsetIsModalOpen( false );\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={\n\t\t\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t\t\t\t\t<Path d=\"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z\" />\n\t\t\t\t\t</SVG>\n\t\t\t\t}\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ openModal }\n\t\t\t\tisActive={ isObjectActive }\n\t\t\t/>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<MediaUpload\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonSelect={ ( { id, url, alt, width: imgWidth } ) => {\n\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsertObject( value, {\n\t\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tclassName: `wp-image-${ id }`,\n\t\t\t\t\t\t\t\t\tstyle: `width: ${ Math.min(\n\t\t\t\t\t\t\t\t\t\timgWidth,\n\t\t\t\t\t\t\t\t\t\t150\n\t\t\t\t\t\t\t\t\t) }px;`,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tonFocus();\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\trender={ ( { open } ) => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isObjectActive && (\n\t\t\t\t<InlineUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tactiveObjectAttributes={ activeObjectAttributes }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</MediaUploadCheck>\n\t);\n}\n"],"mappings":"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"}
@@ -15,7 +15,7 @@ var _icons = require("@wordpress/icons");
15
15
 
16
16
  const name = 'core/italic';
17
17
  const title = (0, _i18n.__)('Italic');
18
- const italic = {
18
+ const italic = exports.italic = {
19
19
  name,
20
20
  title,
21
21
  tagName: 'em',
@@ -56,5 +56,4 @@ const italic = {
56
56
  }));
57
57
  }
58
58
  };
59
- exports.italic = italic;
60
59
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","italic","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","toggleFormat","type","onClick","_react","createElement","Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","formatItalic","shortcutType","shortcutCharacter","__unstableRichTextInputEvent","inputType","onInput","exports"],"sources":["@wordpress/format-library/src/italic/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n\t__unstableRichTextInputEvent,\n} from '@wordpress/block-editor';\nimport { formatItalic } from '@wordpress/icons';\n\nconst name = 'core/italic';\nconst title = __( 'Italic' );\n\nexport const italic = {\n\tname,\n\ttitle,\n\ttagName: 'em',\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\tonChange( toggleFormat( value, { type: name } ) );\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=\"primary\"\n\t\t\t\t\tcharacter=\"i\"\n\t\t\t\t\tonUse={ onToggle }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"italic\"\n\t\t\t\t\ticon={ formatItalic }\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\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"i\"\n\t\t\t\t/>\n\t\t\t\t<__unstableRichTextInputEvent\n\t\t\t\t\tinputType=\"formatItalic\"\n\t\t\t\t\tonInput={ onToggle }\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;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAUA,MAAMI,IAAI,GAAG,aAAa;AAC1B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,QAAS,CAAC;AAErB,MAAMC,MAAM,GAAG;EACrBH,IAAI;EACJC,KAAK;EACLG,OAAO,EAAE,IAAI;EACbC,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;MAClBL,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAE;QAAEK,IAAI,EAAEb;MAAK,CAAE,CAAE,CAAC;MACjDU,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAK,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAClB,YAAA,CAAAoB,gBAAgB;MAChBL,IAAI,EAAC,SAAS;MACdM,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGT;IAAU,CAClB,CAAC,EACF,IAAAI,MAAA,CAAAC,aAAA,EAAClB,YAAA,CAAAuB,qBAAqB;MACrBrB,IAAI,EAAC,QAAQ;MACbsB,IAAI,EAAGC,mBAAc;MACrBtB,KAAK,EAAGA,KAAO;MACfa,OAAO,EAAGA,OAAS;MACnBP,QAAQ,EAAGA,QAAU;MACrBiB,YAAY,EAAC,SAAS;MACtBC,iBAAiB,EAAC;IAAG,CACrB,CAAC,EACF,IAAAV,MAAA,CAAAC,aAAA,EAAClB,YAAA,CAAA4B,4BAA4B;MAC5BC,SAAS,EAAC,cAAc;MACxBC,OAAO,EAAGjB;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC;AAACkB,OAAA,CAAA1B,MAAA,GAAAA,MAAA"}
1
+ {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","italic","exports","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","toggleFormat","type","onClick","_react","createElement","Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","formatItalic","shortcutType","shortcutCharacter","__unstableRichTextInputEvent","inputType","onInput"],"sources":["@wordpress/format-library/src/italic/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n\t__unstableRichTextInputEvent,\n} from '@wordpress/block-editor';\nimport { formatItalic } from '@wordpress/icons';\n\nconst name = 'core/italic';\nconst title = __( 'Italic' );\n\nexport const italic = {\n\tname,\n\ttitle,\n\ttagName: 'em',\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\tonChange( toggleFormat( value, { type: name } ) );\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=\"primary\"\n\t\t\t\t\tcharacter=\"i\"\n\t\t\t\t\tonUse={ onToggle }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"italic\"\n\t\t\t\t\ticon={ formatItalic }\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\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"i\"\n\t\t\t\t/>\n\t\t\t\t<__unstableRichTextInputEvent\n\t\t\t\t\tinputType=\"formatItalic\"\n\t\t\t\t\tonInput={ onToggle }\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;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAUA,MAAMI,IAAI,GAAG,aAAa;AAC1B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,QAAS,CAAC;AAErB,MAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG;EACrBH,IAAI;EACJC,KAAK;EACLI,OAAO,EAAE,IAAI;EACbC,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;MAClBL,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAE;QAAEK,IAAI,EAAEd;MAAK,CAAE,CAAE,CAAC;MACjDW,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAK,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACnB,YAAA,CAAAqB,gBAAgB;MAChBL,IAAI,EAAC,SAAS;MACdM,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGT;IAAU,CAClB,CAAC,EACF,IAAAI,MAAA,CAAAC,aAAA,EAACnB,YAAA,CAAAwB,qBAAqB;MACrBtB,IAAI,EAAC,QAAQ;MACbuB,IAAI,EAAGC,mBAAc;MACrBvB,KAAK,EAAGA,KAAO;MACfc,OAAO,EAAGA,OAAS;MACnBP,QAAQ,EAAGA,QAAU;MACrBiB,YAAY,EAAC,SAAS;MACtBC,iBAAiB,EAAC;IAAG,CACrB,CAAC,EACF,IAAAV,MAAA,CAAAC,aAAA,EAACnB,YAAA,CAAA6B,4BAA4B;MAC5BC,SAAS,EAAC,cAAc;MACxBC,OAAO,EAAGjB;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC"}
@@ -15,7 +15,7 @@ var _icons = require("@wordpress/icons");
15
15
 
16
16
  const name = 'core/keyboard';
17
17
  const title = (0, _i18n.__)('Keyboard input');
18
- const keyboard = {
18
+ const keyboard = exports.keyboard = {
19
19
  name,
20
20
  title,
21
21
  tagName: 'kbd',
@@ -45,5 +45,4 @@ const keyboard = {
45
45
  });
46
46
  }
47
47
  };
48
- exports.keyboard = keyboard;
49
48
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","keyboard","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","toggleFormat","type","onClick","_react","createElement","RichTextToolbarButton","icon","button","role","exports"],"sources":["@wordpress/format-library/src/keyboard/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { button } from '@wordpress/icons';\n\nconst name = 'core/keyboard';\nconst title = __( 'Keyboard input' );\n\nexport const keyboard = {\n\tname,\n\ttitle,\n\ttagName: 'kbd',\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={ button }\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,eAAe;AAC5B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,gBAAiB,CAAC;AAE7B,MAAMC,QAAQ,GAAG;EACvBH,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,aAAQ;MACflB,KAAK,EAAGA,KAAO;MACfa,OAAO,EAAGA,OAAS;MACnBP,QAAQ,EAAGA,QAAU;MACrBa,IAAI,EAAC;IAAkB,CACvB,CAAC;EAEJ;AACD,CAAC;AAACC,OAAA,CAAAlB,QAAA,GAAAA,QAAA"}
1
+ {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","keyboard","exports","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","toggleFormat","type","onClick","_react","createElement","RichTextToolbarButton","icon","button","role"],"sources":["@wordpress/format-library/src/keyboard/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { button } from '@wordpress/icons';\n\nconst name = 'core/keyboard';\nconst title = __( 'Keyboard input' );\n\nexport const keyboard = {\n\tname,\n\ttitle,\n\ttagName: 'kbd',\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={ button }\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,eAAe;AAC5B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,gBAAiB,CAAC;AAE7B,MAAMC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACvBH,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,aAAQ;MACfnB,KAAK,EAAGA,KAAO;MACfc,OAAO,EAAGA,OAAS;MACnBP,QAAQ,EAAGA,QAAU;MACrBa,IAAI,EAAC;IAAkB,CACvB,CAAC;EAEJ;AACD,CAAC"}
@@ -21,14 +21,13 @@ var _icons = require("@wordpress/icons");
21
21
 
22
22
  const name = 'core/language';
23
23
  const title = (0, _i18n.__)('Language');
24
- const language = {
24
+ const language = exports.language = {
25
25
  name,
26
26
  tagName: 'bdo',
27
27
  className: null,
28
28
  edit: Edit,
29
29
  title
30
30
  };
31
- exports.language = language;
32
31
  function Edit({
33
32
  isActive,
34
33
  value,
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_blockEditor","_components","_element","_richText","_icons","name","title","__","language","tagName","className","edit","Edit","exports","isActive","value","onChange","contentRef","isPopoverVisible","setIsPopoverVisible","useState","togglePopover","state","_react","createElement","Fragment","RichTextToolbarButton","icon","languageIcon","label","onClick","removeFormat","role","InlineLanguageUI","onClose","popoverAnchor","useAnchor","editableContentElement","current","settings","lang","setLang","dir","setDir","Popover","anchor","onSubmit","event","preventDefault","applyFormat","type","attributes","TextControl","val","help","SelectControl","options","__experimentalHStack","alignment","Button","variant","text"],"sources":["@wordpress/format-library/src/language/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * WordPress dependencies\n */\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tSelectControl,\n\tButton,\n\tPopover,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { applyFormat, removeFormat, useAnchor } from '@wordpress/rich-text';\nimport { language as languageIcon } from '@wordpress/icons';\n\nconst name = 'core/language';\nconst title = __( 'Language' );\n\nexport const language = {\n\tname,\n\ttagName: 'bdo',\n\tclassName: null,\n\tedit: Edit,\n\ttitle,\n};\n\nfunction Edit( { isActive, value, onChange, contentRef } ) {\n\tconst [ isPopoverVisible, setIsPopoverVisible ] = useState( false );\n\tconst togglePopover = () => {\n\t\tsetIsPopoverVisible( ( state ) => ! state );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ languageIcon }\n\t\t\t\tlabel={ title }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( isActive ) {\n\t\t\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttogglePopover();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t\t{ isPopoverVisible && (\n\t\t\t\t<InlineLanguageUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tonClose={ togglePopover }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction InlineLanguageUI( { value, contentRef, onChange, onClose } ) {\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: language,\n\t} );\n\n\tconst [ lang, setLang ] = useState( '' );\n\tconst [ dir, setDir ] = useState( 'ltr' );\n\n\treturn (\n\t\t<Popover\n\t\t\tclassName=\"block-editor-format-toolbar__language-popover\"\n\t\t\tanchor={ popoverAnchor }\n\t\t\tonClose={ onClose }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__language-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tapplyFormat( value, {\n\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tlang,\n\t\t\t\t\t\t\t\tdir,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tvalue={ lang }\n\t\t\t\t\tonChange={ ( val ) => setLang( val ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'A valid language attribute, like \"en\" or \"fr\".'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Text direction' ) }\n\t\t\t\t\tvalue={ dir }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Left to right' ),\n\t\t\t\t\t\t\tvalue: 'ltr',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Right to left' ),\n\t\t\t\t\t\t\tvalue: 'rtl',\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tonChange={ ( val ) => setDir( val ) }\n\t\t\t\t/>\n\t\t\t\t<HStack alignment=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\ttext={ __( 'Apply' ) }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_blockEditor","_components","_element","_richText","_icons","name","title","__","language","exports","tagName","className","edit","Edit","isActive","value","onChange","contentRef","isPopoverVisible","setIsPopoverVisible","useState","togglePopover","state","_react","createElement","Fragment","RichTextToolbarButton","icon","languageIcon","label","onClick","removeFormat","role","InlineLanguageUI","onClose","popoverAnchor","useAnchor","editableContentElement","current","settings","lang","setLang","dir","setDir","Popover","anchor","onSubmit","event","preventDefault","applyFormat","type","attributes","TextControl","val","help","SelectControl","options","__experimentalHStack","alignment","Button","variant","text"],"sources":["@wordpress/format-library/src/language/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * WordPress dependencies\n */\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tSelectControl,\n\tButton,\n\tPopover,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { applyFormat, removeFormat, useAnchor } from '@wordpress/rich-text';\nimport { language as languageIcon } from '@wordpress/icons';\n\nconst name = 'core/language';\nconst title = __( 'Language' );\n\nexport const language = {\n\tname,\n\ttagName: 'bdo',\n\tclassName: null,\n\tedit: Edit,\n\ttitle,\n};\n\nfunction Edit( { isActive, value, onChange, contentRef } ) {\n\tconst [ isPopoverVisible, setIsPopoverVisible ] = useState( false );\n\tconst togglePopover = () => {\n\t\tsetIsPopoverVisible( ( state ) => ! state );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ languageIcon }\n\t\t\t\tlabel={ title }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( isActive ) {\n\t\t\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttogglePopover();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t\t{ isPopoverVisible && (\n\t\t\t\t<InlineLanguageUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tonClose={ togglePopover }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction InlineLanguageUI( { value, contentRef, onChange, onClose } ) {\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: language,\n\t} );\n\n\tconst [ lang, setLang ] = useState( '' );\n\tconst [ dir, setDir ] = useState( 'ltr' );\n\n\treturn (\n\t\t<Popover\n\t\t\tclassName=\"block-editor-format-toolbar__language-popover\"\n\t\t\tanchor={ popoverAnchor }\n\t\t\tonClose={ onClose }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__language-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tapplyFormat( value, {\n\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tlang,\n\t\t\t\t\t\t\t\tdir,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tvalue={ lang }\n\t\t\t\t\tonChange={ ( val ) => setLang( val ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'A valid language attribute, like \"en\" or \"fr\".'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Text direction' ) }\n\t\t\t\t\tvalue={ dir }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Left to right' ),\n\t\t\t\t\t\t\tvalue: 'ltr',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Right to left' ),\n\t\t\t\t\t\t\tvalue: 'rtl',\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tonChange={ ( val ) => setDir( val ) }\n\t\t\t\t/>\n\t\t\t\t<HStack alignment=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\ttext={ __( 'Apply' ) }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n"],"mappings":"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"}
@@ -35,16 +35,40 @@ function Edit({
35
35
  contentRef
36
36
  }) {
37
37
  const [addingLink, setAddingLink] = (0, _element.useState)(false);
38
- function addLink() {
38
+ // We only need to store the button element that opened the popover. We can ignore the other states, as they will be handled by the onFocus prop to return to the rich text field.
39
+ const [openedBy, setOpenedBy] = (0, _element.useState)(null);
40
+ (0, _element.useLayoutEffect)(() => {
41
+ const editableContentElement = contentRef.current;
42
+ if (!editableContentElement) {
43
+ return;
44
+ }
45
+ function handleClick(event) {
46
+ // There is a situation whereby there is an existing link in the rich text
47
+ // and the user clicks on the leftmost edge of that link and fails to activate
48
+ // the link format, but the click event still fires on the `<a>` element.
49
+ // This causes the `addingLink` state to be set to `true` and the link UI
50
+ // to be rendered in "creating" mode. We need to check isActive to see if
51
+ // we have an active link format.
52
+ if (event.target.tagName !== 'A' || !isActive) {
53
+ return;
54
+ }
55
+ setAddingLink(true);
56
+ }
57
+ editableContentElement.addEventListener('click', handleClick);
58
+ return () => {
59
+ editableContentElement.removeEventListener('click', handleClick);
60
+ };
61
+ }, [contentRef, isActive]);
62
+ function addLink(target) {
39
63
  const text = (0, _richText.getTextContent)((0, _richText.slice)(value));
40
- if (text && (0, _url.isURL)(text) && (0, _utils.isValidHref)(text)) {
64
+ if (!isActive && text && (0, _url.isURL)(text) && (0, _utils.isValidHref)(text)) {
41
65
  onChange((0, _richText.applyFormat)(value, {
42
66
  type: name,
43
67
  attributes: {
44
68
  url: text
45
69
  }
46
70
  }));
47
- } else if (text && (0, _url.isEmail)(text)) {
71
+ } else if (!isActive && text && (0, _url.isEmail)(text)) {
48
72
  onChange((0, _richText.applyFormat)(value, {
49
73
  type: name,
50
74
  attributes: {
@@ -52,14 +76,48 @@ function Edit({
52
76
  }
53
77
  }));
54
78
  } else {
79
+ if (target) {
80
+ setOpenedBy(target);
81
+ }
55
82
  setAddingLink(true);
56
83
  }
57
84
  }
58
- function stopAddingLink(returnFocus = true) {
85
+
86
+ /**
87
+ * Runs when the popover is closed via escape keypress, unlinking the selected text,
88
+ * but _not_ on a click outside the popover. onFocusOutside handles that.
89
+ */
90
+ function stopAddingLink() {
91
+ // Don't let the click handler on the toolbar button trigger again.
92
+
93
+ // There are two places for us to return focus to on Escape keypress:
94
+ // 1. The rich text field.
95
+ // 2. The toolbar button.
96
+
97
+ // The toolbar button is the only one we need to handle returning focus to.
98
+ // Otherwise, we rely on the passed in onFocus to return focus to the rich text field.
99
+
100
+ // Close the popover
59
101
  setAddingLink(false);
60
- if (returnFocus) {
102
+ // Return focus to the toolbar button or the rich text field
103
+ if (openedBy?.tagName === 'BUTTON') {
104
+ openedBy.focus();
105
+ } else {
61
106
  onFocus();
62
107
  }
108
+ // Remove the openedBy state
109
+ setOpenedBy(null);
110
+ }
111
+
112
+ // Test for this:
113
+ // 1. Click on the link button
114
+ // 2. Click the Options button in the top right of header
115
+ // 3. Focus should be in the dropdown of the Options button
116
+ // 4. Press Escape
117
+ // 5. Focus should be on the Options button
118
+ function onFocusOutside() {
119
+ setAddingLink(false);
120
+ setOpenedBy(null);
63
121
  }
64
122
  function onRemoveFormat() {
65
123
  onChange((0, _richText.removeFormat)(value, name));
@@ -73,29 +131,21 @@ function Edit({
73
131
  type: "primaryShift",
74
132
  character: "k",
75
133
  onUse: onRemoveFormat
76
- }), isActive && (0, _react.createElement)(_blockEditor.RichTextToolbarButton, {
77
- name: "link",
78
- icon: _icons.linkOff,
79
- title: (0, _i18n.__)('Unlink'),
80
- onClick: onRemoveFormat,
81
- isActive: isActive,
82
- shortcutType: "primaryShift",
83
- shortcutCharacter: "k",
84
- "aria-haspopup": "true",
85
- "aria-expanded": addingLink || isActive
86
- }), !isActive && (0, _react.createElement)(_blockEditor.RichTextToolbarButton, {
134
+ }), (0, _react.createElement)(_blockEditor.RichTextToolbarButton, {
87
135
  name: "link",
88
136
  icon: _icons.link,
89
- title: title,
90
- onClick: addLink,
91
- isActive: isActive,
137
+ title: isActive ? (0, _i18n.__)('Link') : title,
138
+ onClick: event => {
139
+ addLink(event.currentTarget);
140
+ },
141
+ isActive: isActive || addingLink,
92
142
  shortcutType: "primary",
93
143
  shortcutCharacter: "k",
94
144
  "aria-haspopup": "true",
95
- "aria-expanded": addingLink || isActive
96
- }), (addingLink || isActive) && (0, _react.createElement)(_inline.default, {
97
- addingLink: addingLink,
145
+ "aria-expanded": addingLink
146
+ }), addingLink && (0, _react.createElement)(_inline.default, {
98
147
  stopAddingLink: stopAddingLink,
148
+ onFocusOutside: onFocusOutside,
99
149
  isActive: isActive,
100
150
  activeAttributes: activeAttributes,
101
151
  value: value,
@@ -103,7 +153,7 @@ function Edit({
103
153
  contentRef: contentRef
104
154
  }));
105
155
  }
106
- const link = {
156
+ const link = exports.link = {
107
157
  name,
108
158
  title,
109
159
  tagName: 'a',
@@ -145,5 +195,4 @@ const link = {
145
195
  },
146
196
  edit: Edit
147
197
  };
148
- exports.link = link;
149
198
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_richText","_url","_blockEditor","_htmlEntities","_icons","_a11y","_inline","_interopRequireDefault","_utils","name","title","__","Edit","isActive","activeAttributes","value","onChange","onFocus","contentRef","addingLink","setAddingLink","useState","addLink","text","getTextContent","slice","isURL","isValidHref","applyFormat","type","attributes","url","isEmail","stopAddingLink","returnFocus","onRemoveFormat","removeFormat","speak","_react","createElement","Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","linkOff","onClick","shortcutType","shortcutCharacter","linkIcon","default","link","tagName","className","id","_id","target","rel","__unstablePasteRule","html","plainText","pastedText","replace","trim","test","window","console","log","format","decodeEntities","isCollapsed","insert","create","length","edit","exports"],"sources":["@wordpress/format-library/src/link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport {\n\tgetTextContent,\n\tapplyFormat,\n\tremoveFormat,\n\tslice,\n\tisCollapsed,\n\tinsert,\n\tcreate,\n} from '@wordpress/rich-text';\nimport { isURL, isEmail } from '@wordpress/url';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { link as linkIcon, linkOff } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport InlineLinkUI from './inline';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\nconst title = __( 'Link' );\n\nfunction Edit( {\n\tisActive,\n\tactiveAttributes,\n\tvalue,\n\tonChange,\n\tonFocus,\n\tcontentRef,\n} ) {\n\tconst [ addingLink, setAddingLink ] = useState( false );\n\n\tfunction addLink() {\n\t\tconst text = getTextContent( slice( value ) );\n\n\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: text },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else if ( text && isEmail( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: `mailto:${ text }` },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else {\n\t\t\tsetAddingLink( true );\n\t\t}\n\t}\n\n\tfunction stopAddingLink( returnFocus = true ) {\n\t\tsetAddingLink( false );\n\t\tif ( returnFocus ) {\n\t\t\tonFocus();\n\t\t}\n\t}\n\n\tfunction onRemoveFormat() {\n\t\tonChange( removeFormat( value, name ) );\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextShortcut type=\"primary\" character=\"k\" onUse={ addLink } />\n\t\t\t<RichTextShortcut\n\t\t\t\ttype=\"primaryShift\"\n\t\t\t\tcharacter=\"k\"\n\t\t\t\tonUse={ onRemoveFormat }\n\t\t\t/>\n\t\t\t{ isActive && (\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"link\"\n\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\tonClick={ onRemoveFormat }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primaryShift\"\n\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-expanded={ addingLink || isActive }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isActive && (\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"link\"\n\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ addLink }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-expanded={ addingLink || isActive }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ( addingLink || isActive ) && (\n\t\t\t\t<InlineLinkUI\n\t\t\t\t\taddingLink={ addingLink }\n\t\t\t\t\tstopAddingLink={ stopAddingLink }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const link = {\n\tname,\n\ttitle,\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttype: 'data-type',\n\t\tid: 'data-id',\n\t\t_id: 'id',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\t__unstablePasteRule( value, { html, plainText } ) {\n\t\tconst pastedText = ( html || plainText )\n\t\t\t.replace( /<[^>]+>/g, '' )\n\t\t\t.trim();\n\n\t\t// A URL was pasted, turn the selection into a link.\n\t\t// For the link pasting feature, allow only http(s) protocols.\n\t\tif ( ! isURL( pastedText ) || ! /^https?:/.test( pastedText ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Created link:\\n\\n', pastedText );\n\n\t\tconst format = {\n\t\t\ttype: name,\n\t\t\tattributes: {\n\t\t\t\turl: decodeEntities( pastedText ),\n\t\t\t},\n\t\t};\n\n\t\tif ( isCollapsed( value ) ) {\n\t\t\treturn insert(\n\t\t\t\tvalue,\n\t\t\t\tapplyFormat(\n\t\t\t\t\tcreate( { text: plainText } ),\n\t\t\t\t\tformat,\n\t\t\t\t\t0,\n\t\t\t\t\tplainText.length\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\treturn applyFormat( value, format );\n\t},\n\tedit: Edit,\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_element","_richText","_url","_blockEditor","_htmlEntities","_icons","_a11y","_inline","_interopRequireDefault","_utils","name","title","__","Edit","isActive","activeAttributes","value","onChange","onFocus","contentRef","addingLink","setAddingLink","useState","openedBy","setOpenedBy","useLayoutEffect","editableContentElement","current","handleClick","event","target","tagName","addEventListener","removeEventListener","addLink","text","getTextContent","slice","isURL","isValidHref","applyFormat","type","attributes","url","isEmail","stopAddingLink","focus","onFocusOutside","onRemoveFormat","removeFormat","speak","_react","createElement","Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","linkIcon","onClick","currentTarget","shortcutType","shortcutCharacter","default","link","exports","className","id","_id","rel","__unstablePasteRule","html","plainText","pastedText","replace","trim","test","window","console","log","format","decodeEntities","isCollapsed","insert","create","length","edit"],"sources":["@wordpress/format-library/src/link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useLayoutEffect } from '@wordpress/element';\nimport {\n\tgetTextContent,\n\tapplyFormat,\n\tremoveFormat,\n\tslice,\n\tisCollapsed,\n\tinsert,\n\tcreate,\n} from '@wordpress/rich-text';\nimport { isURL, isEmail } from '@wordpress/url';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { link as linkIcon } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport InlineLinkUI from './inline';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\nconst title = __( 'Link' );\n\nfunction Edit( {\n\tisActive,\n\tactiveAttributes,\n\tvalue,\n\tonChange,\n\tonFocus,\n\tcontentRef,\n} ) {\n\tconst [ addingLink, setAddingLink ] = useState( false );\n\t// We only need to store the button element that opened the popover. We can ignore the other states, as they will be handled by the onFocus prop to return to the rich text field.\n\tconst [ openedBy, setOpenedBy ] = useState( null );\n\n\tuseLayoutEffect( () => {\n\t\tconst editableContentElement = contentRef.current;\n\t\tif ( ! editableContentElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction handleClick( event ) {\n\t\t\t// There is a situation whereby there is an existing link in the rich text\n\t\t\t// and the user clicks on the leftmost edge of that link and fails to activate\n\t\t\t// the link format, but the click event still fires on the `<a>` element.\n\t\t\t// This causes the `addingLink` state to be set to `true` and the link UI\n\t\t\t// to be rendered in \"creating\" mode. We need to check isActive to see if\n\t\t\t// we have an active link format.\n\t\t\tif ( event.target.tagName !== 'A' || ! isActive ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetAddingLink( true );\n\t\t}\n\n\t\teditableContentElement.addEventListener( 'click', handleClick );\n\n\t\treturn () => {\n\t\t\teditableContentElement.removeEventListener( 'click', handleClick );\n\t\t};\n\t}, [ contentRef, isActive ] );\n\n\tfunction addLink( target ) {\n\t\tconst text = getTextContent( slice( value ) );\n\n\t\tif ( ! isActive && text && isURL( text ) && isValidHref( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: text },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else if ( ! isActive && text && isEmail( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: `mailto:${ text }` },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else {\n\t\t\tif ( target ) {\n\t\t\t\tsetOpenedBy( target );\n\t\t\t}\n\t\t\tsetAddingLink( true );\n\t\t}\n\t}\n\n\t/**\n\t * Runs when the popover is closed via escape keypress, unlinking the selected text,\n\t * but _not_ on a click outside the popover. onFocusOutside handles that.\n\t */\n\tfunction stopAddingLink() {\n\t\t// Don't let the click handler on the toolbar button trigger again.\n\n\t\t// There are two places for us to return focus to on Escape keypress:\n\t\t// 1. The rich text field.\n\t\t// 2. The toolbar button.\n\n\t\t// The toolbar button is the only one we need to handle returning focus to.\n\t\t// Otherwise, we rely on the passed in onFocus to return focus to the rich text field.\n\n\t\t// Close the popover\n\t\tsetAddingLink( false );\n\t\t// Return focus to the toolbar button or the rich text field\n\t\tif ( openedBy?.tagName === 'BUTTON' ) {\n\t\t\topenedBy.focus();\n\t\t} else {\n\t\t\tonFocus();\n\t\t}\n\t\t// Remove the openedBy state\n\t\tsetOpenedBy( null );\n\t}\n\n\t// Test for this:\n\t// 1. Click on the link button\n\t// 2. Click the Options button in the top right of header\n\t// 3. Focus should be in the dropdown of the Options button\n\t// 4. Press Escape\n\t// 5. Focus should be on the Options button\n\tfunction onFocusOutside() {\n\t\tsetAddingLink( false );\n\t\tsetOpenedBy( null );\n\t}\n\n\tfunction onRemoveFormat() {\n\t\tonChange( removeFormat( value, name ) );\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextShortcut type=\"primary\" character=\"k\" onUse={ addLink } />\n\t\t\t<RichTextShortcut\n\t\t\t\ttype=\"primaryShift\"\n\t\t\t\tcharacter=\"k\"\n\t\t\t\tonUse={ onRemoveFormat }\n\t\t\t/>\n\t\t\t<RichTextToolbarButton\n\t\t\t\tname=\"link\"\n\t\t\t\ticon={ linkIcon }\n\t\t\t\ttitle={ isActive ? __( 'Link' ) : title }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\taddLink( event.currentTarget );\n\t\t\t\t} }\n\t\t\t\tisActive={ isActive || addingLink }\n\t\t\t\tshortcutType=\"primary\"\n\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\taria-haspopup=\"true\"\n\t\t\t\taria-expanded={ addingLink }\n\t\t\t/>\n\t\t\t{ addingLink && (\n\t\t\t\t<InlineLinkUI\n\t\t\t\t\tstopAddingLink={ stopAddingLink }\n\t\t\t\t\tonFocusOutside={ onFocusOutside }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const link = {\n\tname,\n\ttitle,\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttype: 'data-type',\n\t\tid: 'data-id',\n\t\t_id: 'id',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\t__unstablePasteRule( value, { html, plainText } ) {\n\t\tconst pastedText = ( html || plainText )\n\t\t\t.replace( /<[^>]+>/g, '' )\n\t\t\t.trim();\n\n\t\t// A URL was pasted, turn the selection into a link.\n\t\t// For the link pasting feature, allow only http(s) protocols.\n\t\tif ( ! isURL( pastedText ) || ! /^https?:/.test( pastedText ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Created link:\\n\\n', pastedText );\n\n\t\tconst format = {\n\t\t\ttype: name,\n\t\t\tattributes: {\n\t\t\t\turl: decodeEntities( pastedText ),\n\t\t\t},\n\t\t};\n\n\t\tif ( isCollapsed( value ) ) {\n\t\t\treturn insert(\n\t\t\t\tvalue,\n\t\t\t\tapplyFormat(\n\t\t\t\t\tcreate( { text: plainText } ),\n\t\t\t\t\tformat,\n\t\t\t\t\t0,\n\t\t\t\t\tplainText.length\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\treturn applyFormat( value, format );\n\t},\n\tedit: Edit,\n};\n"],"mappings":"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"}
@@ -29,7 +29,7 @@ var _utils = require("./utils");
29
29
  */
30
30
 
31
31
  const name = 'core/link';
32
- const link = {
32
+ const link = exports.link = {
33
33
  name,
34
34
  title: (0, _i18n.__)('Link'),
35
35
  tagName: 'a',
@@ -169,5 +169,4 @@ const link = {
169
169
  }
170
170
  })
171
171
  };
172
- exports.link = link;
173
172
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_clipboard","_interopRequireDefault","require","_i18n","_element","_components","_blockEditor","_richText","_url","_icons","_modal","_utils","name","link","title","__","tagName","className","attributes","url","target","rel","edit","withSpokenMessages","LinkEdit","Component","constructor","arguments","addLink","bind","stopAddingLink","onRemoveFormat","getURLFromClipboard","state","addingLink","value","onChange","props","text","getTextContent","slice","isURL","isValidHref","newValue","applyFormat","type","start","end","activeFormats","needsSelectionUpdate","setState","clipboardURL","undefined","getLinkSelection","isActive","startFormat","getActiveFormat","isCollapsed","startIndex","endIndex","formats","find","format","speak","linkSelection","removeFormat","clipboardText","Clipboard","getString","render","activeAttributes","_react","createElement","Fragment","default","isVisible","onClose","onRemove","RichTextToolbarButton","icon","linkIcon","onClick","shortcutType","shortcutCharacter","exports"],"sources":["@wordpress/format-library/src/link/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { withSpokenMessages } from '@wordpress/components';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tapplyFormat,\n\tgetActiveFormat,\n\tgetTextContent,\n\tisCollapsed,\n\tremoveFormat,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\nimport { link as linkIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ModalLinkUI from './modal';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\n\nexport const link = {\n\tname,\n\ttitle: __( 'Link' ),\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\tedit: withSpokenMessages(\n\t\tclass LinkEdit extends Component {\n\t\t\tconstructor() {\n\t\t\t\tsuper( ...arguments );\n\n\t\t\t\tthis.addLink = this.addLink.bind( this );\n\t\t\t\tthis.stopAddingLink = this.stopAddingLink.bind( this );\n\t\t\t\tthis.onRemoveFormat = this.onRemoveFormat.bind( this );\n\t\t\t\tthis.getURLFromClipboard =\n\t\t\t\t\tthis.getURLFromClipboard.bind( this );\n\t\t\t\tthis.state = {\n\t\t\t\t\taddingLink: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\taddLink() {\n\t\t\t\tconst { value, onChange } = this.props;\n\t\t\t\tconst text = getTextContent( slice( value ) );\n\n\t\t\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\t\t\tconst newValue = applyFormat( value, {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: { url: text },\n\t\t\t\t\t} );\n\t\t\t\t\tnewValue.start = newValue.end;\n\t\t\t\t\tnewValue.activeFormats = [];\n\t\t\t\t\tonChange( { ...newValue, needsSelectionUpdate: true } );\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState( { addingLink: true } );\n\t\t\t\t\tthis.getURLFromClipboard();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstopAddingLink() {\n\t\t\t\tthis.setState( { addingLink: false, clipboardURL: undefined } );\n\t\t\t}\n\n\t\t\tgetLinkSelection() {\n\t\t\t\tconst { value, isActive } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// If the link isn't selected, get the link manually by looking around the cursor\n\t\t\t\t// TODO: handle partly selected links.\n\t\t\t\tif ( startFormat && isCollapsed( value ) && isActive ) {\n\t\t\t\t\tlet startIndex = value.start;\n\t\t\t\t\tlet endIndex = value.end;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ startIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tstartIndex--;\n\t\t\t\t\t}\n\n\t\t\t\t\tendIndex++;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ endIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tendIndex++;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\tstart: startIndex + 1,\n\t\t\t\t\t\tend: endIndex,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tonRemoveFormat() {\n\t\t\t\tconst { onChange, speak, value } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// Before we try to remove anything we check if there is something at the caret position to remove.\n\t\t\t\tif ( isCollapsed( value ) && startFormat === undefined ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\n\t\t\t\tonChange( removeFormat( linkSelection, name ) );\n\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t}\n\n\t\t\tasync getURLFromClipboard() {\n\t\t\t\tconst clipboardText = await Clipboard.getString();\n\t\t\t\tif ( ! clipboardText ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Check if pasted text is URL.\n\t\t\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.setState( { clipboardURL: clipboardText } );\n\t\t\t}\n\n\t\t\trender() {\n\t\t\t\tconst { isActive, activeAttributes, onChange } = this.props;\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\t\t\t\t// If no URL is set and we have a clipboard URL let's use it.\n\t\t\t\tif ( ! activeAttributes.url && this.state.clipboardURL ) {\n\t\t\t\t\tactiveAttributes.url = this.state.clipboardURL;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ModalLinkUI\n\t\t\t\t\t\t\tisVisible={ this.state.addingLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\t\t\tonClose={ this.stopAddingLink }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonRemove={ this.onRemoveFormat }\n\t\t\t\t\t\t\tvalue={ linkSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tonClick={ this.addLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\t\t\tshortcutCharacter=\"k\"\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),\n};\n"],"mappings":";;;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAQA,IAAAM,IAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAKA,IAAAQ,MAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AA3BA;AACA;AACA;;AAGA;AACA;AACA;;AAgBA;AACA;AACA;;AAIA,MAAMU,IAAI,GAAG,WAAW;AAEjB,MAAMC,IAAI,GAAG;EACnBD,IAAI;EACJE,KAAK,EAAE,IAAAC,QAAE,EAAE,MAAO,CAAC;EACnBC,OAAO,EAAE,GAAG;EACZC,SAAS,EAAE,IAAI;EACfC,UAAU,EAAE;IACXC,GAAG,EAAE,MAAM;IACXC,MAAM,EAAE,QAAQ;IAChBC,GAAG,EAAE;EACN,CAAC;EACDC,IAAI,EAAE,IAAAC,8BAAkB,EACvB,MAAMC,QAAQ,SAASC,kBAAS,CAAC;IAChCC,WAAWA,CAAA,EAAG;MACb,KAAK,CAAE,GAAGC,SAAU,CAAC;MAErB,IAAI,CAACC,OAAO,GAAG,IAAI,CAACA,OAAO,CAACC,IAAI,CAAE,IAAK,CAAC;MACxC,IAAI,CAACC,cAAc,GAAG,IAAI,CAACA,cAAc,CAACD,IAAI,CAAE,IAAK,CAAC;MACtD,IAAI,CAACE,cAAc,GAAG,IAAI,CAACA,cAAc,CAACF,IAAI,CAAE,IAAK,CAAC;MACtD,IAAI,CAACG,mBAAmB,GACvB,IAAI,CAACA,mBAAmB,CAACH,IAAI,CAAE,IAAK,CAAC;MACtC,IAAI,CAACI,KAAK,GAAG;QACZC,UAAU,EAAE;MACb,CAAC;IACF;IAEAN,OAAOA,CAAA,EAAG;MACT,MAAM;QAAEO,KAAK;QAAEC;MAAS,CAAC,GAAG,IAAI,CAACC,KAAK;MACtC,MAAMC,IAAI,GAAG,IAAAC,wBAAc,EAAE,IAAAC,eAAK,EAAEL,KAAM,CAAE,CAAC;MAE7C,IAAKG,IAAI,IAAI,IAAAG,UAAK,EAAEH,IAAK,CAAC,IAAI,IAAAI,kBAAW,EAAEJ,IAAK,CAAC,EAAG;QACnD,MAAMK,QAAQ,GAAG,IAAAC,qBAAW,EAAET,KAAK,EAAE;UACpCU,IAAI,EAAEjC,IAAI;UACVM,UAAU,EAAE;YAAEC,GAAG,EAAEmB;UAAK;QACzB,CAAE,CAAC;QACHK,QAAQ,CAACG,KAAK,GAAGH,QAAQ,CAACI,GAAG;QAC7BJ,QAAQ,CAACK,aAAa,GAAG,EAAE;QAC3BZ,QAAQ,CAAE;UAAE,GAAGO,QAAQ;UAAEM,oBAAoB,EAAE;QAAK,CAAE,CAAC;MACxD,CAAC,MAAM;QACN,IAAI,CAACC,QAAQ,CAAE;UAAEhB,UAAU,EAAE;QAAK,CAAE,CAAC;QACrC,IAAI,CAACF,mBAAmB,CAAC,CAAC;MAC3B;IACD;IAEAF,cAAcA,CAAA,EAAG;MAChB,IAAI,CAACoB,QAAQ,CAAE;QAAEhB,UAAU,EAAE,KAAK;QAAEiB,YAAY,EAAEC;MAAU,CAAE,CAAC;IAChE;IAEAC,gBAAgBA,CAAA,EAAG;MAClB,MAAM;QAAElB,KAAK;QAAEmB;MAAS,CAAC,GAAG,IAAI,CAACjB,KAAK;MACtC,MAAMkB,WAAW,GAAG,IAAAC,yBAAe,EAAErB,KAAK,EAAE,WAAY,CAAC;;MAEzD;MACA;MACA,IAAKoB,WAAW,IAAI,IAAAE,qBAAW,EAAEtB,KAAM,CAAC,IAAImB,QAAQ,EAAG;QACtD,IAAII,UAAU,GAAGvB,KAAK,CAACW,KAAK;QAC5B,IAAIa,QAAQ,GAAGxB,KAAK,CAACY,GAAG;QAExB,OACCZ,KAAK,CAACyB,OAAO,CAAEF,UAAU,CAAE,EAAEG,IAAI,CAC9BC,MAAM,IAAMA,MAAM,EAAEjB,IAAI,KAAKU,WAAW,CAACV,IAC5C,CAAC,EACA;UACDa,UAAU,EAAE;QACb;QAEAC,QAAQ,EAAE;QAEV,OACCxB,KAAK,CAACyB,OAAO,CAAED,QAAQ,CAAE,EAAEE,IAAI,CAC5BC,MAAM,IAAMA,MAAM,EAAEjB,IAAI,KAAKU,WAAW,CAACV,IAC5C,CAAC,EACA;UACDc,QAAQ,EAAE;QACX;QAEA,OAAO;UACN,GAAGxB,KAAK;UACRW,KAAK,EAAEY,UAAU,GAAG,CAAC;UACrBX,GAAG,EAAEY;QACN,CAAC;MACF;MAEA,OAAOxB,KAAK;IACb;IAEAJ,cAAcA,CAAA,EAAG;MAChB,MAAM;QAAEK,QAAQ;QAAE2B,KAAK;QAAE5B;MAAM,CAAC,GAAG,IAAI,CAACE,KAAK;MAC7C,MAAMkB,WAAW,GAAG,IAAAC,yBAAe,EAAErB,KAAK,EAAE,WAAY,CAAC;;MAEzD;MACA,IAAK,IAAAsB,qBAAW,EAAEtB,KAAM,CAAC,IAAIoB,WAAW,KAAKH,SAAS,EAAG;QACxD;MACD;MAEA,MAAMY,aAAa,GAAG,IAAI,CAACX,gBAAgB,CAAC,CAAC;MAE7CjB,QAAQ,CAAE,IAAA6B,sBAAY,EAAED,aAAa,EAAEpD,IAAK,CAAE,CAAC;MAC/CmD,KAAK,CAAE,IAAAhD,QAAE,EAAE,eAAgB,CAAC,EAAE,WAAY,CAAC;IAC5C;IAEA,MAAMiB,mBAAmBA,CAAA,EAAG;MAC3B,MAAMkC,aAAa,GAAG,MAAMC,kBAAS,CAACC,SAAS,CAAC,CAAC;MACjD,IAAK,CAAEF,aAAa,EAAG;QACtB;MACD;MACA;MACA,IAAK,CAAE,IAAAzB,UAAK,EAAEyB,aAAc,CAAC,EAAG;QAC/B;MACD;MACA,IAAI,CAAChB,QAAQ,CAAE;QAAEC,YAAY,EAAEe;MAAc,CAAE,CAAC;IACjD;IAEAG,MAAMA,CAAA,EAAG;MACR,MAAM;QAAEf,QAAQ;QAAEgB,gBAAgB;QAAElC;MAAS,CAAC,GAAG,IAAI,CAACC,KAAK;MAC3D,MAAM2B,aAAa,GAAG,IAAI,CAACX,gBAAgB,CAAC,CAAC;MAC7C;MACA,IAAK,CAAEiB,gBAAgB,CAACnD,GAAG,IAAI,IAAI,CAACc,KAAK,CAACkB,YAAY,EAAG;QACxDmB,gBAAgB,CAACnD,GAAG,GAAG,IAAI,CAACc,KAAK,CAACkB,YAAY;MAC/C;MACA,OACC,IAAAoB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAC9D,MAAA,CAAAgE,OAAW;QACXC,SAAS,EAAG,IAAI,CAAC1C,KAAK,CAACC,UAAY;QACnCoB,QAAQ,EAAGA,QAAU;QACrBgB,gBAAgB,EAAGA,gBAAkB;QACrCM,OAAO,EAAG,IAAI,CAAC9C,cAAgB;QAC/BM,QAAQ,EAAGA,QAAU;QACrByC,QAAQ,EAAG,IAAI,CAAC9C,cAAgB;QAChCI,KAAK,EAAG6B;MAAe,CACvB,CAAC,EACF,IAAAO,MAAA,CAAAC,aAAA,EAAClE,YAAA,CAAAwE,qBAAqB;QACrBlE,IAAI,EAAC,MAAM;QACXmE,IAAI,EAAGC,WAAU;QACjBlE,KAAK,EAAG,IAAAC,QAAE,EAAE,MAAO,CAAG;QACtBkE,OAAO,EAAG,IAAI,CAACrD,OAAS;QACxB0B,QAAQ,EAAGA,QAAU;QACrB4B,YAAY,EAAC,SAAS;QACtBC,iBAAiB,EAAC;MAAG,CACrB,CACA,CAAC;IAEL;EACD,CACD;AACD,CAAC;AAACC,OAAA,CAAAvE,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["_clipboard","_interopRequireDefault","require","_i18n","_element","_components","_blockEditor","_richText","_url","_icons","_modal","_utils","name","link","exports","title","__","tagName","className","attributes","url","target","rel","edit","withSpokenMessages","LinkEdit","Component","constructor","arguments","addLink","bind","stopAddingLink","onRemoveFormat","getURLFromClipboard","state","addingLink","value","onChange","props","text","getTextContent","slice","isURL","isValidHref","newValue","applyFormat","type","start","end","activeFormats","needsSelectionUpdate","setState","clipboardURL","undefined","getLinkSelection","isActive","startFormat","getActiveFormat","isCollapsed","startIndex","endIndex","formats","find","format","speak","linkSelection","removeFormat","clipboardText","Clipboard","getString","render","activeAttributes","_react","createElement","Fragment","default","isVisible","onClose","onRemove","RichTextToolbarButton","icon","linkIcon","onClick","shortcutType","shortcutCharacter"],"sources":["@wordpress/format-library/src/link/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { withSpokenMessages } from '@wordpress/components';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tapplyFormat,\n\tgetActiveFormat,\n\tgetTextContent,\n\tisCollapsed,\n\tremoveFormat,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\nimport { link as linkIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ModalLinkUI from './modal';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\n\nexport const link = {\n\tname,\n\ttitle: __( 'Link' ),\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\tedit: withSpokenMessages(\n\t\tclass LinkEdit extends Component {\n\t\t\tconstructor() {\n\t\t\t\tsuper( ...arguments );\n\n\t\t\t\tthis.addLink = this.addLink.bind( this );\n\t\t\t\tthis.stopAddingLink = this.stopAddingLink.bind( this );\n\t\t\t\tthis.onRemoveFormat = this.onRemoveFormat.bind( this );\n\t\t\t\tthis.getURLFromClipboard =\n\t\t\t\t\tthis.getURLFromClipboard.bind( this );\n\t\t\t\tthis.state = {\n\t\t\t\t\taddingLink: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\taddLink() {\n\t\t\t\tconst { value, onChange } = this.props;\n\t\t\t\tconst text = getTextContent( slice( value ) );\n\n\t\t\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\t\t\tconst newValue = applyFormat( value, {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: { url: text },\n\t\t\t\t\t} );\n\t\t\t\t\tnewValue.start = newValue.end;\n\t\t\t\t\tnewValue.activeFormats = [];\n\t\t\t\t\tonChange( { ...newValue, needsSelectionUpdate: true } );\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState( { addingLink: true } );\n\t\t\t\t\tthis.getURLFromClipboard();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstopAddingLink() {\n\t\t\t\tthis.setState( { addingLink: false, clipboardURL: undefined } );\n\t\t\t}\n\n\t\t\tgetLinkSelection() {\n\t\t\t\tconst { value, isActive } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// If the link isn't selected, get the link manually by looking around the cursor\n\t\t\t\t// TODO: handle partly selected links.\n\t\t\t\tif ( startFormat && isCollapsed( value ) && isActive ) {\n\t\t\t\t\tlet startIndex = value.start;\n\t\t\t\t\tlet endIndex = value.end;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ startIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tstartIndex--;\n\t\t\t\t\t}\n\n\t\t\t\t\tendIndex++;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ endIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tendIndex++;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\tstart: startIndex + 1,\n\t\t\t\t\t\tend: endIndex,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tonRemoveFormat() {\n\t\t\t\tconst { onChange, speak, value } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// Before we try to remove anything we check if there is something at the caret position to remove.\n\t\t\t\tif ( isCollapsed( value ) && startFormat === undefined ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\n\t\t\t\tonChange( removeFormat( linkSelection, name ) );\n\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t}\n\n\t\t\tasync getURLFromClipboard() {\n\t\t\t\tconst clipboardText = await Clipboard.getString();\n\t\t\t\tif ( ! clipboardText ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Check if pasted text is URL.\n\t\t\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.setState( { clipboardURL: clipboardText } );\n\t\t\t}\n\n\t\t\trender() {\n\t\t\t\tconst { isActive, activeAttributes, onChange } = this.props;\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\t\t\t\t// If no URL is set and we have a clipboard URL let's use it.\n\t\t\t\tif ( ! activeAttributes.url && this.state.clipboardURL ) {\n\t\t\t\t\tactiveAttributes.url = this.state.clipboardURL;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ModalLinkUI\n\t\t\t\t\t\t\tisVisible={ this.state.addingLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\t\t\tonClose={ this.stopAddingLink }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonRemove={ this.onRemoveFormat }\n\t\t\t\t\t\t\tvalue={ linkSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tonClick={ this.addLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\t\t\tshortcutCharacter=\"k\"\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),\n};\n"],"mappings":"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"}