PageSourceSearch

https://www.electronjs.org/assets/js/40cf5a1b.1c0d442c.js

js electronjs.org collected 2026-09-24 07:04:04 UTC 24,125 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkelectronjs=self.webpackChunkelectronjs||[]).push([["23968"],{58651(e,t,n){n.r(t),n.d(t,{metadata:()=>o,default:()=>m,frontMatter:()=>s,contentTitle:()=>c,toc:()=>p,assets:()=>d});var o=JSON.parse('{"id":"latest/api/clipboard","title":"clipboard","description":"YAML history deprecated: - pr-url: https://github.com/electron/electron/pull/48877 description: \\"Using the clipboard API directly in the renderer process is deprecated.\\" breaking-changes-header: deprecated-clipboard-api-access-from-renderer-processes","source":"@site/docs/latest/api/clipboard.md","sourceDirName":"latest/api","slug":"/latest/api/clipboard","permalink":"/docs/latest/api/clipboard","draft":false,"unlisted":false,"editUrl":"https://github.com/electron/electron/edit/main/docs/api/clipboard.md","tags":[],"version":"current","frontMatter":{"title":"clipboard","description":"YAML history deprecated: - pr-url: https://github.com/electron/electron/pull/48877 description: \\"Using the clipboard API directly in the renderer process is deprecated.\\" breaking-changes-header: deprecated-clipboard-api-access-from-renderer-processes","slug":"clipboard","hide_title":false},"sidebar":"api","previous":{"title":"BrowserWindow","permalink":"/docs/latest/api/browser-window"},"next":{"title":"contentTracing","permalink":"/docs/latest/api/content-tracing"}}'),i=n(74848),r=n(28453),l=n(56346),a=n(40329);let s={title:"clipboard",description:'YAML history deprecated: - pr-url: https://github.com/electron/electron/pull/48877 description: "Using the clipboard API directly in the renderer process is deprecated." breaking-changes-header: deprecated-clipboard-api-access-from-renderer-processes',slug:"clipboard",hide_title:!1},c="clipboard",d={},p=[{value:"Methods",id:"methods",level:2},{value:"<code>clipboard.readText()</code>",id:"clipboardreadtext",level:3},{value:"<code>clipboard.writeText(text)</code>",id:"clipboardwritetexttext",level:3},{value:"<code>clipboard.read()</code>",id:"clipboardread",level:3},{value:"<code>clipboard.write(data)</code>",id:"clipboardwritedata",level:3},{value:"<code>clipboard.has(mimetype)</code>",id:"clipboardhasmimetype",level:3},{value:"<code>clipboard.clear()</code>",id:"clipboardclear",level:3},{value:"Properties",id:"properties",level:2},{value:"<code>clipboard.selection</code> <em>Linux</em> <em>Readonly</em>",id:"clipboardselection-linux-readonly",level:3}];function h(e){let t={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"clipboard",children:"clipboard"})}),"\n",(0,i.jsx)(l.A,{apiHistoryJson:'{"deprecated":[{"pr-url":"https://github.com/electron/electron/pull/48877","description":"Using the `clipboard` API directly in the renderer process is deprecated.","breaking-changes-header":"deprecated-clipboard-api-access-from-renderer-processes"}]}',prReleaseVersionsJson:'{"48877":{"release":"41.0.0","backports":["40.0.0"]}}'}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:"Perform copy and paste operations on the system clipboard."}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Process: ",(0,i.jsx)(t.a,{href:"/docs/latest/glossary#main-process",children:"Main"})]}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.code,{children:"clipboard"})," module is modeled after the\n",(0,i.jsx)(t.a,{href:"https://w3c.github.io/clipboard-apis/#clipboard-interface",children:"W3C Clipboard API"}),":\n",(0,i.jsx)(t.code,{children:"clipboard.read()"})," returns a ",(0,i.jsx)(t.code,{children:"Promise"})," that resolves with a list of\n",(0,i.jsx)(t.a,{href:"/docs/latest/api/clipboard-item",children:(0,i.jsx)(t.code,{children:"ClipboardItem"})})," objects, and ",(0,i.jsx)(t.code,{children:"clipboard.write()"}),"\naccepts an array of ",(0,i.jsx)(t.code,{children:"ClipboardItem"})," instances that map\n",(0,i.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/MIME_types",children:"MIME types"}),"\nto ",(0,i.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/Blob",children:"Blob"})," payloads."]}),"\n",(0,i.jsxs)(t.p,{children:["In addition to the standard MIME types (",(0,i.jsx)(t.code,{children:"text/plain"}),", ",(0,i.jsx)(t.code,{children:"text/html"}),",\n",(0,i.jsx)(t.code,{children:"text/rtf"}),", ",(0,i.jsx)(t.code,{children:"image/png"}),", ",(0,i.jsx)(t.code,{children:"image/jpeg"}),", \u2026), Electron exposes a small\nset of custom formats so the clipboard can carry desktop-specific\npayloads. These follow the W3C\n",(0,i.jsx)(t.a,{href:"https://github.com/w3c/editing/blob/gh-pages/docs/clipboard-pickling/explainer.md#custom-formats",children:"custom format proposal"}),",\nusing an ",(0,i.jsx)(t.code,{children:"electron"})," prefix instead of ",(0,i.jsx)(t.code,{children:"web"})," to avoid collisions. The\ncustom formats Electron exposes are:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"electron application/bookmark"})," \u2014 a URL bookmark. Unlike every other\nMIME type/custom format, its payload is a ",(0,i.jsx)(a.A,{url:"/docs/latest/api/structures/clipboard-bookmark",title:"ClipboardBookmark",content:'{"type":"root","children":[{"type":"element","tagName":"h1","properties":{},"children":[{"type":"text","value":"ClipboardBookmark Object"}]},{"type":"text","value":"\\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"title","position":{"start":{"line":10,"column":3,"offset":132},"end":{"line":10,"column":10,"offset":139}}}],"position":{"start":{"line":10,"column":3,"offset":132},"end":{"line":10,"column":10,"offset":139}}},{"type":"text","value":" string - The title of the bookmark.","position":{"start":{"line":10,"column":10,"offset":139},"end":{"line":10,"column":46,"offset":175}}}],"position":{"start":{"line":10,"column":1,"offset":130},"end":{"line":10,"column":46,"offset":175}}},{"type":"text","value":"\\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"url","position":{"start":{"line":11,"column":3,"offset":178},"end":{"line":11,"column":8,"offset":183}}}],"position":{"start":{"line":11,"column":3,"offset":178},"end":{"line":11,"column":8,"offset":183}}},{"type":"text","value":" string - The URL of the bookmark.","position":{"start":{"line":11,"column":8,"offset":183},"end":{"line":11,"column":42,"offset":217}}}],"position":{"start":{"line":11,"column":1,"offset":176},"end":{"line":11,"column":42,"offset":217}}},{"type":"text","value":"\\n"}],"position":{"start":{"line":10,"column":1,"offset":130},"end":{"line":11,"column":42,"offset":217}}},{"type":"text","value":"\\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A ","position":{"start":{"line":13,"column":1,"offset":219},"end":{"line":13,"column":3,"offset":221}}},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"ClipboardBookmark","position":{"start":{"line":13,"column":3,"offset":221},"end":{"line":13,"column":22,"offset":240}}}],"position":{"start":{"line":13,"column":3,"offset":221},"end":{"line":13,"column":22,"offset":240}}},{"type":"text","value":" is the payload used by the ","position":{"start":{"line":13,"column":22,"offset":240},"end":{"line":13,"column":50,"offset":268}}},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"electron application/bookmark","position":{"start":{"line":13,"column":50,"offset":268},"end":{"line":13,"column":81,"offset":299}}}],"position":{"start":{"line":13,"column":50,"offset":268},"end":{"line":13,"column":81,"offset":299}}},{"type":"text","value":"\\nclipboard custom format. It is passed to\\n","position":{"start":{"line":13,"column":81,"offset":299},"end":{"line":15,"column":1,"offset":341}}},{"type":"element","tagName":"a","properties":{"href":"/docs/latest/api/clipboard#clipboardwritedata"},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"clipboard.write()","position":{"start":{"line":15,"column":2,"offset":342},"end":{"line":15,"column":21,"offset":361}}}],"position":{"start":{"line":15,"column":2,"offset":342},"end":{"line":15,"column":21,"offset":361}}}],"position":{"start":{"line":15,"column":1,"offset":341},"end":{"line":15,"column":58,"offset":398}}},{"type":"text","value":" as a\\n","position":{"start":{"line":15,"column":58,"offset":398},"end":{"line":16,"column":1,"offset":404}}},{"type":"element","tagName":"a","properties":{"href":"/docs/latest/api/clipboard-item"},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"ClipboardItem","position":{"start":{"line":16,"column":2,"offset":405},"end":{"line":16,"column":17,"offset":420}}}],"position":{"start":{"line":16,"column":2,"offset":405},"end":{"line":16,"column":17,"offset":420}}}],"position":{"start":{"line":16,"column":1,"offset":404},"end":{"line":16,"column":40,"offset":443}}},{"type":"text","value":" ","position":{"start":{"line":16,"column":40,"offset":443},"end":{"line":16,"column":41,"offset":444}}},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"data","position":{"start":{"line":16,"column":41,"offset":444},"end":{"line":16,"column":47,"offset":450}}}],"position":{"start":{"line":16,"column":41,"offset":444},"end":{"line":16,"column":47,"offset":450}}},{"type":"text","value":" value, and is what\\n","position":{"start":{"line":16,"column":47,"offset":450},"end":{"line":17,"column":1,"offset":470}}},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"getType(\'electron application/bookmark\')","position":{"start":{"line":17,"column":1,"offset":470},"end":{"line":17,"column":43,"offset":512}}}],"position":{"start":{"line":17,"column":1,"offset":470},"end":{"line":17,"column":43,"offset":512}}},{"type":"text","value":" resolves to when reading via\\n","position":{"start":{"line":17,"column":43,"offset":512},"end":{"line":18,"column":1,"offset":542}}},{"type":"element","tagName":"a","properties":{"href":"/docs/latest/api/clipboard#clipboardread"},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"clipboard.read()","position":{"start":{"line":18,"column":2,"offset":543},"end":{"line":18,"column":20,"offset":561}}}],"position":{"start":{"line":18,"column":2,"offset":543},"end":{"line":18,"column":20,"offset":561}}}],"position":{"start":{"line":18,"column":1,"offset":542},"end":{"line":18,"column":52,"offset":593}}},{"type":"text","value":".","position":{"start":{"line":18,"column":52,"offset":593},"end":{"line":18,"column":53,"offset":594}}}],"position":{"start":{"line":13,"column":1,"offset":219},"end":{"line":18,"column":53,"offset":594}}}],"position":{"start":{"line":1,"column":1,"offset":0},"end":{"line":19,"column":1,"offset":595}}}'})," object\non both the write and read sides rather than a ",(0,i.jsx)(t.code,{children:"Blob"}),", so\n",(0,i.jsx)(t.code,{children:"getType('electron application/bookmark')"})," resolves to\n",(0,i.jsx)(t.code,{children:"{ title: string, url: string }"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"electron application/findtext"})," (",(0,i.jsx)(t.em,{className:"badge badge--primary",children:"macOS"}),") \u2014 the contents of the\nactive app's find pasteboard."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:'electron application/osclipboard;format="<name>"'})," \u2014 a raw payload\nfor a platform-specific clipboard format. The ",(0,i.jsx)(t.code,{children:"<name>"})," is the\nplatform format (e.g. ",(0,i.jsx)(t.code,{children:"HTML Format"})," on Windows or\n",(0,i.jsx)(t.code,{children:"public.utf8-plain-text"})," on macOS). ",(0,i.jsx)(t.code,{children:"clipboard.read()"})," also surfaces\nany platform clipboard format that has no standard MIME mapping under\nthis custom format, so a raw OS format round-trips through the same string\non write and read."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Beyond the well-known MIME types, both ",(0,i.jsx)(t.code,{children:"clipboard.read()"})," and\n",(0,i.jsx)(t.code,{children:"clipboard.write()"})," accept arbitrary MIME types including custom formats starting with\nthe ",(0,i.jsx)(t.code,{children:"web"})," prefix (followed by a space, e.g. ",(0,i.jsx)(t.code,{children:"web application/x.my-format"}),")\nthat follow the W3C ",(0,i.jsx)(t.a,{href:"https://github.com/w3c/editing/blob/gh-pages/docs/clipboard-pickling/explainer.md#custom-formats",children:"web custom format proposal"}),"."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",children:"const { clipboard, ClipboardItem } = require('electron')\n\nasync function writeClipboard() {\n  await clipboard.write([\n    new ClipboardItem({\n      'web application/x.my-app-clip': new Blob(['arbitrary payload'])\n    })\n  ])\n}\n\nwriteClipboard()\n"})}),"\n",(0,i.jsxs)(t.p,{children:["On Linux there is also a ",(0,i.jsx)(t.code,{children:"selection"})," clipboard. It is exposed via the\n",(0,i.jsx)(t.a,{href:"#clipboardselection-linux-readonly",children:(0,i.jsx)(t.code,{children:"clipboard.selection"})})," sub-namespace,\nwhich mirrors the top-level ",(0,i.jsx)(t.code,{children:"clipboard"})," interface.\nThe ",(0,i.jsx)(t.code,{children:"selection"})," clipboard operates against the\nselection clipboard instead of the system clipboard."]}),"\n",(0,i.jsxs)(t.p,{children:["It exposes the same surface as the top-level ",(0,i.jsx)(t.code,{children:"clipboard"})," module, but\neach method targets the selection clipboard rather than the system\nclipboard. The two clipboards are independent: writing via\n",(0,i.jsx)(t.code,{children:"clipboard.selection"})," does not affect the data returned by\n",(0,i.jsx)(t.code,{children:"clipboard.read()"})," (and vice versa)."]}),"\n",(0,i.jsx)(t.admonition,{type:"note",children:(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.code,{children:"selection"})," clipboard does not support the W3C ",(0,i.jsx)(t.a,{href:"https://github.com/w3c/editing/blob/gh-pages/docs/clipboard-pickling/explainer.md#custom-formats",children:"web custom format"}),"."]})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",children:"const { clipboard } = require('electron')\n\nasync function run() {\n  await clipboard.selection.writeText('Example string')\n  console.log(await clipboard.selection.readText())\n}\n\nrun()\n"})}),"\n",(0,i.jsx)(t.h2,{id:"methods",children:"Methods"}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.code,{children:"clipboard"})," module has the following methods."]}),"\n",(0,i.jsx)(t.h3,{id:"clipboardreadtext",children:(0,i.jsx)(t.code,{children:"clipboard.readText()"})}),"\n",(0,i.jsxs)(t.p,{children:["Returns ",(0,i.jsx)(t.code,{children:"Promise<string>"})," - A promise that resolves with the content of the\nclipboard as plain text. Modeled after the W3C\n",(0,i.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText",children:(0,i.jsx)(t.code,{children:"navigator.clipboard.readText"})}),"\nAPI."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",children:"const { clipboard } = require('electron')\n\nasync function readText() {\n  await clipboard.writeText('hello i am a bit of text!')\n  const text = await clipboard.readText()\n  console.log(text)\n  // 'hello i am a bit of text!'\n}\n\nreadText()\n"})}),"\n",(0,i.jsx)(t.h3,{id:"clipboardwritetexttext",children:(0,i.jsx)(t.code,{children:"clipboard.writeText(text)"})}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"text"})," string"]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Returns ",(0,i.jsx)(t.code,{children:"Promise<void>"})," - A promise that resolves once the text has been\nwritten to the clipboard. Modeled after the W3C\n",(0,i.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText",children:(0,i.jsx)(t.code,{children:"navigator.clipboard.
1writeText"})}),"\nAPI."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",children:"const { clipboard } = require('electron')\n\nasync function writeClipboardText() {\n  await clipboard.writeText('hello i am a bit of text!')\n}\n\nwriteClipboardText()\n"})}),"\n",(0,i.jsx)(t.h3,{id:"clipboardread",children:(0,i.jsx)(t.code,{children:"clipboard.read()"})}),"\n",(0,i.jsxs)(t.p,{children:["Returns ",(0,i.jsx)(t.code,{children:"Promise<ClipboardItem[]>"})," - A promise that resolves with an array of\n",(0,i.jsx)(t.a,{href:"/docs/latest/api/clipboard-item",children:"ClipboardItem"})," objects containing the clipboard's\ncontents."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",children:"const { clipboard } = require('electron')\n\nasync function dumpClipboard() {\n  const items = await clipboard.read()\n  for (const item of items) {\n    for (const type of item.types) {\n      const blob = await item.getType(type)\n      console.log(type, blob)\n    }\n  }\n}\n\ndumpClipboard()\n"})}),"\n",(0,i.jsx)(t.h3,{id:"clipboardwritedata",children:(0,i.jsx)(t.code,{children:"clipboard.write(data)"})}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"data"})," ",(0,i.jsx)(t.a,{href:"/docs/latest/api/clipboard-item",children:"ClipboardItem"}),"[] - An array of\n",(0,i.jsx)(t.a,{href:"/docs/latest/api/clipboard-item",children:(0,i.jsx)(t.code,{children:"ClipboardItem"})})," instances constructed via\n",(0,i.jsx)(t.code,{children:"new ClipboardItem({ [mime]: payload })"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Returns ",(0,i.jsx)(t.code,{children:"Promise<void>"})," - Resolves once the data has been written to the\nclipboard. All entries supplied in a single ",(0,i.jsx)(t.code,{children:"write()"})," call are committed\nto the system clipboard atomically."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",children:"const { clipboard, ClipboardItem, nativeImage } = require('electron')\n\nconst png = nativeImage.createFromPath('/path/to/icon.png').toPNG()\n\nasync function writeClipboard() {\n  await clipboard.write([\n    new ClipboardItem({\n      'text/plain': 'hello',\n      'text/html': '<b>hello</b>',\n      'image/png': new Blob([png], { type: 'image/png' }),\n      'electron application/bookmark': {\n        title: 'Electron',\n        url: 'https://electronjs.org'\n      }\n    })\n  ])\n}\n\nwriteClipboard()\n"})}),"\n",(0,i.jsx)(t.h3,{id:"clipboardhasmimetype",children:(0,i.jsx)(t.code,{children:"clipboard.has(mimetype)"})}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"mimetype"})," string - MIME type to check"]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Returns ",(0,i.jsx)(t.code,{children:"Promise<boolean>"})," - A promise that resolves with ",(0,i.jsx)(t.code,{children:"true"})," if the\nclipboard contains data of the specified ",(0,i.jsx)(t.code,{children:"mimetype"}),", otherwise ",(0,i.jsx)(t.code,{children:"false"}),".\nTo check for a raw format, eg ",(0,i.jsx)(t.code,{children:"public/utf8-plain-text"}),", use the ",(0,i.jsx)(t.code,{children:"electron application/osclipboard"}),"\ncustom format (",(0,i.jsx)(t.code,{children:'electron application/osclipboard;format="public/utf8-plain-text"'}),")."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",children:"const { clipboard } = require('electron')\n\nasync function check() {\n  const hasFormat = await clipboard.has('text/html')\n  console.log(hasFormat)\n  // 'true' or 'false'\n  const rawFormat = 'electron application/osclipboard;format=\"public/utf8-plain-text\"'\n  const hasRawFormat = await clipboard.has(rawFormat)\n}\n\ncheck()\n"})}),"\n",(0,i.jsx)(t.h3,{id:"clipboardclear",children:(0,i.jsx)(t.code,{children:"clipboard.clear()"})}),"\n",(0,i.jsx)(t.p,{children:"Clears the clipboard content."}),"\n",(0,i.jsx)(t.h2,{id:"properties",children:"Properties"}),"\n",(0,i.jsxs)(t.h3,{id:"clipboardselection-linux-readonly",children:[(0,i.jsx)(t.code,{children:"clipboard.selection"})," ",(0,i.jsx)(t.em,{className:"badge badge--primary",children:"Linux"})," ",(0,i.jsx)(t.em,{className:"badge badge--info",children:"Readonly"})]}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.code,{children:"Clipboard"})," property \u2014 a ",(0,i.jsx)(t.code,{children:"Clipboard"})," object on Linux that\noperates against the selection clipboard instead of the system clipboard,\nand ",(0,i.jsx)(t.code,{children:"undefined"})," on all other platforms. It exposes the same ",(0,i.jsx)(t.code,{children:"read"}),",\n",(0,i.jsx)(t.code,{children:"write"}),", ",(0,i.jsx)(t.code,{children:"readText"}),", ",(0,i.jsx)(t.code,{children:"writeText"}),", ",(0,i.jsx)(t.code,{children:"has"}),", and ",(0,i.jsx)(t.code,{children:"clear"})," methods as the\ntop-level ",(0,i.jsx)(t.code,{children:"clipboard"})," module."]})]})}function m(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},40329(e,t,n){n.d(t,{A:()=>d});var o=n(74848),i=n(20053),r=n(96540),l=n(75392),a=n.n(l),s=n(83561);let c=e=>(0,o.jsx)("article",{ref:e.innerRef,id:"structures-tooltip",role:"tooltip",className:(0,i.A)("alert","alert--info","shadow--md","card_ZoSr"),style:e.position,children:(0,o.jsx)("div",{className:"card__body",dangerouslySetInnerHTML:{__html:(0,s.V)(JSON.parse(e.content))}})}),d=function(e){let{Portal:t}=a()(),n=(0,r.useRef)(null),i=(0,r.useRef)(null),[l,s]=(0,r.useState)(!1),[d,p]=(0,r.useState)(void 0);(0,r.useEffect)(()=>
1{if(l){let e={x:0,y:0},t=n.current.getBoundingClientRect(),o=window.innerHeight/2<t.y,r=window.innerWidth/2<t.x;o?e.y=i.current.clientHeight+-2:e.y=-t.height- -2,r?e.x=i.current.clientWidth:e.x=0,p({top:n.current.offsetTop-e.y,left:n.current.offsetLeft-e.x})}},[l]);let h=(0,r.useCallback)(()=>{s(!0)},[]),m=(0,r.useCallback)(()=>{s(!1)},[]);return(0,o.jsxs)("a",{"aria-describedby":"structures-tooltip",href:e.url,ref:n,className:"link_nCrB",onMouseEnter:h,onMouseLeave:m,children:[e.title,!!l&&(0,o.jsx)(t,{children:(0,o.jsx)(c,{innerRef:i,position:d,...e})})]})}},56346(e,t,n){n.d(t,{A:()=>s});var o=n(74848),i=n(52918);n(96540);var r=n(35778),l=n(99589);let a={"api-history":"api-history_li9V","api-added":"api-added_XqIp","api-deprecated":"api-deprecated_PIol"},s=e=>{let{apiHistoryJson:t,prReleaseVersionsJson:n}=e,s=JSON.parse(t),c=JSON.parse(n),d=(e,t)=>(t??[]).map(t=>{var n;let i,s,d,p,h;return n=c[Number(t["pr-url"].split("/").at(-1))],s=t["pr-url"]+"-"+e,d=l.rsort(n?.backports??[]).map(e=>(e.endsWith(".0.0")?">
1=":"^")+e),(p=n?.release)&&!d.find(e=>e.startsWith(">="))&&d.unshift(`>=${p}`),h=d.map(e=>(0,o.jsx)("a",{href:t["pr-url"],target:"_blank",rel:"noopener noreferrer",children:(0,o.jsx)("pre",{children:e})},e)),i="description"in t?(0,o.jsx)(r.o,{allowedElements:["a","code","em","p","pre","strong"],children:t.description}):(0,o.jsx)("pre",{className:a[e.toLowerCase().split(" ").join("-")],children:e},s),"breaking-changes-header"in t&&(i=(0,o.jsx)("a",{href:"/docs/latest/breaking-changes#"+t["breaking-changes-header"],target:"_blank",rel:"noopener noreferrer",children:i})),(0,o.jsxs)("tr",{children:[(0,o.jsx)("td",{children:0!==h.length?h:(0,o.jsx)("pre",{children:"None"})}),(0,o.jsx)("td",{children:i})]},s)}),p=[...d("API DEPRECATED",s.deprecated),...d("API CHANGED",s.changes),...d("API ADDED",s.added)];return(0,o.jsx)(i.B,{className:a["api-history"],summary:(0,o.jsx)("summary",{children:"History"}),children:(0,o.jsxs)("table",{children:[(0,o.jsx)("thead",{children:(0,o.jsxs)("tr",{children:[(0,o.jsx)("th",{children:"Version(s)"}),(0,o.jsx)("th",{children:"Changes"})]})}),(0,o.jsx)("tbody",{children:p})]})})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.