diginet-core-ui 1.3.78 → 1.3.79
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/components/accordion/details.js +2 -6
- package/components/accordion/group.js +2 -9
- package/components/accordion/index.js +2 -15
- package/components/accordion/summary.js +4 -27
- package/components/alert/index.js +98 -137
- package/components/alert/notify.js +97 -166
- package/components/avatar/index.js +4 -63
- package/components/badge/index.js +7 -34
- package/components/button/icon.js +120 -186
- package/components/button/index.js +136 -205
- package/components/button/more.js +0 -12
- package/components/button/ripple-effect.js +46 -44
- package/components/card/body.js +2 -7
- package/components/card/extra.js +2 -7
- package/components/card/footer.js +2 -7
- package/components/card/header.js +2 -7
- package/components/card/index.js +2 -22
- package/components/chart/Pie/Circle.js +0 -1
- package/components/chart/Pie/Sector.js +0 -17
- package/components/chart/Pie/Sectors.js +0 -10
- package/components/chart/Pie/index.js +4 -36
- package/components/chart/Pie-v2/Circle.js +0 -1
- package/components/chart/Pie-v2/Sector.js +0 -13
- package/components/chart/Pie-v2/Sectors.js +0 -20
- package/components/chart/Pie-v2/index.js +11 -38
- package/components/chart/bar/Axis.js +0 -12
- package/components/chart/bar/Bar.js +13 -35
- package/components/chart/bar/Grid.js +0 -18
- package/components/chart/bar/Labels.js +0 -18
- package/components/chart/bar/Points.js +0 -17
- package/components/chart/bar/index.js +6 -26
- package/components/chart/bar-v2/Axis.js +0 -12
- package/components/chart/bar-v2/Bar.js +15 -36
- package/components/chart/bar-v2/Grid.js +0 -18
- package/components/chart/bar-v2/Labels.js +0 -18
- package/components/chart/bar-v2/Points.js +0 -17
- package/components/chart/bar-v2/index.js +6 -26
- package/components/chart/line/Axis.js +4 -16
- package/components/chart/line/Grid.js +2 -19
- package/components/chart/line/Labels.js +0 -18
- package/components/chart/line/Path.js +23 -33
- package/components/chart/line/Point.js +6 -40
- package/components/chart/line/Title.js +0 -3
- package/components/chart/line/index.js +12 -35
- package/components/chart/line-v2/Axis.js +0 -13
- package/components/chart/line-v2/Grid.js +0 -18
- package/components/chart/line-v2/Labels.js +0 -18
- package/components/chart/line-v2/Path.js +23 -33
- package/components/chart/line-v2/Point.js +6 -35
- package/components/chart/line-v2/Title.js +0 -3
- package/components/chart/line-v2/index.js +12 -30
- package/components/check-text/index.js +0 -8
- package/components/check-text/interview-confirmation.js +0 -7
- package/components/check-text/interview-status.js +0 -7
- package/components/chip/attach.js +4 -17
- package/components/chip/index.js +6 -33
- package/components/collapse/index.js +0 -13
- package/components/divider/index.js +0 -8
- package/components/form-control/attachment/index.js +24 -202
- package/components/form-control/calendar/function.js +40 -94
- package/components/form-control/calendar/index.js +5 -30
- package/components/form-control/calendar/range.js +11 -28
- package/components/form-control/checkbox/index.js +4 -37
- package/components/form-control/control/index.js +3 -13
- package/components/form-control/date-picker/index-old.js +18 -0
- package/components/form-control/date-picker/index.js +23 -99
- package/components/form-control/date-range-picker/index.js +86 -221
- package/components/form-control/dropdown/index.js +72 -289
- package/components/form-control/dropdown-box/index.js +6 -35
- package/components/form-control/form/index.js +0 -2
- package/components/form-control/form-group/index.js +1 -6
- package/components/form-control/helper-text/index.js +2 -9
- package/components/form-control/input-base/index.js +218 -399
- package/components/form-control/label/index.js +2 -12
- package/components/form-control/money-input/index.js +43 -132
- package/components/form-control/number-input/index.js +15 -113
- package/components/form-control/number-input/index2.js +78 -119
- package/components/form-control/phone-input/index.js +16 -78
- package/components/form-control/radio/index.js +4 -23
- package/components/form-control/text-input/index.js +33 -256
- package/components/form-control/time-picker/index.js +14 -71
- package/components/form-control/time-picker/swiper.js +21 -73
- package/components/form-control/toggle/index.js +4 -19
- package/components/form-view/helper-text.js +2 -2
- package/components/form-view/index.js +0 -14
- package/components/form-view/input.js +2 -13
- package/components/form-view/label.js +0 -2
- package/components/grid/Col.js +2 -15
- package/components/grid/Container.js +2 -21
- package/components/grid/Row.js +2 -21
- package/components/grid/index.js +2 -43
- package/components/image/index.js +2 -22
- package/components/index.js +62 -31
- package/components/list/list-item-action.js +0 -9
- package/components/list/list-item-icon.js +0 -9
- package/components/list/list-item-text.js +0 -5
- package/components/list/list-item.js +0 -11
- package/components/list/list.js +0 -13
- package/components/list/sub-header.js +0 -4
- package/components/modal/body.js +2 -6
- package/components/modal/footer.js +2 -11
- package/components/modal/header.js +2 -12
- package/components/modal/index.js +2 -10
- package/components/modal/modal.js +11 -52
- package/components/others/extra/index.js +3 -10
- package/components/others/import/index.js +0 -7
- package/components/others/option-wrapper/index.js +4 -7
- package/components/others/scrollbar/index.js +0 -3
- package/components/paging/page-info.js +39 -101
- package/components/paging/page-selector.js +7 -35
- package/components/paging/page-selector2.js +35 -74
- package/components/paper/index.js +0 -11
- package/components/popover/body.js +2 -6
- package/components/popover/footer.js +2 -11
- package/components/popover/header.js +2 -7
- package/components/popover/index.js +39 -123
- package/components/popup/danger_popup.js +0 -19
- package/components/popup/index.js +2 -48
- package/components/popup/proposals_popup.js +10 -49
- package/components/popup/v2/index.js +0 -31
- package/components/progress/circular.js +19 -81
- package/components/progress/linear.js +4 -20
- package/components/rating/index.js +0 -24
- package/components/slider/slider-container.js +3 -40
- package/components/slider/slider-item.js +10 -25
- package/components/status/index.js +2 -16
- package/components/tab/tab-container.js +2 -16
- package/components/tab/tab-header.js +4 -24
- package/components/tab/tab-panel.js +4 -16
- package/components/tab/tab.js +4 -28
- package/components/tooltip/index.js +12 -97
- package/components/tooltip/portal.js +0 -2
- package/components/transfer/index.js +22 -67
- package/components/tree-view/index.js +62 -202
- package/components/typography/index.js +3 -31
- package/global/index.js +0 -8
- package/icons/basic.js +0 -48
- package/icons/effect.js +17 -29
- package/icons/general/clock/clock.js +0 -2
- package/icons/general/color-handler/background.js +0 -2
- package/icons/general/color-handler/text.js +0 -2
- package/icons/general/emoji/emoji.js +0 -2
- package/icons/general/font-properties/bold.js +0 -2
- package/icons/general/font-properties/font-family.js +0 -2
- package/icons/general/font-properties/font-size.js +0 -2
- package/icons/general/font-properties/italic.js +0 -2
- package/icons/general/font-properties/underline.js +0 -2
- package/icons/general/hyperlink/hyperlink.js +0 -2
- package/icons/general/indent/decrease.js +0 -2
- package/icons/general/indent/increase.js +0 -2
- package/icons/general/list/bullets.js +0 -2
- package/icons/general/list/numbering.js +0 -2
- package/icons/general/picture/picture.js +0 -2
- package/icons/general/steps/redo.js +0 -2
- package/icons/general/steps/undo.js +0 -2
- package/icons/general/text-align/center.js +0 -2
- package/icons/general/text-align/justify.js +0 -2
- package/icons/general/text-align/left.js +0 -2
- package/icons/general/text-align/right.js +0 -2
- package/icons/menu/dhr.js +2 -1
- package/icons/menu/index.js +2 -2
- package/icons/menu/v2/index.js +0 -10
- package/package.json +1 -1
- package/readme.md +11 -1
- package/styles/animation.js +15 -58
- package/styles/color-helper.js +24 -54
- package/styles/colors.js +17 -9
- package/styles/general.js +6 -2
- package/styles/typography.js +4 -4
- package/styles/utils.js +2 -2
- package/theme/createBreakpoints.js +7 -18
- package/theme/make-styles.js +2 -5
- package/theme/set-theme.js +3 -6
- package/theme/settings.js +3 -2
- package/theme/theme-provider.js +0 -1
- package/utils/array/array.js +14 -23
- package/utils/classNames.js +0 -5
- package/utils/console.js +0 -6
- package/utils/date.js +13 -82
- package/utils/error/error.js +1 -9
- package/utils/error/errors.js +1 -48
- package/utils/getFileType.js +0 -9
- package/utils/handleBreakpoints.js +0 -5
- package/utils/intersectionObserver.js +0 -5
- package/utils/iterator.js +0 -9
- package/utils/map-parent.js +3 -10
- package/utils/object/extend.js +0 -10
- package/utils/object/object.js +12 -11
- package/utils/parseHTML.js +0 -1
- package/utils/promisify.js +0 -5
- package/utils/randomString.js +0 -7
- package/utils/remove-unicode.js +0 -1
- package/utils/render-portal.js +1 -9
- package/utils/renderHTML.js +4 -6
- package/utils/renderIcon.js +4 -14
- package/utils/sb-template.js +6 -5
- package/utils/string/capitalize.js +0 -1
- package/utils/string/capitalizeSentenceCase.js +0 -2
- package/utils/string/string.js +0 -13
- package/utils/type.js +0 -21
- package/utils/updatePosition.js +4 -5
- package/utils/useDelayUnmount.js +0 -4
- package/utils/useElementSize.js +9 -3
- package/utils/useEventListener.js +12 -6
- package/utils/useInput.js +0 -6
- package/utils/useMediaQuery.js +8 -10
- package/utils/useOnClickOutside.js +0 -2
- package/utils/usePortal.js +3 -10
- package/utils/validate.js +6 -20
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/** @jsxRuntime classic */
|
|
2
|
-
|
|
3
2
|
/** @jsx jsx */
|
|
4
3
|
import { memo, useEffect, useRef, forwardRef, useImperativeHandle } from 'react';
|
|
5
4
|
import PropTypes from 'prop-types';
|
|
@@ -47,13 +46,11 @@ const PhoneInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
|
|
|
47
46
|
...props
|
|
48
47
|
}, reference) => {
|
|
49
48
|
const ref = useRef(null);
|
|
50
|
-
|
|
51
49
|
if (!inputRef) {
|
|
52
50
|
inputRef = useRef(null);
|
|
53
51
|
}
|
|
54
|
-
/* Start styled */
|
|
55
|
-
|
|
56
52
|
|
|
53
|
+
/* Start styled */
|
|
57
54
|
const PhoneInputRoot = css`
|
|
58
55
|
display: block;
|
|
59
56
|
position: relative;
|
|
@@ -70,167 +67,133 @@ const PhoneInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
|
|
|
70
67
|
/* End styled */
|
|
71
68
|
|
|
72
69
|
let currentKey,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
/* Start handler */
|
|
70
|
+
isUnicode = 0,
|
|
71
|
+
isFocus = false,
|
|
72
|
+
isPaste = false,
|
|
73
|
+
clipboardText = '';
|
|
78
74
|
|
|
75
|
+
/* Start handler */
|
|
79
76
|
const replaceMark = value => {
|
|
80
77
|
let result = ensigns[ensign].mark;
|
|
81
|
-
|
|
82
78
|
if (value) {
|
|
83
79
|
value = value.replaceAll(' ', '').replace(/_+$/, '');
|
|
84
80
|
const length = value.length;
|
|
85
|
-
|
|
86
81
|
if (length) {
|
|
87
82
|
for (let i = 0; i < length; i++) {
|
|
88
83
|
result = result.replace('_', value[i]);
|
|
89
84
|
}
|
|
90
85
|
}
|
|
91
86
|
}
|
|
92
|
-
|
|
93
87
|
return result;
|
|
94
88
|
};
|
|
95
|
-
|
|
96
89
|
const onFocusHandler = e => {
|
|
97
90
|
document.addEventListener('mouseup', onMouseUpHandler);
|
|
98
91
|
isFocus = true;
|
|
99
92
|
!!onFocus && onFocus(e);
|
|
100
93
|
};
|
|
101
|
-
|
|
102
94
|
const onMouseUpHandler = () => {
|
|
103
|
-
const text = window.getSelection().toString();
|
|
104
|
-
|
|
95
|
+
const text = window.getSelection().toString();
|
|
96
|
+
// Start focus and don't selection any text
|
|
105
97
|
if (!text) {
|
|
106
98
|
const value = inputRef.current.value;
|
|
107
99
|
const markFirstIndex = value.indexOf('_');
|
|
108
100
|
let cursor = inputRef.current.selectionStart;
|
|
109
|
-
|
|
110
101
|
if (isFocus) {
|
|
111
102
|
isFocus = false;
|
|
112
|
-
|
|
113
103
|
if (markFirstIndex !== -1) {
|
|
114
104
|
inputRef.current.setSelectionRange(markFirstIndex, markFirstIndex);
|
|
115
105
|
}
|
|
116
|
-
|
|
117
106
|
return;
|
|
118
107
|
}
|
|
119
|
-
|
|
120
108
|
if (value[cursor] === ' ') {
|
|
121
109
|
inputRef.current.setSelectionRange(cursor + 1, cursor + 1);
|
|
122
110
|
return;
|
|
123
111
|
}
|
|
124
|
-
|
|
125
112
|
if (markFirstIndex !== -1 && markFirstIndex < cursor) {
|
|
126
113
|
inputRef.current.setSelectionRange(markFirstIndex, markFirstIndex);
|
|
127
114
|
}
|
|
128
115
|
}
|
|
129
116
|
};
|
|
130
|
-
|
|
131
117
|
const onBlurHandler = e => {
|
|
132
118
|
document.removeEventListener('mouseup', onMouseUpHandler);
|
|
133
119
|
!!onBlur && onBlur(e);
|
|
134
120
|
};
|
|
135
|
-
|
|
136
121
|
const onKeyDownHandler = e => {
|
|
137
122
|
const key = e.key;
|
|
138
123
|
const keyCode = e.keyCode;
|
|
139
|
-
|
|
140
124
|
if (/Arrow|Home|End/.test(key) || /a|x|c|v/i.test(key) && e.ctrlKey) {
|
|
141
125
|
return;
|
|
142
126
|
}
|
|
143
|
-
|
|
144
127
|
if (keyCode === 231) {
|
|
145
128
|
isUnicode = isUnicode > 0 ? 0 : 1;
|
|
146
129
|
e.preventDefault();
|
|
147
130
|
return false;
|
|
148
131
|
}
|
|
149
|
-
|
|
150
132
|
if (keyCode === 8 && /^[12]$/.test(isUnicode)) {
|
|
151
133
|
isUnicode++;
|
|
152
134
|
e.preventDefault();
|
|
153
135
|
return false;
|
|
154
136
|
}
|
|
155
|
-
|
|
156
137
|
if (!/[0-9]|Backspace|Delete/.test(key)) {
|
|
157
138
|
isUnicode = -1;
|
|
158
139
|
currentKey = key;
|
|
159
140
|
e.preventDefault();
|
|
160
141
|
return false;
|
|
161
142
|
}
|
|
162
|
-
|
|
163
143
|
const {
|
|
164
144
|
value,
|
|
165
145
|
selectionStart: cursor
|
|
166
146
|
} = inputRef.current;
|
|
167
|
-
|
|
168
147
|
if (key === 'ArrowRight') {
|
|
169
148
|
if (value[cursor] === '_') {
|
|
170
149
|
e.preventDefault();
|
|
171
150
|
return false;
|
|
172
151
|
}
|
|
173
|
-
|
|
174
152
|
if (!value[cursor + 1].trim()) {
|
|
175
153
|
inputRef.current.setSelectionRange(cursor + 1, cursor + 1);
|
|
176
154
|
}
|
|
177
155
|
}
|
|
178
|
-
|
|
179
156
|
if (/[0-9]/.test(key) && !value[cursor]) {
|
|
180
157
|
e.preventDefault();
|
|
181
158
|
return false;
|
|
182
159
|
}
|
|
183
|
-
|
|
184
160
|
isUnicode = 0;
|
|
185
161
|
currentKey = key;
|
|
186
162
|
!!onKeyDown && onKeyDown(e);
|
|
187
163
|
};
|
|
188
|
-
|
|
189
164
|
const onPasteHandler = e => {
|
|
190
165
|
clipboardText = (e.clipboardData || window.clipboardData).getData('text');
|
|
191
|
-
|
|
192
166
|
if (!/\d+/.test(clipboardText)) {
|
|
193
167
|
e.preventDefault();
|
|
194
168
|
return;
|
|
195
169
|
}
|
|
196
|
-
|
|
197
170
|
isPaste = true;
|
|
198
171
|
};
|
|
199
|
-
|
|
200
172
|
const onChangeHandler = e => {
|
|
201
173
|
let value = e.target.value;
|
|
202
174
|
let cursor = e.target.selectionStart;
|
|
203
|
-
|
|
204
175
|
if (isPaste) {
|
|
205
176
|
isPaste = false;
|
|
206
177
|
value = value.replace(/\s/g, '');
|
|
207
178
|
const index = value.indexOf(clipboardText);
|
|
208
|
-
|
|
209
179
|
if (!index && value[0] === '0') {
|
|
210
180
|
value = value.slice(1);
|
|
211
181
|
}
|
|
212
|
-
|
|
213
182
|
const cursorOnPaste = index + clipboardText.length;
|
|
214
183
|
const mark = ensigns[ensign].mark;
|
|
215
184
|
const lengthOfMark = mark.length;
|
|
216
|
-
|
|
217
185
|
if (cursorOnPaste < lengthOfMark) {
|
|
218
186
|
let newCursor = cursorOnPaste;
|
|
219
|
-
|
|
220
187
|
while (mark.slice(0, newCursor).match(/_/g).length < cursorOnPaste && newCursor < lengthOfMark) {
|
|
221
188
|
newCursor++;
|
|
222
189
|
}
|
|
223
|
-
|
|
224
190
|
if (!mark[newCursor].trim()) {
|
|
225
191
|
newCursor++;
|
|
226
192
|
}
|
|
227
|
-
|
|
228
193
|
cursor = newCursor;
|
|
229
194
|
}
|
|
230
195
|
}
|
|
231
|
-
|
|
232
196
|
const result = replaceMark(value);
|
|
233
|
-
|
|
234
197
|
if (/\d/.test(currentKey)) {
|
|
235
198
|
if (result[cursor] && (!result[cursor].trim() || !result[cursor - 1].trim())) {
|
|
236
199
|
cursor++;
|
|
@@ -240,14 +203,14 @@ const PhoneInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
|
|
|
240
203
|
cursor--;
|
|
241
204
|
}
|
|
242
205
|
}
|
|
243
|
-
|
|
244
206
|
e.target.value = result;
|
|
245
207
|
e.target.setSelectionRange(cursor, cursor);
|
|
246
|
-
|
|
247
208
|
if (onChange) {
|
|
248
|
-
const el = {
|
|
209
|
+
const el = {
|
|
210
|
+
...e
|
|
249
211
|
};
|
|
250
|
-
el.target = {
|
|
212
|
+
el.target = {
|
|
213
|
+
...e.targe
|
|
251
214
|
};
|
|
252
215
|
el.target.value = '(+' + ensigns[ensign].countryCode + ') ' + result.replaceAll('_', '');
|
|
253
216
|
el.value = '0' + result.replace(/\s|_/g, '');
|
|
@@ -255,14 +218,11 @@ const PhoneInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
|
|
|
255
218
|
onChange(el);
|
|
256
219
|
}
|
|
257
220
|
};
|
|
258
|
-
|
|
259
221
|
useEffect(() => {
|
|
260
222
|
!!refs && refs(ref);
|
|
261
|
-
|
|
262
223
|
if (defaultValue !== undefined && defaultValue !== '') {
|
|
263
224
|
inputRef.current.value = replaceMark(defaultValue.replace(/^0/, ''));
|
|
264
225
|
}
|
|
265
|
-
|
|
266
226
|
if (autoFocus) {
|
|
267
227
|
inputRef.current.focus();
|
|
268
228
|
const value = inputRef.current.value;
|
|
@@ -270,7 +230,6 @@ const PhoneInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
|
|
|
270
230
|
markIndex = markIndex !== -1 ? markIndex : ensigns[ensign].mark.length;
|
|
271
231
|
inputRef.current.setSelectionRange(markIndex, markIndex);
|
|
272
232
|
}
|
|
273
|
-
|
|
274
233
|
return () => {
|
|
275
234
|
document.removeEventListener('mouseup', onMouseUpHandler);
|
|
276
235
|
};
|
|
@@ -297,7 +256,8 @@ const PhoneInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
|
|
|
297
256
|
marginBottom: '20px'
|
|
298
257
|
},
|
|
299
258
|
...props
|
|
300
|
-
}, jsx(Label, {
|
|
259
|
+
}, jsx(Label, {
|
|
260
|
+
...labelProps,
|
|
301
261
|
required: required,
|
|
302
262
|
disabled: disabled
|
|
303
263
|
}, label), jsx(InputBase, {
|
|
@@ -325,7 +285,8 @@ const PhoneInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
|
|
|
325
285
|
startIconProps: {
|
|
326
286
|
className: 'non-effect'
|
|
327
287
|
}
|
|
328
|
-
}), !!error && jsx(HelperText, {
|
|
288
|
+
}), !!error && jsx(HelperText, {
|
|
289
|
+
...helperTextProps,
|
|
329
290
|
disabled: disabled
|
|
330
291
|
}, error));
|
|
331
292
|
}));
|
|
@@ -346,58 +307,40 @@ PhoneInput.defaultProps = {
|
|
|
346
307
|
PhoneInput.propTypes = {
|
|
347
308
|
/** the type of border you want to display */
|
|
348
309
|
viewType: PropTypes.oneOf(['underlined', 'outlined']),
|
|
349
|
-
|
|
350
310
|
/** the ensign to determinate */
|
|
351
311
|
ensign: PropTypes.oneOf(['Vietnam', 'England']),
|
|
352
|
-
|
|
353
312
|
/** label for input */
|
|
354
313
|
label: PropTypes.string,
|
|
355
|
-
|
|
356
314
|
/** default value is displayed for first render */
|
|
357
315
|
defaultValue: PropTypes.string,
|
|
358
|
-
|
|
359
316
|
/** the displayed value for each change */
|
|
360
317
|
value: PropTypes.string,
|
|
361
|
-
|
|
362
318
|
/** hints for input */
|
|
363
319
|
placeholder: PropTypes.string,
|
|
364
|
-
|
|
365
320
|
/** error for input */
|
|
366
321
|
error: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
|
|
367
|
-
|
|
368
322
|
/** prevent all event if true, hide all icon */
|
|
369
323
|
disabled: PropTypes.bool,
|
|
370
|
-
|
|
371
324
|
/** hidden ensign icon if true */
|
|
372
325
|
hiddenEnsign: PropTypes.bool,
|
|
373
|
-
|
|
374
326
|
/** prevent all event if true */
|
|
375
327
|
readOnly: PropTypes.bool,
|
|
376
|
-
|
|
377
328
|
/** auto focus after first render */
|
|
378
329
|
autoFocus: PropTypes.bool,
|
|
379
|
-
|
|
380
330
|
/** At least one character is required */
|
|
381
331
|
required: PropTypes.bool,
|
|
382
|
-
|
|
383
332
|
/** props of input in PhoneInput component */
|
|
384
333
|
inputProps: PropTypes.object,
|
|
385
|
-
|
|
386
334
|
/** style inline of input in PhoneInput component */
|
|
387
335
|
inputStyle: PropTypes.object,
|
|
388
|
-
|
|
389
336
|
/** The function to get ref of Dropdown component */
|
|
390
337
|
refs: PropTypes.func,
|
|
391
|
-
|
|
392
338
|
/** on key down function */
|
|
393
339
|
onKeyDown: PropTypes.func,
|
|
394
|
-
|
|
395
340
|
/** on key up function */
|
|
396
341
|
onKeyUp: PropTypes.func,
|
|
397
|
-
|
|
398
342
|
/** on input function */
|
|
399
343
|
onInput: PropTypes.func,
|
|
400
|
-
|
|
401
344
|
/**
|
|
402
345
|
* on change function. Return a object, example:<br/>
|
|
403
346
|
* {<br/>
|
|
@@ -407,19 +350,14 @@ PhoneInput.propTypes = {
|
|
|
407
350
|
* }
|
|
408
351
|
*/
|
|
409
352
|
onChange: PropTypes.func,
|
|
410
|
-
|
|
411
353
|
/** on blur function */
|
|
412
354
|
onBlur: PropTypes.func,
|
|
413
|
-
|
|
414
355
|
/** on focus function */
|
|
415
356
|
onFocus: PropTypes.func,
|
|
416
|
-
|
|
417
357
|
/** inputRef of PhoneInput component */
|
|
418
358
|
inputRef: PropTypes.any,
|
|
419
|
-
|
|
420
359
|
/** [Props](https://core.diginet.com.vn/ui/?path=/docs/form-control-text-label) of label. */
|
|
421
360
|
labelProps: PropTypes.object,
|
|
422
|
-
|
|
423
361
|
/** [Props](https://core.diginet.com.vn/ui/?path=/story/form-control-text-helpertext) of helper text. */
|
|
424
362
|
helperTextProps: PropTypes.object
|
|
425
363
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/** @jsxRuntime classic */
|
|
2
|
-
|
|
3
2
|
/** @jsx jsx */
|
|
4
3
|
import { css, jsx } from '@emotion/core';
|
|
5
4
|
import PropTypes from 'prop-types';
|
|
@@ -45,30 +44,26 @@ const Radio = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
|
|
|
45
44
|
if (!inputRef) {
|
|
46
45
|
inputRef = useRef(null);
|
|
47
46
|
}
|
|
48
|
-
|
|
49
47
|
const [unique] = useState(randomString(10, {
|
|
50
48
|
allowNumber: false,
|
|
51
49
|
allowSymbol: false
|
|
52
50
|
}));
|
|
53
51
|
const [checkedState, setCheckedState] = useState(Boolean(checked !== undefined ? checked : defaultChecked));
|
|
54
|
-
|
|
55
52
|
const _formCheckInputCSS = formCheckInputCSS(width);
|
|
56
|
-
|
|
57
53
|
const _formCheckLabelCSS = formCheckLabelCSS(width);
|
|
58
|
-
|
|
59
54
|
const handleChange = e => {
|
|
60
55
|
if (disabled || readOnly) return;
|
|
61
56
|
if (checked === undefined) setCheckedState(true);
|
|
62
57
|
e = {
|
|
63
58
|
value: value,
|
|
64
|
-
target: {
|
|
59
|
+
target: {
|
|
60
|
+
...inputRef.current,
|
|
65
61
|
checked: true,
|
|
66
62
|
value: value
|
|
67
63
|
}
|
|
68
64
|
};
|
|
69
65
|
if (onChange) onChange(e);
|
|
70
66
|
};
|
|
71
|
-
|
|
72
67
|
useEffect(() => {
|
|
73
68
|
if (checked !== undefined) setCheckedState(Boolean(checked));
|
|
74
69
|
}, [checked]);
|
|
@@ -79,7 +74,8 @@ const Radio = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
|
|
|
79
74
|
className: ['DGN-UI-Radio', className].join(' ').trim().replace(/\s+/g, ' '),
|
|
80
75
|
ref: ref,
|
|
81
76
|
...props
|
|
82
|
-
}, jsx("input", {
|
|
77
|
+
}, jsx("input", {
|
|
78
|
+
...inputProps,
|
|
83
79
|
disabled: disabled,
|
|
84
80
|
ref: inputRef,
|
|
85
81
|
name: name,
|
|
@@ -109,7 +105,6 @@ const formCheckCSS = css`
|
|
|
109
105
|
${displayBlock};
|
|
110
106
|
padding: ${spacing(0.5)}px;
|
|
111
107
|
`;
|
|
112
|
-
|
|
113
108
|
const formCheckInputCSS = width => css`
|
|
114
109
|
${positionAbsolute};
|
|
115
110
|
${borderBox};
|
|
@@ -131,7 +126,6 @@ const formCheckInputCSS = width => css`
|
|
|
131
126
|
border-color: ${clSystemActive};
|
|
132
127
|
}
|
|
133
128
|
`;
|
|
134
|
-
|
|
135
129
|
const formCheckLabelCSS = width => css`
|
|
136
130
|
${displayBlock};
|
|
137
131
|
${positionRelative};
|
|
@@ -170,7 +164,6 @@ const formCheckLabelCSS = width => css`
|
|
|
170
164
|
transition: 0.28s ease;
|
|
171
165
|
}
|
|
172
166
|
`;
|
|
173
|
-
|
|
174
167
|
Radio.defaultProps = {
|
|
175
168
|
disabled: false,
|
|
176
169
|
readOnly: false,
|
|
@@ -182,31 +175,22 @@ Radio.defaultProps = {
|
|
|
182
175
|
Radio.propTypes = {
|
|
183
176
|
/** If `true`, the component is disabled. */
|
|
184
177
|
disabled: PropTypes.bool,
|
|
185
|
-
|
|
186
178
|
/** If `true`, the component is checked. */
|
|
187
179
|
checked: PropTypes.bool,
|
|
188
|
-
|
|
189
180
|
/** If `true`, the component is defaultChecked. */
|
|
190
181
|
defaultChecked: PropTypes.bool,
|
|
191
|
-
|
|
192
182
|
/** Id is randomized randomly to avoid duplication. */
|
|
193
183
|
id: PropTypes.string,
|
|
194
|
-
|
|
195
184
|
/** The id of the `input` element. */
|
|
196
185
|
name: PropTypes.string,
|
|
197
|
-
|
|
198
186
|
/** The value of the component. The DOM API casts this to a string. */
|
|
199
187
|
value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
200
|
-
|
|
201
188
|
/** The name of the Radio is displayed on the interface */
|
|
202
189
|
label: PropTypes.string,
|
|
203
|
-
|
|
204
190
|
/** The class for Radio component */
|
|
205
191
|
className: PropTypes.string,
|
|
206
|
-
|
|
207
192
|
/** Props for input. */
|
|
208
193
|
inputProps: PropTypes.object,
|
|
209
|
-
|
|
210
194
|
/** Callback fired when the state is changed.
|
|
211
195
|
*
|
|
212
196
|
* @param {object} event The event source of the callback.
|
|
@@ -214,13 +198,10 @@ Radio.propTypes = {
|
|
|
214
198
|
* You can pull out the new checked state by accessing `event.target.checked` (boolean).
|
|
215
199
|
* */
|
|
216
200
|
onChange: PropTypes.func,
|
|
217
|
-
|
|
218
201
|
/** Prevent all event if true. */
|
|
219
202
|
readOnly: PropTypes.bool,
|
|
220
|
-
|
|
221
203
|
/** Props for Typography of label. */
|
|
222
204
|
labelProps: PropTypes.object,
|
|
223
|
-
|
|
224
205
|
/** If `true`, the label will indicate that the Radio is required. */
|
|
225
206
|
required: PropTypes.bool
|
|
226
207
|
};
|