@zealicsolutions/web-ui 0.3.17 → 0.3.18

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.
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>;