@zealicsolutions/web-ui 0.3.16 → 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 +1 -1
  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 +32 -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 +1 -1
  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 +32 -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 +71 -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 {
@@ -91,9 +104,10 @@ export interface TextMoleculeType extends BaseMolecule {
91
104
  attributes: {
92
105
  text: TextAttributes;
93
106
  seoStyle: SelectAttributes;
107
+ fontVariant: SelectAttributes;
94
108
  };
95
109
  config: {
96
- props: TextMoleculeProps;
110
+ props?: TextMoleculeProps;
97
111
  };
98
112
  }
99
113
  export interface ButtonMolecule extends BaseMolecule {
@@ -103,7 +117,7 @@ export interface ButtonMolecule extends BaseMolecule {
103
117
  action: ActionAttributes;
104
118
  };
105
119
  config: {
106
- props: Partial<Omit<ButtonProps, 'disabled' | 'children' | 'link' | 'text' | 'onClick' | 'elementId'>>;
120
+ props?: Partial<Omit<ButtonProps, 'disabled' | 'children' | 'link' | 'text' | 'onClick' | 'elementId'>>;
107
121
  };
108
122
  }
109
123
  export interface VideoMolecule extends BaseMolecule {
@@ -136,9 +150,11 @@ export interface TextInputMolecule extends BaseMolecule {
136
150
  label: TextAttributes;
137
151
  required: BooleanAttributes;
138
152
  inputType: SelectAttributes;
153
+ dataModelField: DataConnectionAttributes;
154
+ conditionConfig: ConditionConfigAttributes;
139
155
  };
140
156
  config: {
141
- props: Partial<{
157
+ props?: Partial<{
142
158
  state: 'default' | 'error';
143
159
  } & InputFieldProps>;
144
160
  };
@@ -149,9 +165,11 @@ export interface SelectFieldMolecule extends BaseMolecule {
149
165
  label: TextAttributes;
150
166
  required: BooleanAttributes;
151
167
  options: IterableAttributes;
168
+ dataModelField: DataConnectionAttributes;
169
+ conditionConfig: ConditionConfigAttributes;
152
170
  };
153
171
  config: {
154
- props: Partial<{
172
+ props?: Partial<{
155
173
  state: 'default' | 'error';
156
174
  } & SelectFieldProps>;
157
175
  };
@@ -162,9 +180,11 @@ export interface RadioButtonFieldMolecule extends BaseMolecule {
162
180
  label: TextAttributes;
163
181
  required: BooleanAttributes;
164
182
  options: IterableAttributes;
183
+ dataModelField: DataConnectionAttributes;
184
+ conditionConfig: ConditionConfigAttributes;
165
185
  };
166
186
  config: {
167
- props: Partial<{
187
+ props?: Partial<{
168
188
  state: 'default' | 'error';
169
189
  } & RadioButtonFieldProps<string>>;
170
190
  };
@@ -175,9 +195,11 @@ export interface CheckboxFieldMolecule extends BaseMolecule {
175
195
  label: TextAttributes;
176
196
  required: BooleanAttributes;
177
197
  options: IterableAttributes;
198
+ dataModelField: DataConnectionAttributes;
199
+ conditionConfig: ConditionConfigAttributes;
178
200
  };
179
201
  config: {
180
- props: Partial<{
202
+ props?: Partial<{
181
203
  state: 'default' | 'error';
182
204
  } & CheckboxFieldProps>;
183
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>;