funda-ui 4.7.517 → 4.7.533
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/CascadingSelect/index.css +105 -88
- package/CascadingSelect/index.js +25 -24
- package/CascadingSelectE2E/index.css +105 -88
- package/CascadingSelectE2E/index.js +26 -25
- package/Date/index.js +3 -1
- package/DropdownMenu/index.js +3 -1
- package/LiveSearch/index.js +2 -1
- package/Select/index.d.ts +1 -0
- package/Select/index.js +70 -14
- package/Tooltip/index.css +69 -68
- package/Tooltip/index.d.ts +15 -1
- package/Tooltip/index.js +153 -57
- package/lib/cjs/CascadingSelect/index.js +25 -24
- package/lib/cjs/CascadingSelectE2E/index.js +26 -25
- package/lib/cjs/Date/index.js +3 -1
- package/lib/cjs/DropdownMenu/index.js +3 -1
- package/lib/cjs/LiveSearch/index.js +2 -1
- package/lib/cjs/Select/index.d.ts +1 -0
- package/lib/cjs/Select/index.js +70 -14
- package/lib/cjs/Tooltip/index.d.ts +15 -1
- package/lib/cjs/Tooltip/index.js +153 -57
- package/lib/css/CascadingSelect/index.css +105 -88
- package/lib/css/CascadingSelectE2E/index.css +105 -88
- package/lib/css/Tooltip/index.css +69 -68
- package/lib/esm/CascadingSelect/Group.tsx +3 -5
- package/lib/esm/CascadingSelect/index.scss +89 -68
- package/lib/esm/CascadingSelect/index.tsx +23 -21
- package/lib/esm/CascadingSelectE2E/Group.tsx +4 -3
- package/lib/esm/CascadingSelectE2E/index.scss +83 -63
- package/lib/esm/CascadingSelectE2E/index.tsx +24 -22
- package/lib/esm/Date/index.tsx +4 -1
- package/lib/esm/DropdownMenu/index.tsx +2 -1
- package/lib/esm/LiveSearch/index.tsx +2 -1
- package/lib/esm/Select/index.tsx +75 -17
- package/lib/esm/Tooltip/index.scss +63 -60
- package/lib/esm/Tooltip/index.tsx +143 -44
- package/package.json +1 -1
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
<!-- Cascading Select End-to-end -->
|
|
3
3
|
/* ====================================================== */
|
|
4
4
|
|
|
5
|
-
.casc-
|
|
5
|
+
.casc-menu-e2e__wrapper {
|
|
6
6
|
|
|
7
|
-
--casc-
|
|
8
|
-
--casc-
|
|
7
|
+
--casc-menu-e2e-arrow-fill: #a5a5a5;
|
|
8
|
+
--casc-menu-e2e-result-arrow-fill: #a5a5a5;
|
|
9
9
|
|
|
10
|
-
--casc-
|
|
11
|
-
--casc-
|
|
12
|
-
--casc-
|
|
10
|
+
--casc-menu-e2e-result-font-size: 1rem;
|
|
11
|
+
--casc-menu-e2e-result-padding-x: 0.75rem;
|
|
12
|
+
--casc-menu-e2e-result-padding-y: 0.375rem;
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
.casc-
|
|
15
|
+
.casc-menu-e2e__result {
|
|
16
16
|
position: absolute;
|
|
17
17
|
left: auto;
|
|
18
18
|
z-index: 1;
|
|
19
19
|
top: 0;
|
|
20
|
-
padding: var(--casc-
|
|
21
|
-
font-size: var(--casc-
|
|
20
|
+
padding: var(--casc-menu-e2e-result-padding-y) var(--casc-menu-e2e-result-padding-x);
|
|
21
|
+
font-size: var(--casc-menu-e2e-result-font-size);
|
|
22
22
|
font-weight: 400;
|
|
23
23
|
line-height: 1.5;
|
|
24
24
|
color: inherit;
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
margin: 0 0.3rem;
|
|
46
46
|
|
|
47
47
|
path {
|
|
48
|
-
fill: var(--casc-
|
|
48
|
+
fill: var(--casc-menu-e2e-result-arrow-fill);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
}
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
.casc-
|
|
56
|
+
.casc-menu-e2e__closemask {
|
|
57
57
|
position: absolute;
|
|
58
58
|
z-index: 1;
|
|
59
59
|
top: 0;
|
|
@@ -65,13 +65,13 @@
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
|
|
68
|
-
.casc-
|
|
68
|
+
.casc-menu-e2e__trigger {
|
|
69
69
|
position: relative;
|
|
70
70
|
z-index: 0;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
.casc-
|
|
74
|
+
.casc-menu-e2e__val {
|
|
75
75
|
position: relative;
|
|
76
76
|
|
|
77
77
|
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
|
|
96
96
|
svg {
|
|
97
97
|
.arrow-fill-g {
|
|
98
|
-
fill: var(--casc-
|
|
98
|
+
fill: var(--casc-menu-e2e-arrow-fill);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
}
|
|
@@ -106,45 +106,47 @@
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
/*------ List ------*/
|
|
109
|
-
.casc-
|
|
109
|
+
.casc-menu-e2e__items-wrapper {
|
|
110
110
|
|
|
111
111
|
|
|
112
|
+
--casc-menu-e2e-scrollbar-color: rgba(0, 0, 0, 0.2);
|
|
113
|
+
--casc-menu-e2e-scrollbar-track: rgba(0, 0, 0, 0);
|
|
114
|
+
--casc-menu-e2e-scrollbar-h: 3px;
|
|
115
|
+
--casc-menu-e2e-scrollbar-w: 3px;
|
|
116
|
+
--casc-menu-e2e-per-col-maxheight: 300px;
|
|
117
|
+
--casc-menu-e2e-opt-font-size: 0.875rem;
|
|
118
|
+
--casc-menu-e2e-opt-padding-x: .4rem;
|
|
119
|
+
--casc-menu-e2e-opt-padding-y: .3rem;
|
|
112
120
|
|
|
113
|
-
--casc-
|
|
114
|
-
--casc-
|
|
115
|
-
--casc-
|
|
121
|
+
--casc-menu-e2e-opt-header-border-color: rgba(1, 1, 1, .2);
|
|
122
|
+
--casc-menu-e2e-opt-header-text-color: #999;
|
|
123
|
+
--casc-menu-e2e-opt-hover-bg: #f7f7f7;
|
|
124
|
+
--casc-menu-e2e-opt-active-bg: #eeeeee;
|
|
116
125
|
|
|
117
|
-
--casc-select-e2e-opt-header-border-color: rgba(1, 1, 1, .2);
|
|
118
|
-
--casc-select-e2e-opt-header-text-color: #999;
|
|
119
|
-
--casc-select-e2e-opt-hover-bg: #f7f7f7;
|
|
120
|
-
--casc-select-e2e-opt-active-bg: #eeeeee;
|
|
121
126
|
|
|
127
|
+
--casc-menu-e2e-items-box-shadow: 0 5px 15px 5px rgba(80, 102, 224, 0.08);
|
|
128
|
+
--casc-menu-e2e-items-bg: #fff;
|
|
129
|
+
--casc-menu-e2e-items-color: inherit;
|
|
130
|
+
--casc-menu-e2e-items-border-color: rgba(0, 0, 0, .1);
|
|
131
|
+
--casc-menu-e2e-items-li-border-color: #eee;
|
|
122
132
|
|
|
123
|
-
--casc-
|
|
124
|
-
--casc-
|
|
125
|
-
--casc-select-e2e-items-color: inherit;
|
|
126
|
-
--casc-select-e2e-items-border-color: rgba(0, 0, 0, .1);
|
|
127
|
-
--casc-select-e2e-items-li-border-color: #eee;
|
|
128
|
-
|
|
129
|
-
--casc-select-e2e-loader-color: #000000;
|
|
130
|
-
--casc-select-e2e-clean-btn-color: #b5b5b5;
|
|
133
|
+
--casc-menu-e2e-loader-color: #000000;
|
|
134
|
+
--casc-menu-e2e-clean-btn-color: #b5b5b5;
|
|
131
135
|
|
|
132
|
-
--casc-
|
|
136
|
+
--casc-menu-e2e-searchbox-border-color: #ddd;
|
|
133
137
|
|
|
134
|
-
box-shadow: var(--casc-
|
|
138
|
+
box-shadow: var(--casc-menu-e2e-items-box-shadow);
|
|
135
139
|
position: absolute;
|
|
136
140
|
left: auto;
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
background: var(--casc-select-e2e-items-bg);
|
|
141
|
+
border: 1px solid var(--casc-menu-e2e-items-border-color);
|
|
142
|
+
background: var(--casc-menu-e2e-items-bg);
|
|
140
143
|
padding: 10px;
|
|
141
|
-
overflow-y: auto;
|
|
142
144
|
box-sizing: border-box;
|
|
143
145
|
top: 2.3rem;
|
|
144
146
|
border-radius: 5px;
|
|
145
147
|
width: max-content;
|
|
146
148
|
/* required -> the content will not wrap at all even if it causes overflows*/
|
|
147
|
-
color: var(--casc-
|
|
149
|
+
color: var(--casc-menu-e2e-items-color);
|
|
148
150
|
|
|
149
151
|
|
|
150
152
|
display: none;
|
|
@@ -164,7 +166,7 @@
|
|
|
164
166
|
}
|
|
165
167
|
|
|
166
168
|
|
|
167
|
-
.casc-
|
|
169
|
+
.casc-menu-e2e__items-loader {
|
|
168
170
|
position: absolute;
|
|
169
171
|
pointer-events: none;
|
|
170
172
|
left: 0;
|
|
@@ -176,30 +178,30 @@
|
|
|
176
178
|
text-align: center;
|
|
177
179
|
transform-origin: center;
|
|
178
180
|
transform: translate(2px, 5px) rotate(0);
|
|
179
|
-
animation: 1s linear infinite casc-
|
|
181
|
+
animation: 1s linear infinite casc-menu-e2e__spinner;
|
|
180
182
|
|
|
181
183
|
svg {
|
|
182
184
|
vertical-align: top;
|
|
183
185
|
|
|
184
186
|
path {
|
|
185
|
-
fill: var(--casc-
|
|
187
|
+
fill: var(--casc-menu-e2e-loader-color);
|
|
186
188
|
}
|
|
187
189
|
}
|
|
188
190
|
}
|
|
189
191
|
|
|
190
|
-
@keyframes casc-
|
|
192
|
+
@keyframes casc-menu-e2e__spinner {
|
|
191
193
|
to {
|
|
192
194
|
transform: translate(2px, 5px) rotate(-360deg);
|
|
193
195
|
}
|
|
194
196
|
}
|
|
195
197
|
|
|
196
|
-
.casc-
|
|
198
|
+
.casc-menu-e2e__close {
|
|
197
199
|
svg {
|
|
198
200
|
opacity: .4;
|
|
199
201
|
}
|
|
200
202
|
}
|
|
201
203
|
|
|
202
|
-
.casc-
|
|
204
|
+
.casc-menu-e2e__close:hover {
|
|
203
205
|
svg {
|
|
204
206
|
transition: .2s ease-out;
|
|
205
207
|
opacity: .7;
|
|
@@ -218,7 +220,7 @@
|
|
|
218
220
|
float: left;
|
|
219
221
|
padding: 0 10px;
|
|
220
222
|
margin-right: 15px;
|
|
221
|
-
border-right: 1px dotted var(--casc-
|
|
223
|
+
border-right: 1px dotted var(--casc-menu-e2e-items-li-border-color);
|
|
222
224
|
transition: .2s ease-out;
|
|
223
225
|
|
|
224
226
|
&.hide-col {
|
|
@@ -233,12 +235,30 @@
|
|
|
233
235
|
}
|
|
234
236
|
}
|
|
235
237
|
|
|
238
|
+
/* Column */
|
|
239
|
+
.casc-menu-e2e__items-col {
|
|
240
|
+
max-height: var(--casc-menu-e2e-per-col-maxheight);
|
|
241
|
+
overflow-y: auto;
|
|
242
|
+
|
|
243
|
+
&::-webkit-scrollbar {
|
|
244
|
+
width: var(--casc-menu-e2e-scrollbar-w);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
&::-webkit-scrollbar-thumb {
|
|
248
|
+
background: var(--casc-menu-e2e-scrollbar-color);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
&::-webkit-scrollbar-track {
|
|
252
|
+
background: var(--casc-menu-e2e-scrollbar-track);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
}
|
|
236
256
|
|
|
237
257
|
|
|
238
258
|
/* Searchbox */
|
|
239
|
-
.casc-
|
|
259
|
+
.casc-menu-e2e__items-col-searchbox {
|
|
240
260
|
input {
|
|
241
|
-
border: 1px solid var(--casc-
|
|
261
|
+
border: 1px solid var(--casc-menu-e2e-searchbox-border-color);
|
|
242
262
|
border-radius: 0.15rem;
|
|
243
263
|
width: 100%;
|
|
244
264
|
background: transparent;
|
|
@@ -248,29 +268,29 @@
|
|
|
248
268
|
|
|
249
269
|
|
|
250
270
|
/* Options */
|
|
251
|
-
.casc-
|
|
252
|
-
padding: var(--casc-
|
|
253
|
-
font-size: var(--casc-
|
|
271
|
+
.casc-menu-e2e__opt {
|
|
272
|
+
padding: var(--casc-menu-e2e-opt-padding-y) var(--casc-menu-e2e-opt-padding-x);
|
|
273
|
+
font-size: var(--casc-menu-e2e-opt-font-size);
|
|
254
274
|
border-radius: 2px;
|
|
255
275
|
|
|
256
276
|
&:hover {
|
|
257
|
-
background: var(--casc-
|
|
277
|
+
background: var(--casc-menu-e2e-opt-hover-bg);
|
|
258
278
|
}
|
|
259
279
|
|
|
260
280
|
&.active {
|
|
261
|
-
background: var(--casc-
|
|
281
|
+
background: var(--casc-menu-e2e-opt-active-bg);
|
|
262
282
|
}
|
|
263
283
|
}
|
|
264
284
|
|
|
265
|
-
.casc-
|
|
266
|
-
padding: var(--casc-
|
|
267
|
-
font-size: var(--casc-
|
|
268
|
-
border-bottom: 1px dotted var(--casc-
|
|
285
|
+
.casc-menu-e2e__opt-header {
|
|
286
|
+
padding: var(--casc-menu-e2e-opt-padding-y) var(--casc-menu-e2e-opt-padding-x);
|
|
287
|
+
font-size: var(--casc-menu-e2e-opt-font-size);
|
|
288
|
+
border-bottom: 1px dotted var(--casc-menu-e2e-opt-header-border-color);
|
|
269
289
|
border-radius: 2px;
|
|
270
290
|
position: sticky;
|
|
271
|
-
top:
|
|
272
|
-
background: var(--casc-
|
|
273
|
-
color: var(--casc-
|
|
291
|
+
top: 0;
|
|
292
|
+
background: var(--casc-menu-e2e-items-bg);
|
|
293
|
+
color: var(--casc-menu-e2e-opt-header-text-color);
|
|
274
294
|
display: flex;
|
|
275
295
|
align-items: center;
|
|
276
296
|
|
|
@@ -280,14 +300,14 @@
|
|
|
280
300
|
|
|
281
301
|
|
|
282
302
|
&:hover {
|
|
283
|
-
background: var(--casc-
|
|
303
|
+
background: var(--casc-menu-e2e-opt-hover-bg);
|
|
284
304
|
}
|
|
285
305
|
|
|
286
306
|
&.active {
|
|
287
|
-
background: var(--casc-
|
|
307
|
+
background: var(--casc-menu-e2e-opt-active-bg);
|
|
288
308
|
}
|
|
289
309
|
|
|
290
|
-
.casc-
|
|
310
|
+
.casc-menu-e2e__opt-header__clean {
|
|
291
311
|
display: inline-block;
|
|
292
312
|
margin-left: .2rem;
|
|
293
313
|
padding: .1rem;
|
|
@@ -298,11 +318,11 @@
|
|
|
298
318
|
|
|
299
319
|
svg {
|
|
300
320
|
|
|
301
|
-
border: 1px var(--casc-
|
|
321
|
+
border: 1px var(--casc-menu-e2e-clean-btn-color) solid;
|
|
302
322
|
border-radius: 50%;
|
|
303
323
|
|
|
304
324
|
path {
|
|
305
|
-
fill: var(--casc-
|
|
325
|
+
fill: var(--casc-menu-e2e-clean-btn-color);
|
|
306
326
|
}
|
|
307
327
|
}
|
|
308
328
|
}
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
import { clsWrite, combinedCls } from 'funda-utils/dist/cjs/cls';
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
|
|
31
32
|
import Group from './Group';
|
|
32
33
|
|
|
33
34
|
|
|
@@ -183,6 +184,7 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
183
184
|
const rootRef = useRef<any>(null);
|
|
184
185
|
const inputRef = useRef<any>(null);
|
|
185
186
|
const listRef = useRef<any>(null);
|
|
187
|
+
const MIN_SPACE_FOR_DROPDOWN = 200; // Minimum space needed to show dropdown below trigger
|
|
186
188
|
|
|
187
189
|
// searchable
|
|
188
190
|
const [columnSearchKeywords, setColumnSearchKeywords] = useState<string[]>([]);
|
|
@@ -295,7 +297,7 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
295
297
|
|
|
296
298
|
|
|
297
299
|
// update modal position
|
|
298
|
-
const _modalRef: any = document.querySelector(`#casc-
|
|
300
|
+
const _modalRef: any = document.querySelector(`#casc-menu-e2e__items-wrapper-${idRes}`);
|
|
299
301
|
const _triggerRef: any = inputRef.current;
|
|
300
302
|
|
|
301
303
|
|
|
@@ -317,7 +319,7 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
317
319
|
// STEP 2:
|
|
318
320
|
//-----------
|
|
319
321
|
// Detect position
|
|
320
|
-
if (window.innerHeight - _triggerBox.top >
|
|
322
|
+
if (window.innerHeight - _triggerBox.top > MIN_SPACE_FOR_DROPDOWN) {
|
|
321
323
|
targetPos = 'bottom';
|
|
322
324
|
} else {
|
|
323
325
|
targetPos = 'top';
|
|
@@ -380,7 +382,7 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
380
382
|
|
|
381
383
|
function popwinPosHide() {
|
|
382
384
|
|
|
383
|
-
const _modalRef: any = document.querySelector(`#casc-
|
|
385
|
+
const _modalRef: any = document.querySelector(`#casc-menu-e2e__items-wrapper-${idRes}`);
|
|
384
386
|
|
|
385
387
|
if (_modalRef !== null) {
|
|
386
388
|
// remove classnames and styles
|
|
@@ -396,9 +398,9 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
396
398
|
if (listRef.current === null) return;
|
|
397
399
|
|
|
398
400
|
let latestDisplayColIndex: number = 0;
|
|
399
|
-
const currentItemsInner: any = listRef.current.querySelector('.casc-
|
|
401
|
+
const currentItemsInner: any = listRef.current.querySelector('.casc-menu-e2e__items-inner');
|
|
400
402
|
if (currentItemsInner !== null) {
|
|
401
|
-
const colItemsWrapper = [].slice.call(currentItemsInner.querySelectorAll('.casc-
|
|
403
|
+
const colItemsWrapper = [].slice.call(currentItemsInner.querySelectorAll('.casc-menu-e2e__items-col'));
|
|
402
404
|
colItemsWrapper.forEach((perCol: any) => {
|
|
403
405
|
perCol.classList.remove('hide-col');
|
|
404
406
|
});
|
|
@@ -756,10 +758,10 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
756
758
|
|
|
757
759
|
// active current option with DOM
|
|
758
760
|
//////////////////////////////////////////
|
|
759
|
-
const currentItemsInner: any = e.currentTarget.closest('.casc-
|
|
761
|
+
const currentItemsInner: any = e.currentTarget.closest('.casc-menu-e2e__items-inner');
|
|
760
762
|
if (currentItemsInner !== null) {
|
|
761
763
|
curData.forEach((v: any, col: number) => {
|
|
762
|
-
const colItemsWrapper = currentItemsInner.querySelectorAll('.casc-
|
|
764
|
+
const colItemsWrapper = currentItemsInner.querySelectorAll('.casc-menu-e2e__items-col');
|
|
763
765
|
colItemsWrapper.forEach((perCol: HTMLUListElement) => {
|
|
764
766
|
const _col = Number(perCol.dataset.col);
|
|
765
767
|
|
|
@@ -1423,14 +1425,14 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
1423
1425
|
<>
|
|
1424
1426
|
|
|
1425
1427
|
<div
|
|
1426
|
-
className={clsWrite(wrapperClassName, 'casc-
|
|
1428
|
+
className={clsWrite(wrapperClassName, 'casc-menu-e2e__wrapper mb-3 position-relative', `casc-menu-e2e__wrapper ${wrapperClassName}`)}
|
|
1427
1429
|
ref={rootRef}
|
|
1428
|
-
data-overlay-id={`casc-
|
|
1430
|
+
data-overlay-id={`casc-menu-e2e__items-wrapper-${idRes}`}
|
|
1429
1431
|
>
|
|
1430
1432
|
{label ? <>{typeof label === 'string' ? <label htmlFor={idRes} className="form-label" dangerouslySetInnerHTML={{ __html: `${label}` }}></label> : <label htmlFor={idRes} className="form-label" >{label}</label>}</> : null}
|
|
1431
1433
|
|
|
1432
1434
|
{triggerContent ? <>
|
|
1433
|
-
<div className={clsWrite(triggerClassName, 'casc-
|
|
1435
|
+
<div className={clsWrite(triggerClassName, 'casc-menu-e2e__trigger d-inline w-auto', `casc-menu-e2e__trigger ${triggerClassName}`)} onClick={handleDisplayOptions}>{triggerContent}</div>
|
|
1434
1436
|
</> : null}
|
|
1435
1437
|
|
|
1436
1438
|
|
|
@@ -1438,16 +1440,16 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
1438
1440
|
<RootPortal show={true} containerClassName="CascadingSelectE2E">
|
|
1439
1441
|
<div
|
|
1440
1442
|
ref={listRef}
|
|
1441
|
-
id={`casc-
|
|
1442
|
-
className="casc-
|
|
1443
|
+
id={`casc-menu-e2e__items-wrapper-${idRes}`}
|
|
1444
|
+
className="casc-menu-e2e__items-wrapper position-absolute border shadow small"
|
|
1443
1445
|
style={{ zIndex: DEPTH, display: 'none' }}
|
|
1444
1446
|
>
|
|
1445
|
-
<ul className="casc-
|
|
1446
|
-
{loading ? <><div className="casc-
|
|
1447
|
+
<ul className="casc-menu-e2e__items-inner">
|
|
1448
|
+
{loading ? <><div className="casc-menu-e2e__items-loader">{loader || <svg height="12px" width="12px" viewBox="0 0 512 512"><g><path fill="inherit" d="M256,0c-23.357,0-42.297,18.932-42.297,42.288c0,23.358,18.94,42.288,42.297,42.288c23.357,0,42.279-18.93,42.279-42.288C298.279,18.932,279.357,0,256,0z" /><path fill="inherit" d="M256,427.424c-23.357,0-42.297,18.931-42.297,42.288C213.703,493.07,232.643,512,256,512c23.357,0,42.279-18.93,42.279-42.288C298.279,446.355,279.357,427.424,256,427.424z" /><path fill="inherit" d="M74.974,74.983c-16.52,16.511-16.52,43.286,0,59.806c16.52,16.52,43.287,16.52,59.806,0c16.52-16.511,16.52-43.286,0-59.806C118.261,58.463,91.494,58.463,74.974,74.983z" /><path fill="inherit" d="M377.203,377.211c-16.503,16.52-16.503,43.296,0,59.815c16.519,16.52,43.304,16.52,59.806,0c16.52-16.51,16.52-43.295,0-59.815C420.489,360.692,393.722,360.7,377.203,377.211z" /><path fill="inherit" d="M84.567,256c0.018-23.348-18.922-42.279-42.279-42.279c-23.357-0.009-42.297,18.932-42.279,42.288c-0.018,23.348,18.904,42.279,42.279,42.279C65.645,298.288,84.567,279.358,84.567,256z" /><path fill="inherit" d="M469.712,213.712c-23.357,0-42.279,18.941-42.297,42.288c0,23.358,18.94,42.288,42.297,42.297c23.357,0,42.297-18.94,42.279-42.297C512.009,232.652,493.069,213.712,469.712,213.712z" /><path fill="inherit" d="M74.991,377.22c-16.519,16.511-16.519,43.296,0,59.806c16.503,16.52,43.27,16.52,59.789,0c16.52-16.519,16.52-43.295,0-59.815C118.278,360.692,91.511,360.692,74.991,377.22z" /><path fill="inherit" d="M437.026,134.798c16.52-16.52,16.52-43.304,0-59.824c-16.519-16.511-43.304-16.52-59.823,0c-16.52,16.52-16.503,43.295,0,59.815C393.722,151.309,420.507,151.309,437.026,134.798z" /></g></svg>}</div></> : null}
|
|
1447
1449
|
{showCloseBtn ? <a href="#" tabIndex={-1} onClick={(e) => {
|
|
1448
1450
|
e.preventDefault();
|
|
1449
1451
|
cancel();
|
|
1450
|
-
}} className="casc-
|
|
1452
|
+
}} className="casc-menu-e2e__close position-absolute top-0 end-0 mt-0 mx-1"><svg width="10px" height="10px" viewBox="0 0 1024 1024"><path fill="#000" d="M195.2 195.2a64 64 0 0 1 90.496 0L512 421.504 738.304 195.2a64 64 0 0 1 90.496 90.496L602.496 512 828.8 738.304a64 64 0 0 1-90.496 90.496L512 602.496 285.696 828.8a64 64 0 0 1-90.496-90.496L421.504 512 195.2 285.696a64 64 0 0 1 0-90.496z" /></svg></a> : null}
|
|
1451
1453
|
|
|
1452
1454
|
|
|
1453
1455
|
|
|
@@ -1466,12 +1468,12 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
1466
1468
|
|
|
1467
1469
|
|
|
1468
1470
|
return (
|
|
1469
|
-
<li key={level} data-col={level} className="casc-
|
|
1471
|
+
<li key={level} data-col={level} className="casc-menu-e2e__items-col">
|
|
1470
1472
|
|
|
1471
1473
|
|
|
1472
1474
|
{/* SEARCH BOX */}
|
|
1473
1475
|
{searchable && (
|
|
1474
|
-
<div className="casc-
|
|
1476
|
+
<div className="casc-menu-e2e__items-col-searchbox">
|
|
1475
1477
|
<input
|
|
1476
1478
|
type="text"
|
|
1477
1479
|
placeholder={searchPlaceholder}
|
|
@@ -1513,7 +1515,7 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
1513
1515
|
|
|
1514
1516
|
|
|
1515
1517
|
<div className={combinedCls(
|
|
1516
|
-
'casc-
|
|
1518
|
+
'casc-menu-e2e__val',
|
|
1517
1519
|
{
|
|
1518
1520
|
'inputable': inputable,
|
|
1519
1521
|
}
|
|
@@ -1547,7 +1549,7 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
1547
1549
|
}
|
|
1548
1550
|
}}
|
|
1549
1551
|
id={idRes}
|
|
1550
|
-
data-overlay-id={`casc-
|
|
1552
|
+
data-overlay-id={`casc-menu-e2e__items-wrapper-${idRes}`}
|
|
1551
1553
|
name={name}
|
|
1552
1554
|
className={combinedCls(
|
|
1553
1555
|
clsWrite(controlClassName, 'form-control'),
|
|
@@ -1626,9 +1628,9 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
1626
1628
|
|
|
1627
1629
|
{/** REVIEW RESULT */}
|
|
1628
1630
|
{destroyParentIdMatch ? <>
|
|
1629
|
-
{!inputable ? <div className="casc-
|
|
1631
|
+
{!inputable ? <div className="casc-menu-e2e__result">{displayInfo(true)}</div> : null}
|
|
1630
1632
|
</> : <>
|
|
1631
|
-
{!inputable ? <div className="casc-
|
|
1633
|
+
{!inputable ? <div className="casc-menu-e2e__result">{displayInfo(false)}</div> : null}
|
|
1632
1634
|
</>}
|
|
1633
1635
|
|
|
1634
1636
|
|
|
@@ -1646,7 +1648,7 @@ const CascadingSelectE2E = forwardRef((props: CascadingSelectE2EProps, externalR
|
|
|
1646
1648
|
|
|
1647
1649
|
|
|
1648
1650
|
{isShow ? <div
|
|
1649
|
-
className="casc-
|
|
1651
|
+
className="casc-menu-e2e__closemask"
|
|
1650
1652
|
onClick={(e) => {
|
|
1651
1653
|
e.preventDefault();
|
|
1652
1654
|
cancel();
|
package/lib/esm/Date/index.tsx
CHANGED
|
@@ -193,6 +193,9 @@ const Date = forwardRef((props: DateProps, externalRef: any) => {
|
|
|
193
193
|
|
|
194
194
|
|
|
195
195
|
const DEPTH = depth || 1055; // the default value same as bootstrap
|
|
196
|
+
const MIN_SPACE_FOR_DROPDOWN = 200; // Minimum space needed to show dropdown below trigger
|
|
197
|
+
|
|
198
|
+
|
|
196
199
|
const defaultValueIsEmpty = (s: any) => {
|
|
197
200
|
return typeof s === 'undefined' || s === null || s === 'null' || s === '';
|
|
198
201
|
};
|
|
@@ -521,7 +524,7 @@ const Date = forwardRef((props: DateProps, externalRef: any) => {
|
|
|
521
524
|
// STEP 1:
|
|
522
525
|
//-----------
|
|
523
526
|
// Detect position
|
|
524
|
-
if (window.innerHeight - _triggerBox.top >
|
|
527
|
+
if (window.innerHeight - _triggerBox.top > MIN_SPACE_FOR_DROPDOWN) {
|
|
525
528
|
targetPos = 'bottom';
|
|
526
529
|
} else {
|
|
527
530
|
targetPos = 'top';
|
|
@@ -88,6 +88,7 @@ const DropdownMenu = (props: DropdownMenuProps) => {
|
|
|
88
88
|
const [isOpen, setIsOpen] = useState<boolean>(false);
|
|
89
89
|
const [selected, setSelected] = useState<any>(null);
|
|
90
90
|
const _hoverDelay = !isNaN(hoverDelay as never) && typeof hoverDelay !== 'undefined' ? hoverDelay : 150;
|
|
91
|
+
const MIN_SPACE_FOR_DROPDOWN = 200; // Minimum space needed to show dropdown below trigger
|
|
91
92
|
|
|
92
93
|
|
|
93
94
|
const defaultLabel = triggerContent === undefined ? '' : triggerContent;
|
|
@@ -207,7 +208,7 @@ const DropdownMenu = (props: DropdownMenuProps) => {
|
|
|
207
208
|
// STEP 2:
|
|
208
209
|
//-----------
|
|
209
210
|
// Detect position
|
|
210
|
-
if (window.innerHeight - _triggerBox.top >
|
|
211
|
+
if (window.innerHeight - _triggerBox.top > MIN_SPACE_FOR_DROPDOWN) {
|
|
211
212
|
targetPos = 'bottom';
|
|
212
213
|
} else {
|
|
213
214
|
targetPos = 'top';
|
|
@@ -153,6 +153,7 @@ const LiveSearch = forwardRef((props: LiveSearchProps, externalRef: any) => {
|
|
|
153
153
|
const EXCEEDED_SIDE_POS_OFFSET = Number(exceededSidePosOffset) || 15;
|
|
154
154
|
const AUTO_SHOW_OPTIONS = typeof autoShowOptions !== 'undefined' && autoShowOptions === true ? true : false;
|
|
155
155
|
const MANUAL_REQ = typeof fetchTrigger !== 'undefined' && fetchTrigger === true ? true : false; // Manual requests
|
|
156
|
+
const MIN_SPACE_FOR_DROPDOWN = 200; // Minimum space needed to show dropdown below trigger
|
|
156
157
|
|
|
157
158
|
const NO_MATCH_POPUP = typeof noMatchPopup === 'undefined' ? true : noMatchPopup;
|
|
158
159
|
const WIN_WIDTH = typeof winWidth === 'function' ? winWidth() : winWidth ? winWidth : 'auto';
|
|
@@ -300,7 +301,7 @@ const LiveSearch = forwardRef((props: LiveSearchProps, externalRef: any) => {
|
|
|
300
301
|
// STEP 2:
|
|
301
302
|
//-----------
|
|
302
303
|
// Detect position
|
|
303
|
-
if (window.innerHeight - _triggerBox.top >
|
|
304
|
+
if (window.innerHeight - _triggerBox.top > MIN_SPACE_FOR_DROPDOWN) {
|
|
304
305
|
targetPos = 'bottom';
|
|
305
306
|
} else {
|
|
306
307
|
targetPos = 'top';
|