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.
Files changed (37) hide show
  1. package/CascadingSelect/index.css +105 -88
  2. package/CascadingSelect/index.js +25 -24
  3. package/CascadingSelectE2E/index.css +105 -88
  4. package/CascadingSelectE2E/index.js +26 -25
  5. package/Date/index.js +3 -1
  6. package/DropdownMenu/index.js +3 -1
  7. package/LiveSearch/index.js +2 -1
  8. package/Select/index.d.ts +1 -0
  9. package/Select/index.js +70 -14
  10. package/Tooltip/index.css +69 -68
  11. package/Tooltip/index.d.ts +15 -1
  12. package/Tooltip/index.js +153 -57
  13. package/lib/cjs/CascadingSelect/index.js +25 -24
  14. package/lib/cjs/CascadingSelectE2E/index.js +26 -25
  15. package/lib/cjs/Date/index.js +3 -1
  16. package/lib/cjs/DropdownMenu/index.js +3 -1
  17. package/lib/cjs/LiveSearch/index.js +2 -1
  18. package/lib/cjs/Select/index.d.ts +1 -0
  19. package/lib/cjs/Select/index.js +70 -14
  20. package/lib/cjs/Tooltip/index.d.ts +15 -1
  21. package/lib/cjs/Tooltip/index.js +153 -57
  22. package/lib/css/CascadingSelect/index.css +105 -88
  23. package/lib/css/CascadingSelectE2E/index.css +105 -88
  24. package/lib/css/Tooltip/index.css +69 -68
  25. package/lib/esm/CascadingSelect/Group.tsx +3 -5
  26. package/lib/esm/CascadingSelect/index.scss +89 -68
  27. package/lib/esm/CascadingSelect/index.tsx +23 -21
  28. package/lib/esm/CascadingSelectE2E/Group.tsx +4 -3
  29. package/lib/esm/CascadingSelectE2E/index.scss +83 -63
  30. package/lib/esm/CascadingSelectE2E/index.tsx +24 -22
  31. package/lib/esm/Date/index.tsx +4 -1
  32. package/lib/esm/DropdownMenu/index.tsx +2 -1
  33. package/lib/esm/LiveSearch/index.tsx +2 -1
  34. package/lib/esm/Select/index.tsx +75 -17
  35. package/lib/esm/Tooltip/index.scss +63 -60
  36. package/lib/esm/Tooltip/index.tsx +143 -44
  37. package/package.json +1 -1
@@ -1,20 +1,20 @@
1
1
  /* ======================================================
2
2
  <!-- Cascading Select End-to-end -->
3
3
  /* ====================================================== */
4
- .casc-select-e2e__wrapper {
5
- --casc-select-e2e-arrow-fill: #a5a5a5;
6
- --casc-select-e2e-result-arrow-fill: #a5a5a5;
7
- --casc-select-e2e-result-font-size: 1rem;
8
- --casc-select-e2e-result-padding-x: 0.75rem;
9
- --casc-select-e2e-result-padding-y: 0.375rem;
10
- }
11
- .casc-select-e2e__wrapper .casc-select-e2e__result {
4
+ .casc-menu-e2e__wrapper {
5
+ --casc-menu-e2e-arrow-fill: #a5a5a5;
6
+ --casc-menu-e2e-result-arrow-fill: #a5a5a5;
7
+ --casc-menu-e2e-result-font-size: 1rem;
8
+ --casc-menu-e2e-result-padding-x: 0.75rem;
9
+ --casc-menu-e2e-result-padding-y: 0.375rem;
10
+ }
11
+ .casc-menu-e2e__wrapper .casc-menu-e2e__result {
12
12
  position: absolute;
13
13
  left: auto;
14
14
  z-index: 1;
15
15
  top: 0;
16
- padding: var(--casc-select-e2e-result-padding-y) var(--casc-select-e2e-result-padding-x);
17
- font-size: var(--casc-select-e2e-result-font-size);
16
+ padding: var(--casc-menu-e2e-result-padding-y) var(--casc-menu-e2e-result-padding-x);
17
+ font-size: var(--casc-menu-e2e-result-font-size);
18
18
  font-weight: 400;
19
19
  line-height: 1.5;
20
20
  color: inherit;
@@ -26,20 +26,20 @@
26
26
  /* required */
27
27
  display: flex;
28
28
  }
29
- .casc-select-e2e__wrapper .casc-select-e2e__result div {
29
+ .casc-menu-e2e__wrapper .casc-menu-e2e__result div {
30
30
  /* required */
31
31
  display: flex;
32
32
  }
33
- .casc-select-e2e__wrapper .casc-select-e2e__result span {
33
+ .casc-menu-e2e__wrapper .casc-menu-e2e__result span {
34
34
  padding: 3px;
35
35
  }
36
- .casc-select-e2e__wrapper .casc-select-e2e__result svg {
36
+ .casc-menu-e2e__wrapper .casc-menu-e2e__result svg {
37
37
  margin: 0 0.3rem;
38
38
  }
39
- .casc-select-e2e__wrapper .casc-select-e2e__result svg path {
40
- fill: var(--casc-select-e2e-result-arrow-fill);
39
+ .casc-menu-e2e__wrapper .casc-menu-e2e__result svg path {
40
+ fill: var(--casc-menu-e2e-result-arrow-fill);
41
41
  }
42
- .casc-select-e2e__wrapper .casc-select-e2e__closemask {
42
+ .casc-menu-e2e__wrapper .casc-menu-e2e__closemask {
43
43
  position: absolute;
44
44
  z-index: 1;
45
45
  top: 0;
@@ -49,77 +49,81 @@
49
49
  background: rgba(0, 0, 0, 0);
50
50
  user-select: none;
51
51
  }
52
- .casc-select-e2e__wrapper .casc-select-e2e__trigger {
52
+ .casc-menu-e2e__wrapper .casc-menu-e2e__trigger {
53
53
  position: relative;
54
54
  z-index: 0;
55
55
  }
56
- .casc-select-e2e__wrapper .casc-select-e2e__val {
56
+ .casc-menu-e2e__wrapper .casc-menu-e2e__val {
57
57
  position: relative;
58
58
  }
59
- .casc-select-e2e__wrapper .casc-select-e2e__val:not(.inputable) input {
59
+ .casc-menu-e2e__wrapper .casc-menu-e2e__val:not(.inputable) input {
60
60
  cursor: pointer;
61
61
  color: transparent !important;
62
62
  }
63
- .casc-select-e2e__wrapper .casc-select-e2e__val:not(.inputable) input:focus {
63
+ .casc-menu-e2e__wrapper .casc-menu-e2e__val:not(.inputable) input:focus {
64
64
  color: transparent !important;
65
65
  }
66
- .casc-select-e2e__wrapper .casc-select-e2e__val .arrow {
66
+ .casc-menu-e2e__wrapper .casc-menu-e2e__val .arrow {
67
67
  position: absolute;
68
68
  top: 50%;
69
69
  transform: translateY(-50%);
70
70
  right: 0.5rem;
71
71
  }
72
- .casc-select-e2e__wrapper .casc-select-e2e__val .arrow svg .arrow-fill-g {
73
- fill: var(--casc-select-e2e-arrow-fill);
72
+ .casc-menu-e2e__wrapper .casc-menu-e2e__val .arrow svg .arrow-fill-g {
73
+ fill: var(--casc-menu-e2e-arrow-fill);
74
74
  }
75
75
 
76
76
  /*------ List ------*/
77
- .casc-select-e2e__items-wrapper {
78
- --casc-select-e2e-opt-font-size: 0.875rem;
79
- --casc-select-e2e-opt-padding-x: .4rem;
80
- --casc-select-e2e-opt-padding-y: .3rem;
81
- --casc-select-e2e-opt-header-border-color: rgba(1, 1, 1, .2);
82
- --casc-select-e2e-opt-header-text-color: #999;
83
- --casc-select-e2e-opt-hover-bg: #f7f7f7;
84
- --casc-select-e2e-opt-active-bg: #eeeeee;
85
- --casc-select-e2e-items-box-shadow: 0 5px 15px 5px rgba(80, 102, 224, 0.08);
86
- --casc-select-e2e-items-bg: #fff;
87
- --casc-select-e2e-items-color: inherit;
88
- --casc-select-e2e-items-border-color: rgba(0, 0, 0, .1);
89
- --casc-select-e2e-items-li-border-color: #eee;
90
- --casc-select-e2e-loader-color: #000000;
91
- --casc-select-e2e-clean-btn-color: #b5b5b5;
92
- --casc-select-e2e-searchbox-border-color: #ddd;
93
- box-shadow: var(--casc-select-e2e-items-box-shadow);
77
+ .casc-menu-e2e__items-wrapper {
78
+ --casc-menu-e2e-scrollbar-color: rgba(0, 0, 0, 0.2);
79
+ --casc-menu-e2e-scrollbar-track: rgba(0, 0, 0, 0);
80
+ --casc-menu-e2e-scrollbar-h: 3px;
81
+ --casc-menu-e2e-scrollbar-w: 3px;
82
+ --casc-menu-e2e-per-col-maxheight: 300px;
83
+ --casc-menu-e2e-opt-font-size: 0.875rem;
84
+ --casc-menu-e2e-opt-padding-x: .4rem;
85
+ --casc-menu-e2e-opt-padding-y: .3rem;
86
+ --casc-menu-e2e-opt-header-border-color: rgba(1, 1, 1, .2);
87
+ --casc-menu-e2e-opt-header-text-color: #999;
88
+ --casc-menu-e2e-opt-hover-bg: #f7f7f7;
89
+ --casc-menu-e2e-opt-active-bg: #eeeeee;
90
+ --casc-menu-e2e-items-box-shadow: 0 5px 15px 5px rgba(80, 102, 224, 0.08);
91
+ --casc-menu-e2e-items-bg: #fff;
92
+ --casc-menu-e2e-items-color: inherit;
93
+ --casc-menu-e2e-items-border-color: rgba(0, 0, 0, .1);
94
+ --casc-menu-e2e-items-li-border-color: #eee;
95
+ --casc-menu-e2e-loader-color: #000000;
96
+ --casc-menu-e2e-clean-btn-color: #b5b5b5;
97
+ --casc-menu-e2e-searchbox-border-color: #ddd;
98
+ box-shadow: var(--casc-menu-e2e-items-box-shadow);
94
99
  position: absolute;
95
100
  left: auto;
96
- max-height: 300px;
97
- border: 1px solid var(--casc-select-e2e-items-border-color);
98
- background: var(--casc-select-e2e-items-bg);
101
+ border: 1px solid var(--casc-menu-e2e-items-border-color);
102
+ background: var(--casc-menu-e2e-items-bg);
99
103
  padding: 10px;
100
- overflow-y: auto;
101
104
  box-sizing: border-box;
102
105
  top: 2.3rem;
103
106
  border-radius: 5px;
104
107
  width: max-content;
105
108
  /* required -> the content will not wrap at all even if it causes overflows*/
106
- color: var(--casc-select-e2e-items-color);
109
+ color: var(--casc-menu-e2e-items-color);
107
110
  display: none;
108
111
  z-index: 1055; /* --bs-modal-zindex */
109
112
  /* each item */
113
+ /* Column */
110
114
  /* Searchbox */
111
115
  /* Options */
112
116
  }
113
- .casc-select-e2e__items-wrapper.active {
117
+ .casc-menu-e2e__items-wrapper.active {
114
118
  display: block !important;
115
119
  }
116
- .casc-select-e2e__items-wrapper ul,
117
- .casc-select-e2e__items-wrapper li {
120
+ .casc-menu-e2e__items-wrapper ul,
121
+ .casc-menu-e2e__items-wrapper li {
118
122
  list-style: none;
119
123
  margin: 0;
120
124
  padding: 0;
121
125
  }
122
- .casc-select-e2e__items-wrapper .casc-select-e2e__items-loader {
126
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__items-loader {
123
127
  position: absolute;
124
128
  pointer-events: none;
125
129
  left: 0;
@@ -131,98 +135,111 @@
131
135
  text-align: center;
132
136
  transform-origin: center;
133
137
  transform: translate(2px, 5px) rotate(0);
134
- animation: 1s linear infinite casc-select-e2e__spinner;
138
+ animation: 1s linear infinite casc-menu-e2e__spinner;
135
139
  }
136
- .casc-select-e2e__items-wrapper .casc-select-e2e__items-loader svg {
140
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__items-loader svg {
137
141
  vertical-align: top;
138
142
  }
139
- .casc-select-e2e__items-wrapper .casc-select-e2e__items-loader svg path {
140
- fill: var(--casc-select-e2e-loader-color);
143
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__items-loader svg path {
144
+ fill: var(--casc-menu-e2e-loader-color);
141
145
  }
142
- @keyframes casc-select-e2e__spinner {
146
+ @keyframes casc-menu-e2e__spinner {
143
147
  to {
144
148
  transform: translate(2px, 5px) rotate(-360deg);
145
149
  }
146
150
  }
147
- .casc-select-e2e__items-wrapper .casc-select-e2e__close svg {
151
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__close svg {
148
152
  opacity: 0.4;
149
153
  }
150
- .casc-select-e2e__items-wrapper .casc-select-e2e__close:hover svg {
154
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__close:hover svg {
151
155
  transition: 0.2s ease-out;
152
156
  opacity: 0.7;
153
157
  }
154
- .casc-select-e2e__items-wrapper ul {
158
+ .casc-menu-e2e__items-wrapper ul {
155
159
  transition: 0.2s ease-out;
156
160
  min-width: 8px;
157
161
  min-height: 9px;
158
162
  }
159
- .casc-select-e2e__items-wrapper ul > li {
163
+ .casc-menu-e2e__items-wrapper ul > li {
160
164
  position: relative;
161
165
  cursor: pointer;
162
166
  float: left;
163
167
  padding: 0 10px;
164
168
  margin-right: 15px;
165
- border-right: 1px dotted var(--casc-select-e2e-items-li-border-color);
169
+ border-right: 1px dotted var(--casc-menu-e2e-items-li-border-color);
166
170
  transition: 0.2s ease-out;
167
171
  }
168
- .casc-select-e2e__items-wrapper ul > li.hide-col {
172
+ .casc-menu-e2e__items-wrapper ul > li.hide-col {
169
173
  display: none;
170
174
  }
171
- .casc-select-e2e__items-wrapper ul > li:last-child {
175
+ .casc-menu-e2e__items-wrapper ul > li:last-child {
172
176
  margin-right: 0;
173
177
  border-right: none;
174
178
  }
175
- .casc-select-e2e__items-wrapper .casc-select-e2e__items-col-searchbox input {
176
- border: 1px solid var(--casc-select-e2e-searchbox-border-color);
179
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__items-col {
180
+ max-height: var(--casc-menu-e2e-per-col-maxheight);
181
+ overflow-y: auto;
182
+ }
183
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__items-col::-webkit-scrollbar {
184
+ width: var(--casc-menu-e2e-scrollbar-w);
185
+ }
186
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__items-col::-webkit-scrollbar-thumb {
187
+ background: var(--casc-menu-e2e-scrollbar-color);
188
+ }
189
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__items-col::-webkit-scrollbar-track {
190
+ background: var(--casc-menu-e2e-scrollbar-track);
191
+ }
192
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__items-col-searchbox input {
193
+ border: 1px solid var(--casc-menu-e2e-searchbox-border-color);
177
194
  border-radius: 0.15rem;
178
195
  width: 100%;
179
196
  background: transparent;
180
197
  font-size: 0.75rem;
181
198
  }
182
- .casc-select-e2e__items-wrapper .casc-select-e2e__opt {
183
- padding: var(--casc-select-e2e-opt-padding-y) var(--casc-select-e2e-opt-padding-x);
184
- font-size: var(--casc-select-e2e-opt-font-size);
199
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__opt {
200
+ padding: var(--casc-menu-e2e-opt-padding-y) var(--casc-menu-e2e-opt-padding-x);
201
+ font-size: var(--casc-menu-e2e-opt-font-size);
185
202
  border-radius: 2px;
186
203
  }
187
- .casc-select-e2e__items-wrapper .casc-select-e2e__opt:hover {
188
- background: var(--casc-select-e2e-opt-hover-bg);
204
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__opt:hover {
205
+ background: var(--casc-menu-e2e-opt-hover-bg);
189
206
  }
190
- .casc-select-e2e__items-wrapper .casc-select-e2e__opt.active {
191
- background: var(--casc-select-e2e-opt-active-bg);
207
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__opt.active {
208
+ background: var(--casc-menu-e2e-opt-active-bg);
192
209
  }
193
- .casc-select-e2e__items-wrapper .casc-select-e2e__opt-header {
194
- padding: var(--casc-select-e2e-opt-padding-y) var(--casc-select-e2e-opt-padding-x);
195
- font-size: var(--casc-select-e2e-opt-font-size);
196
- border-bottom: 1px dotted var(--casc-select-e2e-opt-header-border-color);
210
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__opt-header {
211
+ padding: var(--casc-menu-e2e-opt-padding-y) var(--casc-menu-e2e-opt-padding-x);
212
+ font-size: var(--casc-menu-e2e-opt-font-size);
213
+ border-bottom: 1px dotted var(--casc-menu-e2e-opt-header-border-color);
197
214
  border-radius: 2px;
198
215
  position: sticky;
199
- top: calc(var(--casc-select-e2e-opt-font-size) * -1);
200
- background: var(--casc-select-e2e-items-bg);
201
- color: var(--casc-select-e2e-opt-header-text-color);
216
+ top: 0;
217
+ background: var(--casc-menu-e2e-items-bg);
218
+ color: var(--casc-menu-e2e-opt-header-text-color);
202
219
  display: flex;
203
220
  align-items: center;
204
221
  }
205
- .casc-select-e2e__items-wrapper .casc-select-e2e__opt-header > span {
222
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__opt-header > span {
206
223
  cursor: default;
207
224
  }
208
- .casc-select-e2e__items-wrapper .casc-select-e2e__opt-header:hover {
209
- background: var(--casc-select-e2e-opt-hover-bg);
225
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__opt-header:hover {
226
+ background: var(--casc-menu-e2e-opt-hover-bg);
210
227
  }
211
- .casc-select-e2e__items-wrapper .casc-select-e2e__opt-header.active {
212
- background: var(--casc-select-e2e-opt-active-bg);
228
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__opt-header.active {
229
+ background: var(--casc-menu-e2e-opt-active-bg);
213
230
  }
214
- .casc-select-e2e__items-wrapper .casc-select-e2e__opt-header .casc-select-e2e__opt-header__clean {
231
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__opt-header .casc-menu-e2e__opt-header__clean {
215
232
  display: inline-block;
216
233
  margin-left: 0.2rem;
217
234
  padding: 0.1rem;
218
235
  }
219
- .casc-select-e2e__items-wrapper .casc-select-e2e__opt-header .casc-select-e2e__opt-header__clean:hover {
236
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__opt-header .casc-menu-e2e__opt-header__clean:hover {
220
237
  transform: scale(1.1);
221
238
  }
222
- .casc-select-e2e__items-wrapper .casc-select-e2e__opt-header .casc-select-e2e__opt-header__clean svg {
223
- border: 1px var(--casc-select-e2e-clean-btn-color) solid;
239
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__opt-header .casc-menu-e2e__opt-header__clean svg {
240
+ border: 1px var(--casc-menu-e2e-clean-btn-color) solid;
224
241
  border-radius: 50%;
225
242
  }
226
- .casc-select-e2e__items-wrapper .casc-select-e2e__opt-header .casc-select-e2e__opt-header__clean svg path {
227
- fill: var(--casc-select-e2e-clean-btn-color);
243
+ .casc-menu-e2e__items-wrapper .casc-menu-e2e__opt-header .casc-menu-e2e__opt-header__clean svg path {
244
+ fill: var(--casc-menu-e2e-clean-btn-color);
228
245
  }
@@ -2540,7 +2540,7 @@ function Group(props) {
2540
2540
  "data-value": JSON.stringify(item),
2541
2541
  "data-level": level,
2542
2542
  "data-query": item.queryId,
2543
- className: (0,cls.combinedCls)('casc-select-e2e__opt', {
2543
+ className: (0,cls.combinedCls)('casc-menu-e2e__opt', {
2544
2544
  'active': item.current
2545
2545
  }),
2546
2546
  dangerouslySetInnerHTML: {
@@ -2554,13 +2554,13 @@ function Group(props) {
2554
2554
  } else {
2555
2555
  return columnTitle[level] === '' || perColumnHeadersShow === false ? null : /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("h3", {
2556
2556
  key: index,
2557
- className: "casc-select-e2e__opt-header"
2557
+ className: "casc-menu-e2e__opt-header"
2558
2558
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
2559
2559
  dangerouslySetInnerHTML: {
2560
2560
  __html: columnTitle[level]
2561
2561
  }
2562
2562
  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
2563
- className: "casc-select-e2e__opt-header__clean"
2563
+ className: "casc-menu-e2e__opt-header__clean"
2564
2564
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", {
2565
2565
  tabIndex: -1,
2566
2566
  href: "#",
@@ -2679,6 +2679,7 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
2679
2679
  var rootRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
2680
2680
  var inputRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
2681
2681
  var listRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
2682
+ var MIN_SPACE_FOR_DROPDOWN = 200; // Minimum space needed to show dropdown below trigger
2682
2683
 
2683
2684
  // searchable
2684
2685
  var _useState = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([]),
@@ -2798,7 +2799,7 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
2798
2799
  if (rootRef.current === null || inputRef.current === null) return;
2799
2800
 
2800
2801
  // update modal position
2801
- var _modalRef = document.querySelector("#casc-select-e2e__items-wrapper-".concat(idRes));
2802
+ var _modalRef = document.querySelector("#casc-menu-e2e__items-wrapper-".concat(idRes));
2802
2803
  var _triggerRef = inputRef.current;
2803
2804
 
2804
2805
  // console.log(getAbsolutePositionOfStage(_triggerRef));
@@ -2821,7 +2822,7 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
2821
2822
  // STEP 2:
2822
2823
  //-----------
2823
2824
  // Detect position
2824
- if (window.innerHeight - _triggerBox.top > 100) {
2825
+ if (window.innerHeight - _triggerBox.top > MIN_SPACE_FOR_DROPDOWN) {
2825
2826
  targetPos = 'bottom';
2826
2827
  } else {
2827
2828
  targetPos = 'top';
@@ -2870,7 +2871,7 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
2870
2871
  }
2871
2872
 
2872
2873
  function popwinPosHide() {
2873
- var _modalRef = document.querySelector("#casc-select-e2e__items-wrapper-".concat(idRes));
2874
+ var _modalRef = document.querySelector("#casc-menu-e2e__items-wrapper-".concat(idRes));
2874
2875
  if (_modalRef !== null) {
2875
2876
  // remove classnames and styles
2876
2877
  _modalRef.classList.remove('active');
@@ -2881,9 +2882,9 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
2881
2882
  var level = arguments.length > 2 ? arguments[2] : undefined;
2882
2883
  if (listRef.current === null) return;
2883
2884
  var latestDisplayColIndex = 0;
2884
- var currentItemsInner = listRef.current.querySelector('.casc-select-e2e__items-inner');
2885
+ var currentItemsInner = listRef.current.querySelector('.casc-menu-e2e__items-inner');
2885
2886
  if (currentItemsInner !== null) {
2886
- var colItemsWrapper = [].slice.call(currentItemsInner.querySelectorAll('.casc-select-e2e__items-col'));
2887
+ var colItemsWrapper = [].slice.call(currentItemsInner.querySelectorAll('.casc-menu-e2e__items-col'));
2887
2888
  colItemsWrapper.forEach(function (perCol) {
2888
2889
  perCol.classList.remove('hide-col');
2889
2890
  });
@@ -3204,10 +3205,10 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
3204
3205
 
3205
3206
  // active current option with DOM
3206
3207
  //////////////////////////////////////////
3207
- var currentItemsInner = e.currentTarget.closest('.casc-select-e2e__items-inner');
3208
+ var currentItemsInner = e.currentTarget.closest('.casc-menu-e2e__items-inner');
3208
3209
  if (currentItemsInner !== null) {
3209
3210
  curData.forEach(function (v, col) {
3210
- var colItemsWrapper = currentItemsInner.querySelectorAll('.casc-select-e2e__items-col');
3211
+ var colItemsWrapper = currentItemsInner.querySelectorAll('.casc-menu-e2e__items-col');
3211
3212
  colItemsWrapper.forEach(function (perCol) {
3212
3213
  var _col = Number(perCol.dataset.col);
3213
3214
  if (_col >= level) {
@@ -3743,9 +3744,9 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
3743
3744
  };
3744
3745
  }, []);
3745
3746
  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
3746
- className: (0,cls.clsWrite)(wrapperClassName, 'casc-select-e2e__wrapper mb-3 position-relative', "casc-select-e2e__wrapper ".concat(wrapperClassName)),
3747
+ className: (0,cls.clsWrite)(wrapperClassName, 'casc-menu-e2e__wrapper mb-3 position-relative', "casc-menu-e2e__wrapper ".concat(wrapperClassName)),
3747
3748
  ref: rootRef,
3748
- "data-overlay-id": "casc-select-e2e__items-wrapper-".concat(idRes)
3749
+ "data-overlay-id": "casc-menu-e2e__items-wrapper-".concat(idRes)
3749
3750
  }, label ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, typeof label === 'string' ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("label", {
3750
3751
  htmlFor: idRes,
3751
3752
  className: "form-label",
@@ -3756,23 +3757,23 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
3756
3757
  htmlFor: idRes,
3757
3758
  className: "form-label"
3758
3759
  }, label)) : null, triggerContent ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
3759
- className: (0,cls.clsWrite)(triggerClassName, 'casc-select-e2e__trigger d-inline w-auto', "casc-select-e2e__trigger ".concat(triggerClassName)),
3760
+ className: (0,cls.clsWrite)(triggerClassName, 'casc-menu-e2e__trigger d-inline w-auto', "casc-menu-e2e__trigger ".concat(triggerClassName)),
3760
3761
  onClick: handleDisplayOptions
3761
3762
  }, triggerContent)) : null, !hasErr ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((cjs_default()), {
3762
3763
  show: true,
3763
3764
  containerClassName: "CascadingSelectE2E"
3764
3765
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
3765
3766
  ref: listRef,
3766
- id: "casc-select-e2e__items-wrapper-".concat(idRes),
3767
- className: "casc-select-e2e__items-wrapper position-absolute border shadow small",
3767
+ id: "casc-menu-e2e__items-wrapper-".concat(idRes),
3768
+ className: "casc-menu-e2e__items-wrapper position-absolute border shadow small",
3768
3769
  style: {
3769
3770
  zIndex: DEPTH,
3770
3771
  display: 'none'
3771
3772
  }
3772
3773
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("ul", {
3773
- className: "casc-select-e2e__items-inner"
3774
+ className: "casc-menu-e2e__items-inner"
3774
3775
  }, loading ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
3775
- className: "casc-select-e2e__items-loader"
3776
+ className: "casc-menu-e2e__items-loader"
3776
3777
  }, loader || /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("svg", {
3777
3778
  height: "12px",
3778
3779
  width: "12px",
@@ -3808,7 +3809,7 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
3808
3809
  e.preventDefault();
3809
3810
  cancel();
3810
3811
  },
3811
- className: "casc-select-e2e__close position-absolute top-0 end-0 mt-0 mx-1"
3812
+ className: "casc-menu-e2e__close position-absolute top-0 end-0 mt-0 mx-1"
3812
3813
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("svg", {
3813
3814
  width: "10px",
3814
3815
  height: "10px",
@@ -3829,9 +3830,9 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
3829
3830
  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("li", {
3830
3831
  key: level,
3831
3832
  "data-col": level,
3832
- className: "casc-select-e2e__items-col"
3833
+ className: "casc-menu-e2e__items-col"
3833
3834
  }, searchable && /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
3834
- className: "casc-select-e2e__items-col-searchbox"
3835
+ className: "casc-menu-e2e__items-col-searchbox"
3835
3836
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("input", {
3836
3837
  type: "text",
3837
3838
  placeholder: searchPlaceholder,
@@ -3857,7 +3858,7 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
3857
3858
  return null;
3858
3859
  }
3859
3860
  })))) : null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
3860
- className: (0,cls.combinedCls)('casc-select-e2e__val', {
3861
+ className: (0,cls.combinedCls)('casc-menu-e2e__val', {
3861
3862
  'inputable': inputable
3862
3863
  }),
3863
3864
  onClick: handleDisplayOptions
@@ -3880,7 +3881,7 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
3880
3881
  }
3881
3882
  },
3882
3883
  id: idRes,
3883
- "data-overlay-id": "casc-select-e2e__items-wrapper-".concat(idRes),
3884
+ "data-overlay-id": "casc-menu-e2e__items-wrapper-".concat(idRes),
3884
3885
  name: name,
3885
3886
  className: (0,cls.combinedCls)((0,cls.clsWrite)(controlClassName, 'form-control'), controlExClassName, {
3886
3887
  'rounded': !propExist(iconLeft) && !propExist(iconRight) && !propExist(units),
@@ -3938,9 +3939,9 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
3938
3939
  }
3939
3940
  } : undefined
3940
3941
  }, attributes)), destroyParentIdMatch ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, !inputable ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
3941
- className: "casc-select-e2e__result"
3942
+ className: "casc-menu-e2e__result"
3942
3943
  }, displayInfo(true)) : null) : /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, !inputable ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
3943
- className: "casc-select-e2e__result"
3944
+ className: "casc-menu-e2e__result"
3944
3945
  }, displayInfo(false)) : null), required ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, requiredLabel || requiredLabel === '' ? requiredLabel : /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
3945
3946
  className: "position-absolute end-0 top-0 my-2 mx-2 pe-3"
3946
3947
  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
@@ -3950,7 +3951,7 @@ var CascadingSelectE2E = /*#__PURE__*/(0,external_root_React_commonjs2_react_com
3950
3951
  }, units)) : null, propExist(iconRight) ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
3951
3952
  className: (0,cls.clsWrite)(controlGroupTextClassName, 'input-group-text')
3952
3953
  }, iconRight)) : null), isShow ? /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
3953
- className: "casc-select-e2e__closemask",
3954
+ className: "casc-menu-e2e__closemask",
3954
3955
  onClick: function onClick(e) {
3955
3956
  e.preventDefault();
3956
3957
  cancel();
package/Date/index.js CHANGED
@@ -5034,6 +5034,8 @@ var src_Date = /*#__PURE__*/(0,external_root_React_commonjs2_react_commonjs_reac
5034
5034
  langToday = props.langToday,
5035
5035
  attributes = _objectWithoutProperties(props, _excluded);
5036
5036
  var DEPTH = depth || 1055; // the default value same as bootstrap
5037
+ var MIN_SPACE_FOR_DROPDOWN = 200; // Minimum space needed to show dropdown below trigger
5038
+
5037
5039
  var defaultValueIsEmpty = function defaultValueIsEmpty(s) {
5038
5040
  return typeof s === 'undefined' || s === null || s === 'null' || s === '';
5039
5041
  };
@@ -5328,7 +5330,7 @@ var src_Date = /*#__PURE__*/(0,external_root_React_commonjs2_react_commonjs_reac
5328
5330
  // STEP 1:
5329
5331
  //-----------
5330
5332
  // Detect position
5331
- if (window.innerHeight - _triggerBox.top > 100) {
5333
+ if (window.innerHeight - _triggerBox.top > MIN_SPACE_FOR_DROPDOWN) {
5332
5334
  targetPos = 'bottom';
5333
5335
  } else {
5334
5336
  targetPos = 'top';
@@ -1285,6 +1285,8 @@ var DropdownMenu = function DropdownMenu(props) {
1285
1285
  selected = _useState4[0],
1286
1286
  setSelected = _useState4[1];
1287
1287
  var _hoverDelay = !isNaN(hoverDelay) && typeof hoverDelay !== 'undefined' ? hoverDelay : 150;
1288
+ var MIN_SPACE_FOR_DROPDOWN = 200; // Minimum space needed to show dropdown below trigger
1289
+
1288
1290
  var defaultLabel = triggerContent === undefined ? '' : triggerContent;
1289
1291
  var selectedLabel = triggerSwitchActive ? selected ? selected.label : defaultLabel : defaultLabel;
1290
1292
  var selectOptionsListPresentation = options === null || options === void 0 ? void 0 : options.map(function (selectOption, index) {
@@ -1375,7 +1377,7 @@ var DropdownMenu = function DropdownMenu(props) {
1375
1377
  // STEP 2:
1376
1378
  //-----------
1377
1379
  // Detect position
1378
- if (window.innerHeight - _triggerBox.top > 100) {
1380
+ if (window.innerHeight - _triggerBox.top > MIN_SPACE_FOR_DROPDOWN) {
1379
1381
  targetPos = 'bottom';
1380
1382
  } else {
1381
1383
  targetPos = 'top';
@@ -2892,6 +2892,7 @@ var LiveSearch = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(
2892
2892
  var EXCEEDED_SIDE_POS_OFFSET = Number(exceededSidePosOffset) || 15;
2893
2893
  var AUTO_SHOW_OPTIONS = typeof autoShowOptions !== 'undefined' && autoShowOptions === true ? true : false;
2894
2894
  var MANUAL_REQ = typeof fetchTrigger !== 'undefined' && fetchTrigger === true ? true : false; // Manual requests
2895
+ var MIN_SPACE_FOR_DROPDOWN = 200; // Minimum space needed to show dropdown below trigger
2895
2896
 
2896
2897
  var NO_MATCH_POPUP = typeof noMatchPopup === 'undefined' ? true : noMatchPopup;
2897
2898
  var WIN_WIDTH = typeof winWidth === 'function' ? winWidth() : winWidth ? winWidth : 'auto';
@@ -3052,7 +3053,7 @@ var LiveSearch = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(
3052
3053
  // STEP 2:
3053
3054
  //-----------
3054
3055
  // Detect position
3055
- if (window.innerHeight - _triggerBox.top > 100) {
3056
+ if (window.innerHeight - _triggerBox.top > MIN_SPACE_FOR_DROPDOWN) {
3056
3057
  targetPos = 'bottom';
3057
3058
  } else {
3058
3059
  targetPos = 'top';
package/Select/index.d.ts CHANGED
@@ -47,6 +47,7 @@ export declare type SelectProps = {
47
47
  controlClassName?: string;
48
48
  controlExClassName?: string;
49
49
  optionsExClassName?: string;
50
+ customScrollContainer?: string | HTMLElement | React.RefObject<HTMLElement>;
50
51
  exceededSidePosOffset?: number;
51
52
  clearIcon?: boolean;
52
53
  renderOption?: (optionData: OptionConfig, index: number) => React.ReactNode;