@namiml/web-sdk
Version:
Subscription monetization infrastructure — drop-in SDK with no-code paywalls, onboarding flows, A/B testing for web
65 lines (64 loc) • 2.28 kB
TypeScript
import { IPaywall, type NamiFlow, type NamiFlowAnimation, type NamiCampaign, type NamiPaywallLaunchContext } from '@namiml/sdk-core';
import { LitElement, TemplateResult } from 'lit';
declare class PaywallComponent extends LitElement {
campaign: NamiCampaign | undefined;
paywall: IPaywall | undefined;
flow: NamiFlow | undefined;
pages: IPaywall[];
private currentOffset;
private presentationStyle;
private _sheetEntranceActive;
private context;
private formFactor;
private timeSpentOnPaywall;
private type;
private value;
private animation;
private _originalBodyStyles;
private _originalDocumentStyles;
private _swipeHandler;
private _halfSheetAbortController?;
private _savedScrollY;
private _sheetDragStartY;
private _sheetIsDragging;
private _dismissThreshold;
private _detachFocusSpeechListeners?;
private _boundHandleKeyDownEvent;
constructor(type: string | undefined, value: string, context: NamiPaywallLaunchContext);
private applyPresentationHostClasses;
setPaywallData(): void;
private getPresentationStyle;
private get isHalfSheet();
private get isSheet();
private get isOverlaySheet();
private get isModal();
private get isOverlay();
connectedCallback(): void;
disconnectedCallback(): void;
private _stylesAlreadySaved;
private setOriginalStyles;
private restoreStyles;
private handleKeyDownEvent;
private handleBackdropClick;
private animateSheetDismiss;
private handleSwipeEvent;
private setupHalfSheetDragTracking;
private setupHalfSheetFocusTrap;
firstUpdated(): void;
updated(changedProperties: Map<string, unknown>): void;
static styles: import("lit").CSSResult[];
private getAnimationStyles;
private updatePages;
private animateFullscreenEntry;
private _captureExitOverlay;
private _slideExitOverlayAway;
flowNavigateToScreen(next: IPaywall, animation: NamiFlowAnimation): Promise<void>;
getSelectedSlideIndexForCurrentCarousel(): number | undefined;
private renderFlow;
private renderFlowContainer;
private renderHalfSheet;
private renderModal;
private renderPaywall;
render(): TemplateResult;
}
export { PaywallComponent };