@salla.sa/twilight-components
Version:
Salla Web Component
40 lines (39 loc) • 1.22 kB
TypeScript
import { Coupon } from './interfaces';
export declare class SallaCartCoupons {
host: HTMLElement;
availableCoupons: Coupon[];
cartTotal: number;
currentCoupon: string;
couponInputValue: string;
couponError: string;
isApplying: boolean;
private couponInputRef;
private couponButtonRef;
private isHandlingInternalError;
private cartUpdatedHandler;
private couponAddedHandler;
private couponAdditionFailedHandler;
private couponDeletedHandler;
private onKeyUp;
private onInput;
componentWillLoad(): Promise<void>;
componentDidLoad(): void;
private setupCartEventListeners;
disconnectedCallback(): void;
/**
* Business Decision: No visual selected state needed
* UX Flow: Click coupon → populate input → auto-apply (streamlined experience)
*/
selectCoupon(couponCode: string): Promise<Coupon>;
private loadCouponsData;
private loadCartTotal;
private setupCouponInputEvents;
private handleCouponButtonClick;
private showCouponError;
private handleCouponClick;
private applyCoupon;
private formatMainAmount;
private isEligible;
private renderCouponCard;
render(): any;
}