@scbt-ecom/ui 0.68.1 → 0.70.0

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 (64) hide show
  1. package/dist/hooks.js +2 -2
  2. package/dist/{index-37evuXv8.js → index-Cskajs8e.js} +12945 -11994
  3. package/dist/index-Cskajs8e.js.map +1 -0
  4. package/dist/index-lfBvBrWg.js +436 -0
  5. package/dist/index-lfBvBrWg.js.map +1 -0
  6. package/dist/shared/ui/formElements/controlled/index.d.ts +1 -1
  7. package/dist/shared/ui/formElements/controlled/slider/SliderControl.d.ts +4 -3
  8. package/dist/shared/ui/formElements/uncontrolled/index.d.ts +3 -1
  9. package/dist/shared/ui/formElements/uncontrolled/slider/SliderBase.d.ts +4 -74
  10. package/dist/shared/ui/formElements/uncontrolled/slider/model/helpers/dates/getDayIntl.d.ts +1 -0
  11. package/dist/shared/ui/formElements/uncontrolled/slider/model/helpers/dates/index.d.ts +1 -0
  12. package/dist/shared/ui/formElements/uncontrolled/slider/model/helpers/getInputSliderSuffix.d.ts +2 -2
  13. package/dist/shared/ui/formElements/uncontrolled/slider/model/types.d.ts +103 -1
  14. package/dist/shared/ui/formElements/uncontrolled/slider/ui/Slider.d.ts +10 -13
  15. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.d.ts +6 -0
  16. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/index.d.ts +1 -0
  17. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/useSliderAlgorithmic.d.ts +18 -0
  18. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/index.d.ts +1 -0
  19. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.d.ts +6 -0
  20. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/index.d.ts +1 -0
  21. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/useSliderMarks.d.ts +10 -0
  22. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/index.d.ts +1 -0
  23. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.d.ts +7 -0
  24. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/hooks/index.d.ts +1 -0
  25. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/hooks/useSliderStep.d.ts +14 -0
  26. package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/index.d.ts +1 -0
  27. package/dist/shared/utils/typeGuards.d.ts +1 -0
  28. package/dist/shared/validation/base/boolean.validators.d.ts +8 -1
  29. package/dist/shared/validation/base/date.validators.d.ts +5 -0
  30. package/dist/shared/validation/base/email.validators.d.ts +5 -0
  31. package/dist/shared/validation/base/number.validators.d.ts +5 -1
  32. package/dist/shared/validation/base/phone.validators.d.ts +5 -0
  33. package/dist/shared/validation/base/select.validators.d.ts +4 -0
  34. package/dist/shared/validation/base/string.validators.d.ts +4 -0
  35. package/dist/shared/validation/base/url.validators.d.ts +4 -0
  36. package/dist/{typeGuards-Bhdr9KYW.js → typeGuards-CSiImkUY.js} +34 -31
  37. package/dist/{typeGuards-Bhdr9KYW.js.map → typeGuards-CSiImkUY.js.map} +1 -1
  38. package/dist/ui.js +5 -5
  39. package/dist/{useDebounce-BZSs8EPD.js → useDebounce-MaKPBuaC.js} +282 -290
  40. package/dist/useDebounce-MaKPBuaC.js.map +1 -0
  41. package/dist/{useFieldsProgress-B_tgt_Hg.js → useFieldsProgress-CeEaFp3Q.js} +2 -2
  42. package/dist/{useFieldsProgress-B_tgt_Hg.js.map → useFieldsProgress-CeEaFp3Q.js.map} +1 -1
  43. package/dist/{utils-DaXd4sci.js → utils-k3uzuyeN.js} +6 -4
  44. package/dist/utils-k3uzuyeN.js.map +1 -0
  45. package/dist/utils.js +55 -12
  46. package/dist/utils.js.map +1 -1
  47. package/dist/validation.js +2 -2
  48. package/dist/widget.js +289 -285
  49. package/dist/widget.js.map +1 -1
  50. package/dist/widgets/buttonWithHandlers/ButtonWithHandlers.d.ts +1 -1
  51. package/dist/widgets/calculator/model/helpers.d.ts +2 -2
  52. package/dist/widgets/calculator/model/utils.d.ts +2 -0
  53. package/dist/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoBody.d.ts +2 -2
  54. package/dist/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoFooter.d.ts +7 -2
  55. package/dist/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.d.ts +6 -4
  56. package/package.json +5 -5
  57. package/dist/index-37evuXv8.js.map +0 -1
  58. package/dist/index-cm9kMt4X.js +0 -435
  59. package/dist/index-cm9kMt4X.js.map +0 -1
  60. package/dist/shared/ui/formElements/uncontrolled/slider/model/useSlider.d.ts +0 -17
  61. package/dist/useDebounce-BZSs8EPD.js.map +0 -1
  62. package/dist/utils-DaXd4sci.js.map +0 -1
  63. package/dist/uuid-2wKG15vy.js +0 -25
  64. package/dist/uuid-2wKG15vy.js.map +0 -1
@@ -23,7 +23,9 @@ export declare const Uncontrolled: {
23
23
  onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;
24
24
  };
25
25
  } & import('react').RefAttributes<HTMLInputElement>>;
26
- SliderBase: import('react').ForwardRefExoticComponent<import('./slider/SliderBase').SliderBaseProps & import('react').RefAttributes<HTMLInputElement>>;
26
+ SliderBase: <Type extends import('./slider/model/types').ComponentType>(props: import('./slider/model/types').SliderGatewayProps<Type> & {
27
+ ref?: React.Ref<HTMLInputElement>;
28
+ }) => React.ReactElement;
27
29
  AutocompleteBase: <TData>(props: import('./autocomplete').AutocompleteBaseProps<TData> & {
28
30
  ref: React.Ref<HTMLInputElement>;
29
31
  }) => React.JSX.Element;
@@ -1,74 +1,4 @@
1
- import { TSliderVariants } from './model/types';
2
- import { InputBaseProps } from '../../..';
3
- import { InputBaseClasses } from '../input/Input';
4
- import * as React from 'react';
5
- export type SliderBaseClasses = {
6
- root?: string;
7
- textContainer?: string;
8
- input?: string;
9
- labelClasses?: string;
10
- textRight?: string;
11
- textLeft?: string;
12
- field?: string;
13
- slider?: SliderBaseClasses;
14
- inputRoot?: InputBaseClasses;
15
- };
16
- export type ExternalHandlers = {
17
- onClick?: (event: React.MouseEvent<HTMLElement>) => void;
18
- onBlur?: (event: React.FocusEvent<HTMLElement>) => void;
19
- onFocus?: (event: React.FocusEvent<HTMLElement>) => void;
20
- onInputChange?: (value?: number) => void;
21
- };
22
- export interface SliderBaseProps extends Omit<InputBaseProps, 'externalHandlers' | 'onChange' | 'value' | 'defaultValue' | 'type'> {
23
- /**
24
- * Объект classes с помощью которого можно поменять стили у компонента
25
- */
26
- classes?: SliderBaseClasses;
27
- /**
28
- * Левый текст под слайдером
29
- */
30
- leftText: string | React.ReactElement;
31
- /**
32
- * Правый текст под слайдером
33
- */
34
- rightText: string | React.ReactElement;
35
- /**
36
- * Значение
37
- */
38
- value?: number;
39
- /**
40
- * Значение
41
- */
42
- defaultValue?: number;
43
- /**
44
- * Сеттер инпута
45
- * @param value значение инпута
46
- */
47
- onChange: (value: number | undefined) => void;
48
- /**
49
- * Минимальное значение инпута
50
- */
51
- min: number;
52
- /**
53
- * Максимальное значение инпута
54
- */
55
- max: number;
56
- /**
57
- * Вариант инпута по дефолту credit (если использовать years то префикс поменяется на (лет, год, года в зависимости от склонения value)
58
- */
59
- variant: TSliderVariants;
60
- /**
61
- * Label инпута
62
- */
63
- label: string;
64
- /**
65
- * Шаг слайдера (если использовать вариант credit, то step будет проигнорирован)
66
- */
67
- step?: number;
68
- /**
69
- * Дополнительные хендлеры
70
- */
71
- externalHandlers?: ExternalHandlers;
72
- type?: 'text' | 'tel' | 'password';
73
- }
74
- export declare const SliderBase: React.ForwardRefExoticComponent<SliderBaseProps & React.RefAttributes<HTMLInputElement>>;
1
+ import { ComponentType, SliderGatewayProps } from './model/types';
2
+ export declare const SliderBase: <Type extends ComponentType>(props: SliderGatewayProps<Type> & {
3
+ ref?: React.Ref<HTMLInputElement>;
4
+ }) => React.ReactElement;
@@ -0,0 +1 @@
1
+ export declare const getDayIntl: (years: number) => string;
@@ -1,2 +1,3 @@
1
1
  export { getIntlMonth } from './getIntlMonth';
2
2
  export { getYearIntl } from './getYearIntl';
3
+ export { getDayIntl } from './getDayIntl';
@@ -1,2 +1,2 @@
1
- import { TSliderVariants } from '../types';
2
- export declare const getInputSliderSuffix: (variant: TSliderVariants, value: number) => string;
1
+ import { TSuffixVariants } from '../types';
2
+ export declare const getInputSliderSuffix: (suffix: TSuffixVariants, value?: number) => string;
@@ -1 +1,103 @@
1
- export type TSliderVariants = 'years' | 'credit';
1
+ import { InputBaseProps } from '../../input';
2
+ import { InputBaseClasses } from '../../input/Input';
3
+ import { SliderClasses } from '../ui';
4
+ export type TSuffixVariants = 'year' | 'month' | 'day' | 'currency' | 'percent';
5
+ export type ExternalHandlers = {
6
+ onClick?: (event: React.MouseEvent<HTMLElement>) => void;
7
+ onBlur?: (event: React.FocusEvent<HTMLElement>) => void;
8
+ onFocus?: (event: React.FocusEvent<HTMLElement>) => void;
9
+ onInputChange?: (value?: number) => void;
10
+ };
11
+ export type SliderBaseClasses = {
12
+ root?: string;
13
+ textContainer?: string;
14
+ input?: string;
15
+ labelClasses?: string;
16
+ textRight?: string;
17
+ textLeft?: string;
18
+ field?: string;
19
+ slider?: SliderClasses;
20
+ inputRoot?: InputBaseClasses;
21
+ };
22
+ export type ComponentType = 'marks' | 'step' | 'algoritmic';
23
+ export interface SliderCommonProps extends Omit<InputBaseProps, 'externalHandlers' | 'onChange' | 'value' | 'defaultValue' | 'type'> {
24
+ /**
25
+ * Объект classes с помощью которого можно поменять стили у компонента
26
+ */
27
+ classes?: SliderBaseClasses;
28
+ /**
29
+ * Левый текст под слайдером
30
+ */
31
+ leftText: string | React.ReactElement;
32
+ /**
33
+ * Правый текст под слайдером
34
+ */
35
+ rightText: string | React.ReactElement;
36
+ /**
37
+ * Значение
38
+ */
39
+ value?: number;
40
+ /**
41
+ * Значение
42
+ */
43
+ defaultValue?: number;
44
+ /**
45
+ * Сеттер инпута
46
+ * @param value значение инпута
47
+ */
48
+ onChange?: (value: number | undefined) => void;
49
+ /**
50
+ * Вариант инпута по дефолту credit (если использовать years то префикс поменяется на (лет, год, года в зависимости от склонения value)
51
+ */
52
+ suffix: TSuffixVariants;
53
+ /**
54
+ * Label инпута
55
+ */
56
+ label: string;
57
+ /**
58
+ * Шаг слайдера (если использовать вариант credit, то step будет проигнорирован)
59
+ */
60
+ externalHandlers?: ExternalHandlers;
61
+ type?: 'text' | 'tel' | 'password';
62
+ /**
63
+ * Суффикс для слайдер value (например) 74% / 400_000 рублей - / 400_000 это суффикс
64
+ */
65
+ additionalSuffix?: string;
66
+ /**
67
+ * Значения только для чтения
68
+ */
69
+ readOnly?: boolean;
70
+ /**
71
+ * Увеличение значения через слайдер в алгоритимеческой прогрессии
72
+ */
73
+ componentType: ComponentType;
74
+ }
75
+ export type SliderMarksProps = SliderCommonProps & {
76
+ componentType: 'marks';
77
+ marks: number[];
78
+ readOnly?: true;
79
+ };
80
+ export type SliderStepProps = SliderCommonProps & {
81
+ componentType: 'step';
82
+ step: number;
83
+ /**
84
+ * Минимальное значение инпута
85
+ */
86
+ min: number;
87
+ /**
88
+ * Максимальное значение инпута
89
+ */
90
+ max: number;
91
+ };
92
+ export type SliderAlgorithmicProps = SliderCommonProps & {
93
+ componentType: 'algoritmic';
94
+ /**
95
+ * Минимальное значение инпута
96
+ */
97
+ min: number;
98
+ /**
99
+ * Максимальное значение инпута
100
+ */
101
+ max: number;
102
+ };
103
+ export type SliderGatewayProps<Type extends ComponentType> = Type extends 'marks' ? SliderMarksProps : Type extends 'algoritmic' ? SliderAlgorithmicProps : SliderStepProps;
@@ -1,20 +1,17 @@
1
- import { TSliderVariants } from '../model/types';
2
- import * as React from 'react';
3
1
  export type SliderClasses = {
4
- root?: string;
5
- sliderRoot?: string;
6
- sliderTrack?: string;
7
- sliderThumb?: string;
8
- sliderRange?: string;
2
+ track?: string;
3
+ rail?: string;
4
+ handle?: string;
5
+ tracks?: string;
9
6
  };
10
- export interface SliderProps {
7
+ export interface SliderInnerProps {
11
8
  classes?: SliderClasses;
12
- onValueChange?: (value: number[]) => void;
13
- value: number[];
9
+ onChange: (value: number) => void;
10
+ value: number;
14
11
  disabled?: boolean;
15
12
  min?: number;
16
13
  max?: number;
17
- step?: number;
18
- variant?: TSliderVariants;
14
+ step?: number | null;
15
+ marks?: number[];
19
16
  }
20
- export declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>;
17
+ export declare const SliderInner: ({ classes, min, max, value, step, marks, disabled, onChange, ...props }: SliderInnerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export declare const SliderAlgorithmic: React.ForwardRefExoticComponent<import('../../model/types').SliderCommonProps & {
3
+ componentType: "algoritmic";
4
+ min: number;
5
+ max: number;
6
+ } & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1 @@
1
+ export { useSliderAlgorithmic } from './useSliderAlgorithmic';
@@ -0,0 +1,18 @@
1
+ interface UseSliderAlgorithmic {
2
+ min: number;
3
+ max: number;
4
+ defaultValue: number;
5
+ value: number | undefined;
6
+ onChange?: (value: number) => void;
7
+ }
8
+ export declare const useSliderAlgorithmic: ({ min, max, defaultValue, value, onChange }: UseSliderAlgorithmic) => {
9
+ handleBlur: (value: number | undefined) => void;
10
+ handleChangeSlider: (value?: number) => void;
11
+ toSlider: (value: number | undefined) => number;
12
+ fromSlider: (value: number) => number;
13
+ sliderValue: number;
14
+ sliderStep: number;
15
+ sliderMin: number;
16
+ sliderMax: number;
17
+ };
18
+ export {};
@@ -0,0 +1 @@
1
+ export { SliderAlgorithmic } from './SliderAlgorithmic';
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export declare const SliderMarks: React.ForwardRefExoticComponent<import('../../model/types').SliderCommonProps & {
3
+ componentType: "marks";
4
+ marks: number[];
5
+ readOnly?: true;
6
+ } & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1 @@
1
+ export { useSliderMarks } from './useSliderMarks';
@@ -0,0 +1,10 @@
1
+ interface UseSliderMarks {
2
+ marks: number[];
3
+ onChange?: (value: number) => void;
4
+ }
5
+ export declare const useSliderMarks: ({ marks, onChange }: UseSliderMarks) => {
6
+ handleChangeSlider: (value?: number) => void;
7
+ sliderMin: number;
8
+ sliderMax: number;
9
+ };
10
+ export {};
@@ -0,0 +1 @@
1
+ export { SliderMarks } from './SliderMarks';
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ export declare const SliderStep: React.ForwardRefExoticComponent<import('../../model/types').SliderCommonProps & {
3
+ componentType: "step";
4
+ step: number;
5
+ min: number;
6
+ max: number;
7
+ } & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1 @@
1
+ export { useSliderStep } from './useSliderStep';
@@ -0,0 +1,14 @@
1
+ interface UseSliderStep {
2
+ min: number;
3
+ max: number;
4
+ step: number;
5
+ onChange?: (value: number) => void;
6
+ }
7
+ export declare const useSliderStep: ({ min, max, step, onChange }: UseSliderStep) => {
8
+ handleBlur: (value: number | undefined) => void;
9
+ handleChangeSlider: (value?: number) => void;
10
+ sliderStep: number;
11
+ sliderMin: number;
12
+ sliderMax: number;
13
+ };
14
+ export {};
@@ -0,0 +1 @@
1
+ export { SliderStep } from './SliderStep';
@@ -9,4 +9,5 @@ export declare class TypeGuards {
9
9
  static isArrayEmpty(value: unknown): value is boolean;
10
10
  static isObject(value: unknown): value is Record<string, unknown>;
11
11
  static isFunction(value: unknown): value is (...args: unknown[]) => unknown;
12
+ static isObjectEmpty(value: unknown): value is Record<string, never>;
12
13
  }
@@ -1,7 +1,14 @@
1
1
  import { default as z } from 'zod';
2
2
  export type BooleanValidationOptions<Required extends boolean> = {
3
- defaultValue?: boolean;
3
+ /**
4
+ * указывает что поле обязательное
5
+ */
4
6
  required?: Required;
7
+ /**
8
+ * значение по умолчанию
9
+ * @default undefined
10
+ */
11
+ defaultValue?: boolean;
5
12
  message?: Partial<Record<keyof Omit<BooleanValidationOptions<Required>, 'message'>, string>>;
6
13
  };
7
14
  declare const getBooleanRequired: (props?: Omit<BooleanValidationOptions<true>, "required">) => z.ZodDefault<z.ZodBoolean>;
@@ -24,6 +24,11 @@ export type DateValidationOptions<Required extends boolean> = {
24
24
  * указывает что поле обязательное
25
25
  */
26
26
  required?: Required;
27
+ /**
28
+ * значение по умолчанию
29
+ * @default undefined
30
+ */
31
+ defaultValue?: string;
27
32
  message?: {
28
33
  min?: string;
29
34
  max?: string;
@@ -9,6 +9,11 @@ export type EmailValidationOptions<Required extends boolean> = {
9
9
  * Регулярное выражение для проверки email на валидность
10
10
  */
11
11
  regexp?: RegExp | string;
12
+ /**
13
+ * значение по умолчанию
14
+ * @default undefined
15
+ */
16
+ defaultValue?: string;
12
17
  message?: {
13
18
  min?: string;
14
19
  invalid?: string;
@@ -14,8 +14,12 @@ export type NumberValidationOptions<Required extends boolean> = {
14
14
  * указывает что поле обязательное
15
15
  * @default true
16
16
  */
17
- defaultValue?: number;
18
17
  required?: Required;
18
+ /**
19
+ * значение по умолчанию
20
+ * @default undefined
21
+ */
22
+ defaultValue?: number;
19
23
  message?: Partial<Record<keyof Omit<NumberValidationOptions<Required>, 'message'>, string>>;
20
24
  };
21
25
  /**
@@ -14,6 +14,11 @@ export type PhoneValidationOptions<Required extends boolean> = {
14
14
  * указывает что поле обязательное
15
15
  */
16
16
  required?: Required;
17
+ /**
18
+ * значение по умолчанию
19
+ * @default undefined
20
+ */
21
+ defaultValue?: string;
17
22
  message?: {
18
23
  min?: string;
19
24
  invalidOperator?: string;
@@ -10,6 +10,10 @@ export type SelectSingleValidationOptions<Required extends boolean, Multi extend
10
10
  * @default true
11
11
  */
12
12
  required?: Required;
13
+ /**
14
+ * значение по умолчанию
15
+ * @default undefined
16
+ */
13
17
  defaultValue?: string;
14
18
  message?: {
15
19
  single?: string;
@@ -19,6 +19,10 @@ export type StringValidationOptions<Required extends boolean> = {
19
19
  * @default true
20
20
  */
21
21
  required?: Required;
22
+ /**
23
+ * значение по умолчанию
24
+ * @default undefined
25
+ */
22
26
  defaultValue?: string;
23
27
  message?: Partial<Record<keyof Omit<StringValidationOptions<Required>, 'message'> | 'root', string>>;
24
28
  };
@@ -8,6 +8,10 @@ export type UrlValidationOptions<Required extends boolean> = {
8
8
  * Регулярное выражение для проверки url на валидность
9
9
  */
10
10
  regexp?: RegExp | string;
11
+ /**
12
+ * значение по умолчанию
13
+ */
14
+ defaultValue?: string;
11
15
  message?: {
12
16
  min?: string;
13
17
  invalid?: string;