@ribajs/bs5
Version:
Bootstrap 5 module for Riba.js
75 lines (74 loc) • 2.5 kB
TypeScript
import { Component, TemplateFunction, ScopeBase } from "@ribajs/core";
import { ShareItem, ShareUrlType } from "../../types/index.js";
import { Dropdown } from "@ribajs/bs5";
export interface Scope extends ScopeBase {
type: ShareUrlType;
title: string;
text: string;
url?: string;
label: string;
labelTemplate: string;
filename?: string;
isAndroid: boolean;
isIos: boolean;
isDesktop: boolean;
isNative: boolean;
dropdownId: string;
shareItems: ShareItem[];
dropdownDirection: "up" | "down" | "start" | "end";
dropdownAlignment: "end" | "start" | "auto";
labelFacebook: string;
labelTwitter: string;
labelPinterest: string;
labelWhatsapp: string;
labelTelegram: string;
labelEmail: string;
labelDownload: string;
labelClipboard: string;
shareOnService: Bs5ShareComponent["shareOnService"];
share: Bs5ShareComponent["share"];
getFilename: Bs5ShareComponent["getFilename"];
}
export interface NavigatorShareParam {
url: string;
text: string;
title: string;
}
declare global {
interface Navigator {
share: (data?: ShareData) => Promise<void>;
}
}
export declare class Bs5ShareComponent extends Component {
static tagName: string;
_debug: boolean;
static get observedAttributes(): string[];
protected dropdown?: Dropdown;
static count: number;
scope: Scope;
constructor();
getFilename(item: ShareItem): string | undefined;
protected getDefaultShareServices(): ShareItem[];
protected isIos(): boolean;
protected isAndroid(): boolean;
protected browserSupportsNativeShare(): boolean;
protected getScopeDefaults(): Scope;
protected onExternalOpenEvent(): void;
protected onExternalCloseEvent(): void;
protected connectedCallback(): void;
protected disconnectedCallback(): void;
protected addEventListeners(): void;
protected removeEventListeners(): void;
protected getURLForShare(): string;
protected getMediaUrlForShare(): string;
protected getTextForShare(): string;
protected getTitleForShare(): string;
protected updateShareURLs(): void;
protected initDropdown(): void;
shareOnService(item: ShareItem, event: Event): Promise<boolean>;
share(event: Event): Promise<any>;
protected beforeBind(): Promise<void>;
protected afterBind(): Promise<void>;
protected requiredAttributes(): string[];
protected template(): ReturnType<TemplateFunction>;
}