@salutejs/plasma-new-hope 0.153.0-dev.0 → 0.154.0-canary.1421.11039037651.0
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/components/Button/Button.js +0 -1
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/DatePicker/RangeDate/RangeDate.js +42 -2
- package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
- package/cjs/components/DatePicker/SingleDate/SingleDate.js +31 -3
- package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
- package/cjs/components/DatePicker/hooks/useDatePicker.js +34 -1
- package/cjs/components/DatePicker/hooks/useDatePicker.js.map +1 -1
- package/cjs/components/DatePicker/utils/setInitValue.js +12 -0
- package/cjs/components/DatePicker/utils/setInitValue.js.map +1 -0
- package/cjs/components/Slider/Slider.js +20 -6
- package/cjs/components/Slider/Slider.js.map +1 -1
- package/cjs/components/Slider/components/Double/Double.js +40 -2
- package/cjs/components/Slider/components/Double/Double.js.map +1 -1
- package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +100 -0
- package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js.map +1 -0
- package/cjs/components/Slider/components/Single/Single.js +51 -13
- package/cjs/components/Slider/components/Single/Single.js.map +1 -1
- package/cjs/components/Slider/utils/index.js +6 -0
- package/cjs/components/Slider/utils/index.js.map +1 -1
- package/cjs/components/TextArea/TextArea.js +3 -2
- package/cjs/components/TextArea/TextArea.js.map +1 -1
- package/cjs/hooks/useForm.js +131 -0
- package/cjs/hooks/useForm.js.map +1 -0
- package/cjs/index.js +5 -0
- package/cjs/index.js.map +1 -1
- package/cjs/utils/index.js.map +1 -1
- package/cjs/utils/inputHidden.js +12 -0
- package/cjs/utils/inputHidden.js.map +1 -0
- package/cjs/utils/setRefList.js +28 -0
- package/cjs/utils/setRefList.js.map +1 -0
- package/emotion/cjs/components/Button/Button.js +0 -1
- package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +42 -2
- package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +31 -3
- package/emotion/cjs/components/DatePicker/hooks/useDatePicker.js +34 -1
- package/emotion/cjs/components/DatePicker/utils/setInitValue.js +11 -0
- package/emotion/cjs/components/Slider/Slider.js +15 -6
- package/emotion/cjs/components/Slider/components/Double/Double.js +40 -2
- package/emotion/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +103 -0
- package/emotion/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js +5 -0
- package/emotion/cjs/components/Slider/components/Single/Single.js +46 -8
- package/emotion/cjs/components/Slider/components/index.js +11 -0
- package/emotion/cjs/components/Slider/utils/index.js +6 -1
- package/emotion/cjs/components/TextArea/TextArea.js +3 -3
- package/emotion/cjs/examples/plasma_b2c/components/Form/Form.stories.tsx +256 -0
- package/emotion/cjs/examples/plasma_web/components/Form/Form.stories.tsx +237 -0
- package/emotion/cjs/hooks/index.js +8 -1
- package/emotion/cjs/hooks/useForm.js +137 -0
- package/emotion/cjs/types/FormType.js +5 -0
- package/emotion/cjs/utils/index.js +15 -0
- package/emotion/cjs/utils/inputHidden.js +11 -0
- package/emotion/cjs/utils/setRefList.js +27 -0
- package/emotion/es/components/Button/Button.js +0 -1
- package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +42 -2
- package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +31 -3
- package/emotion/es/components/DatePicker/hooks/useDatePicker.js +34 -1
- package/emotion/es/components/DatePicker/utils/setInitValue.js +5 -0
- package/emotion/es/components/Slider/Slider.js +16 -6
- package/emotion/es/components/Slider/components/Double/Double.js +41 -3
- package/emotion/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +94 -0
- package/emotion/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js +1 -0
- package/emotion/es/components/Slider/components/Single/Single.js +47 -9
- package/emotion/es/components/Slider/components/index.js +1 -0
- package/emotion/es/components/Slider/utils/index.js +5 -0
- package/emotion/es/components/TextArea/TextArea.js +4 -4
- package/emotion/es/examples/plasma_b2c/components/Form/Form.stories.tsx +256 -0
- package/emotion/es/examples/plasma_web/components/Form/Form.stories.tsx +237 -0
- package/emotion/es/hooks/index.js +2 -1
- package/emotion/es/hooks/useForm.js +128 -0
- package/emotion/es/types/FormType.js +1 -0
- package/emotion/es/utils/index.js +1 -0
- package/emotion/es/utils/inputHidden.js +4 -0
- package/emotion/es/utils/setRefList.js +20 -0
- package/es/components/Button/Button.js +0 -1
- package/es/components/Button/Button.js.map +1 -1
- package/es/components/DatePicker/RangeDate/RangeDate.js +42 -2
- package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
- package/es/components/DatePicker/SingleDate/SingleDate.js +31 -3
- package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
- package/es/components/DatePicker/hooks/useDatePicker.js +34 -1
- package/es/components/DatePicker/hooks/useDatePicker.js.map +1 -1
- package/es/components/DatePicker/utils/setInitValue.js +8 -0
- package/es/components/DatePicker/utils/setInitValue.js.map +1 -0
- package/es/components/Slider/Slider.js +21 -7
- package/es/components/Slider/Slider.js.map +1 -1
- package/es/components/Slider/components/Double/Double.js +41 -3
- package/es/components/Slider/components/Double/Double.js.map +1 -1
- package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +96 -0
- package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js.map +1 -0
- package/es/components/Slider/components/Single/Single.js +47 -9
- package/es/components/Slider/components/Single/Single.js.map +1 -1
- package/es/components/Slider/utils/index.js +6 -1
- package/es/components/Slider/utils/index.js.map +1 -1
- package/es/components/TextArea/TextArea.js +3 -2
- package/es/components/TextArea/TextArea.js.map +1 -1
- package/es/hooks/useForm.js +127 -0
- package/es/hooks/useForm.js.map +1 -0
- package/es/index.js +2 -0
- package/es/index.js.map +1 -1
- package/es/utils/index.js.map +1 -1
- package/es/utils/inputHidden.js +8 -0
- package/es/utils/inputHidden.js.map +1 -0
- package/es/utils/setRefList.js +23 -0
- package/es/utils/setRefList.js.map +1 -0
- package/package.json +3 -2
- package/styled-components/cjs/components/Button/Button.js +0 -1
- package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +42 -2
- package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +31 -3
- package/styled-components/cjs/components/DatePicker/hooks/useDatePicker.js +34 -1
- package/styled-components/cjs/components/DatePicker/utils/setInitValue.js +11 -0
- package/styled-components/cjs/components/Slider/Slider.js +15 -6
- package/styled-components/cjs/components/Slider/components/Double/Double.js +40 -2
- package/styled-components/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +103 -0
- package/styled-components/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js +5 -0
- package/styled-components/cjs/components/Slider/components/Single/Single.js +46 -8
- package/styled-components/cjs/components/Slider/components/index.js +11 -0
- package/styled-components/cjs/components/Slider/utils/index.js +6 -1
- package/styled-components/cjs/components/TextArea/TextArea.js +2 -2
- package/styled-components/cjs/examples/plasma_b2c/components/Form/Form.stories.tsx +256 -0
- package/styled-components/cjs/examples/plasma_web/components/Form/Form.stories.tsx +237 -0
- package/styled-components/cjs/hooks/index.js +8 -1
- package/styled-components/cjs/hooks/useForm.js +137 -0
- package/styled-components/cjs/types/FormType.js +5 -0
- package/styled-components/cjs/utils/index.js +15 -0
- package/styled-components/cjs/utils/inputHidden.js +11 -0
- package/styled-components/cjs/utils/setRefList.js +27 -0
- package/styled-components/es/components/Button/Button.js +0 -1
- package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +42 -2
- package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +31 -3
- package/styled-components/es/components/DatePicker/hooks/useDatePicker.js +34 -1
- package/styled-components/es/components/DatePicker/utils/setInitValue.js +5 -0
- package/styled-components/es/components/Slider/Slider.js +16 -6
- package/styled-components/es/components/Slider/components/Double/Double.js +41 -3
- package/styled-components/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +94 -0
- package/styled-components/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js +1 -0
- package/styled-components/es/components/Slider/components/Single/Single.js +47 -9
- package/styled-components/es/components/Slider/components/index.js +1 -0
- package/styled-components/es/components/Slider/utils/index.js +5 -0
- package/styled-components/es/components/TextArea/TextArea.js +3 -3
- package/styled-components/es/examples/plasma_b2c/components/Form/Form.stories.tsx +256 -0
- package/styled-components/es/examples/plasma_web/components/Form/Form.stories.tsx +237 -0
- package/styled-components/es/hooks/index.js +2 -1
- package/styled-components/es/hooks/useForm.js +128 -0
- package/styled-components/es/types/FormType.js +1 -0
- package/styled-components/es/utils/index.js +1 -0
- package/styled-components/es/utils/inputHidden.js +4 -0
- package/styled-components/es/utils/setRefList.js +20 -0
- package/types/components/Button/Button.d.ts.map +1 -1
- package/types/components/DatePicker/DatePickerBase.types.d.ts +7 -0
- package/types/components/DatePicker/DatePickerBase.types.d.ts.map +1 -1
- package/types/components/DatePicker/RangeDate/RangeDate.d.ts +2 -0
- package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
- package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +4 -0
- package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
- package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
- package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +10 -0
- package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
- package/types/components/DatePicker/hooks/useDatePicker.d.ts +1 -1
- package/types/components/DatePicker/hooks/useDatePicker.d.ts.map +1 -1
- package/types/components/DatePicker/utils/setInitValue.d.ts +2 -0
- package/types/components/DatePicker/utils/setInitValue.d.ts.map +1 -0
- package/types/components/Slider/Slider.d.ts.map +1 -1
- package/types/components/Slider/Slider.types.d.ts +2 -2
- package/types/components/Slider/Slider.types.d.ts.map +1 -1
- package/types/components/Slider/components/Double/Double.d.ts.map +1 -1
- package/types/components/Slider/components/Double/Double.types.d.ts +2 -0
- package/types/components/Slider/components/Double/Double.types.d.ts.map +1 -1
- package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.d.ts +4 -0
- package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.d.ts.map +1 -0
- package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.d.ts +40 -0
- package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.d.ts.map +1 -0
- package/types/components/Slider/components/Single/Single.d.ts.map +1 -1
- package/types/components/Slider/components/Single/Single.types.d.ts +35 -5
- package/types/components/Slider/components/Single/Single.types.d.ts.map +1 -1
- package/types/components/Slider/components/index.d.ts +2 -0
- package/types/components/Slider/components/index.d.ts.map +1 -1
- package/types/components/Slider/utils/index.d.ts +1 -0
- package/types/components/Slider/utils/index.d.ts.map +1 -1
- package/types/components/TextArea/TextArea.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts +1 -0
- package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Slider/Slider.d.ts +47 -1
- package/types/examples/plasma_b2c/components/Slider/Slider.d.ts.map +1 -1
- package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts +1 -0
- package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Slider/Slider.d.ts +47 -1
- package/types/examples/plasma_web/components/Slider/Slider.d.ts.map +1 -1
- package/types/hooks/index.d.ts +1 -0
- package/types/hooks/index.d.ts.map +1 -1
- package/types/hooks/useForm.d.ts +10 -0
- package/types/hooks/useForm.d.ts.map +1 -0
- package/types/types/FormType.d.ts +13 -0
- package/types/types/FormType.d.ts.map +1 -0
- package/types/utils/index.d.ts +1 -0
- package/types/utils/index.d.ts.map +1 -1
- package/types/utils/inputHidden.d.ts +2 -0
- package/types/utils/inputHidden.d.ts.map +1 -0
- package/types/utils/setRefList.d.ts +6 -0
- package/types/utils/setRefList.d.ts.map +1 -0
@@ -0,0 +1,237 @@
|
|
1
|
+
import { useForm as useReactHookForm, Controller } from 'react-hook-form';
|
2
|
+
import React from 'react';
|
3
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
4
|
+
|
5
|
+
import { WithTheme } from '../../../_helpers';
|
6
|
+
import { Button } from '../Button/Button';
|
7
|
+
import { TextField } from '../TextField/TextField';
|
8
|
+
import { TextArea } from '../TextArea/TextArea';
|
9
|
+
import { Checkbox } from '../Checkbox/Checkbox';
|
10
|
+
import { Switch } from '../Switch/Switch';
|
11
|
+
import { Radiobox } from '../Radiobox/Radiobox';
|
12
|
+
import { RadioGroup } from '../../../../components/Radiobox';
|
13
|
+
import { Slider } from '../Slider/Slider';
|
14
|
+
import { useForm } from '../../../../hooks';
|
15
|
+
import { DatePicker, DatePickerRange } from '../DatePicker/DatePicker';
|
16
|
+
|
17
|
+
type StoryDropdownProps = {};
|
18
|
+
|
19
|
+
const langName = 'language';
|
20
|
+
const itemsRadiobox = [
|
21
|
+
{ langName, value: 'c', label: 'C', disabled: false },
|
22
|
+
{ langName, value: 'cpp', label: 'C++', disabled: false },
|
23
|
+
{ langName, value: 'assembly', label: 'Assembly', disabled: false },
|
24
|
+
];
|
25
|
+
|
26
|
+
const PlasmaForm = () => {
|
27
|
+
const onSubmit = (data) => {
|
28
|
+
console.log(data);
|
29
|
+
};
|
30
|
+
|
31
|
+
const { formRef, formData } = useForm(onSubmit, {
|
32
|
+
textfield: 'textfield',
|
33
|
+
textarea: 'textarea',
|
34
|
+
checkbox: 'checkobox',
|
35
|
+
switch: true,
|
36
|
+
radiobox: 'c',
|
37
|
+
slider: 10,
|
38
|
+
sliderd: [10, 20],
|
39
|
+
datepicker: '12.09.2024',
|
40
|
+
datepickerRange: ['09.09.2024', '12.09.2024'],
|
41
|
+
});
|
42
|
+
|
43
|
+
return (
|
44
|
+
<form onSubmit={formData} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }} ref={formRef}>
|
45
|
+
<TextField name="textfield" placeholder="Textfield" required={false} />
|
46
|
+
<TextArea name="textarea" autoResize placeholder="Textarea" />
|
47
|
+
<Checkbox name="checkbox" label="Checkbox" />
|
48
|
+
<Switch name="switch" label="Switch" labelPosition="after" />
|
49
|
+
<RadioGroup aria-labelledby="radiogroup-title-id">
|
50
|
+
<div id="radiogroup-title-id" style={{ margin: '1rem 0', fontWeight: '600' }}>
|
51
|
+
Выберите язык программирования для изучения.
|
52
|
+
</div>
|
53
|
+
{itemsRadiobox.map((item) => (
|
54
|
+
<Radiobox
|
55
|
+
name="radiobox"
|
56
|
+
key={item.value}
|
57
|
+
value={item.value}
|
58
|
+
label={item.label}
|
59
|
+
disabled={item.disabled}
|
60
|
+
/>
|
61
|
+
))}
|
62
|
+
</RadioGroup>
|
63
|
+
<Slider name="slider" label="Slider" type="single" min={0} max={100} />
|
64
|
+
<Slider name="sliderd" label="Slider" type="double" min={0} max={100} />
|
65
|
+
<DatePicker label="DatePicker" name="datepicker" />
|
66
|
+
<DatePickerRange label="DatePicker" name="datepickerRange" />
|
67
|
+
<Button type="submit">Отправить</Button>
|
68
|
+
</form>
|
69
|
+
);
|
70
|
+
};
|
71
|
+
|
72
|
+
const meta: Meta<StoryDropdownProps> = {
|
73
|
+
title: 'plasma_web/Form',
|
74
|
+
decorators: [WithTheme],
|
75
|
+
component: PlasmaForm,
|
76
|
+
};
|
77
|
+
|
78
|
+
export default meta;
|
79
|
+
|
80
|
+
const StoryPlasmaForm = () => {
|
81
|
+
return <PlasmaForm />;
|
82
|
+
};
|
83
|
+
|
84
|
+
export const DefaultPlasmaForm: StoryObj<StoryDropdownProps> = {
|
85
|
+
render: () => <StoryPlasmaForm />,
|
86
|
+
};
|
87
|
+
|
88
|
+
const DefaultForm = () => {
|
89
|
+
const onSubmit = (event) => {
|
90
|
+
event.preventDefault();
|
91
|
+
|
92
|
+
const fData = new FormData(event.target);
|
93
|
+
|
94
|
+
for (const p of fData) {
|
95
|
+
const name = p[0];
|
96
|
+
const value = p[1];
|
97
|
+
|
98
|
+
console.log(name, value);
|
99
|
+
}
|
100
|
+
};
|
101
|
+
return (
|
102
|
+
<form onSubmit={onSubmit} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
|
103
|
+
<TextField name="textfield" placeholder="Textfield" required={false} />
|
104
|
+
<TextArea name="textarea" autoResize placeholder="Textarea" />
|
105
|
+
<Checkbox name="checkbox" label="Checkbox" />
|
106
|
+
<Switch name="switch" label="Switch" labelPosition="after" />
|
107
|
+
<RadioGroup aria-labelledby="radiogroup-title-id">
|
108
|
+
<div id="radiogroup-title-id" style={{ margin: '1rem 0', fontWeight: '600' }}>
|
109
|
+
Выберите язык программирования для изучения.
|
110
|
+
</div>
|
111
|
+
{itemsRadiobox.map((item) => (
|
112
|
+
<Radiobox
|
113
|
+
name="radiobox"
|
114
|
+
key={item.value}
|
115
|
+
value={item.value}
|
116
|
+
label={item.label}
|
117
|
+
disabled={item.disabled}
|
118
|
+
/>
|
119
|
+
))}
|
120
|
+
</RadioGroup>
|
121
|
+
<Slider name="slider" label="Slider" type="single" min={0} max={100} />
|
122
|
+
<DatePicker label="DatePicker" name="datepicker" />
|
123
|
+
<Button type="submit">Отправить</Button>
|
124
|
+
</form>
|
125
|
+
);
|
126
|
+
};
|
127
|
+
|
128
|
+
const StoryDefaultForm = () => {
|
129
|
+
return <DefaultForm />;
|
130
|
+
};
|
131
|
+
|
132
|
+
export const FormDefault: StoryObj<StoryDropdownProps> = {
|
133
|
+
render: () => <StoryDefaultForm />,
|
134
|
+
};
|
135
|
+
|
136
|
+
const DefaultUseForm = () => {
|
137
|
+
const { register, handleSubmit } = useReactHookForm();
|
138
|
+
const onSubmit = (data) => {
|
139
|
+
console.log(data);
|
140
|
+
};
|
141
|
+
|
142
|
+
return (
|
143
|
+
<form onSubmit={handleSubmit(onSubmit)} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
|
144
|
+
<TextField {...register('textfield')} placeholder="Textfield" required={false} />
|
145
|
+
<TextArea {...register('textarea')} autoResize placeholder="Textarea" />
|
146
|
+
<Checkbox {...register('checkbox')} label="Checkbox" />
|
147
|
+
<Switch {...register('switch')} label="Switch" labelPosition="after" />
|
148
|
+
<RadioGroup aria-labelledby="radiogroup-title-id">
|
149
|
+
<div id="radiogroup-title-id" style={{ margin: '1rem 0', fontWeight: '600' }}>
|
150
|
+
Выберите язык программирования для изучения.
|
151
|
+
</div>
|
152
|
+
{itemsRadiobox.map((item) => (
|
153
|
+
<Radiobox
|
154
|
+
{...register('radiobox')}
|
155
|
+
key={item.value}
|
156
|
+
value={item.value}
|
157
|
+
label={item.label}
|
158
|
+
disabled={item.disabled}
|
159
|
+
/>
|
160
|
+
))}
|
161
|
+
</RadioGroup>
|
162
|
+
<Slider {...register('slider')} label="Slider" type="single" min={0} max={100} />
|
163
|
+
<Slider {...register('sliderDouble')} label="Slider" type="double" min={0} max={100} />
|
164
|
+
<DatePicker {...register('datePicker')} label="DatePicker" />
|
165
|
+
<Button type="submit">Отправить</Button>
|
166
|
+
</form>
|
167
|
+
);
|
168
|
+
};
|
169
|
+
|
170
|
+
const StoryHookForm = () => {
|
171
|
+
return <DefaultUseForm />;
|
172
|
+
};
|
173
|
+
|
174
|
+
export const UseHookForm: StoryObj<StoryDropdownProps> = {
|
175
|
+
render: () => <StoryHookForm />,
|
176
|
+
};
|
177
|
+
|
178
|
+
const DefaultUseFormController = () => {
|
179
|
+
const { control, handleSubmit } = useReactHookForm({
|
180
|
+
defaultValues: {
|
181
|
+
textfield: 'John Doe',
|
182
|
+
textarea: 'Default description',
|
183
|
+
checkbox: true,
|
184
|
+
switch: true,
|
185
|
+
radiobox: 'c',
|
186
|
+
slider: 10,
|
187
|
+
sliderd: [10, 20],
|
188
|
+
},
|
189
|
+
});
|
190
|
+
const onSubmit = (data) => {
|
191
|
+
console.log(data);
|
192
|
+
};
|
193
|
+
|
194
|
+
return (
|
195
|
+
<form onSubmit={handleSubmit(onSubmit)} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
|
196
|
+
<Controller
|
197
|
+
name="textfield"
|
198
|
+
control={control}
|
199
|
+
render={({ field }) => <TextField {...field} label="TextField" />}
|
200
|
+
/>
|
201
|
+
<Controller
|
202
|
+
name="textarea"
|
203
|
+
control={control}
|
204
|
+
render={({ field }) => <TextArea {...field} label="TextArea" />}
|
205
|
+
/>
|
206
|
+
<Controller
|
207
|
+
name="checkbox"
|
208
|
+
control={control}
|
209
|
+
render={({ field }) => <Checkbox {...field} checked={field.value} label="Checkbox" />}
|
210
|
+
/>
|
211
|
+
<Controller
|
212
|
+
name="switch"
|
213
|
+
control={control}
|
214
|
+
render={({ field }) => <Switch {...field} checked={field.value} labelPosition="after" label="Switch" />}
|
215
|
+
/>
|
216
|
+
<Controller
|
217
|
+
name="slider"
|
218
|
+
control={control}
|
219
|
+
render={({ field }) => <Slider {...field} type="single" label="Slider" min={0} max={100} />}
|
220
|
+
/>
|
221
|
+
<Controller
|
222
|
+
name="sliderd"
|
223
|
+
control={control}
|
224
|
+
render={({ field }) => <Slider {...field} type="double" label="Slider" min={0} max={100} />}
|
225
|
+
/>
|
226
|
+
<Button type="submit">Отправить</Button>
|
227
|
+
</form>
|
228
|
+
);
|
229
|
+
};
|
230
|
+
|
231
|
+
const StoryHookFormController = () => {
|
232
|
+
return <DefaultUseFormController />;
|
233
|
+
};
|
234
|
+
|
235
|
+
export const UseHookFormController: StoryObj<StoryDropdownProps> = {
|
236
|
+
render: () => <StoryHookFormController />,
|
237
|
+
};
|
@@ -4,4 +4,5 @@ export { usePreviousValue } from './usePreviousValue';
|
|
4
4
|
export { useForceUpdate } from './useForceUpdate';
|
5
5
|
export { useDidMountEffect } from './useDidMountEffect';
|
6
6
|
export { useOutsideClick } from './useOutsideClick';
|
7
|
-
export { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
|
7
|
+
export { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
|
8
|
+
export { useForm } from './useForm';
|
@@ -0,0 +1,128 @@
|
|
1
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
2
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
4
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
5
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
6
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
7
|
+
import React, { useEffect } from 'react';
|
8
|
+
var initData = function initData(ref, defaultValues) {
|
9
|
+
if (!ref.current) {
|
10
|
+
return;
|
11
|
+
}
|
12
|
+
var form = ref.current;
|
13
|
+
var items = form.elements;
|
14
|
+
for (var i = 0; i < items.length; i++) {
|
15
|
+
var item = items[i];
|
16
|
+
var _name = item.name,
|
17
|
+
value = item.value,
|
18
|
+
type = item.type;
|
19
|
+
if ((type === 'text' || type === 'textarea') && defaultValues[_name]) {
|
20
|
+
item.value = String(defaultValues[_name]);
|
21
|
+
}
|
22
|
+
if (type === 'checkbox' && defaultValues[_name]) {
|
23
|
+
item.checked = Boolean(defaultValues[_name]);
|
24
|
+
}
|
25
|
+
if (type === 'radio' && defaultValues[_name]) {
|
26
|
+
item.checked = defaultValues[_name] === value;
|
27
|
+
}
|
28
|
+
if (type === 'number' && defaultValues[_name]) {
|
29
|
+
var sliderType = item.getAttribute('datatype');
|
30
|
+
if (sliderType === 'slider-single') {
|
31
|
+
item.setAttribute('defaultValue', String(defaultValues[_name]));
|
32
|
+
var event = new Event('setInitValue');
|
33
|
+
item.dispatchEvent(event);
|
34
|
+
}
|
35
|
+
if (sliderType === 'slider-double') {
|
36
|
+
var isMax = item.getAttribute('data-slidertype') === 'max' ? 1 : 0;
|
37
|
+
var _data = defaultValues[_name];
|
38
|
+
item.setAttribute('defaultValue', String(_data[isMax]));
|
39
|
+
var _event = new Event('setInitValue');
|
40
|
+
item.dispatchEvent(_event);
|
41
|
+
}
|
42
|
+
}
|
43
|
+
if (type === 'hidden') {
|
44
|
+
var datepickerType = item.getAttribute('datatype');
|
45
|
+
if (datepickerType === 'datepicker-single') {
|
46
|
+
item.setAttribute('defaultValue', String(defaultValues[_name]));
|
47
|
+
var _event2 = new Event('setInitValue');
|
48
|
+
item.dispatchEvent(_event2);
|
49
|
+
}
|
50
|
+
if (datepickerType === 'datepicker-double') {
|
51
|
+
var isTo = item.getAttribute('data-datepicker') === 'to' ? 1 : 0;
|
52
|
+
var _data2 = defaultValues[_name];
|
53
|
+
item.setAttribute('defaultValue', String(_data2[isTo]));
|
54
|
+
var _event3 = new Event('setInitValue');
|
55
|
+
item.dispatchEvent(_event3);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
};
|
60
|
+
var valideParams = function valideParams(name) {
|
61
|
+
return name && name !== '';
|
62
|
+
};
|
63
|
+
export var useForm = function useForm(onSubmit, defaultValues) {
|
64
|
+
var formRef = /*#__PURE__*/React.createRef();
|
65
|
+
useEffect(function () {
|
66
|
+
initData(formRef, defaultValues);
|
67
|
+
}, []);
|
68
|
+
var formData = function formData(event) {
|
69
|
+
event.preventDefault();
|
70
|
+
var result = {};
|
71
|
+
var form = event.target;
|
72
|
+
var items = form.elements;
|
73
|
+
for (var i = 0; i < items.length; i++) {
|
74
|
+
var item = items[i];
|
75
|
+
var _name2 = item.name,
|
76
|
+
value = item.value,
|
77
|
+
type = item.type;
|
78
|
+
if ((type === 'text' || type === 'textarea') && valideParams(_name2)) {
|
79
|
+
result[_name2] = value;
|
80
|
+
}
|
81
|
+
if (type === 'checkbox' && valideParams(_name2)) {
|
82
|
+
result[_name2] = item.checked;
|
83
|
+
}
|
84
|
+
if (type === 'radio' && valideParams(_name2)) {
|
85
|
+
if (item.checked) {
|
86
|
+
result[_name2] = value;
|
87
|
+
} else if (!(_name2 in result)) {
|
88
|
+
result[_name2] = null;
|
89
|
+
}
|
90
|
+
}
|
91
|
+
if (type === 'number' && valideParams(_name2)) {
|
92
|
+
var sliderType = item.getAttribute('datatype');
|
93
|
+
if (sliderType === 'slider-single') {
|
94
|
+
result[_name2] = value;
|
95
|
+
}
|
96
|
+
if (sliderType === 'slider-double') {
|
97
|
+
var isMin = item.getAttribute('data-slidertype') === 'min';
|
98
|
+
if (isMin) {
|
99
|
+
result[_name2] = [Number(value)];
|
100
|
+
}
|
101
|
+
if (!isMin && Array.isArray(result[_name2])) {
|
102
|
+
result[_name2] = [].concat(_toConsumableArray(result[_name2]), [Number(value)]);
|
103
|
+
}
|
104
|
+
}
|
105
|
+
}
|
106
|
+
if (type === 'hidden' && valideParams(_name2)) {
|
107
|
+
var _sliderType = item.getAttribute('datatype');
|
108
|
+
if (_sliderType === 'datepicker-single') {
|
109
|
+
result[_name2] = value;
|
110
|
+
}
|
111
|
+
if (_sliderType === 'datepicker-double') {
|
112
|
+
var _isMin = item.getAttribute('data-datepicker') === 'from';
|
113
|
+
if (_isMin) {
|
114
|
+
result[_name2] = [String(value)];
|
115
|
+
}
|
116
|
+
if (!_isMin && Array.isArray(result[_name2])) {
|
117
|
+
result[_name2] = [].concat(_toConsumableArray(result[_name2]), [String(value)]);
|
118
|
+
}
|
119
|
+
}
|
120
|
+
}
|
121
|
+
}
|
122
|
+
onSubmit(result);
|
123
|
+
};
|
124
|
+
return {
|
125
|
+
formRef: formRef,
|
126
|
+
formData: formData
|
127
|
+
};
|
128
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -3,6 +3,7 @@ export { extractTextFrom } from './extractTextFrom';
|
|
3
3
|
export { getSizeValueFromProp } from './getSizeValueFromProp';
|
4
4
|
export { IS_REACT_18, safeUseId } from './react';
|
5
5
|
export { isNumber } from './isNumber';
|
6
|
+
export { mergeRefs, setRefList } from './setRefList';
|
6
7
|
export { isEmpty } from './isEmpty';
|
7
8
|
import * as _constants from './constants';
|
8
9
|
export { _constants as constants };
|
@@ -0,0 +1,4 @@
|
|
1
|
+
var _templateObject;
|
2
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
3
|
+
import styled from 'styled-components';
|
4
|
+
export var InputHidden = /*#__PURE__*/styled.input(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteral(["\n visibility: hidden;\n width: 0;\n height: 0;\n opacity: 0;\n margin: 0;\n padding: 0;\n border: none;\n"])));
|
@@ -0,0 +1,20 @@
|
|
1
|
+
export function mergeRefs() {
|
2
|
+
for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
|
3
|
+
refs[_key] = arguments[_key];
|
4
|
+
}
|
5
|
+
return function (val) {
|
6
|
+
setRefList.apply(void 0, [val].concat(refs));
|
7
|
+
};
|
8
|
+
}
|
9
|
+
export function setRefList(val) {
|
10
|
+
for (var _len2 = arguments.length, refs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
11
|
+
refs[_key2 - 1] = arguments[_key2];
|
12
|
+
}
|
13
|
+
refs.forEach(function (ref) {
|
14
|
+
if (typeof ref === 'function') {
|
15
|
+
ref(val);
|
16
|
+
} else if (ref != null) {
|
17
|
+
ref.current = val;
|
18
|
+
}
|
19
|
+
});
|
20
|
+
}
|
@@ -57,7 +57,6 @@ var buttonRoot = function buttonRoot(Root) {
|
|
57
57
|
value: value,
|
58
58
|
disabled: disabled,
|
59
59
|
focused: focused || outlined,
|
60
|
-
contentPlacing: contentPlacing,
|
61
60
|
className: cx(squareClass, stretchingClass, classes.buttonItem, isLoadingClass, className),
|
62
61
|
style: _objectSpread2(_objectSpread2({}, style), {}, {
|
63
62
|
'--plasma_computed-btn-br': buttonBorderRadius,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport type { CSSProperties } from 'react';\n\nimport type { RootProps } from '../../engines';\nimport { convertRoundnessMatrix } from '../../utils/roundness';\nimport { cx } from '../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as focusedCSS } from './variations/_focused/base';\nimport { base as stretchingCSS } from './variations/_stretching/base';\nimport { base as blurredCSS } from './variations/_blurred/base';\nimport type { ButtonProps, ContentPlacementMapper } from './Button.types';\nimport {\n base,\n ButtonText,\n ButtonValue,\n Loader,\n LoadWrap,\n StyledContentLeft,\n StyledContentRight,\n StyledSpinner,\n} from './Button.styles';\nimport { classes, tokens } from './Button.tokens';\n\nexport const buttonRoot = (Root: RootProps<HTMLButtonElement, ButtonProps>) =>\n forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {\n const {\n children,\n view,\n size,\n text,\n value,\n contentLeft,\n contentRight,\n contentPlacing = 'default',\n isLoading,\n loader,\n stretch,\n square,\n pin,\n disabled,\n focused,\n outlined,\n className,\n blur,\n style,\n stretching = 'auto',\n ...rest\n } = props;\n\n const txt = typeof children === 'string' ? children : text;\n\n const stretchingClass = stretch\n ? classes.filledStretching\n : classes[`${stretching}Stretching` as keyof typeof classes];\n const contentRelaxedClass = contentPlacing === 'relaxed' ? classes.contentRelaxed : undefined;\n const squareClass = square ? classes.buttonSquare : undefined;\n const isLoadingClass = isLoading ? classes.buttonLoading : undefined;\n const buttonBorderRadius = pin\n ? convertRoundnessMatrix(pin, `var(${tokens.buttonRadius})`, `var(${tokens.buttonHeight})`)\n : `var(${tokens.buttonRadius}, calc(var(${tokens.buttonHeight}) / 4))`;\n\n const contentPlacingMapper: ContentPlacementMapper = {\n default: 'center',\n relaxed: 'space-between',\n };\n\n const contentPlacementValue = contentPlacing ? contentPlacingMapper[contentPlacing] : 'center';\n\n return (\n <Root\n type=\"button\"\n ref={ref}\n view={view}\n size={size}\n value={value}\n disabled={disabled}\n focused={focused || outlined}\n
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport type { CSSProperties } from 'react';\n\nimport type { RootProps } from '../../engines';\nimport { convertRoundnessMatrix } from '../../utils/roundness';\nimport { cx } from '../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as focusedCSS } from './variations/_focused/base';\nimport { base as stretchingCSS } from './variations/_stretching/base';\nimport { base as blurredCSS } from './variations/_blurred/base';\nimport type { ButtonProps, ContentPlacementMapper } from './Button.types';\nimport {\n base,\n ButtonText,\n ButtonValue,\n Loader,\n LoadWrap,\n StyledContentLeft,\n StyledContentRight,\n StyledSpinner,\n} from './Button.styles';\nimport { classes, tokens } from './Button.tokens';\n\nexport const buttonRoot = (Root: RootProps<HTMLButtonElement, ButtonProps>) =>\n forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {\n const {\n children,\n view,\n size,\n text,\n value,\n contentLeft,\n contentRight,\n contentPlacing = 'default',\n isLoading,\n loader,\n stretch,\n square,\n pin,\n disabled,\n focused,\n outlined,\n className,\n blur,\n style,\n stretching = 'auto',\n ...rest\n } = props;\n\n const txt = typeof children === 'string' ? children : text;\n\n const stretchingClass = stretch\n ? classes.filledStretching\n : classes[`${stretching}Stretching` as keyof typeof classes];\n const contentRelaxedClass = contentPlacing === 'relaxed' ? classes.contentRelaxed : undefined;\n const squareClass = square ? classes.buttonSquare : undefined;\n const isLoadingClass = isLoading ? classes.buttonLoading : undefined;\n const buttonBorderRadius = pin\n ? convertRoundnessMatrix(pin, `var(${tokens.buttonRadius})`, `var(${tokens.buttonHeight})`)\n : `var(${tokens.buttonRadius}, calc(var(${tokens.buttonHeight}) / 4))`;\n\n const contentPlacingMapper: ContentPlacementMapper = {\n default: 'center',\n relaxed: 'space-between',\n };\n\n const contentPlacementValue = contentPlacing ? contentPlacingMapper[contentPlacing] : 'center';\n\n return (\n <Root\n type=\"button\"\n ref={ref}\n view={view}\n size={size}\n value={value}\n disabled={disabled}\n focused={focused || outlined}\n className={cx(squareClass, stretchingClass, classes.buttonItem, isLoadingClass, className)}\n style={\n {\n ...style,\n '--plasma_computed-btn-br': buttonBorderRadius,\n '--plasma_private-blur': blur,\n } as CSSProperties\n }\n {...rest}\n >\n <LoadWrap contentPlacing={contentPlacementValue} isLoading={isLoading}>\n {contentLeft && <StyledContentLeft>{contentLeft}</StyledContentLeft>}\n {txt ? <ButtonText className={contentRelaxedClass}>{txt}</ButtonText> : children}\n {value && <ButtonValue>{value}</ButtonValue>}\n {contentRight && <StyledContentRight>{contentRight}</StyledContentRight>}\n </LoadWrap>\n {isLoading && <Loader>{loader || <StyledSpinner />}</Loader>}\n </Root>\n );\n });\n\nexport const buttonConfig = {\n name: 'Button',\n tag: 'button',\n layout: buttonRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n focused: {\n css: focusedCSS,\n // TODO: isLoading => disabled\n },\n blurred: {\n css: blurredCSS,\n },\n stretching: {\n css: stretchingCSS,\n },\n },\n defaults: {\n view: 'secondary',\n size: 'm',\n stretching: 'auto',\n },\n};\n"],"names":["buttonRoot","Root","forwardRef","props","ref","children","view","size","text","value","contentLeft","contentRight","_props$contentPlacing","contentPlacing","isLoading","loader","stretch","square","pin","disabled","focused","outlined","className","blur","style","_props$stretching","stretching","rest","_objectWithoutProperties","_excluded","txt","stretchingClass","classes","filledStretching","concat","contentRelaxedClass","contentRelaxed","undefined","squareClass","buttonSquare","isLoadingClass","buttonLoading","buttonBorderRadius","convertRoundnessMatrix","tokens","buttonRadius","buttonHeight","contentPlacingMapper","relaxed","contentPlacementValue","React","createElement","_extends","type","cx","buttonItem","_objectSpread","LoadWrap","StyledContentLeft","ButtonText","ButtonValue","StyledContentRight","Loader","_StyledSpinner","StyledSpinner","buttonConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","focusedCSS","blurred","blurredCSS","stretchingCSS","defaults"],"mappings":"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"}
|
@@ -5,6 +5,8 @@ import { formatCalendarValue, formatInputValue, getDateFormatDelimiter } from '.
|
|
5
5
|
import { useDatePicker } from '../hooks/useDatePicker.js';
|
6
6
|
import { classes } from '../DatePicker.tokens.js';
|
7
7
|
import { useKeyNavigation } from '../hooks/useKeyboardNavigation.js';
|
8
|
+
import { setInitValue } from '../utils/setInitValue.js';
|
9
|
+
import { InputHidden } from '../../../utils/inputHidden.js';
|
8
10
|
import { base as base$2 } from './variations/_size/base.js';
|
9
11
|
import { base as base$1 } from './variations/_view/base.js';
|
10
12
|
import { base as base$3 } from './variations/_disabled/base.js';
|
@@ -12,7 +14,7 @@ import { base as base$4 } from './variations/_readonly/base.js';
|
|
12
14
|
import { StyledLabel, LeftHelper, base, StyledRange } from './RangeDate.styles.js';
|
13
15
|
import { RangeDatePopover } from './RangeDatePopover/RangeDatePopover.js';
|
14
16
|
|
15
|
-
var _excluded = ["className", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
|
17
|
+
var _excluded = ["className", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
|
16
18
|
var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
17
19
|
return /*#__PURE__*/forwardRef(function (_ref, ref) {
|
18
20
|
var _rangeRef$current, _rangeRef$current2;
|
@@ -31,6 +33,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
|
31
33
|
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
32
34
|
_ref$disabled = _ref.disabled,
|
33
35
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
36
|
+
name = _ref.name,
|
34
37
|
_ref$dividerVariant = _ref.dividerVariant,
|
35
38
|
dividerVariant = _ref$dividerVariant === void 0 ? 'dash' : _ref$dividerVariant,
|
36
39
|
dividerIcon = _ref.dividerIcon,
|
@@ -90,6 +93,8 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
|
90
93
|
rest = _objectWithoutProperties(_ref, _excluded);
|
91
94
|
var rangeRef = ref && 'current' in ref ? ref : /*#__PURE__*/createRef();
|
92
95
|
var rootRef = useRef(null);
|
96
|
+
var innerRefFirst = useRef(null);
|
97
|
+
var innerRefSecond = useRef(null);
|
93
98
|
var _useState = useState(rangeRef === null || rangeRef === void 0 || (_rangeRef$current = rangeRef.current) === null || _rangeRef$current === void 0 ? void 0 : _rangeRef$current.firstTextField()),
|
94
99
|
_useState2 = _slicedToArray(_useState, 2),
|
95
100
|
firstInputRef = _useState2[0],
|
@@ -143,6 +148,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
|
143
148
|
valueError: firstValueError,
|
144
149
|
valueSuccess: firstValueSuccess,
|
145
150
|
inputRef: firstInputRef,
|
151
|
+
name: name,
|
146
152
|
onChangeValue: onChangeFirstValue,
|
147
153
|
onCommitDate: onCommitFirstDate
|
148
154
|
}),
|
@@ -183,6 +189,23 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
|
183
189
|
onToggle: handleToggle
|
184
190
|
}),
|
185
191
|
onKeyDown = _useKeyNavigation.onKeyDown;
|
192
|
+
var setValue = function setValue(e) {
|
193
|
+
var firstElement = innerRefFirst.current;
|
194
|
+
var firstValueInit = String(firstElement.getAttribute('defaultValue'));
|
195
|
+
var secondValueInit = setInitValue(e);
|
196
|
+
handleCommitFirstDate(firstValueInit, true, false);
|
197
|
+
handleCommitSecondDate(secondValueInit, true, false);
|
198
|
+
};
|
199
|
+
useEffect(function () {
|
200
|
+
if (innerRefSecond.current) {
|
201
|
+
innerRefSecond.current.addEventListener('setInitValue', setValue);
|
202
|
+
}
|
203
|
+
return function () {
|
204
|
+
if (innerRefSecond.current) {
|
205
|
+
innerRefSecond.current.removeEventListener('setInitValue', setValue);
|
206
|
+
}
|
207
|
+
};
|
208
|
+
}, [innerRefSecond]);
|
186
209
|
var RangeComponent = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledRange, {
|
187
210
|
ref: rangeRef,
|
188
211
|
dividerIcon: dividerIcon,
|
@@ -209,6 +232,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
|
209
232
|
secondValueSuccess: secondValueSuccess,
|
210
233
|
onChangeFirstValue: handleChangeFirstValue,
|
211
234
|
onChangeSecondValue: handleChangeSecondValue,
|
235
|
+
name: name,
|
212
236
|
onSearchFirstValue: function onSearchFirstValue(_, date) {
|
213
237
|
handleCommitFirstDate(String(date), true, false);
|
214
238
|
if (!calendarSecondValue || secondValueError) {
|
@@ -312,7 +336,23 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
|
312
336
|
setIsInnerOpen(false);
|
313
337
|
}
|
314
338
|
}
|
315
|
-
}), leftHelper && /*#__PURE__*/React.createElement(LeftHelper, null, leftHelper)
|
339
|
+
}), leftHelper && /*#__PURE__*/React.createElement(LeftHelper, null, leftHelper), /*#__PURE__*/React.createElement(InputHidden, {
|
340
|
+
name: name,
|
341
|
+
type: "hidden",
|
342
|
+
datatype: "datepicker-double",
|
343
|
+
"data-datepicker": "from",
|
344
|
+
value: inputFirstValue,
|
345
|
+
ref: innerRefFirst,
|
346
|
+
onChange: function onChange() {}
|
347
|
+
}), /*#__PURE__*/React.createElement(InputHidden, {
|
348
|
+
name: name,
|
349
|
+
type: "hidden",
|
350
|
+
datatype: "datepicker-double",
|
351
|
+
"data-datepicker": "to",
|
352
|
+
value: inputSecondValue,
|
353
|
+
ref: innerRefSecond,
|
354
|
+
onChange: function onChange() {}
|
355
|
+
}));
|
316
356
|
});
|
317
357
|
};
|
318
358
|
var datePickerRangeConfig = {
|