UNPKG

@swishapp/browser

Version:

JS library to integrate Swish into a browser environment.

83 lines (82 loc) 3.31 kB
import type { SwishUiManifest, SwishUiOptions } from "../types"; import type { Ref } from "./types"; import type { ShopBridge } from "../utils/shop-bridge"; import "../utils/shop-bridge"; export type * from "./types"; export declare const setConfig: (opts: SwishUiOptions) => void; export declare const hideModal: (element: string | HTMLElement) => Promise<void>; export declare const showModal: (element: string | HTMLElement) => Promise<void>; export declare const showSignIn: (options?: { returnTo?: string; }) => Promise<void>; export declare const showUnsaveAlert: (options: { itemId: string; onSubmit?: () => void | Promise<void>; onCancel?: () => void | Promise<void>; }) => Promise<void>; export declare const showDeleteListAlert: (options: { listId: string; onSubmit?: () => void | Promise<void>; onCancel?: () => void | Promise<void>; }) => Promise<void>; export declare const showDrawer: () => Promise<void>; export declare const showListMenu: (options: { listId: string; onClose?: (data: { reason: string; }) => void; }) => Promise<void>; export interface ListSelectOptions<TData = unknown> { itemId: string; onSubmit?: (data: TData) => void | Promise<void>; onClose?: () => void; } export declare const showListSelect: <TData = unknown>(options: ListSelectOptions<TData>) => Promise<void>; export declare const showNotification: (options: { title?: string; text: string; image?: string; action?: { label: string; url?: string; onAction?: () => void; }; }) => Promise<void>; export declare const hideAllNotifications: () => Promise<void>; export declare const showVariantSelect: <TData = unknown>(options?: { productId?: string; productHandle?: string; variantId?: string; displayType?: "rows" | "pills"; action?: "none" | "save"; onSubmit: (data: TData) => void | Promise<void>; }) => Promise<void>; export declare const showListEditor: <TData = unknown>(options?: { listId?: string; variantId?: string; onSubmit: (data: TData) => void | Promise<void>; }) => Promise<void>; export declare const initShopBridge: ({ onShopModalOpen, }: { onShopModalOpen: () => void; }) => Promise<ShopBridge>; export declare const loadManifest: () => Promise<SwishUiManifest>; export interface RequireUiComponentOptions<TComponent> { instance?: string; listeners?: Record<string, (event: Event) => void | Promise<void>>; onHydrated?: (ref: Ref<TComponent>) => void; } export declare const requireUiComponent: <TComponent = unknown>(name: string, options?: RequireUiComponentOptions<TComponent>) => Promise<SwishUiElement>; export declare const insertComponent: <T extends HTMLElement = SwishUiElement>({ name, instance, template, position, refElement, }: { name: string; instance?: string; template: string; position: InsertPosition; refElement: HTMLElement; }) => Promise<T>; export declare const queryComponent: <T extends HTMLElement = SwishUiElement>(name: string, instance?: string) => T; export declare class SwishUiElement extends HTMLElement { constructor(); private componentRef; getComponentRef: <TComponent = unknown>() => Ref<TComponent>; setComponentRef: <TComponent = unknown>(ref: Ref<TComponent>) => void; }