groovinads-ui 1.2.75 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +628 -236
- package/dist/index.es.js +2 -15
- package/dist/index.js +2 -15
- package/index.d.ts +364 -0
- package/package.json +87 -79
- package/.babelrc +0 -3
- package/.eslintignore +0 -2
- package/.eslintrc.cjs +0 -32
- package/.prettierignore +0 -9
- package/.prettierrc +0 -7
- package/.storybook/main.js +0 -19
- package/.storybook/preview-head.html +0 -6
- package/.storybook/preview.js +0 -13
- package/.yarn/releases/yarn-4.1.1.cjs +0 -893
- package/.yarnrc.yml +0 -3
- package/rollup.config.mjs +0 -42
- package/src/components/Button/Button.jsx +0 -78
- package/src/components/Button/index.js +0 -3
- package/src/components/Dropdowns/DropdownComponent.jsx +0 -135
- package/src/components/Dropdowns/DropdownFilter.jsx +0 -304
- package/src/components/Dropdowns/DropdownMultiSelect.jsx +0 -304
- package/src/components/Dropdowns/DropdownSimpleDatePicker.jsx +0 -175
- package/src/components/Dropdowns/DropdownsDatePicker/DropdownDatePicker.jsx +0 -313
- package/src/components/Dropdowns/DropdownsDatePicker/PeriodAndDetailDropdowns.tsx +0 -351
- package/src/components/Dropdowns/DropdownsDatePicker/index.js +0 -3
- package/src/components/Dropdowns/index.js +0 -7
- package/src/components/Inputs/Checkbox.jsx +0 -55
- package/src/components/Inputs/Input.jsx +0 -155
- package/src/components/Inputs/InputChip.jsx +0 -168
- package/src/components/Inputs/InputEmail.jsx +0 -175
- package/src/components/Inputs/Radio.jsx +0 -57
- package/src/components/Inputs/Switch.jsx +0 -70
- package/src/components/Inputs/Textarea.jsx +0 -68
- package/src/components/Inputs/index.js +0 -9
- package/src/components/Labels/Alert.jsx +0 -62
- package/src/components/Labels/Icon.jsx +0 -76
- package/src/components/Labels/LoginSource.jsx +0 -19
- package/src/components/Labels/PillComponent.jsx +0 -47
- package/src/components/Labels/Spinner.jsx +0 -35
- package/src/components/Labels/StatusIcon.jsx +0 -66
- package/src/components/Labels/index.js +0 -8
- package/src/components/Navigation/Dropdowns/DeckDropdown.jsx +0 -210
- package/src/components/Navigation/Dropdowns/DropdownClient.jsx +0 -171
- package/src/components/Navigation/Dropdowns/UserDropdown.jsx +0 -69
- package/src/components/Navigation/Dropdowns/index.js +0 -5
- package/src/components/Navigation/Navbar.jsx +0 -81
- package/src/components/Navigation/Sidebar.jsx +0 -201
- package/src/components/Navigation/Stepper.jsx +0 -22
- package/src/components/Navigation/Tabnav.jsx +0 -73
- package/src/components/Navigation/index.js +0 -6
- package/src/components/Toasts/Toast/ToastCardComponent.jsx +0 -47
- package/src/components/Toasts/ToastComponent.jsx +0 -45
- package/src/components/Toasts/ToastProgress.jsx +0 -118
- package/src/components/Toasts/index.js +0 -4
- package/src/components/index.js +0 -50
- package/src/hooks/index.js +0 -4
- package/src/hooks/useGetBaseDomain.jsx +0 -9
- package/src/hooks/useTextFormatter.jsx +0 -48
- package/src/index.js +0 -51
- package/src/services/components.services.js +0 -29
- package/src/services/helpers.js +0 -32
- package/src/services/index.jsx +0 -10
- package/src/services/url.path.js +0 -29
- package/src/stories/Alert.stories.jsx +0 -11
- package/src/stories/Button.stories.jsx +0 -20
- package/src/stories/Checkbox.stories.jsx +0 -17
- package/src/stories/DropdownComponent.stories.jsx +0 -89
- package/src/stories/DropdownDatePicker.stories.jsx +0 -69
- package/src/stories/DropdownFilter.stories.jsx +0 -60
- package/src/stories/DropdownMultiSelect.stories.jsx +0 -72
- package/src/stories/DropdownSimpleDatePicker.stories.jsx +0 -64
- package/src/stories/Icon.stories.jsx +0 -11
- package/src/stories/Input.stories.jsx +0 -20
- package/src/stories/InputChip.stories.jsx +0 -44
- package/src/stories/InputEmail.stories.jsx +0 -27
- package/src/stories/Layout.stories.jsx +0 -73
- package/src/stories/LoginSource.stories.jsx +0 -11
- package/src/stories/Navbar.stories.jsx +0 -24
- package/src/stories/PillComponent.stories.jsx +0 -22
- package/src/stories/Radio.stories.jsx +0 -18
- package/src/stories/Sidebar.stories.jsx +0 -169
- package/src/stories/Spinner.stories.jsx +0 -11
- package/src/stories/StatusIcon.stories.jsx +0 -11
- package/src/stories/Stepper.stories.jsx +0 -16
- package/src/stories/Switch.stories.jsx +0 -17
- package/src/stories/Tabnav.stories.jsx +0 -55
- package/src/stories/Textarea.stories.jsx +0 -20
- package/src/stories/ToastComponent.stories.jsx +0 -62
- package/src/stories/ToastProgress.stories.jsx +0 -11
- package/version.js +0 -8
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import DatePicker from 'react-datepicker'; // https://reactdatepicker.com
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import Dropdown from 'react-bootstrap/Dropdown';
|
|
5
|
-
|
|
6
|
-
// COMPONENTS
|
|
7
|
-
import { Icon } from '../../Labels';
|
|
8
|
-
import { Button } from '../../Button';
|
|
9
|
-
|
|
10
|
-
// HOOKS
|
|
11
|
-
import { useTextFormatter } from '../../../hooks';
|
|
12
|
-
|
|
13
|
-
const DropdownDatePicker = ({
|
|
14
|
-
className = '',
|
|
15
|
-
variant = 'input',
|
|
16
|
-
show,
|
|
17
|
-
setShow,
|
|
18
|
-
onToggle,
|
|
19
|
-
inputLabel = 'period',
|
|
20
|
-
locked = false,
|
|
21
|
-
overflow = false,
|
|
22
|
-
onRemoveFilter,
|
|
23
|
-
dateFrom,
|
|
24
|
-
setDateFrom,
|
|
25
|
-
dateTo,
|
|
26
|
-
setDateTo,
|
|
27
|
-
dateFrom2,
|
|
28
|
-
setDateFrom2,
|
|
29
|
-
dateTo2,
|
|
30
|
-
setDateTo2,
|
|
31
|
-
minDate,
|
|
32
|
-
maxDate,
|
|
33
|
-
}) => {
|
|
34
|
-
// const [activeTab, setActiveTab] = useState(1);
|
|
35
|
-
|
|
36
|
-
const [compareDates, setCompareDates] = useState(true);
|
|
37
|
-
|
|
38
|
-
/* We have a 'local' state for datepickers inside the dropdown, so the user can cancel the dropdown and go back to previous values. */
|
|
39
|
-
/* When user confirms selected values, the 'local' state replaces the values previously stored in the DateFilters component. */
|
|
40
|
-
/* ========== STATE FOR DATEPCIKER 1 ========== */
|
|
41
|
-
const [editingDateFrom, setEditingDateFrom] = useState(dateFrom);
|
|
42
|
-
const [editingDateTo, setEditingDateTo] = useState(dateTo);
|
|
43
|
-
|
|
44
|
-
const [internalShow, setInternalShow] = useState(!!show);
|
|
45
|
-
|
|
46
|
-
const { capitalice } = useTextFormatter();
|
|
47
|
-
|
|
48
|
-
const isMobile = window?.innerWidth < 500;
|
|
49
|
-
|
|
50
|
-
const onChangeDate1 = (dates) => {
|
|
51
|
-
const [start, end] = dates;
|
|
52
|
-
setEditingDateFrom(start);
|
|
53
|
-
setEditingDateTo(end);
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
const internalToggle = () => {
|
|
57
|
-
setInternalShow((prevShow) => !prevShow);
|
|
58
|
-
try {
|
|
59
|
-
onToggle();
|
|
60
|
-
} catch (error) {}
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const closeDropdown = () => {
|
|
64
|
-
setInternalShow(false);
|
|
65
|
-
try {
|
|
66
|
-
setShow(false);
|
|
67
|
-
} catch (error) {}
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
const updateDateFilters = () => {
|
|
71
|
-
setDateFrom(editingDateFrom?.toString());
|
|
72
|
-
|
|
73
|
-
if (editingDateTo === null) {
|
|
74
|
-
setDateTo(editingDateFrom?.toString());
|
|
75
|
-
} else {
|
|
76
|
-
setDateTo(editingDateTo?.toString());
|
|
77
|
-
}
|
|
78
|
-
if (setDateFrom2) setDateFrom2(dateFrom2?.toString());
|
|
79
|
-
if (setDateTo2) setDateTo2(dateTo2?.toString());
|
|
80
|
-
|
|
81
|
-
closeDropdown();
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
useEffect(() => {
|
|
85
|
-
setInternalShow(!!show);
|
|
86
|
-
}, [show]);
|
|
87
|
-
|
|
88
|
-
return (
|
|
89
|
-
<Dropdown
|
|
90
|
-
show={internalShow}
|
|
91
|
-
className={`${variant === 'filter' ? 'dropdown-filter' : ''} ${className}`}
|
|
92
|
-
>
|
|
93
|
-
<Dropdown.Toggle
|
|
94
|
-
variant='toggle-filter'
|
|
95
|
-
onClick={internalToggle}
|
|
96
|
-
className={`${variant === 'input' ? 'btn btn-input' : ''}`}
|
|
97
|
-
>
|
|
98
|
-
{variant === 'input' ? (
|
|
99
|
-
<>
|
|
100
|
-
{(editingDateFrom || editingDateTo) && (
|
|
101
|
-
<span className={'wrapper'}>
|
|
102
|
-
<strong>
|
|
103
|
-
{editingDateFrom
|
|
104
|
-
? editingDateFrom.toString().split('00')[0]
|
|
105
|
-
: ''}
|
|
106
|
-
</strong>
|
|
107
|
-
to
|
|
108
|
-
<strong>
|
|
109
|
-
{editingDateTo ? editingDateTo.toString().split('00')[0] : ''}
|
|
110
|
-
</strong>
|
|
111
|
-
</span>
|
|
112
|
-
)}
|
|
113
|
-
<span className='label'>{capitalice(inputLabel)}</span>
|
|
114
|
-
<Icon iconName='calendar-day' />
|
|
115
|
-
</>
|
|
116
|
-
) : (
|
|
117
|
-
<>
|
|
118
|
-
<div className='filter-heading'>
|
|
119
|
-
<div className='filter-title'>
|
|
120
|
-
<span>{capitalice(inputLabel)}</span>
|
|
121
|
-
{locked && (
|
|
122
|
-
<Icon style={'solid'} iconName={'lock-keyhole'} scale={0.7} />
|
|
123
|
-
)}
|
|
124
|
-
</div>
|
|
125
|
-
<Icon
|
|
126
|
-
style={'solid'}
|
|
127
|
-
iconName={'chevron-down'}
|
|
128
|
-
scale={1}
|
|
129
|
-
className='caret'
|
|
130
|
-
/>
|
|
131
|
-
</div>
|
|
132
|
-
<div className='filter-values'>
|
|
133
|
-
{editingDateFrom || editingDateTo ? (
|
|
134
|
-
<>
|
|
135
|
-
<strong>
|
|
136
|
-
{editingDateFrom
|
|
137
|
-
? editingDateFrom.toString().split('00')[0]
|
|
138
|
-
: ''}
|
|
139
|
-
</strong>
|
|
140
|
-
to{' '}
|
|
141
|
-
<strong>
|
|
142
|
-
{editingDateTo
|
|
143
|
-
? editingDateTo.toString().split('00')[0]
|
|
144
|
-
: ''}
|
|
145
|
-
</strong>
|
|
146
|
-
</>
|
|
147
|
-
) : (
|
|
148
|
-
<>None</>
|
|
149
|
-
)}
|
|
150
|
-
</div>
|
|
151
|
-
</>
|
|
152
|
-
)}
|
|
153
|
-
</Dropdown.Toggle>
|
|
154
|
-
{variant === 'filter' && !locked && (
|
|
155
|
-
<Button
|
|
156
|
-
variant='terciary'
|
|
157
|
-
icon='xmark-circle'
|
|
158
|
-
size='md'
|
|
159
|
-
className='remove-filter'
|
|
160
|
-
onClick={onRemoveFilter}
|
|
161
|
-
/>
|
|
162
|
-
)}
|
|
163
|
-
|
|
164
|
-
<Dropdown.Menu
|
|
165
|
-
popperConfig={
|
|
166
|
-
overflow
|
|
167
|
-
? {
|
|
168
|
-
strategy: 'fixed',
|
|
169
|
-
onFirstUpdate: () =>
|
|
170
|
-
window.dispatchEvent(new CustomEvent('scroll')),
|
|
171
|
-
}
|
|
172
|
-
: undefined
|
|
173
|
-
}
|
|
174
|
-
>
|
|
175
|
-
<Dropdown.Item as={'div'}>
|
|
176
|
-
{compareDates && (
|
|
177
|
-
<>
|
|
178
|
-
{/* DATE TABS */}
|
|
179
|
-
{/* <ul
|
|
180
|
-
className='nav nav-tabs'
|
|
181
|
-
id='dateComparisonTabs'
|
|
182
|
-
role='tablist'
|
|
183
|
-
>
|
|
184
|
-
<li
|
|
185
|
-
className='nav-item'
|
|
186
|
-
role='presentation'
|
|
187
|
-
onClick={() => setActiveTab(1)}
|
|
188
|
-
>
|
|
189
|
-
|
|
190
|
-
<button
|
|
191
|
-
className='nav-link active'
|
|
192
|
-
id='date1ComparisonTab'
|
|
193
|
-
data-bs-toggle='tab'
|
|
194
|
-
data-bs-target='#date1ComparisonTabPane'
|
|
195
|
-
type='button'
|
|
196
|
-
role='tab'
|
|
197
|
-
aria-controls='date1ComparisonTabPane'
|
|
198
|
-
aria-selected='true'
|
|
199
|
-
>
|
|
200
|
-
Date 1
|
|
201
|
-
</button>
|
|
202
|
-
</li>
|
|
203
|
-
|
|
204
|
-
<li
|
|
205
|
-
className='nav-item'
|
|
206
|
-
role='presentation'
|
|
207
|
-
onClick={() => setActiveTab(2)}
|
|
208
|
-
>
|
|
209
|
-
<button
|
|
210
|
-
id='date2ComparisonTab'
|
|
211
|
-
data-bs-toggle='tab'
|
|
212
|
-
data-bs-target='#date2ComparisonTabPane'
|
|
213
|
-
type='button'
|
|
214
|
-
role='tab'
|
|
215
|
-
aria-controls='date2ComparisonTabPane'
|
|
216
|
-
aria-selected='false'
|
|
217
|
-
>
|
|
218
|
-
|
|
219
|
-
</button>
|
|
220
|
-
</li>
|
|
221
|
-
</ul> */}
|
|
222
|
-
|
|
223
|
-
{/* <Tabnav
|
|
224
|
-
tabs={[{ tab: 'Date 1' }, { tab: 'Date 2' }]}
|
|
225
|
-
activeTab={1}
|
|
226
|
-
customFunction={true}
|
|
227
|
-
/> */}
|
|
228
|
-
{/* TO DO: permitir que TabNav maneje interna y externamente el estado de AtiveTab */}
|
|
229
|
-
|
|
230
|
-
{/* PERIOD AND DETAIL LEVEL DROPDOWNS */}
|
|
231
|
-
{/* <PeriodAndDetailDropdowns
|
|
232
|
-
DDPeriod1={DDPeriod1}
|
|
233
|
-
setDDPeriod1={setDDPeriod1}
|
|
234
|
-
DDDetailLevel1={DDDetailLevel1}
|
|
235
|
-
setDDDetailLevel1={setDDDetailLevel1}
|
|
236
|
-
DDPeriod2={DDPeriod2}
|
|
237
|
-
setDDPeriod2={setDDPeriod2}
|
|
238
|
-
DDDetailLevel2={DDDetailLevel2}
|
|
239
|
-
setDDDetailLevel2={setDDDetailLevel2}
|
|
240
|
-
/> */}
|
|
241
|
-
</>
|
|
242
|
-
)}
|
|
243
|
-
|
|
244
|
-
<DatePicker
|
|
245
|
-
className='form-control form-search'
|
|
246
|
-
selected={editingDateFrom}
|
|
247
|
-
onChange={onChangeDate1}
|
|
248
|
-
startDate={editingDateFrom}
|
|
249
|
-
endDate={editingDateTo}
|
|
250
|
-
monthsShown={isMobile ? 1 : 2}
|
|
251
|
-
selectsRange
|
|
252
|
-
inline
|
|
253
|
-
minDate={minDate}
|
|
254
|
-
maxDate={maxDate}
|
|
255
|
-
/>
|
|
256
|
-
|
|
257
|
-
<div className='datepicker-footer'>
|
|
258
|
-
{/* <Switch
|
|
259
|
-
status={compareDates}
|
|
260
|
-
setStatus={() => {
|
|
261
|
-
setCompareDates(!compareDates);
|
|
262
|
-
}}
|
|
263
|
-
>
|
|
264
|
-
Compare dates
|
|
265
|
-
</Switch> */}
|
|
266
|
-
<div className='datepicker-buttons-wrapper'>
|
|
267
|
-
<Button
|
|
268
|
-
onClick={() => closeDropdown()}
|
|
269
|
-
size='xs'
|
|
270
|
-
variant='terciary'
|
|
271
|
-
>
|
|
272
|
-
Cancel
|
|
273
|
-
</Button>
|
|
274
|
-
|
|
275
|
-
<Button
|
|
276
|
-
size='xs'
|
|
277
|
-
// disabled={!DDStartDate1 || !DDEndDate1} // Start and end dates must be selected
|
|
278
|
-
onClick={() => updateDateFilters()}
|
|
279
|
-
>
|
|
280
|
-
Set date
|
|
281
|
-
</Button>
|
|
282
|
-
</div>
|
|
283
|
-
</div>
|
|
284
|
-
</Dropdown.Item>
|
|
285
|
-
</Dropdown.Menu>
|
|
286
|
-
</Dropdown>
|
|
287
|
-
);
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
DropdownDatePicker.propTypes = {
|
|
291
|
-
className: PropTypes.string,
|
|
292
|
-
variant: PropTypes.oneOf(['input', 'filter']),
|
|
293
|
-
show: PropTypes.bool,
|
|
294
|
-
setShow: PropTypes.func,
|
|
295
|
-
onToggle: PropTypes.func,
|
|
296
|
-
dateFrom: PropTypes.string,
|
|
297
|
-
setDateFrom: PropTypes.func,
|
|
298
|
-
dateTo: PropTypes.string,
|
|
299
|
-
setDateTo: PropTypes.func,
|
|
300
|
-
locked: PropTypes.bool,
|
|
301
|
-
overflow: PropTypes.bool,
|
|
302
|
-
onRemoveFilter: PropTypes.func,
|
|
303
|
-
editingDateFrom: PropTypes.string,
|
|
304
|
-
setEditingDateFrom: PropTypes.string,
|
|
305
|
-
editingDateTo1: PropTypes.string,
|
|
306
|
-
setEditingDateTo1: PropTypes.string,
|
|
307
|
-
EditingDateFrom2: PropTypes.string,
|
|
308
|
-
setEditingDateFrom2: PropTypes.string,
|
|
309
|
-
EditingDateTo2: PropTypes.string,
|
|
310
|
-
setEditingDateTo2: PropTypes.string,
|
|
311
|
-
};
|
|
312
|
-
|
|
313
|
-
export default DropdownDatePicker;
|
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
import React, { useRef } from 'react';
|
|
2
|
-
|
|
3
|
-
const PeriodAndDetailDropdowns = ({
|
|
4
|
-
DDPeriod1,
|
|
5
|
-
setDDPeriod1,
|
|
6
|
-
DDDetailLevel1,
|
|
7
|
-
setDDDetailLevel1,
|
|
8
|
-
DDPeriod2,
|
|
9
|
-
setDDPeriod2,
|
|
10
|
-
DDDetailLevel2,
|
|
11
|
-
setDDDetailLevel2,
|
|
12
|
-
}) => {
|
|
13
|
-
const DDPeriod1Btn = useRef(null);
|
|
14
|
-
const DDPeriod1Dropwdown = useRef(null);
|
|
15
|
-
const DDDetailLevel1Btn = useRef(null);
|
|
16
|
-
const DDDetailLevel1Dropwdown = useRef(null);
|
|
17
|
-
|
|
18
|
-
const DDPeriod2Btn = useRef(null);
|
|
19
|
-
const DDPeriod2Dropwdown = useRef(null);
|
|
20
|
-
const DDDetailLevel2Btn = useRef(null);
|
|
21
|
-
const DDDetailLevel2Dropwdown = useRef(null);
|
|
22
|
-
|
|
23
|
-
const closeDropwdown = (DDRef, btnRef) => {
|
|
24
|
-
if (DDRef?.current?.className) {
|
|
25
|
-
DDRef.current.className = 'dropdown-menu dropdown-submenu shadow-2';
|
|
26
|
-
}
|
|
27
|
-
if (btnRef?.current?.className) {
|
|
28
|
-
btnRef.current.className = 'btn btn-input grey dropdown-toggle';
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const updateDDPeriod1 = (value, dropdown) => {
|
|
33
|
-
setDDPeriod1(value);
|
|
34
|
-
closeDropwdown(dropdown, DDPeriod1Btn);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const updateDDDetailLevel1 = (value, dropdown) => {
|
|
38
|
-
setDDDetailLevel1(value);
|
|
39
|
-
closeDropwdown(dropdown, DDDetailLevel1Btn);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
const updateDDPeriod2 = (value, dropdown) => {
|
|
43
|
-
setDDPeriod2(value);
|
|
44
|
-
closeDropwdown(dropdown, DDPeriod2Btn);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const updateDDDetailLevel2 = (value, dropdown) => {
|
|
48
|
-
setDDDetailLevel2(value);
|
|
49
|
-
closeDropwdown(dropdown, DDDetailLevel2Btn);
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
return (
|
|
53
|
-
<div className='tab-content' id='dateComparisonTabsContent'>
|
|
54
|
-
{/* DROPDOWNS FOR DATE 1 */}
|
|
55
|
-
<div
|
|
56
|
-
className='tab-pane fade show active'
|
|
57
|
-
id='date1ComparisonTabPane'
|
|
58
|
-
role='tabpanel'
|
|
59
|
-
aria-labelledby='date1ComparisonTab'
|
|
60
|
-
tabIndex={0}
|
|
61
|
-
>
|
|
62
|
-
<div className='d-flex gap-3 flex-column flex-md-row'>
|
|
63
|
-
<div className='dropdown dropdown-pills'>
|
|
64
|
-
<label className='dropdown-label' htmlFor='periodDate1'>
|
|
65
|
-
Period
|
|
66
|
-
</label>
|
|
67
|
-
<button
|
|
68
|
-
className='btn btn-input grey dropdown-toggle'
|
|
69
|
-
type='button'
|
|
70
|
-
data-bs-toggle='dropdown'
|
|
71
|
-
aria-expanded='false'
|
|
72
|
-
id='periodDate1'
|
|
73
|
-
ref={DDPeriod1Btn}
|
|
74
|
-
>
|
|
75
|
-
<span>{DDPeriod1}</span>
|
|
76
|
-
<i className='fa-solid fa-angle-down icon caret'></i>
|
|
77
|
-
</button>
|
|
78
|
-
|
|
79
|
-
<ul
|
|
80
|
-
className='dropdown-menu dropdown-submenu shadow-2'
|
|
81
|
-
ref={DDPeriod1Dropwdown}
|
|
82
|
-
>
|
|
83
|
-
<li>
|
|
84
|
-
<button
|
|
85
|
-
className='dropdown-item'
|
|
86
|
-
onClick={() =>
|
|
87
|
-
updateDDPeriod1('Custom range', DDPeriod1Dropwdown)
|
|
88
|
-
}
|
|
89
|
-
>
|
|
90
|
-
Custom range
|
|
91
|
-
</button>
|
|
92
|
-
</li>
|
|
93
|
-
|
|
94
|
-
<li>
|
|
95
|
-
<button
|
|
96
|
-
className='dropdown-item'
|
|
97
|
-
onClick={() => updateDDPeriod1('Today', DDPeriod1Dropwdown)}
|
|
98
|
-
>
|
|
99
|
-
Today
|
|
100
|
-
</button>
|
|
101
|
-
</li>
|
|
102
|
-
|
|
103
|
-
<li>
|
|
104
|
-
<button
|
|
105
|
-
className='dropdown-item'
|
|
106
|
-
onClick={() =>
|
|
107
|
-
updateDDPeriod1('Yesterday', DDPeriod1Dropwdown)
|
|
108
|
-
}
|
|
109
|
-
>
|
|
110
|
-
Yesterday
|
|
111
|
-
</button>
|
|
112
|
-
</li>
|
|
113
|
-
|
|
114
|
-
<li>
|
|
115
|
-
<button
|
|
116
|
-
className='dropdown-item'
|
|
117
|
-
onClick={() =>
|
|
118
|
-
updateDDPeriod1('Yesterday and today', DDPeriod1Dropwdown)
|
|
119
|
-
}
|
|
120
|
-
>
|
|
121
|
-
Yesterday and today
|
|
122
|
-
</button>
|
|
123
|
-
</li>
|
|
124
|
-
|
|
125
|
-
<li>
|
|
126
|
-
<button
|
|
127
|
-
className='dropdown-item'
|
|
128
|
-
onClick={() =>
|
|
129
|
-
updateDDPeriod1('This week', DDPeriod1Dropwdown)
|
|
130
|
-
}
|
|
131
|
-
>
|
|
132
|
-
This week
|
|
133
|
-
</button>
|
|
134
|
-
</li>
|
|
135
|
-
</ul>
|
|
136
|
-
</div>
|
|
137
|
-
|
|
138
|
-
<div className='dropdown dropdown-pills'>
|
|
139
|
-
<label className='dropdown-label' htmlFor='detailLevelDate1'>
|
|
140
|
-
Detail level
|
|
141
|
-
</label>
|
|
142
|
-
<button
|
|
143
|
-
className='btn btn-input grey dropdown-toggle'
|
|
144
|
-
type='button'
|
|
145
|
-
data-bs-toggle='dropdown'
|
|
146
|
-
aria-expanded='false'
|
|
147
|
-
id='detailLevelDate1'
|
|
148
|
-
ref={DDDetailLevel1Btn}
|
|
149
|
-
>
|
|
150
|
-
<span>{DDDetailLevel1}</span>
|
|
151
|
-
<i className='fa-solid fa-angle-down icon caret'></i>
|
|
152
|
-
</button>
|
|
153
|
-
|
|
154
|
-
<ul
|
|
155
|
-
className='dropdown-menu dropdown-submenu shadow-2'
|
|
156
|
-
ref={DDDetailLevel1Dropwdown}
|
|
157
|
-
>
|
|
158
|
-
<li>
|
|
159
|
-
<button
|
|
160
|
-
className='dropdown-item'
|
|
161
|
-
onClick={() =>
|
|
162
|
-
updateDDDetailLevel1('Hourly', DDDetailLevel1Dropwdown)
|
|
163
|
-
}
|
|
164
|
-
>
|
|
165
|
-
Hourly
|
|
166
|
-
</button>
|
|
167
|
-
</li>
|
|
168
|
-
<li>
|
|
169
|
-
<button
|
|
170
|
-
className='dropdown-item'
|
|
171
|
-
onClick={() =>
|
|
172
|
-
updateDDDetailLevel1('Daily', DDDetailLevel1Dropwdown)
|
|
173
|
-
}
|
|
174
|
-
>
|
|
175
|
-
Daily
|
|
176
|
-
</button>
|
|
177
|
-
</li>
|
|
178
|
-
<li>
|
|
179
|
-
<button
|
|
180
|
-
className='dropdown-item'
|
|
181
|
-
onClick={() =>
|
|
182
|
-
updateDDDetailLevel1('Monthly', DDDetailLevel1Dropwdown)
|
|
183
|
-
}
|
|
184
|
-
>
|
|
185
|
-
Monthly
|
|
186
|
-
</button>
|
|
187
|
-
</li>
|
|
188
|
-
<li>
|
|
189
|
-
<button
|
|
190
|
-
className='dropdown-item'
|
|
191
|
-
onClick={() =>
|
|
192
|
-
updateDDDetailLevel1('Total', DDDetailLevel1Dropwdown)
|
|
193
|
-
}
|
|
194
|
-
>
|
|
195
|
-
Total
|
|
196
|
-
</button>
|
|
197
|
-
</li>
|
|
198
|
-
</ul>
|
|
199
|
-
</div>
|
|
200
|
-
</div>
|
|
201
|
-
</div>
|
|
202
|
-
|
|
203
|
-
{/* DROPDOWNS FOR DATE 2 */}
|
|
204
|
-
<div
|
|
205
|
-
className='tab-pane fade show'
|
|
206
|
-
id='date2ComparisonTabPane'
|
|
207
|
-
role='tabpanel'
|
|
208
|
-
aria-labelledby='date2ComparisonTab'
|
|
209
|
-
tabIndex={0}
|
|
210
|
-
>
|
|
211
|
-
<div className='d-flex gap-3 flex-column flex-md-row'>
|
|
212
|
-
<div className='dropdown dropdown-pills'>
|
|
213
|
-
<label className='dropdown-label' htmlFor='periodDate2'>
|
|
214
|
-
Period
|
|
215
|
-
</label>
|
|
216
|
-
<button
|
|
217
|
-
className='btn btn-input grey dropdown-toggle'
|
|
218
|
-
type='button'
|
|
219
|
-
data-bs-toggle='dropdown'
|
|
220
|
-
aria-expanded='false'
|
|
221
|
-
id='periodDate2'
|
|
222
|
-
ref={DDPeriod2Btn}
|
|
223
|
-
>
|
|
224
|
-
<span>{DDPeriod2}</span>
|
|
225
|
-
<i className='fa-solid fa-angle-down icon caret'></i>
|
|
226
|
-
</button>
|
|
227
|
-
|
|
228
|
-
<ul
|
|
229
|
-
className='dropdown-menu dropdown-submenu shadow-2'
|
|
230
|
-
ref={DDPeriod2Dropwdown}
|
|
231
|
-
>
|
|
232
|
-
<li>
|
|
233
|
-
<button
|
|
234
|
-
className='dropdown-item'
|
|
235
|
-
onClick={() =>
|
|
236
|
-
updateDDPeriod2('Custom range', DDPeriod2Dropwdown)
|
|
237
|
-
}
|
|
238
|
-
>
|
|
239
|
-
Custom range
|
|
240
|
-
</button>
|
|
241
|
-
</li>
|
|
242
|
-
<li>
|
|
243
|
-
<button
|
|
244
|
-
className='dropdown-item'
|
|
245
|
-
onClick={() => updateDDPeriod2('Today', DDPeriod2Dropwdown)}
|
|
246
|
-
>
|
|
247
|
-
Today
|
|
248
|
-
</button>
|
|
249
|
-
</li>
|
|
250
|
-
<li>
|
|
251
|
-
<button
|
|
252
|
-
className='dropdown-item'
|
|
253
|
-
onClick={() =>
|
|
254
|
-
updateDDPeriod2('Yesterday', DDPeriod2Dropwdown)
|
|
255
|
-
}
|
|
256
|
-
>
|
|
257
|
-
Yesterday
|
|
258
|
-
</button>
|
|
259
|
-
</li>
|
|
260
|
-
<li>
|
|
261
|
-
<button
|
|
262
|
-
className='dropdown-item'
|
|
263
|
-
onClick={() =>
|
|
264
|
-
updateDDPeriod2('Yesterday and today', DDPeriod2Dropwdown)
|
|
265
|
-
}
|
|
266
|
-
>
|
|
267
|
-
Yesterday and today
|
|
268
|
-
</button>
|
|
269
|
-
</li>
|
|
270
|
-
<li>
|
|
271
|
-
<button
|
|
272
|
-
className='dropdown-item'
|
|
273
|
-
onClick={() =>
|
|
274
|
-
updateDDPeriod2('This week', DDPeriod2Dropwdown)
|
|
275
|
-
}
|
|
276
|
-
>
|
|
277
|
-
This week
|
|
278
|
-
</button>
|
|
279
|
-
</li>
|
|
280
|
-
</ul>
|
|
281
|
-
</div>
|
|
282
|
-
|
|
283
|
-
<div className='dropdown dropdown-pills'>
|
|
284
|
-
<label className='dropdown-label' htmlFor='detailLevelDate2'>
|
|
285
|
-
Detail level
|
|
286
|
-
</label>
|
|
287
|
-
<button
|
|
288
|
-
className='btn btn-input grey dropdown-toggle'
|
|
289
|
-
type='button'
|
|
290
|
-
data-bs-toggle='dropdown'
|
|
291
|
-
aria-expanded='false'
|
|
292
|
-
id='detailLevelDate2'
|
|
293
|
-
ref={DDDetailLevel2Btn}
|
|
294
|
-
>
|
|
295
|
-
<span>{DDDetailLevel2}</span>
|
|
296
|
-
<i className='fa-solid fa-angle-down icon caret'></i>
|
|
297
|
-
</button>
|
|
298
|
-
|
|
299
|
-
<ul
|
|
300
|
-
className='dropdown-menu dropdown-submenu shadow-2'
|
|
301
|
-
ref={DDDetailLevel2Dropwdown}
|
|
302
|
-
>
|
|
303
|
-
<li>
|
|
304
|
-
<button
|
|
305
|
-
className='dropdown-item'
|
|
306
|
-
onClick={() =>
|
|
307
|
-
updateDDDetailLevel2('Hourly', DDDetailLevel2Dropwdown)
|
|
308
|
-
}
|
|
309
|
-
>
|
|
310
|
-
Hourly
|
|
311
|
-
</button>
|
|
312
|
-
</li>
|
|
313
|
-
<li>
|
|
314
|
-
<button
|
|
315
|
-
className='dropdown-item'
|
|
316
|
-
onClick={() =>
|
|
317
|
-
updateDDDetailLevel2('Daily', DDDetailLevel2Dropwdown)
|
|
318
|
-
}
|
|
319
|
-
>
|
|
320
|
-
Daily
|
|
321
|
-
</button>
|
|
322
|
-
</li>
|
|
323
|
-
<li>
|
|
324
|
-
<button
|
|
325
|
-
className='dropdown-item'
|
|
326
|
-
onClick={() =>
|
|
327
|
-
updateDDDetailLevel2('Monthly', DDDetailLevel2Dropwdown)
|
|
328
|
-
}
|
|
329
|
-
>
|
|
330
|
-
Monthly
|
|
331
|
-
</button>
|
|
332
|
-
</li>
|
|
333
|
-
<li>
|
|
334
|
-
<button
|
|
335
|
-
className='dropdown-item'
|
|
336
|
-
onClick={() =>
|
|
337
|
-
updateDDDetailLevel2('Total', DDDetailLevel2Dropwdown)
|
|
338
|
-
}
|
|
339
|
-
>
|
|
340
|
-
Total
|
|
341
|
-
</button>
|
|
342
|
-
</li>
|
|
343
|
-
</ul>
|
|
344
|
-
</div>
|
|
345
|
-
</div>
|
|
346
|
-
</div>
|
|
347
|
-
</div>
|
|
348
|
-
);
|
|
349
|
-
};
|
|
350
|
-
|
|
351
|
-
export default PeriodAndDetailDropdowns;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import DropdownComponent from './DropdownComponent';
|
|
2
|
-
import DropdownFilter from './DropdownFilter';
|
|
3
|
-
import DropdownMultiSelect from './DropdownMultiSelect';
|
|
4
|
-
import DropdownSimpleDatePicker from './DropdownSimpleDatePicker';
|
|
5
|
-
import { DropdownDatePicker } from './DropdownsDatePicker/index';
|
|
6
|
-
|
|
7
|
-
export { DropdownComponent, DropdownFilter, DropdownMultiSelect, DropdownDatePicker, DropdownSimpleDatePicker }
|