
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
@svelte-bin/clipboard
Advanced tools
Svelte action & utilities for copying text and image to clipboard
Svelte action & utilities for copying text and image to clipboard
npm i @svelte-bin/clipboard
<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
>
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
>
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
>
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
>
Param | Description |
---|---|
string|Blob|object | There are 3 types parameter that can be used |
Param | Description |
---|---|
string | The text (or function that returns text) that will be copied when the action is triggered |
Param | Description |
---|---|
blob | The image blob (or function that returns image blob) that will be copied when the action is triggered |
Param (Object) | Description |
---|---|
text | The text that will be copied when the action is triggered |
imageURL | The image url that will be copied when the action is triggered |
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;
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>;
FAQs
Svelte action & utilities for copying text and image to clipboard
The npm package @svelte-bin/clipboard receives a total of 127 weekly downloads. As such, @svelte-bin/clipboard popularity was classified as not popular.
We found that @svelte-bin/clipboard demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.