UNPKG

@awsui/components-react

Version:

On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en

157 lines • 5.98 kB
export type FunnelType = 'single-page' | 'multi-page' | 'modal'; export type FlowType = 'create' | 'edit' | 'delete' | 'home' | 'dashboard' | 'view-resource'; type ErrorSubCategory = 'DATA_FORMAT_ISSUES' | 'PARAMETER_VALIDATION_ISSUES' | 'ACCESS_CONTROL_ISSUES' | 'IDENTITY_MANAGEMENT_PROBLEMS' | 'RESOURCE_STATE_ISSUES' | 'RESOURCE_CAPACITY_PROBLEMS' | 'CONNECTION_PROBLEMS' | 'NETWORK_CONFIGURATION_ISSUES' | 'RESOURCE_LIMIT_EXCEEDED' | 'SERVICE_QUOTA_RESTRICTIONS' | 'SERVICE_INTEGRATION_CONFLICTS' | 'RESOURCE_CONFIGURATION_MISMATCHES' | 'SERVICE_SPECIFIC_OPERATIONS' | 'API_REQUEST_PROBLEMS' | 'OTHER'; type ErrorCategory = 'INPUT_VALIDATION' | 'PERMISSION_IAM' | 'RESOURCE_AVAILABILITY' | 'NETWORK_CONNECTIVITY' | 'SERVICE_QUOTAS_LIMITS' | 'CONFIGURATION_CONFLICTS' | 'API_SPECIFIC' | 'OTHER'; export interface ErrorContext { errorCategory: ErrorCategory; errorSubCategory: ErrorSubCategory; errorMessage: string; } export interface AnalyticsMetadata { instanceIdentifier?: string; flowType?: FlowType; errorContext?: ErrorContext; resourceType?: string; } interface BaseFunnelProps { funnelIdentifier?: string; funnelInteractionId: string; currentDocument?: Document; } interface FunnelErrorProps extends BaseFunnelProps { errorContext?: AnalyticsMetadata['errorContext']; } export interface FunnelStartProps extends Omit<BaseFunnelProps, 'funnelInteractionId'> { flowType?: FlowType; resourceType?: string; funnelName: string; funnelNameSelector: string; totalFunnelSteps: number; optionalStepNumbers: number[]; stepConfiguration?: StepConfiguration[]; funnelType: FunnelType; funnelVersion: string; componentVersion: string; componentTheme: string; funnelInteractionId?: string; componentSelector?: string; } type FunnelMethod<T extends BaseFunnelProps> = (props: T) => void; export interface TableInteractionProps { interactionTime: number; userAction: string; instanceIdentifier?: string; componentIdentifier?: string; noOfResourcesInTable?: number; interactionMetadata?: string; } type TableInteractionMethod = (props: TableInteractionProps) => void; type FunnelStartMethod = (props: FunnelStartProps) => string; export interface FunnelStepProps extends BaseFunnelProps { stepIdentifier?: string; stepNumber: number; stepName?: string | undefined; stepNameSelector?: string; subStepAllSelector: string; totalSubSteps?: number; subStepConfiguration?: SubStepConfiguration[]; } interface FunnelStepNavigationProps extends FunnelStepProps { destinationStepNumber: number; navigationType: string; totalSubSteps?: number; } interface FunnelStepErrorProps extends FunnelStepProps { errorContext?: AnalyticsMetadata['errorContext']; stepErrorSelector: string; } interface FunnelSubStepProps extends FunnelStepProps { subStepIdentifier?: string; subStepSelector: string; subStepName?: string | undefined; subStepNameSelector: string; subStepNumber?: number; } interface OptionalFunnelSubStepErrorProps extends FunnelSubStepProps { subStepErrorContext?: AnalyticsMetadata['errorContext']; fieldIdentifier?: string; errorContext?: AnalyticsMetadata['errorContext']; fieldLabelSelector?: string; fieldErrorSelector?: string; } interface FunnelLinkInteractionProps extends FunnelSubStepProps { elementSelector: string; } interface FunnelChangeProps extends BaseFunnelProps { stepConfiguration: StepConfiguration[]; } export interface StepConfiguration { number: number; name: string; isOptional: boolean; stepIdentifier?: string; } export interface SubStepConfiguration { number: number; name: string; subStepIdentifier?: string; } export interface IFunnelMetrics { funnelStart: FunnelStartMethod; funnelError: FunnelMethod<FunnelErrorProps>; funnelComplete: FunnelMethod<BaseFunnelProps>; funnelSuccessful: FunnelMethod<BaseFunnelProps>; funnelCancelled: FunnelMethod<BaseFunnelProps>; funnelChange: FunnelMethod<FunnelChangeProps>; funnelStepStart: FunnelMethod<FunnelStepProps>; funnelStepComplete: FunnelMethod<FunnelStepProps>; funnelStepNavigation: FunnelMethod<FunnelStepNavigationProps>; funnelStepError: FunnelMethod<FunnelStepErrorProps>; funnelStepChange: FunnelMethod<FunnelStepProps>; funnelSubStepStart: FunnelMethod<FunnelSubStepProps>; funnelSubStepComplete: FunnelMethod<FunnelSubStepProps>; funnelSubStepError: FunnelMethod<OptionalFunnelSubStepErrorProps>; helpPanelInteracted: FunnelMethod<FunnelLinkInteractionProps>; externalLinkInteracted: FunnelMethod<FunnelLinkInteractionProps>; } export interface TaskCompletionDataProps { timeToRespondAfterFormSubmit: number; taskInteractionId: string; taskIdentifier?: string; taskFlowType?: string; taskType?: FunnelType; completionMetadata?: string; } type TaskCompletionDataMethod = (props: TaskCompletionDataProps) => void; export interface IPerformanceMetrics { tableInteraction: TableInteractionMethod; taskCompletionData: TaskCompletionDataMethod; modalPerformanceData: ModalPerformanceDataMethod; } type JSONValue = string | number | boolean | null | undefined; export interface JSONObject { [key: string]: JSONObject | JSONValue | JSONObject[] | JSONValue[]; } interface ComponentMountedProps { componentName: string; taskInteractionId?: string; componentConfiguration: JSONObject; } interface ComponentUpdatedProps extends ComponentMountedProps { taskInteractionId: string; actionType: string; } type ComponentMountedMethod = (props: ComponentMountedProps) => string; type ComponentUpdatedMethod = (props: ComponentUpdatedProps) => void; export interface IComponentMetrics { componentMounted: ComponentMountedMethod; componentUpdated: ComponentUpdatedMethod; } export interface ModalPerformanceDataProps { timeToContentReadyInModal: number; instanceIdentifier?: string; componentIdentifier?: string; modalMetadata?: string; } type ModalPerformanceDataMethod = (props: ModalPerformanceDataProps) => void; export {};