Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@svelte-bin/clipboard

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@svelte-bin/clipboard

## Installation ```bash npm i @svelte-bin/clipboard ```

  • 0.1.2
  • npm
  • Socket score

Version published
Weekly downloads
74
increased by5.71%
Maintainers
1
Weekly downloads
 
Created
Source

@svelte-bin/clipboard

Installation

npm i @svelte-bin/clipboard

Usage

Text Passed
<script>
    import {clipboard} from '@svelte-bin/clipboard'
    let textToCopy = "Hello World"

    let copied = false
    const onCopy = () => {
        copied = true
        setTimeout(() => {
            copied = false
        }, 1000)
    }
</script>

<button 
    type="button" 
    use:clipboard={textToCopy}
    on:copied={onCopy}
>{copied ? "copied" : "click me"}</button>

Image Passed (Blob)

https://web.dev/articles/async-clipboard#writetext

<script>
    import {clipboard} from '@svelte-bin/clipboard'
    let imageToCopy = () => {
        const imgURL = '/images/generic/file.png';
        const data = await fetch(imgURL);
        const blob = await data.blob();

        return blob
    }

    let copied = false
    const onCopy = () => {
        copied = true
        setTimeout(() => {
            copied = false
        }, 1000)
    }
</script>

<button 
    type="button" 
    use:clipboard={imageToCopy}
    on:copied={onCopy}
>{copied ? "copied" : "click me"}</button>

Image Passed (URL)

https://web.dev/articles/async-clipboard#writetext

<script>
    import {clipboard} from '@svelte-bin/clipboard'
   
    let copied = false
    const onCopy = () => {
        copied = true
        setTimeout(() => {
            copied = false
        }, 1000)
    }
</script>

<button 
    type="button" 
    use:clipboard={{
        imageURL: "/images/generic/file.png"
    }}
    on:copied={onCopy}
>{copied ? "copied" : "click me"}</button>

text+Image Passed (URL)

https://web.dev/articles/async-clipboard#writetext

<script>
    import {clipboard} from '@svelte-bin/clipboard'
   
    let copied = false
    const onCopy = () => {
        copied = true
        setTimeout(() => {
            copied = false
        }, 1000)
    }
</script>

<button 
    type="button" 
    use:clipboard={{
        imageURL: "/images/generic/file.png",
        text: "Hello World"
    }}
    on:copied={onCopy}
>{copied ? "copied" : "click me"}</button>

Params

ParamDescription
string|Blob|objectThere are 3 types parameter that can be used
ParamDescription
stringThe text (or function that returns text) that will be copied when the action is triggered
ParamDescription
blobThe image blob (or function that returns image blob) that will be copied when the action is triggered
Param (Object)Description
textThe text that will be copied when the action is triggered
imageURLThe image url that will be copied when the action is triggered

Events

The clipboard action dispatches custom events. Each custom event takes a callback function just like other events.

'on:copying': (event: CustomEvent) => void;
'on:copied': (event: CustomEvent<string | ClipboardItem>) => void;
'on:clipboard-error': (event: CustomEvent<any>) => void;

// just for check clipboard status
'on:clipboard-granted': (event: CustomEvent) => void;
'on:clipboard-danied': (event: CustomEvent) => void;
'on:clipboard-prompt': (event: CustomEvent) => void;

Definition


interface ParameterObject {
	imageURL?: string;
	text?: string;
}

type AtLeastOne<T, U = { [K in keyof T]: Pick<T, K> }> = Partial<T> & U[keyof U];

type ParameterValue = string | ClipboardItem;

export type Parameter =
	| ParameterValue
	| Promise<ParameterValue>
	| (() => ParameterValue | Promise<ParameterValue>)
	| AtLeastOne<ParameterObject>;

interface Attributes {
	'on:copying': (event: CustomEvent) => void;
	'on:copied': (event: CustomEvent<string | ClipboardItem>) => void;
	'on:clipboard-error': (event: CustomEvent<any>) => void;

	// just for check clipboard status
	'on:clipboard-granted': (event: CustomEvent) => void;
	'on:clipboard-danied': (event: CustomEvent) => void;
	'on:clipboard-prompt': (event: CustomEvent) => void;
}

export type clipboardAction = Action<HTMLElement, Parameter, Attributes>;

Keywords

FAQs

Package last updated on 10 Nov 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc