123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /// <reference lib="dom"/>
- type Action = 'cut' | 'copy';
- type Response = 'success' | 'error';
- type Options = {
- text?: string;
- action?: Action;
- target?: Element;
- container?: Element;
- };
- /**
- * Base class which takes one or more elements, adds event listeners to them,
- * and instantiates a new `ClipboardAction` on each click.
- */
- declare class ClipboardJS {
- constructor(
- selector: string | Element | NodeListOf<Element>,
- options?: ClipboardJS.Options
- );
- /**
- * Subscribes to events that indicate the result of a copy/cut operation.
- * @param type Event type ('success' or 'error').
- * @param handler Callback function.
- */
- on(type: Response, handler: (e: ClipboardJS.Event) => void): this;
- on(type: string, handler: (...args: any[]) => void): this;
- /**
- * Clears all event bindings.
- */
- destroy(): void;
- /**
- * Checks if clipboard.js is supported
- */
- static isSupported(): boolean;
- }
- declare namespace ClipboardJS {
- interface Options {
- /**
- * Overwrites default command ('cut' or 'copy').
- * @param elem Current element
- */
- action?(elem: Element): Action;
- /**
- * Overwrites default target input element.
- * @param elem Current element
- * @returns <input> element to use.
- */
- target?(elem: Element): Element;
- /**
- * Returns the explicit text to copy.
- * @param elem Current element
- * @returns Text to be copied.
- */
- text?(elem: Element): string;
- /**
- * For use in Bootstrap Modals or with any
- * other library that changes the focus
- * you'll want to set the focused element
- * as the container value.
- */
- container?: Element;
- }
- interface Event {
- action: string;
- text: string;
- trigger: Element;
- clearSelection(): void;
- }
- }
- export = ClipboardJS;
- export as namespace ClipboardJS;
|