armtek-uikit-react 1.0.96 → 1.0.98
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.
- package/package.json +1 -1
- package/ui/Form/DateField/DateField.d.ts +6 -2
- package/ui/Form/DateField/DateField.js +16 -1
- package/ui/Form/Period/Period.d.ts +7 -1
- package/ui/Form/Period/Period.js +14 -1
- package/ui/Form/Select/Select.d.ts +15 -15
- package/ui/Form/Select/Select.js +20 -56
- package/ui/Form/Select/SelectSummary.d.ts +3 -2
- package/ui/Form/Select/SelectSummary.js +1 -1
- package/ui/Icon/Mi.js +4 -4
- package/ui/Popover/Popover.js +1 -1
- package/ui/Popover/index.d.ts +1 -0
- package/ui/Popover/index.js +2 -1
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"armtek-uikit-react","version":"1.0.
|
|
1
|
+
{"name":"armtek-uikit-react","version":"1.0.98","description":"Armtek UIKit for React","repository":{"type":"git","url":"ssh://git@gl.corp:10022/int/uikit/uikit_react.git"},"author":"","license":"ISC","dependencies":{"build":"^0.1.4","clsx":"^2.0.0","rc-slider":"^10.2.1","react":"*","react-datepicker":"^4.16.0","react-dom":"*","react-transition-group":"^4.4.5"},"peerDependencies":{"react":"*","react-dom":"*"},"scripts":{"pub":"npm version patch && npm publish"}}
|
|
@@ -3,7 +3,9 @@ import { ChangeEvent } from 'react';
|
|
|
3
3
|
export type DateFieldProps = {
|
|
4
4
|
format?: string;
|
|
5
5
|
onInput?: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
6
|
-
onChange?: (
|
|
6
|
+
onChange?: (e: ChangeEvent<HTMLInputElement> & {
|
|
7
|
+
value: Date | null;
|
|
8
|
+
}) => void;
|
|
7
9
|
value?: Date | string | null;
|
|
8
10
|
showTime?: boolean;
|
|
9
11
|
showTimeOnly?: boolean;
|
|
@@ -11,7 +13,9 @@ export type DateFieldProps = {
|
|
|
11
13
|
export declare const DateField: import("react").ForwardRefExoticComponent<{
|
|
12
14
|
format?: string | undefined;
|
|
13
15
|
onInput?: ((e: ChangeEvent<HTMLInputElement>) => void) | undefined;
|
|
14
|
-
onChange?: ((
|
|
16
|
+
onChange?: ((e: ChangeEvent<HTMLInputElement> & {
|
|
17
|
+
value: Date | null;
|
|
18
|
+
}) => void) | undefined;
|
|
15
19
|
value?: string | Date | null | undefined;
|
|
16
20
|
showTime?: boolean | undefined;
|
|
17
21
|
showTimeOnly?: boolean | undefined;
|
|
@@ -27,7 +27,19 @@ export const DateField = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
27
27
|
const handleChange = d => {
|
|
28
28
|
setDate(d);
|
|
29
29
|
setOpen(false);
|
|
30
|
-
if (onChange)
|
|
30
|
+
if (onChange) {
|
|
31
|
+
const e = new Event('input', {
|
|
32
|
+
bubbles: true
|
|
33
|
+
});
|
|
34
|
+
Object.defineProperty(e, 'target', {
|
|
35
|
+
writable: false,
|
|
36
|
+
value: {
|
|
37
|
+
name: props.name,
|
|
38
|
+
value: d
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
onChange(e);
|
|
42
|
+
}
|
|
31
43
|
};
|
|
32
44
|
const handleClick = e => {
|
|
33
45
|
setOpen(prev => !prev);
|
|
@@ -37,11 +49,14 @@ export const DateField = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
37
49
|
const btnRef = useRef();
|
|
38
50
|
const inputIcon = showTime && showTimeOnly ? 'schedule' : 'calendar_today';
|
|
39
51
|
let dateValue = typeof realValue === 'string' ? new Date(realValue) : realValue;
|
|
52
|
+
|
|
53
|
+
//TODO Подключение Popover ломает тесты, разобраться почему
|
|
40
54
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
41
55
|
children: [/*#__PURE__*/_jsx(TextField, {
|
|
42
56
|
ref: ref,
|
|
43
57
|
...restProps,
|
|
44
58
|
value: (dateValue == null ? void 0 : dateValue.toLocaleDateString('ru-RU')) || '',
|
|
59
|
+
onChange: () => null,
|
|
45
60
|
endAdornment: /*#__PURE__*/_jsx(ButtonIcon, {
|
|
46
61
|
size: 'medium',
|
|
47
62
|
variant: 'transparent',
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { TextFieldProps } from '../TextField/TextField';
|
|
2
|
+
export type PeriodChangeEvent = (Event & {
|
|
3
|
+
target: {
|
|
4
|
+
value: [Date | null, Date | null];
|
|
5
|
+
name: string;
|
|
6
|
+
};
|
|
7
|
+
});
|
|
2
8
|
declare const Period: import("react").ForwardRefExoticComponent<{
|
|
3
9
|
format?: string | undefined;
|
|
4
|
-
onChange?: ((
|
|
10
|
+
onChange?: ((e: PeriodChangeEvent) => void) | undefined;
|
|
5
11
|
value?: [Date | null, Date | null] | undefined;
|
|
6
12
|
} & Omit<TextFieldProps, "value" | "onChange"> & import("react").RefAttributes<unknown>>;
|
|
7
13
|
export default Period;
|
package/ui/Form/Period/Period.js
CHANGED
|
@@ -29,7 +29,19 @@ const Period = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
29
29
|
const handleChange = date => {
|
|
30
30
|
setValue(date);
|
|
31
31
|
if (date[0] && date[1]) setActive(false);
|
|
32
|
-
if (onChange)
|
|
32
|
+
if (onChange) {
|
|
33
|
+
const e = new Event('input', {
|
|
34
|
+
bubbles: true
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(e, 'target', {
|
|
37
|
+
writable: false,
|
|
38
|
+
value: {
|
|
39
|
+
name: props.name,
|
|
40
|
+
value: date
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
onChange(e);
|
|
44
|
+
}
|
|
33
45
|
};
|
|
34
46
|
let realValue = Array.isArray(props.value) ? props.value : value;
|
|
35
47
|
let displayValue = '';
|
|
@@ -42,6 +54,7 @@ const Period = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
42
54
|
placeholder: 'дд.мм.гггг - дд.мм.гггг',
|
|
43
55
|
...restProps,
|
|
44
56
|
value: displayValue,
|
|
57
|
+
onChange: () => null,
|
|
45
58
|
onFocus: handleClick,
|
|
46
59
|
endAdornment: /*#__PURE__*/_jsx(ButtonIcon, {
|
|
47
60
|
size: 'medium',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OptionType } from '../../../types/theme';
|
|
2
2
|
import { TextFieldProps } from '../TextField/TextField';
|
|
3
|
+
import { MouseEvent } from 'react';
|
|
3
4
|
type SelectBaseProps = {
|
|
4
5
|
options: OptionType[];
|
|
5
6
|
inline?: boolean;
|
|
@@ -10,28 +11,27 @@ type SelectBaseProps = {
|
|
|
10
11
|
onClearAll?: () => void;
|
|
11
12
|
onSubmit?: () => void;
|
|
12
13
|
};
|
|
13
|
-
type
|
|
14
|
-
multiple?:
|
|
15
|
-
value?: string;
|
|
16
|
-
defaultValue?: string;
|
|
17
|
-
onChange?: (
|
|
14
|
+
type MultipleType<M extends boolean = false> = {
|
|
15
|
+
multiple?: M;
|
|
16
|
+
value?: M extends false ? string : string[];
|
|
17
|
+
defaultValue?: M extends false ? string : string[];
|
|
18
|
+
onChange?: (e: SelectChangeEvent<M extends false ? string : string[]>) => void;
|
|
18
19
|
};
|
|
19
|
-
type
|
|
20
|
-
multiple?: true;
|
|
21
|
-
value?: string[];
|
|
22
|
-
defaultValue?: string[];
|
|
23
|
-
onChange?: (option: string[]) => void;
|
|
24
|
-
};
|
|
25
|
-
type SelectPropsType = SelectMultipleProps | SelectSingleProps;
|
|
26
|
-
export type SelectProps = SelectBaseProps & SelectPropsType & Omit<TextFieldProps, 'value' | 'defaultValue' | 'onChange'>;
|
|
20
|
+
export type SelectProps<M extends boolean = false> = SelectBaseProps & MultipleType<M> & Omit<TextFieldProps, keyof SelectBaseProps | keyof MultipleType<M>>;
|
|
27
21
|
export declare const getOptionValue: (option: OptionType) => string;
|
|
28
|
-
|
|
22
|
+
export type SelectChangeEvent<Value = string> = (Event & {
|
|
23
|
+
target: {
|
|
24
|
+
value: Value;
|
|
25
|
+
name: string;
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
declare function Select<M extends boolean = false>(props: SelectProps<M>): import("react/jsx-runtime").JSX.Element;
|
|
29
29
|
type SelectOptionsType<T extends boolean> = {
|
|
30
30
|
options: OptionType[];
|
|
31
31
|
value?: T extends true ? string[] : string;
|
|
32
32
|
inline?: boolean;
|
|
33
33
|
multiple?: T;
|
|
34
|
-
onClick: (option: OptionType) => void;
|
|
34
|
+
onClick: (e: MouseEvent, option: OptionType) => void;
|
|
35
35
|
listStyle?: 'checkbox' | 'default';
|
|
36
36
|
onSelectAll?: () => void;
|
|
37
37
|
onClearAll?: () => void;
|
package/ui/Form/Select/Select.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import TextField from "../TextField/TextField";
|
|
4
|
-
import { forwardRef,
|
|
4
|
+
import { forwardRef, useState } from 'react';
|
|
5
5
|
import clsx from 'clsx';
|
|
6
6
|
import ListItem from "../../List/ListItem";
|
|
7
7
|
import css from "./Select.module.scss";
|
|
@@ -17,6 +17,9 @@ const CssClasses = ['select', 'select__input_wrapper', 'select__input', 'options
|
|
|
17
17
|
// const css = getCssPrefix(CssClasses)
|
|
18
18
|
|
|
19
19
|
export const getOptionValue = option => option.value || option.text;
|
|
20
|
+
|
|
21
|
+
// let selectEl!: HTMLSelectElement
|
|
22
|
+
|
|
20
23
|
function Select(props) {
|
|
21
24
|
var _options$find;
|
|
22
25
|
let {
|
|
@@ -40,44 +43,33 @@ function Select(props) {
|
|
|
40
43
|
let [selected, setSelected] = useState(defaultValue || (multiple ? [] : ''));
|
|
41
44
|
let [focused, setFocused] = useState(false);
|
|
42
45
|
let [q, setQ] = useState('');
|
|
43
|
-
let selectRef = useRef(null);
|
|
44
46
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
45
|
-
|
|
46
|
-
// let selectEl!: HTMLSelectElement
|
|
47
|
-
//
|
|
48
|
-
// useEffect(() => {
|
|
49
|
-
// selectEl = document.createElement('select')
|
|
50
|
-
// selectEl.onchange = (e) => {
|
|
51
|
-
// console.log(e)
|
|
52
|
-
// }
|
|
53
|
-
// return () => {
|
|
54
|
-
// selectEl.remove()
|
|
55
|
-
// }
|
|
56
|
-
// }, [])
|
|
57
|
-
|
|
58
47
|
const handleOpen = e => {
|
|
59
48
|
if (!inputProps.disabled) {
|
|
60
49
|
setActive(true);
|
|
61
50
|
if (e.target instanceof HTMLDivElement) setAnchorEl(e.currentTarget);
|
|
62
51
|
}
|
|
63
52
|
};
|
|
64
|
-
const handleSelect = option => {
|
|
65
|
-
// selectEl.sele = option.value
|
|
66
|
-
// selectEl?.dispatchEvent(new Event('change', { bubbles: true }))
|
|
67
|
-
|
|
53
|
+
const handleSelect = (e, option) => {
|
|
68
54
|
let v = getOptionValue(option);
|
|
69
55
|
let mSelected = Array.isArray(selected) ? selected : [selected];
|
|
70
56
|
let newValueS = v;
|
|
71
57
|
let newValueM = mSelected.includes(v) ? mSelected.filter(item => item !== v) : mSelected.concat(v);
|
|
72
58
|
setSelected(multiple ? newValueM : newValueS);
|
|
73
|
-
if (onChange)
|
|
59
|
+
if (onChange) {
|
|
60
|
+
Object.defineProperty(e, 'target', {
|
|
61
|
+
writable: false,
|
|
62
|
+
value: {
|
|
63
|
+
name: props.name,
|
|
64
|
+
value: multiple ? newValueM : newValueS
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
onChange(e);
|
|
68
|
+
}
|
|
74
69
|
if (search && !multiple) {
|
|
75
70
|
setQ(options.find(item => getOptionValue(item) === newValueS).text);
|
|
76
71
|
}
|
|
77
72
|
if (!multiple) setActive(false);
|
|
78
|
-
|
|
79
|
-
// if(selectRef.current)
|
|
80
|
-
// selectRef.current.dispatchEvent(new Event('change', { bubbles: true }))
|
|
81
73
|
};
|
|
82
74
|
const handleSearch = e => {
|
|
83
75
|
setQ(e.target.value);
|
|
@@ -88,18 +80,6 @@ function Select(props) {
|
|
|
88
80
|
const handleBlur = !!search ? () => {
|
|
89
81
|
setFocused(false);
|
|
90
82
|
} : undefined;
|
|
91
|
-
|
|
92
|
-
// const handleChange = (e: ChangeEvent<HTMLSelectElement>) => {
|
|
93
|
-
// let option = options.find(item => getOptionValue(item) === e.target.value)
|
|
94
|
-
// if( option )
|
|
95
|
-
// {
|
|
96
|
-
// let v = getOptionValue(option)
|
|
97
|
-
// setSelected(!multiple ? v : prev => prev?.concat(v) || [v])
|
|
98
|
-
// if( !multiple )
|
|
99
|
-
// setActive(false)
|
|
100
|
-
// }
|
|
101
|
-
// }
|
|
102
|
-
|
|
103
83
|
let selectEndAdornment = /*#__PURE__*/_jsxs(_Fragment, {
|
|
104
84
|
children: [/*#__PURE__*/_jsx(Adornment, {
|
|
105
85
|
children: endAdornment
|
|
@@ -113,13 +93,6 @@ function Select(props) {
|
|
|
113
93
|
})
|
|
114
94
|
})]
|
|
115
95
|
});
|
|
116
|
-
let selectProps = {};
|
|
117
|
-
// if( value !== undefined )
|
|
118
|
-
// {
|
|
119
|
-
// selectProps.value = value
|
|
120
|
-
// selectProps.onChange = handleChange
|
|
121
|
-
// }
|
|
122
|
-
|
|
123
96
|
const handleSelectAll = () => {
|
|
124
97
|
let value = options.map(item => getOptionValue(item));
|
|
125
98
|
setSelected(value);
|
|
@@ -143,20 +116,10 @@ function Select(props) {
|
|
|
143
116
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
144
117
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
145
118
|
className: css.select,
|
|
146
|
-
children: [/*#__PURE__*/
|
|
119
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
147
120
|
className: css.select__input_wrapper,
|
|
148
121
|
onClick: handleOpen,
|
|
149
|
-
children:
|
|
150
|
-
multiple: multiple,
|
|
151
|
-
ref: selectRef,
|
|
152
|
-
...selectProps,
|
|
153
|
-
style: {
|
|
154
|
-
display: 'none'
|
|
155
|
-
},
|
|
156
|
-
children: options.map(item => /*#__PURE__*/_jsx("option", {
|
|
157
|
-
children: item.text
|
|
158
|
-
}, item.text))
|
|
159
|
-
}), /*#__PURE__*/_jsx(TextField, {
|
|
122
|
+
children: /*#__PURE__*/_jsx(TextField, {
|
|
160
123
|
...inputProps,
|
|
161
124
|
onChange: handleSearch,
|
|
162
125
|
focused: focused,
|
|
@@ -169,13 +132,14 @@ function Select(props) {
|
|
|
169
132
|
pointerEvents: 'none'
|
|
170
133
|
},
|
|
171
134
|
editable: !!search
|
|
172
|
-
})
|
|
135
|
+
})
|
|
173
136
|
}), multiple && !realActive && /*#__PURE__*/_jsx(SelectSummaryChips, {
|
|
174
137
|
options: selectedOptions,
|
|
175
138
|
disabled: inputProps.disabled,
|
|
176
139
|
onDelete: handleSelect
|
|
177
140
|
})]
|
|
178
141
|
}), anchorEl && /*#__PURE__*/_jsx(Popover, {
|
|
142
|
+
matchWidth: true,
|
|
179
143
|
anchorEl: anchorEl,
|
|
180
144
|
open: realActive,
|
|
181
145
|
onClose: () => setActive(false),
|
|
@@ -220,7 +184,7 @@ const SelectOptions = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
220
184
|
disabled: disabled,
|
|
221
185
|
checked: checked,
|
|
222
186
|
active: active,
|
|
223
|
-
onClick:
|
|
187
|
+
onClick: e => onClick(e, item),
|
|
224
188
|
children: item.text
|
|
225
189
|
}, index);
|
|
226
190
|
}), listStyle === 'checkbox' && !!multiple && /*#__PURE__*/_jsx("div", {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { MouseEvent } from 'react';
|
|
1
2
|
import { OptionType } from '../../../types/theme';
|
|
2
3
|
export type SelectSummaryProps = {
|
|
3
4
|
label_check_all?: string;
|
|
4
5
|
label_uncheck_all?: string;
|
|
5
6
|
label_submit?: string;
|
|
6
|
-
onClose: (option: OptionType) => void;
|
|
7
|
+
onClose: (e: MouseEvent, option: OptionType) => void;
|
|
7
8
|
onSelectAll?: () => void;
|
|
8
9
|
onClearAll?: () => void;
|
|
9
10
|
onSubmit?: () => void;
|
|
@@ -15,7 +16,7 @@ export declare const SelectSummary: (props: SelectSummaryProps) => import("react
|
|
|
15
16
|
type SelectSummaryChipsProps = {
|
|
16
17
|
options: OptionType[];
|
|
17
18
|
disabled?: boolean;
|
|
18
|
-
onDelete: (option: OptionType) => void;
|
|
19
|
+
onDelete: (e: MouseEvent, option: OptionType) => void;
|
|
19
20
|
};
|
|
20
21
|
export declare const SelectSummaryChips: (props: SelectSummaryChipsProps) => import("react/jsx-runtime").JSX.Element;
|
|
21
22
|
export {};
|
package/ui/Icon/Mi.js
CHANGED
|
@@ -13,12 +13,12 @@ export const Mi = props => {
|
|
|
13
13
|
...tooltipProps,
|
|
14
14
|
text: title,
|
|
15
15
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
variant: 'outlined',
|
|
17
|
+
...iconProps
|
|
18
18
|
})
|
|
19
19
|
}) : /*#__PURE__*/_jsx(Icon, {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
variant: 'outlined',
|
|
21
|
+
...iconProps
|
|
22
22
|
})
|
|
23
23
|
});
|
|
24
24
|
};
|
package/ui/Popover/Popover.js
CHANGED
package/ui/Popover/index.d.ts
CHANGED
package/ui/Popover/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { default } from "./Popover";
|
|
1
|
+
export { default } from "./Popover";
|
|
2
|
+
export * from "./Popover";
|