@zealicsolutions/web-ui 0.3.17 → 0.3.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. package/dist/cjs/index.js +3 -3
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/src/containers/FormStepContainer.d.ts +4 -0
  4. package/dist/cjs/src/containers/hooks/index.d.ts +1 -0
  5. package/dist/cjs/src/containers/hooks/useCheckCondition.d.ts +6 -0
  6. package/dist/cjs/src/containers/hooks/useCheckCondition.test.d.ts +1 -0
  7. package/dist/cjs/src/containers/mock-data.d.ts +1 -0
  8. package/dist/cjs/src/containers/styles.d.ts +2 -3
  9. package/dist/cjs/src/containers/types/moleculeTypes.d.ts +31 -10
  10. package/dist/cjs/src/containers/types/types.d.ts +28 -5
  11. package/dist/cjs/src/molecules/CheckboxField/CheckboxField.d.ts +3 -1
  12. package/dist/cjs/src/molecules/CheckboxField/CheckboxField.stories.d.ts +3 -2
  13. package/dist/cjs/src/molecules/InputField/InputField.d.ts +3 -1
  14. package/dist/cjs/src/molecules/InputField/InputField.stories.d.ts +3 -2
  15. package/dist/cjs/src/molecules/RadioButtonField/RadioButtonField.d.ts +5 -2
  16. package/dist/cjs/src/molecules/RadioButtonField/RadioButtonField.stories.d.ts +3 -2
  17. package/dist/cjs/src/molecules/SelectField/SelectField.d.ts +3 -1
  18. package/dist/cjs/src/molecules/SelectField/SelectField.stories.d.ts +3 -2
  19. package/dist/esm/index.js +3 -3
  20. package/dist/esm/index.js.map +1 -1
  21. package/dist/esm/src/containers/FormStepContainer.d.ts +4 -0
  22. package/dist/esm/src/containers/hooks/index.d.ts +1 -0
  23. package/dist/esm/src/containers/hooks/useCheckCondition.d.ts +6 -0
  24. package/dist/esm/src/containers/hooks/useCheckCondition.test.d.ts +1 -0
  25. package/dist/esm/src/containers/mock-data.d.ts +1 -0
  26. package/dist/esm/src/containers/styles.d.ts +2 -3
  27. package/dist/esm/src/containers/types/moleculeTypes.d.ts +31 -10
  28. package/dist/esm/src/containers/types/types.d.ts +28 -5
  29. package/dist/esm/src/molecules/CheckboxField/CheckboxField.d.ts +3 -1
  30. package/dist/esm/src/molecules/CheckboxField/CheckboxField.stories.d.ts +3 -2
  31. package/dist/esm/src/molecules/InputField/InputField.d.ts +3 -1
  32. package/dist/esm/src/molecules/InputField/InputField.stories.d.ts +3 -2
  33. package/dist/esm/src/molecules/RadioButtonField/RadioButtonField.d.ts +5 -2
  34. package/dist/esm/src/molecules/RadioButtonField/RadioButtonField.stories.d.ts +3 -2
  35. package/dist/esm/src/molecules/SelectField/SelectField.d.ts +3 -1
  36. package/dist/esm/src/molecules/SelectField/SelectField.stories.d.ts +3 -2
  37. package/dist/index.d.ts +70 -22
  38. package/package.json +2 -1
@@ -0,0 +1,4 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { FormStepContainerProps } from 'containers';
3
+ export declare type StepContainerProps = PropsWithChildren<Partial<FormStepContainerProps>>;
4
+ export declare const FormStepContainer: ({ formStepName, order, conditionConfig, children, }: StepContainerProps) => JSX.Element;
@@ -0,0 +1 @@
1
+ export { useCheckCondition } from './useCheckCondition';
@@ -0,0 +1,6 @@
1
+ import { ConditionConfig } from 'containers/types/types';
2
+ import { AnyObject } from 'typescript';
3
+ /**
4
+ * @attention This hook needs to be used inside of the form container for the form fields
5
+ */
6
+ export declare const useCheckCondition: (config?: ConditionConfig, formData?: AnyObject) => boolean;
@@ -2,3 +2,4 @@ import { ContainerComponentProps } from 'containers';
2
2
  export declare const sliderContainerProps: ContainerComponentProps;
3
3
  export declare const formContainerProps: ContainerComponentProps;
4
4
  export declare const columnContainerProps: ContainerComponentProps;
5
+ export declare const formBuilderData: ContainerComponentProps;
@@ -5,8 +5,7 @@ export declare const ContainerWrapper: import("styled-components").StyledCompone
5
5
  scrollBehaviour: import("containers/types/types").ContainerScrollBehaviourType;
6
6
  cornerRadius: number;
7
7
  styles: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<object, import("styled-components").DefaultTheme>>;
8
- formProps: {
9
- mode: keyof import("react-hook-form").ValidationMode;
10
- };
8
+ formProps: import("containers/types/types").FormContainerProps;
9
+ formStepProps: import("containers/types/types").FormStepContainerProps;
11
10
  }> | undefined;
12
11
  }, never>;
@@ -1,9 +1,9 @@
1
1
  import { SelectOption } from 'atoms';
2
2
  import { AdditionalTabContainerProps, ButtonProps, CheckboxFieldProps, ImageProps, InputFieldProps, RadioButtonFieldProps, SelectFieldProps, TabGroupProps, TextMoleculeProps } from 'molecules';
3
- import { UseFormReturn } from 'react-hook-form';
4
3
  import { CSSProperties } from 'styled-components';
5
4
  import type { AnyObject, Nullable, StrictUnion } from 'typescript';
6
- import { ContainerComponentProps } from './types';
5
+ import { ConditionConfig, ContainerComponentProps } from './types';
6
+ import { UseFormReturn } from 'react-hook-form';
7
7
  export declare type ActionTypes = 'link' | 'popup' | 'drawer' | 'download' | 'submit' | 'reset' | 'destroy';
8
8
  export declare type DownloadFile = {
9
9
  url: string;
@@ -35,7 +35,7 @@ export declare type ImageAttributes = {
35
35
  export interface TextAttributes {
36
36
  id?: string;
37
37
  attributeType: 'text';
38
- isRichText: boolean;
38
+ isRichText?: boolean;
39
39
  text: string;
40
40
  }
41
41
  export interface VideoAttributes {
@@ -68,6 +68,19 @@ export interface IterableAttributes {
68
68
  attributeType: 'iterable';
69
69
  options: SelectOption[];
70
70
  }
71
+ export interface DataConnectionAttributes {
72
+ id: string;
73
+ attributeType: 'data_model_field';
74
+ dataModelField: {
75
+ id: string;
76
+ fieldName: string;
77
+ };
78
+ }
79
+ export interface ConditionConfigAttributes {
80
+ id: string;
81
+ attributeType: 'condition_config';
82
+ conditionConfig: ConditionConfig;
83
+ }
71
84
  export declare type MoleculeTypes = 'image' | 'text' | 'button' | 'video' | 'header_tab_group' | 'input_field' | 'select_field' | 'radio_button_field' | 'checkbox_field';
72
85
  export interface BaseMolecule {
73
86
  id: string;
@@ -83,7 +96,7 @@ export interface ImageMolecule extends BaseMolecule {
83
96
  link: LinkAttributes;
84
97
  };
85
98
  config: {
86
- props: Omit<ImageProps, 'src' | 'link' | 'altText'>;
99
+ props?: Omit<ImageProps, 'src' | 'link' | 'altText'>;
87
100
  };
88
101
  }
89
102
  export interface TextMoleculeType extends BaseMolecule {
@@ -94,7 +107,7 @@ export interface TextMoleculeType extends BaseMolecule {
94
107
  fontVariant: SelectAttributes;
95
108
  };
96
109
  config: {
97
- props: TextMoleculeProps;
110
+ props?: TextMoleculeProps;
98
111
  };
99
112
  }
100
113
  export interface ButtonMolecule extends BaseMolecule {
@@ -104,7 +117,7 @@ export interface ButtonMolecule extends BaseMolecule {
104
117
  action: ActionAttributes;
105
118
  };
106
119
  config: {
107
- props: Partial<Omit<ButtonProps, 'disabled' | 'children' | 'link' | 'text' | 'onClick' | 'elementId'>>;
120
+ props?: Partial<Omit<ButtonProps, 'disabled' | 'children' | 'link' | 'text' | 'onClick' | 'elementId'>>;
108
121
  };
109
122
  }
110
123
  export interface VideoMolecule extends BaseMolecule {
@@ -137,9 +150,11 @@ export interface TextInputMolecule extends BaseMolecule {
137
150
  label: TextAttributes;
138
151
  required: BooleanAttributes;
139
152
  inputType: SelectAttributes;
153
+ dataModelField: DataConnectionAttributes;
154
+ conditionConfig: ConditionConfigAttributes;
140
155
  };
141
156
  config: {
142
- props: Partial<{
157
+ props?: Partial<{
143
158
  state: 'default' | 'error';
144
159
  } & InputFieldProps>;
145
160
  };
@@ -150,9 +165,11 @@ export interface SelectFieldMolecule extends BaseMolecule {
150
165
  label: TextAttributes;
151
166
  required: BooleanAttributes;
152
167
  options: IterableAttributes;
168
+ dataModelField: DataConnectionAttributes;
169
+ conditionConfig: ConditionConfigAttributes;
153
170
  };
154
171
  config: {
155
- props: Partial<{
172
+ props?: Partial<{
156
173
  state: 'default' | 'error';
157
174
  } & SelectFieldProps>;
158
175
  };
@@ -163,9 +180,11 @@ export interface RadioButtonFieldMolecule extends BaseMolecule {
163
180
  label: TextAttributes;
164
181
  required: BooleanAttributes;
165
182
  options: IterableAttributes;
183
+ dataModelField: DataConnectionAttributes;
184
+ conditionConfig: ConditionConfigAttributes;
166
185
  };
167
186
  config: {
168
- props: Partial<{
187
+ props?: Partial<{
169
188
  state: 'default' | 'error';
170
189
  } & RadioButtonFieldProps<string>>;
171
190
  };
@@ -176,9 +195,11 @@ export interface CheckboxFieldMolecule extends BaseMolecule {
176
195
  label: TextAttributes;
177
196
  required: BooleanAttributes;
178
197
  options: IterableAttributes;
198
+ dataModelField: DataConnectionAttributes;
199
+ conditionConfig: ConditionConfigAttributes;
179
200
  };
180
201
  config: {
181
- props: Partial<{
202
+ props?: Partial<{
182
203
  state: 'default' | 'error';
183
204
  } & CheckboxFieldProps>;
184
205
  };
@@ -2,19 +2,26 @@ import { TabGroupProps } from 'molecules';
2
2
  import { PropsWithChildren } from 'react';
3
3
  import { CSSProperties } from 'styled-components';
4
4
  import { ValidationMode } from 'react-hook-form';
5
- import type { AnyObject, StylesType } from 'typescript';
5
+ import type { AnyObject, Nullable, StylesType } from 'typescript';
6
6
  import { Molecule } from './moleculeTypes';
7
- export declare type ContainerType = 'row' | 'column' | 'slider' | 'form';
7
+ export declare type ContainerType = 'row' | 'column' | 'slider' | 'form' | 'form_step';
8
8
  export declare type ContainerPositionType = 'fixed' | 'sticky' | 'static' | 'relative';
9
9
  export declare type ContainerScrollBehaviourType = 'vertical' | 'horizontal' | 'auto' | 'none';
10
+ export declare type FormStepContainerProps = {
11
+ formStepName: string;
12
+ order: number;
13
+ conditionConfig: ConditionConfig;
14
+ };
15
+ export declare type FormContainerProps = {
16
+ mode: keyof ValidationMode;
17
+ };
10
18
  export declare type ContainerPropsType = Partial<{
11
19
  position: ContainerPositionType;
12
20
  scrollBehaviour: ContainerScrollBehaviourType;
13
21
  cornerRadius: number;
14
22
  styles: StylesType;
15
- formProps: {
16
- mode: keyof ValidationMode;
17
- };
23
+ formProps: FormContainerProps;
24
+ formStepProps: FormStepContainerProps;
18
25
  }>;
19
26
  export declare type AdditionalContainerProps = Partial<{
20
27
  containerStyle: CSSProperties;
@@ -41,3 +48,19 @@ export declare type ContainerComponentProps = {
41
48
  attributes?: AnyObject;
42
49
  containerLibraryId?: string;
43
50
  };
51
+ export declare type CriteriaType = 'operator' | 'condition';
52
+ export declare type ConditionCriteria = {
53
+ id: string;
54
+ type: CriteriaType;
55
+ operator: string;
56
+ dataFieldId: Nullable<string>;
57
+ dataFieldName: Nullable<string>;
58
+ dataValue: Nullable<string>;
59
+ connectedTo: Nullable<string>;
60
+ };
61
+ export declare type SegmentationType = 'simple' | 'advanced';
62
+ export declare type ConditionConfig = Nullable<{
63
+ id: string;
64
+ segmentationType: SegmentationType;
65
+ criteriaList: ConditionCriteria[];
66
+ }>;
@@ -4,6 +4,7 @@ import { SelectOption } from 'atoms';
4
4
  import type { StylesType } from 'typescript';
5
5
  import { CheckboxInternalConfigProps } from 'atoms/Checkbox/types';
6
6
  import { FieldLabelsProps } from '../FieldLabels/FieldLabels';
7
+ import { ConditionConfig } from 'containers';
7
8
  export declare type CheckboxesProps = Partial<{
8
9
  checkboxGroupWrapperStyles: StylesType;
9
10
  checkboxFieldWrapperStyles: StylesType;
@@ -25,5 +26,6 @@ export declare type CheckboxFieldProps = Partial<{
25
26
  required: boolean;
26
27
  optional: boolean;
27
28
  wrapperStyles: StylesType;
29
+ conditionConfig?: ConditionConfig;
28
30
  }>;
29
- export declare const CheckboxField: ({ checkboxesProps, name, rules, control, optional, required, labelsProps, wrapperStyles, }: CheckboxFieldProps) => JSX.Element;
31
+ export declare const CheckboxField: ({ checkboxesProps, name, rules, control, optional, required, labelsProps, wrapperStyles, conditionConfig, }: CheckboxFieldProps) => JSX.Element | null;
@@ -3,7 +3,7 @@ import type { StoryFn } from '@storybook/react';
3
3
  import { CheckboxField as CheckboxFieldComponent } from 'molecules';
4
4
  declare const _default: {
5
5
  title: string;
6
- component: ({ checkboxesProps, name, rules, control, optional, required, labelsProps, wrapperStyles, }: Partial<{
6
+ component: ({ checkboxesProps, name, rules, control, optional, required, labelsProps, wrapperStyles, conditionConfig, }: Partial<{
7
7
  checkboxesProps: Partial<{
8
8
  checkboxGroupWrapperStyles: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<object, import("styled-components").DefaultTheme>>;
9
9
  checkboxFieldWrapperStyles: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<object, import("styled-components").DefaultTheme>>;
@@ -48,7 +48,8 @@ declare const _default: {
48
48
  required: boolean;
49
49
  optional: boolean;
50
50
  wrapperStyles: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<object, import("styled-components").DefaultTheme>>;
51
- }>) => JSX.Element;
51
+ conditionConfig?: import("../..").ConditionConfig | undefined;
52
+ }>) => JSX.Element | null;
52
53
  };
53
54
  export default _default;
54
55
  export declare const CheckboxField: StoryFn<typeof CheckboxFieldComponent>;
@@ -3,6 +3,7 @@ import { Control, ControllerProps } from 'react-hook-form/dist/types';
3
3
  import { InputProps } from 'atoms';
4
4
  import type { StylesType } from 'typescript';
5
5
  import { FieldLabelsProps } from '../FieldLabels/FieldLabels';
6
+ import { ConditionConfig } from 'containers';
6
7
  export declare type InputFieldProps = Partial<{
7
8
  name: string;
8
9
  control: Control<any>;
@@ -13,5 +14,6 @@ export declare type InputFieldProps = Partial<{
13
14
  inputProps: InputProps;
14
15
  styles: StylesType;
15
16
  labelsProps: FieldLabelsProps;
17
+ conditionConfig?: ConditionConfig;
16
18
  }>;
17
- export declare const InputField: ({ control, name, inputProps, styles, labelsProps, defaultValue, optional, required, rules, }: InputFieldProps) => JSX.Element;
19
+ export declare const InputField: ({ control, name, inputProps, styles, labelsProps, defaultValue, optional, required, rules, conditionConfig, }: InputFieldProps) => JSX.Element | null;
@@ -3,7 +3,7 @@ import { StoryFn } from '@storybook/react';
3
3
  import { InputFieldProps } from './InputField';
4
4
  declare const _default: {
5
5
  title: string;
6
- component: ({ control, name, inputProps, styles, labelsProps, defaultValue, optional, required, rules, }: Partial<{
6
+ component: ({ control, name, inputProps, styles, labelsProps, defaultValue, optional, required, rules, conditionConfig, }: Partial<{
7
7
  name: string;
8
8
  control: import("react-hook-form").Control<any, any>;
9
9
  rules: Omit<Partial<{
@@ -30,7 +30,8 @@ declare const _default: {
30
30
  inputProps: import("../..").InputProps;
31
31
  styles: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<object, import("styled-components").DefaultTheme>>;
32
32
  labelsProps: import("..").FieldLabelsProps;
33
- }>) => JSX.Element;
33
+ conditionConfig?: import("../..").ConditionConfig | undefined;
34
+ }>) => JSX.Element | null;
34
35
  };
35
36
  export default _default;
36
37
  export declare const InputField: StoryFn<InputFieldProps>;
@@ -3,6 +3,7 @@ import { RadioButtonInternalConfigProps, RadioButtonsProps } from 'atoms';
3
3
  import { Control, ControllerProps } from 'react-hook-form/dist/types';
4
4
  import type { StylesType } from 'typescript';
5
5
  import { FieldLabelsProps } from '../FieldLabels/FieldLabels';
6
+ import { ConditionConfig } from 'containers';
6
7
  export declare type RadioButtonFieldProps<T extends string> = Partial<{
7
8
  name: string;
8
9
  rules: ControllerProps['rules'];
@@ -14,8 +15,9 @@ export declare type RadioButtonFieldProps<T extends string> = Partial<{
14
15
  defaultValue: string;
15
16
  radioButtonsProps: RadioButtonsProps<T>;
16
17
  internalConfig: RadioButtonInternalConfigProps;
18
+ conditionConfig?: ConditionConfig;
17
19
  }>;
18
- export declare const RadioButtonField: <T extends string>({ name, rules, styles, control, optional, required, labelsProps, defaultValue, radioButtonsProps, }: Partial<{
20
+ export declare const RadioButtonField: <T extends string>({ name, rules, styles, control, optional, required, labelsProps, defaultValue, radioButtonsProps, conditionConfig, }: Partial<{
19
21
  name: string;
20
22
  rules: ControllerProps['rules'];
21
23
  styles: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<object, import("styled-components").DefaultTheme>>;
@@ -57,4 +59,5 @@ export declare const RadioButtonField: <T extends string>({ name, rules, styles,
57
59
  buttonOptionSpacing: import("../..").SizesTypes;
58
60
  radioGroupWrapperStyles: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<object, import("styled-components").DefaultTheme>>;
59
61
  }>;
60
- }>) => JSX.Element;
62
+ conditionConfig?: ConditionConfig | undefined;
63
+ }>) => JSX.Element | null;
@@ -3,7 +3,7 @@ import type { ComponentStory } from '@storybook/react';
3
3
  import { RadioButtonField as RadioButtonFieldComponent } from './RadioButtonField';
4
4
  declare const _default: {
5
5
  title: string;
6
- component: <T extends string>({ name, rules, styles, control, optional, required, labelsProps, defaultValue, radioButtonsProps, }: Partial<{
6
+ component: <T extends string>({ name, rules, styles, control, optional, required, labelsProps, defaultValue, radioButtonsProps, conditionConfig, }: Partial<{
7
7
  name: string;
8
8
  rules: Omit<Partial<{
9
9
  required: string | import("react-hook-form").ValidationRule<boolean>;
@@ -62,7 +62,8 @@ declare const _default: {
62
62
  buttonOptionSpacing: import("theme").SizesTypes;
63
63
  radioGroupWrapperStyles: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<object, import("styled-components").DefaultTheme>>;
64
64
  }>;
65
- }>) => JSX.Element;
65
+ conditionConfig?: import("../..").ConditionConfig | undefined;
66
+ }>) => JSX.Element | null;
66
67
  };
67
68
  export default _default;
68
69
  export declare const RadioButtonField: ComponentStory<typeof RadioButtonFieldComponent>;
@@ -3,6 +3,7 @@ import { SelectProps } from 'atoms';
3
3
  import { Control, ControllerProps } from 'react-hook-form/dist/types';
4
4
  import type { StylesType } from 'typescript';
5
5
  import { FieldLabelsProps } from '../FieldLabels/FieldLabels';
6
+ import { ConditionConfig } from 'containers';
6
7
  export declare type SelectFieldProps = Partial<{
7
8
  selectProps: SelectProps;
8
9
  labelsProps: FieldLabelsProps;
@@ -13,5 +14,6 @@ export declare type SelectFieldProps = Partial<{
13
14
  optional: boolean;
14
15
  defaultValue: string;
15
16
  styles: StylesType;
17
+ conditionConfig?: ConditionConfig;
16
18
  }>;
17
- export declare const SelectField: ({ selectProps, name, defaultValue, optional, required, control, styles, labelsProps, rules, }: SelectFieldProps) => JSX.Element;
19
+ export declare const SelectField: ({ selectProps, name, defaultValue, optional, required, control, styles, labelsProps, rules, conditionConfig, }: SelectFieldProps) => JSX.Element | null;
@@ -3,7 +3,7 @@ import { StoryFn } from '@storybook/react';
3
3
  import { SelectFieldProps } from './SelectField';
4
4
  declare const _default: {
5
5
  title: string;
6
- component: ({ selectProps, name, defaultValue, optional, required, control, styles, labelsProps, rules, }: Partial<{
6
+ component: ({ selectProps, name, defaultValue, optional, required, control, styles, labelsProps, rules, conditionConfig, }: Partial<{
7
7
  selectProps: Partial<{
8
8
  ref: import("react-hook-form").RefCallBack;
9
9
  onBlur: import("typescript").Callback;
@@ -43,7 +43,8 @@ declare const _default: {
43
43
  optional: boolean;
44
44
  defaultValue: string;
45
45
  styles: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<object, import("styled-components").DefaultTheme>>;
46
- }>) => JSX.Element;
46
+ conditionConfig?: import("../..").ConditionConfig | undefined;
47
+ }>) => JSX.Element | null;
47
48
  };
48
49
  export default _default;
49
50
  export declare const SelectField: StoryFn<SelectFieldProps>;