@scbt-ecom/ui 0.137.0 → 0.138.1

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 (32) hide show
  1. package/dist/lib/widgets/authProvider/AuthProvider.js +1 -1
  2. package/dist/lib/widgets/authProvider/AuthProvider.js.map +1 -1
  3. package/dist/lib/widgets/authProvider/model/index.js +2 -0
  4. package/dist/lib/widgets/authProvider/model/index.js.map +1 -0
  5. package/dist/lib/widgets/authProvider/ui/Esia.js.map +1 -1
  6. package/dist/lib/widgets/authProvider/ui/MobileId.js.map +1 -1
  7. package/dist/lib/widgets/authProvider/ui/ui/Links.js.map +1 -1
  8. package/dist/lib/widgets/dynamicForm/DynamicForm.js +1 -1
  9. package/dist/lib/widgets/dynamicForm/DynamicForm.js.map +1 -1
  10. package/dist/lib/widgets/dynamicForm/model/helpers.js +2 -0
  11. package/dist/lib/widgets/dynamicForm/model/helpers.js.map +1 -0
  12. package/dist/lib/widgets/dynamicForm/model/index.js +1 -1
  13. package/dist/lib/widgets/dynamicFormDialog/DynamicFormDialog.js +1 -1
  14. package/dist/lib/widgets/dynamicFormDialog/DynamicFormDialog.js.map +1 -1
  15. package/dist/lib/widgets/model/helpers.js +2 -2
  16. package/dist/stats.html +1 -1
  17. package/dist/types/lib/widgets/authProvider/AuthProvider.d.ts +2 -3
  18. package/dist/types/lib/widgets/authProvider/model/index.d.ts +2 -0
  19. package/dist/types/lib/widgets/authProvider/model/types.d.ts +12 -15
  20. package/dist/types/lib/widgets/authProvider/ui/Esia.d.ts +2 -2
  21. package/dist/types/lib/widgets/authProvider/ui/MobileId.d.ts +2 -2
  22. package/dist/types/lib/widgets/authProvider/ui/ui/Links.d.ts +2 -2
  23. package/dist/types/lib/widgets/dynamicForm/DynamicForm.d.ts +4 -15
  24. package/dist/types/lib/widgets/dynamicForm/model/helpers.d.ts +10 -0
  25. package/dist/types/lib/widgets/dynamicForm/model/index.d.ts +1 -1
  26. package/dist/types/lib/widgets/dynamicForm/model/types.d.ts +14 -28
  27. package/dist/types/lib/widgets/dynamicFormDialog/DynamicFormDialog.d.ts +2 -1
  28. package/dist/types/lib/widgets/model/helpers.d.ts +2 -2
  29. package/package.json +1 -1
  30. package/dist/lib/widgets/dynamicForm/model/getFieldsProgress.js +0 -2
  31. package/dist/lib/widgets/dynamicForm/model/getFieldsProgress.js.map +0 -1
  32. package/dist/types/lib/widgets/dynamicForm/model/getFieldsProgress.d.ts +0 -7
@@ -1,3 +1,2 @@
1
- import { AuthProviderProps } from './model/types';
2
- import * as React from 'react';
3
- export declare const AuthProvider: (props: AuthProviderProps) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
1
+ import { AuthVariant } from './model';
2
+ export declare const AuthProvider: (props: AuthVariant) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export type * from './types';
2
+ export * from './helpers';
@@ -29,43 +29,40 @@ type EsiaClasses = {
29
29
  badge?: string;
30
30
  links?: TLinksClasses;
31
31
  };
32
- export type SingleAuthSchema = {
32
+ export type BaseAuthSchema = {
33
33
  mainLink: {
34
34
  title: string;
35
35
  mobileTitle: string;
36
36
  };
37
- ssoAuthorizationTop?: boolean;
38
37
  linkDescription?: string;
39
38
  classes?: CombineClasses;
40
39
  badge?: string;
41
40
  loaderProps?: LoaderProps;
42
41
  isLoading?: boolean;
42
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
43
43
  };
44
- type CombineAuthSchema = {
45
- esiaConfig: Omit<SingleAuthSchema, 'badge'> & Pick<EsiaMode, 'classes'>;
46
- mobileIdConfig: Omit<SingleAuthSchema, 'badge'> & Pick<MobileIdMode, 'classes'>;
44
+ export type CombineAuthSchema = {
45
+ esiaConfig: Omit<BaseAuthSchema, 'badge'> & Pick<AuthEsia, 'classes'>;
46
+ mobileIdConfig: Omit<BaseAuthSchema, 'badge'> & Pick<AuthMobileId, 'classes'>;
47
47
  subtitle?: string;
48
48
  badge?: string;
49
49
  classes?: CombineClasses;
50
50
  };
51
- type EsiaMode = SingleAuthSchema & {
51
+ export type AuthEsia = BaseAuthSchema & {
52
52
  classes?: EsiaClasses;
53
53
  } & {
54
54
  mode: typeof AUTH_PROVIDER_MODE.ESIA;
55
- onClick?: React.MouseEventHandler<HTMLButtonElement>;
56
55
  };
57
- type MobileIdMode = SingleAuthSchema & {
56
+ export type AuthMobileId = BaseAuthSchema & {
58
57
  classes?: MobileIdClasses;
59
58
  } & {
60
59
  mode: typeof AUTH_PROVIDER_MODE.MOBILE_ID;
61
- onClick?: React.MouseEventHandler<HTMLButtonElement>;
62
60
  };
63
- type CombineMode = CombineAuthSchema & {
61
+ export type AuthCombine = CombineAuthSchema & {
64
62
  mode: typeof AUTH_PROVIDER_MODE.COMBINE;
65
- onClick?: React.MouseEventHandler<HTMLButtonElement>;
66
63
  };
67
- export type TEsiaProps = Omit<EsiaMode, 'mode'>;
68
- export type TMobileIdProps = Omit<MobileIdMode, 'mode'>;
69
- export type TCombineProps = Omit<CombineMode, 'mode'>;
70
- export type AuthProviderProps = CombineMode | MobileIdMode | EsiaMode;
64
+ export type AuthVariant = AuthCombine | AuthMobileId | AuthEsia;
65
+ export type EsiaProps = Omit<AuthEsia, 'mode'>;
66
+ export type MobileIdProps = Omit<AuthMobileId, 'mode'>;
67
+ export type CombineProps = Omit<AuthCombine, 'mode'>;
71
68
  export {};
@@ -1,2 +1,2 @@
1
- import { TEsiaProps } from '../model/types';
2
- export declare const Esia: ({ mainLink, linkDescription, isLoading, badge, loaderProps, classes, onClick }: TEsiaProps) => import("react/jsx-runtime").JSX.Element;
1
+ import { EsiaProps } from '../model';
2
+ export declare const Esia: ({ mainLink, linkDescription, isLoading, badge, loaderProps, classes, onClick }: EsiaProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
- import { TMobileIdProps } from '../model/types';
2
- export declare const MobileId: ({ mainLink, linkDescription, isLoading, badge, loaderProps, classes, onClick }: TMobileIdProps) => import("react/jsx-runtime").JSX.Element;
1
+ import { MobileIdProps } from '../model';
2
+ export declare const MobileId: ({ mainLink, linkDescription, isLoading, badge, loaderProps, classes, onClick }: MobileIdProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,10 @@
1
- import { SingleAuthSchema } from '../../model/types';
1
+ import { BaseAuthSchema } from '../../model/types';
2
2
  export type TLinksClasses = {
3
3
  linksWrapper?: string;
4
4
  linksMainLink?: string;
5
5
  linksSubLink?: string;
6
6
  };
7
- interface ILinksProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, Pick<SingleAuthSchema, 'linkDescription' | 'mainLink'> {
7
+ interface ILinksProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, Pick<BaseAuthSchema, 'linkDescription' | 'mainLink'> {
8
8
  isMobile: boolean;
9
9
  classes?: TLinksClasses;
10
10
  }
@@ -1,19 +1,7 @@
1
- import { FieldValues } from 'react-hook-form';
2
- import { Approvement, ApprovementType, Auth, AuthMode, Chips, ChipsType, Progress, ProgressField, ProgressType } from './model';
1
+ import { Approvement, ApprovementClasses, ApprovementType, Auth, AuthMode, Chips, ChipsClasses, ChipsType, Progress, ProgressField, ProgressType, SubmitProps } from './model';
3
2
  import { FieldValidation } from '../../../src/shared/utils';
4
- import { ButtonProps, CheckboxBase, ProgressBar } from '../../shared/ui';
3
+ import { ButtonProps, ProgressBar } from '../../shared/ui';
5
4
  import { FieldElement } from '../fieldMapper';
6
- type SubmitProps = {
7
- submitCallback: <T extends FieldValues>(values: T) => void;
8
- };
9
- type ChipsClasses = {
10
- root?: string;
11
- icon?: string;
12
- };
13
- type ApprovementClasses = {
14
- checkbox?: React.ComponentProps<typeof CheckboxBase>['classes'];
15
- content?: string;
16
- };
17
5
  type DynamicFormClasses = {
18
6
  root?: string;
19
7
  title?: string;
@@ -29,6 +17,7 @@ export type DynamicFormProps<AType extends ApprovementType, CType extends ChipsT
29
17
  validation: FieldValidation;
30
18
  progress: ProgressField;
31
19
  }>[];
20
+ ssoAuthorizationTop: boolean;
32
21
  title: string;
33
22
  progress: Progress<PType>;
34
23
  approvement: Approvement<AType>;
@@ -38,5 +27,5 @@ export type DynamicFormProps<AType extends ApprovementType, CType extends ChipsT
38
27
  buttonGroup: ButtonProps[];
39
28
  auth: Auth<AuthType>;
40
29
  };
41
- export declare const DynamicForm: <AType extends ApprovementType, CType extends ChipsType, PType extends ProgressType, AuthType extends AuthMode>({ fields, title, progress, approvement, chips, submitProps, auth, classes, buttonGroup }: DynamicFormProps<AType, CType, PType, AuthType>) => import("react/jsx-runtime").JSX.Element;
30
+ export declare const DynamicForm: <AType extends ApprovementType, CType extends ChipsType, PType extends ProgressType, AuthType extends AuthMode>({ fields, title, progress, approvement, chips, submitProps, auth, classes, buttonGroup, ssoAuthorizationTop }: DynamicFormProps<AType, CType, PType, AuthType>) => import("react/jsx-runtime").JSX.Element;
42
31
  export default DynamicForm;
@@ -0,0 +1,10 @@
1
+ import { FieldValues } from 'react-hook-form';
2
+ import { Approvement, ApprovementClasses, ApprovementType, Auth, AuthMode, Progress, ProgressField, ProgressType } from './types';
3
+ import { ISubscribedField } from '../../../shared/hooks';
4
+ import { CheckedState } from '../../../shared/ui';
5
+ import { FieldElement } from '../../fieldMapper';
6
+ export declare const withAuthProvider: <Mode extends AuthMode>(auth: Auth<Mode>) => import("react/jsx-runtime").JSX.Element | null;
7
+ export declare const withApprovement: <Type extends ApprovementType>(approvement: Approvement<Type>, checked: CheckedState, onCheckedChange: (checked: CheckedState) => void, classes?: ApprovementClasses) => React.ReactNode;
8
+ export declare const getFieldsProgress: <TFieldValues extends FieldValues, Type extends ProgressType>(progress: Progress<Type>, fields: FieldElement<any, any, {
9
+ progress: ProgressField;
10
+ }>[]) => ISubscribedField<TFieldValues>[] | null;
@@ -1,2 +1,2 @@
1
- export { getFieldsProgress } from './getFieldsProgress';
2
1
  export type * from './types';
2
+ export * from './helpers';
@@ -1,4 +1,6 @@
1
- import { AllowedIcons } from '../../../shared/ui';
1
+ import { FieldValues } from 'react-hook-form';
2
+ import { AuthCombine, AuthEsia, AuthMobileId } from '../../authProvider';
3
+ import { AllowedIcons, CheckboxBase } from '../../../shared/ui';
2
4
  type ApprovementDisabled = {
3
5
  type: 'off';
4
6
  };
@@ -38,36 +40,20 @@ export type ProgressField = {
38
40
  progress: number;
39
41
  maxPercent: number;
40
42
  };
41
- type BaseAuth = {
42
- mainLink: {
43
- title: string;
44
- mobileTitle: string;
45
- };
46
- linkDescription?: string;
47
- ssoAuthorizationTop?: boolean;
48
- subLink?: {
49
- text: string;
50
- href: string;
51
- };
52
- badge?: string;
53
- onClick?: React.MouseEventHandler<HTMLButtonElement>;
43
+ export type SubmitProps = {
44
+ submitCallback: <T extends FieldValues>(values: T) => void;
45
+ };
46
+ export type ChipsClasses = {
47
+ root?: string;
48
+ icon?: string;
49
+ };
50
+ export type ApprovementClasses = {
51
+ checkbox?: React.ComponentProps<typeof CheckboxBase>['classes'];
52
+ content?: string;
54
53
  };
55
54
  export type AuthMode = 'off' | 'esia' | 'mobileId' | 'combine';
56
55
  type AuthDisabled = {
57
56
  mode: 'off';
58
57
  };
59
- type AuthEsia = BaseAuth & {
60
- mode: 'esia';
61
- };
62
- type AuthMobileId = BaseAuth & {
63
- mode: 'mobileId';
64
- };
65
- type AuthCombined = {
66
- mode: 'combine';
67
- esiaConfig: BaseAuth;
68
- mobileIdConfig: BaseAuth;
69
- subtitle?: string;
70
- badge?: string;
71
- };
72
- export type Auth<Mode extends AuthMode> = Mode extends 'off' ? AuthDisabled : Mode extends 'esia' ? AuthEsia : Mode extends 'mobileId' ? AuthMobileId : AuthCombined;
58
+ export type Auth<Mode extends AuthMode> = Mode extends 'off' ? AuthDisabled : Mode extends 'esia' ? AuthEsia : Mode extends 'mobileId' ? AuthMobileId : AuthCombine;
73
59
  export {};
@@ -30,6 +30,7 @@ export type DynamicFormDialogProps<AType extends ApprovementType, AuthType exten
30
30
  classes?: DynamicFormDialogClasses;
31
31
  buttonGroup: ButtonProps[];
32
32
  auth: Auth<AuthType>;
33
+ ssoAuthorizationTop?: boolean;
33
34
  };
34
- export declare const DynamicFormDialog: <AType extends ApprovementType, AuthType extends AuthMode>({ fields, title, approvement, submitProps, dialogId, classes, auth, buttonGroup, ...props }: DynamicFormDialogProps<AType, AuthType>) => import("react/jsx-runtime").JSX.Element;
35
+ export declare const DynamicFormDialog: <AType extends ApprovementType, AuthType extends AuthMode>({ fields, title, approvement, submitProps, dialogId, classes, auth, buttonGroup, ssoAuthorizationTop, ...props }: DynamicFormDialogProps<AType, AuthType>) => import("react/jsx-runtime").JSX.Element;
35
36
  export default DynamicFormDialog;
@@ -4,8 +4,8 @@ export declare const WIDGET_LIST_MAP: {
4
4
  readonly seoHeader: import('react').LazyExoticComponent<({ categories, helpers, phone, breadcrumbs, classes }: import('..').SeoHeaderProps) => import("react/jsx-runtime").JSX.Element>;
5
5
  readonly banner: import('react').LazyExoticComponent<({ variant, ...props }: import('..').BannerProps) => import("react/jsx-runtime").JSX.Element>;
6
6
  readonly calculator: import('react').LazyExoticComponent<({ calculators, headline, classes }: import('..').CalculatorProps) => import("react/jsx-runtime").JSX.Element>;
7
- readonly form: import('react').LazyExoticComponent<(<AType extends import('../dynamicForm/model').ApprovementType, CType extends import('../dynamicForm/model').ChipsType, PType extends import('../dynamicForm/model').ProgressType, AuthType extends import('../dynamicForm/model').AuthMode>({ fields, title, progress, approvement, chips, submitProps, auth, classes, buttonGroup }: import('..').DynamicFormProps<AType, CType, PType, AuthType>) => import("react/jsx-runtime").JSX.Element)>;
8
- readonly formDialog: import('react').LazyExoticComponent<(<AType extends import('../dynamicFormDialog/model').ApprovementType, AuthType extends import('../dynamicForm/model').AuthMode>({ fields, title, approvement, submitProps, dialogId, classes, auth, buttonGroup, ...props }: import('../dynamicFormDialog/DynamicFormDialog').DynamicFormDialogProps<AType, AuthType>) => import("react/jsx-runtime").JSX.Element)>;
7
+ readonly form: import('react').LazyExoticComponent<(<AType extends import('../dynamicForm/model').ApprovementType, CType extends import('../dynamicForm/model').ChipsType, PType extends import('../dynamicForm/model').ProgressType, AuthType extends import('../dynamicForm/model').AuthMode>({ fields, title, progress, approvement, chips, submitProps, auth, classes, buttonGroup, ssoAuthorizationTop }: import('..').DynamicFormProps<AType, CType, PType, AuthType>) => import("react/jsx-runtime").JSX.Element)>;
8
+ readonly formDialog: import('react').LazyExoticComponent<(<AType extends import('../dynamicFormDialog/model').ApprovementType, AuthType extends import('../dynamicForm/model').AuthMode>({ fields, title, approvement, submitProps, dialogId, classes, auth, buttonGroup, ssoAuthorizationTop, ...props }: import('../dynamicFormDialog/DynamicFormDialog').DynamicFormDialogProps<AType, AuthType>) => import("react/jsx-runtime").JSX.Element)>;
9
9
  readonly stepper: import('react').LazyExoticComponent<(<WithImages extends boolean>({ steppers, headline, classes }: import('..').StepperProps<WithImages>) => import("react/jsx-runtime").JSX.Element)>;
10
10
  readonly benefit: import('react').LazyExoticComponent<({ headline, details, variant, classes }: import('..').BenefitProps) => import("react/jsx-runtime").JSX.Element>;
11
11
  readonly longBanner: import('react').LazyExoticComponent<(<Enabled extends boolean>({ headline, buttonConfig, intent, details, image, backgroundColor, classes }: import('..').LongBannerProps<Enabled>) => import("react/jsx-runtime").JSX.Element)>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scbt-ecom/ui",
3
- "version": "0.137.0",
3
+ "version": "0.138.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -1,2 +0,0 @@
1
- const n=(e,s)=>e.enabled?s.map(r=>({name:r.args.name,...r.args.progress})):null;export{n as getFieldsProgress};
2
- //# sourceMappingURL=getFieldsProgress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFieldsProgress.js","sources":["../../../../../lib/widgets/dynamicForm/model/getFieldsProgress.ts"],"sourcesContent":["import { type FieldPath, type FieldValues } from 'react-hook-form'\nimport type { Progress, ProgressField, ProgressType } from './types'\nimport { type ISubscribedField } from '$/shared/hooks'\nimport type { FieldElement } from '$/widgets/fieldMapper'\n\nexport const getFieldsProgress = <TFieldValues extends FieldValues, Type extends ProgressType>(\n progress: Progress<Type>,\n fields: FieldElement<any, any, { progress: ProgressField }>[]\n) => {\n if (!progress.enabled) return null\n\n return fields.map<ISubscribedField<TFieldValues>>((field) => ({\n name: field.args.name as FieldPath<TFieldValues>,\n ...field.args.progress\n }))\n}\n"],"names":["getFieldsProgress","progress","fields","field"],"mappings":"AAKO,MAAMA,EAAoB,CAC/BC,EACAC,IAEKD,EAAS,QAEPC,EAAO,IAAqCC,IAAW,CAC5D,KAAMA,EAAM,KAAK,KACjB,GAAGA,EAAM,KAAK,QAAA,EACd,EAL4B"}
@@ -1,7 +0,0 @@
1
- import { FieldValues } from 'react-hook-form';
2
- import { Progress, ProgressField, ProgressType } from './types';
3
- import { ISubscribedField } from '../../../shared/hooks';
4
- import { FieldElement } from '../../fieldMapper';
5
- export declare const getFieldsProgress: <TFieldValues extends FieldValues, Type extends ProgressType>(progress: Progress<Type>, fields: FieldElement<any, any, {
6
- progress: ProgressField;
7
- }>[]) => ISubscribedField<TFieldValues>[] | null;