UNPKG

@swishapp/browser

Version:

JS library to integrate Swish into a browser environment.

109 lines (108 loc) 6.34 kB
import type { CreateItemInput, CreateListInput, DeleteItemsInput, IdentifyProfileInput, ItemControllerFindData, ListControllerFindData, AddItemsToListInput, SetListItemsOrderInput, UpdateItemInput, UpdateListInput } from "@swishapp/api-client"; import type { LoadProductCardDataArgs, LoadProductCardDataResponse, LoadProductOptionsArgs, LoadProductOptionsResponse, LoadSelectedVariantArgs } from "./storefront-api"; import type { AddToCartRequest, AddToCartResponse, Cart } from "./ajax-api"; import type { SwishAppOptions } from "./types"; import { EventBus } from "./events"; import { LoadProductDetailDataArgs, LoadProductDetailDataResponse } from "./storefront-api/loadProductDetailData"; import { LoadProductImagesArgs, LoadProductImagesResponse } from "./storefront-api/loadProductImages"; import { LoadSelectedVariantResponse } from "./storefront-api/loadSelectedVariant"; export declare const swishApp: (options: SwishAppOptions) => Promise<SwishApp>; export declare class SwishApp { private readonly worker; private readonly rpc; private readonly options; private initPromise?; readonly events: EventBus; constructor(options: SwishAppOptions); init(): Promise<void>; private _init; private storeProfile; private deleteProfile; readonly api: { items: { list: (query?: ItemControllerFindData["query"]) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").Item[]>>; create: (body: CreateItemInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").Item>>; delete: (body: DeleteItemsInput) => Promise<import("@swishapp/api-client").ApiResponse<unknown>>; findById: (id: string) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").ItemDetail>>; updateById: (id: string, body: UpdateItemInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").Item>>; deleteById: (id: string) => Promise<import("@swishapp/api-client").ApiResponse<unknown>>; setListsById: (id: string, listIds: string[]) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").ItemDetail>>; }; lists: { list: () => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").List[]>>; findById: (id: string, query?: ListControllerFindData["query"]) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").ListDetail>>; create: (body: CreateListInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").List>>; updateById: (id: string, body: UpdateListInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").List>>; deleteById: (id: string) => Promise<import("@swishapp/api-client").ApiResponse<unknown>>; orderItems: (id: string, body: SetListItemsOrderInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").List>>; addItemsToList: (id: string, body: AddItemsToListInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").ListDetail>>; }; profiles: { customerAccountsVersion: () => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").AccountsVersionResult>>; identify: (body: IdentifyProfileInput) => Promise<import("@swishapp/api-client").ApiResponse<import("@swishapp/api-client").IdentifyProfileResult>>; }; }; readonly storefront: { loadProductOptions: (args: LoadProductOptionsArgs) => Promise<LoadProductOptionsResponse>; loadSelectedVariant: (args: LoadSelectedVariantArgs) => Promise<LoadSelectedVariantResponse>; loadProductCardData: (args: LoadProductCardDataArgs) => Promise<LoadProductCardDataResponse>; loadProductDetailData: (args: LoadProductDetailDataArgs) => Promise<LoadProductDetailDataResponse>; loadProductImages: (args: LoadProductImagesArgs) => Promise<LoadProductImagesResponse>; }; readonly ajax: { fetchCart: () => Promise<Cart>; addToCart: (request: AddToCartRequest) => Promise<AddToCartResponse>; }; readonly ui: { showSignIn: (options?: { returnTo?: string; }) => Promise<void>; showVariantSelect: <TData = unknown>(options?: { productId?: string; productHandle?: string; variantId?: string; displayType?: "rows" | "pills"; action?: "none" | "save"; onSubmit: (data: TData) => void | Promise<void>; }) => Promise<void>; initShopBridge: ({ onShopModalOpen, }: { onShopModalOpen: () => void; }) => Promise<import(".").ShopBridge>; showNotification: (options: { title?: string; text: string; image?: string; action?: { label: string; url?: string; onAction?: () => void; }; }) => Promise<void>; hideAllNotifications: () => Promise<void>; showListSelect: <TData = unknown>(options: import("./swish-ui").ListSelectOptions<TData>) => Promise<void>; showDrawer: () => Promise<void>; showListEditor: <TData = unknown>(options?: { listId?: string; variantId?: string; onSubmit: (data: TData) => void | Promise<void>; }) => Promise<void>; showUnsaveAlert: (options: { itemId: string; onSubmit?: () => void | Promise<void>; onCancel?: () => void | Promise<void>; }) => Promise<void>; hideModal: (element: string | HTMLElement) => Promise<void>; showModal: (element: string | HTMLElement) => Promise<void>; showListMenu: (options: { listId: string; onClose?: (data: { reason: string; }) => void; }) => Promise<void>; showDeleteListAlert: (options: { listId: string; onSubmit?: () => void | Promise<void>; onCancel?: () => void | Promise<void>; }) => Promise<void>; }; }