@wise/dynamic-flow-types 3.11.1 → 3.12.0-experimental-048a281

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,7 +25,7 @@ import type { MultiUploadInputRendererProps } from './MultiUploadInputRendererPr
25
25
  import type { NumberInputRendererProps } from './NumberInputRendererProps';
26
26
  import type { ParagraphRendererProps } from './ParagraphRendererProps';
27
27
  import type { RepeatableRendererProps } from './RepeatableRendererProps';
28
- import type { ReviewRendererProps } from './ReviewRendererProps';
28
+ import type { ReviewRendererProps, ReviewRendererExtensions } from './ReviewRendererProps';
29
29
  import type { RootRendererProps } from './RootRendererProps';
30
30
  import type { SearchRendererProps } from './SearchRendererProps';
31
31
  import type { SectionRendererProps } from './SectionRendererProps';
@@ -36,16 +36,22 @@ import { TabsRendererProps } from './TabsRendererProps';
36
36
  import type { TextInputRendererProps } from './TextInputRendererProps';
37
37
  import type { UploadInputRendererProps } from './UploadInputRendererProps';
38
38
  export type RendererProps = AlertRendererProps | CheckboxInputRendererProps | BoxRendererProps | ButtonRendererProps | ColumnsRendererProps | CoreContainerRendererProps | DateInputRendererProps | DecisionRendererProps | DividerRendererProps | ExternalConfirmationRendererProps | FormRendererProps | HeadingRendererProps | HiddenRendererProps | ImageRendererProps | InstructionsRendererProps | IntegerInputRendererProps | ListRendererProps | LoadingIndicatorRendererProps | MarkdownRendererProps | ModalLayoutRendererProps | ModalRendererProps | MultiSelectInputRendererProps | MultiUploadInputRendererProps | NumberInputRendererProps | ParagraphRendererProps | RepeatableRendererProps | ReviewRendererProps | RootRendererProps | SearchRendererProps | FormSectionRendererProps | SelectInputRendererProps | SectionRendererProps | StatusListRendererProps | StepRendererProps | TabsRendererProps | TextInputRendererProps | UploadInputRendererProps;
39
- export type Renderer<P extends RendererProps> = {
39
+ export type Renderer<P extends RendererProps, Extensions extends Record<string, (...args: any[]) => any> = {}> = {
40
40
  canRenderType: P['type'];
41
41
  canRender?: (props: P) => boolean;
42
42
  render: (props: P) => JSX.Element | null;
43
- };
43
+ } & (keyof Extensions extends never ? {
44
+ extensions?: never;
45
+ } : {
46
+ extensions: {
47
+ [K in keyof Extensions]: Extensions[K];
48
+ };
49
+ });
44
50
  export type RendererContext = {
45
51
  render: RenderFunction;
46
52
  };
47
53
  export type RenderFunction = (props: RendererProps | null) => JSX.Element | null;
48
- export type Renderers = readonly (Renderer<StepRendererProps> | Renderer<CoreContainerRendererProps> | Renderer<AlertRendererProps> | Renderer<BoxRendererProps> | Renderer<ColumnsRendererProps> | Renderer<DecisionRendererProps> | Renderer<DividerRendererProps> | Renderer<ExternalConfirmationRendererProps> | Renderer<FormRendererProps> | Renderer<HeadingRendererProps> | Renderer<InstructionsRendererProps> | Renderer<ListRendererProps> | Renderer<LoadingIndicatorRendererProps> | Renderer<MarkdownRendererProps> | Renderer<ImageRendererProps> | Renderer<ModalLayoutRendererProps> | Renderer<ModalRendererProps> | Renderer<ParagraphRendererProps> | Renderer<ReviewRendererProps> | Renderer<SearchRendererProps> | Renderer<StatusListRendererProps> | Renderer<CheckboxInputRendererProps> | Renderer<ButtonRendererProps> | Renderer<DateInputRendererProps> | Renderer<HiddenRendererProps> | Renderer<IntegerInputRendererProps> | Renderer<NumberInputRendererProps> | Renderer<RepeatableRendererProps> | Renderer<RootRendererProps> | Renderer<FormSectionRendererProps> | Renderer<SelectInputRendererProps> | Renderer<SectionRendererProps> | Renderer<MultiSelectInputRendererProps> | Renderer<TabsRendererProps> | Renderer<TextInputRendererProps> | Renderer<UploadInputRendererProps> | Renderer<MultiUploadInputRendererProps>)[];
54
+ export type Renderers = readonly (Renderer<StepRendererProps> | Renderer<CoreContainerRendererProps> | Renderer<AlertRendererProps> | Renderer<BoxRendererProps> | Renderer<ColumnsRendererProps> | Renderer<DecisionRendererProps> | Renderer<DividerRendererProps> | Renderer<ExternalConfirmationRendererProps> | Renderer<FormRendererProps> | Renderer<HeadingRendererProps> | Renderer<InstructionsRendererProps> | Renderer<ListRendererProps> | Renderer<LoadingIndicatorRendererProps> | Renderer<MarkdownRendererProps> | Renderer<ImageRendererProps> | Renderer<ModalLayoutRendererProps> | Renderer<ModalRendererProps> | Renderer<ParagraphRendererProps> | Renderer<ReviewRendererProps> | Renderer<ReviewRendererProps, ReviewRendererExtensions> | Renderer<SearchRendererProps> | Renderer<StatusListRendererProps> | Renderer<CheckboxInputRendererProps> | Renderer<ButtonRendererProps> | Renderer<DateInputRendererProps> | Renderer<HiddenRendererProps> | Renderer<IntegerInputRendererProps> | Renderer<NumberInputRendererProps> | Renderer<RepeatableRendererProps> | Renderer<RootRendererProps> | Renderer<FormSectionRendererProps> | Renderer<SelectInputRendererProps> | Renderer<SectionRendererProps> | Renderer<MultiSelectInputRendererProps> | Renderer<TabsRendererProps> | Renderer<TextInputRendererProps> | Renderer<UploadInputRendererProps> | Renderer<MultiUploadInputRendererProps>)[];
49
55
  export type BaseRendererProps = {
50
56
  uid: string;
51
57
  analyticsId?: string;
@@ -54,3 +60,6 @@ export type BaseRendererProps = {
54
60
  trackEvent: AnalyticsEventDispatcher;
55
61
  stepLoadingState: LoadingState;
56
62
  };
63
+ export type BaseRendererExtensionProps = {
64
+ trackEvent: AnalyticsEventDispatcher;
65
+ };
@@ -1,9 +1,11 @@
1
+ import { DefinitionListDefinition } from '@transferwise/components';
1
2
  import { CallToAction } from './CallToAction';
2
3
  import { AdditionalInfo, InlineAlert, Margin } from './constants';
3
4
  import { Icon } from './Icon';
4
5
  import { Image } from './Image';
5
6
  import { Media } from './Media';
6
7
  import { BaseRendererProps } from './RendererProps';
8
+ import { AnalyticsEventDispatcher } from './StepRendererProps';
7
9
  export type ReviewRendererProps = BaseRendererProps & {
8
10
  type: 'review';
9
11
  control?: string;
@@ -12,6 +14,14 @@ export type ReviewRendererProps = BaseRendererProps & {
12
14
  title?: string;
13
15
  callToAction?: CallToAction;
14
16
  };
17
+ type DefinitionListLayout = 'HORIZONTAL_RIGHT_ALIGNED' | 'HORIZONTAL_LEFT_ALIGNED' | 'VERTICAL_ONE_COLUMN' | 'VERTICAL_TWO_COLUMN';
18
+ export type ReviewRendererFieldExtensionProps = ReviewField & {
19
+ trackEvent: AnalyticsEventDispatcher;
20
+ orientation: DefinitionListLayout;
21
+ };
22
+ export type ReviewRendererExtensions = {
23
+ field: (props: ReviewRendererFieldExtensionProps) => DefinitionListDefinition;
24
+ };
15
25
  export type ReviewField = {
16
26
  analyticsId?: string;
17
27
  help?: string;
@@ -31,3 +41,4 @@ export type ReviewField = {
31
41
  image?: Image;
32
42
  media?: Media;
33
43
  };
44
+ export {};
@@ -26,7 +26,7 @@ export type { MultiUploadInputRendererProps } from './MultiUploadInputRendererPr
26
26
  export type { NumberInputRendererProps } from './NumberInputRendererProps';
27
27
  export type { ParagraphRendererProps } from './ParagraphRendererProps';
28
28
  export type { RepeatableItemRendererProps, RepeatableRendererProps, } from './RepeatableRendererProps';
29
- export type { ReviewField, ReviewRendererProps } from './ReviewRendererProps';
29
+ export type { ReviewField, ReviewRendererProps, ReviewRendererExtensions, ReviewRendererFieldExtensionProps, } from './ReviewRendererProps';
30
30
  export type { RootRendererProps } from './RootRendererProps';
31
31
  export type { ErrorSearchState, NoResultsSearchState, PendingSearchState, ResultsSearchState, SearchRendererProps, SearchResult, SearchState, } from './SearchRendererProps';
32
32
  export type { SectionRendererProps } from './SectionRendererProps';