shared/ophanTypes.ts (77 lines of code) (raw):
export type OphanProduct =
| 'CONTRIBUTION'
| 'RECURRING_CONTRIBUTION'
| 'MEMBERSHIP_SUPPORTER'
| 'MEMBERSHIP_PATRON'
| 'MEMBERSHIP_PARTNER'
| 'DIGITAL_SUBSCRIPTION'
| 'SUPPORTER_PLUS'
| 'PAPER_SUBSCRIPTION_EVERYDAY'
| 'PAPER_SUBSCRIPTION_SIXDAY'
| 'PAPER_SUBSCRIPTION_WEEKEND'
| 'PAPER_SUBSCRIPTION_SUNDAY'
| 'PRINT_SUBSCRIPTION'
| 'APP_PREMIUM_TIER'
| 'GUARDIAN_AD_LITE'
| 'GUARDIAN_PATRON';
type OphanAction =
| 'INSERT'
| 'VIEW'
| 'EXPAND'
| 'LIKE'
| 'DISLIKE'
| 'SUBSCRIBE'
| 'ANSWER'
| 'VOTE'
| 'CLICK';
type OphanComponentType =
| 'READERS_QUESTIONS_ATOM'
| 'QANDA_ATOM'
| 'PROFILE_ATOM'
| 'GUIDE_ATOM'
| 'TIMELINE_ATOM'
| 'NEWSLETTER_SUBSCRIPTION'
| 'SURVEYS_QUESTIONS'
| 'ACQUISITIONS_ENGAGEMENT_BANNER'
| 'ACQUISITIONS_THANK_YOU_EPIC'
| 'ACQUISITIONS_EPIC'
| 'ACQUISITIONS_HEADER'
| 'ACQUISITIONS_INTERACTIVE_SLICE'
| 'ACQUISITIONS_NUGGET'
| 'ACQUISITIONS_FOOTER'
| 'ACQUISITIONS_STANDFIRST'
| 'ACQUISITIONS_EDITORIAL_LINK'
| 'ACQUISITIONS_MANAGE_MY_ACCOUNT'
| 'ACQUISITIONS_THRASHER'
| 'ACQUISITIONS_BUTTON'
| 'APP_ADVERT'
| 'APP_AUDIO'
| 'ACQUISITIONS_OTHER'
| 'APP_BUTTON'
| 'APP_CROSSWORDS'
| 'APP_ENGAGEMENT_BANNER'
| 'APP_CARD'
| 'APP_EPIC'
| 'APP_LINK'
| 'APP_NAVIGATION_ITEM'
| 'APP_GALLERY'
| 'APP_SCREEN'
| 'APP_THRASHER'
| 'APP_VIDEO';
interface OphanComponent {
componentType: OphanComponentType;
id?: string;
products?: OphanProduct[];
campaignCode?: string;
labels?: string[];
}
export interface AbTest {
name: string;
variant: string;
}
export interface OphanComponentEvent {
component: OphanComponent;
action: OphanAction;
value?: string;
abTest?: AbTest;
}