react-core-ts 2.0.24 → 2.1.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/dist/AutoComplete.js +29 -3
- package/dist/AutoComplete.js.map +1 -1
- package/dist/ReactAutoComplete.js +30 -1
- package/dist/ReactAutoComplete.js.map +1 -1
- package/dist/ReactAutoCompleteDropdown.js +31 -2
- package/dist/ReactAutoCompleteDropdown.js.map +1 -1
- package/dist/ReactAutoCompleteSuggections.d.ts +74 -0
- package/dist/ReactAutoCompleteSuggections.js +379 -0
- package/dist/ReactAutoCompleteSuggections.js.map +1 -0
- package/dist/dropdownFilterTabs.js +128 -94
- package/dist/dropdownFilterTabs.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/docs/App.tsx +16 -1
- package/package.json +1 -1
- package/src/AutoComplete.tsx +30 -1
- package/src/ReactAutoComplete.tsx +31 -1
- package/src/ReactAutoCompleteDropdown.tsx +72 -42
- package/src/ReactAutoCompleteSuggections.tsx +559 -0
- package/src/dropdownFilterTabs.tsx +73 -35
- package/src/index.tsx +1 -0
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
54
|
+
// NOTE: This file was renamed from ReactAutoCompleteNameCount.tsx
|
|
55
|
+
// The implementation is unchanged; only the filename and exported component name differ.
|
|
56
|
+
var react_1 = require("react");
|
|
57
|
+
var Spinner_1 = __importDefault(require("./components/loader/Spinner"));
|
|
58
|
+
var portal_1 = __importDefault(require("./components/portal"));
|
|
59
|
+
var customIcons_1 = __importDefault(require("./components/customIcons"));
|
|
60
|
+
/**
|
|
61
|
+
* Simple suggestion item:
|
|
62
|
+
* - No tooltip
|
|
63
|
+
* - No truncation
|
|
64
|
+
* - Text wraps to next line when long
|
|
65
|
+
*/
|
|
66
|
+
var SuggestionItem = function (_a) {
|
|
67
|
+
var name = _a.name, count = _a.count, showCount = _a.showCount;
|
|
68
|
+
return ((0, jsx_runtime_1.jsxs)("div", __assign({ className: "py-0.5 flex items-center justify-between gap-2 group relative" }, { children: [(0, jsx_runtime_1.jsx)("span", __assign({ className: "flex-1 whitespace-normal break-words" }, { children: name })), showCount && ((0, jsx_runtime_1.jsx)("span", __assign({ className: "ml-2 suggection-count flex items-center justify-center min-w-[20px] h-5 px-1.5 rounded-full bg-orange-500 text-white text-[10px] font-medium flex-shrink-0" }, { children: count })))] })));
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Read‑only suggestion helper:
|
|
72
|
+
* - User types freely in the input (no item click / selection)
|
|
73
|
+
* - Below the field we show unique names
|
|
74
|
+
* - If a name is duplicated, show: "Name (count)"
|
|
75
|
+
*/
|
|
76
|
+
var ModernAutoCompleteSuggections = function (_a) {
|
|
77
|
+
var name = _a.name, label = _a.label, id = _a.id, placeholder = _a.placeholder, data = _a.data, getData = _a.getData, value = _a.value, onChange = _a.onChange, _b = _a.countField, countField = _b === void 0 ? 'count' : _b, _c = _a.countProvided, countProvided = _c === void 0 ? false : _c, _d = _a.isModern, isModern = _d === void 0 ? true : _d, _e = _a.required, required = _e === void 0 ? false : _e, _f = _a.size, size = _f === void 0 ? 'md' : _f, _g = _a.disabled, disabled = _g === void 0 ? false : _g, propsClassName = _a.className, _h = _a.insideOpen, insideOpen = _h === void 0 ? false : _h, errors = _a.errors, labelTitle = _a.labelTitle, _j = _a.desc, desc = _j === void 0 ? 'name' : _j, _k = _a.descId, descId = _k === void 0 ? 'id' : _k;
|
|
78
|
+
var _l = (0, react_1.useState)(value !== null && value !== void 0 ? value : ''), inputValue = _l[0], setInputValue = _l[1];
|
|
79
|
+
var _m = (0, react_1.useState)(data !== null && data !== void 0 ? data : []), items = _m[0], setItems = _m[1];
|
|
80
|
+
var _o = (0, react_1.useState)(false), isLoading = _o[0], setIsLoading = _o[1];
|
|
81
|
+
var _p = (0, react_1.useState)(false), showDropdown = _p[0], setShowDropdown = _p[1];
|
|
82
|
+
var _q = (0, react_1.useState)(false), isHovered = _q[0], setIsHovered = _q[1];
|
|
83
|
+
var _r = (0, react_1.useState)({
|
|
84
|
+
top: 0,
|
|
85
|
+
left: 0,
|
|
86
|
+
bottom: 0,
|
|
87
|
+
right: 0,
|
|
88
|
+
}), dropPosition = _r[0], setDropPosition = _r[1];
|
|
89
|
+
var getDataRef = (0, react_1.useRef)(getData);
|
|
90
|
+
var _s = (0, react_1.useState)(false), hasTyped = _s[0], setHasTyped = _s[1];
|
|
91
|
+
var inputRef = (0, react_1.useRef)(null);
|
|
92
|
+
var adorementRef = (0, react_1.useRef)(null);
|
|
93
|
+
var containerRef = (0, react_1.useRef)(null);
|
|
94
|
+
// keep latest getData in a ref so we don't re-trigger effects on every render
|
|
95
|
+
(0, react_1.useEffect)(function () {
|
|
96
|
+
getDataRef.current = getData;
|
|
97
|
+
}, [getData]);
|
|
98
|
+
// Keep internal state in sync when used as a controlled component
|
|
99
|
+
(0, react_1.useEffect)(function () {
|
|
100
|
+
if (value !== undefined) {
|
|
101
|
+
setInputValue(value);
|
|
102
|
+
}
|
|
103
|
+
}, [value]);
|
|
104
|
+
// Sync external data prop
|
|
105
|
+
(0, react_1.useEffect)(function () {
|
|
106
|
+
if (data) {
|
|
107
|
+
setItems(data);
|
|
108
|
+
}
|
|
109
|
+
}, [data]);
|
|
110
|
+
// Load from getData only when user types some text (no initial preload)
|
|
111
|
+
(0, react_1.useEffect)(function () {
|
|
112
|
+
// Do not call API until the user has actually typed at least once
|
|
113
|
+
if (!hasTyped)
|
|
114
|
+
return;
|
|
115
|
+
var cancelled = false;
|
|
116
|
+
var query = inputValue.trim();
|
|
117
|
+
if (!getDataRef.current || query === '') {
|
|
118
|
+
// Clear items when input is cleared so dropdown also clears
|
|
119
|
+
if (!cancelled) {
|
|
120
|
+
setItems(data !== null && data !== void 0 ? data : []);
|
|
121
|
+
setIsLoading(false);
|
|
122
|
+
}
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
var run = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
126
|
+
var res, error_1;
|
|
127
|
+
var _a;
|
|
128
|
+
return __generator(this, function (_b) {
|
|
129
|
+
switch (_b.label) {
|
|
130
|
+
case 0:
|
|
131
|
+
setIsLoading(true);
|
|
132
|
+
_b.label = 1;
|
|
133
|
+
case 1:
|
|
134
|
+
_b.trys.push([1, 3, 4, 5]);
|
|
135
|
+
return [4 /*yield*/, ((_a = getDataRef.current) === null || _a === void 0 ? void 0 : _a.call(getDataRef, query))];
|
|
136
|
+
case 2:
|
|
137
|
+
res = _b.sent();
|
|
138
|
+
if (!cancelled && Array.isArray(res)) {
|
|
139
|
+
setItems(res);
|
|
140
|
+
}
|
|
141
|
+
return [3 /*break*/, 5];
|
|
142
|
+
case 3:
|
|
143
|
+
error_1 = _b.sent();
|
|
144
|
+
return [3 /*break*/, 5];
|
|
145
|
+
case 4:
|
|
146
|
+
if (!cancelled) {
|
|
147
|
+
setIsLoading(false);
|
|
148
|
+
}
|
|
149
|
+
return [7 /*endfinally*/];
|
|
150
|
+
case 5: return [2 /*return*/];
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}); };
|
|
154
|
+
run();
|
|
155
|
+
return function () {
|
|
156
|
+
cancelled = true;
|
|
157
|
+
};
|
|
158
|
+
}, [inputValue, hasTyped, data]);
|
|
159
|
+
// Group by desc field and compute counts
|
|
160
|
+
var grouped = (0, react_1.useMemo)(function () {
|
|
161
|
+
var map = new Map();
|
|
162
|
+
items.forEach(function (item) {
|
|
163
|
+
var n = item === null || item === void 0 ? void 0 : item[desc];
|
|
164
|
+
if (!n)
|
|
165
|
+
return;
|
|
166
|
+
if (countProvided) {
|
|
167
|
+
// API provides count - use it directly
|
|
168
|
+
var apiCount = item === null || item === void 0 ? void 0 : item[countField];
|
|
169
|
+
var countValue = typeof apiCount === 'number' ? apiCount : typeof apiCount === 'string' ? Number(apiCount) : 0;
|
|
170
|
+
var existing = map.get(n);
|
|
171
|
+
if (existing) {
|
|
172
|
+
// Sum counts for items with same name
|
|
173
|
+
existing.count += countValue;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
map.set(n, { name: n, count: countValue });
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
// API doesn't provide count - group and count duplicates
|
|
181
|
+
var existing = map.get(n);
|
|
182
|
+
if (existing) {
|
|
183
|
+
existing.count += 1;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
map.set(n, { name: n, count: 0 });
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
return Array.from(map.values());
|
|
191
|
+
}, [items, countField, desc, countProvided]);
|
|
192
|
+
// Filter based on what user typed
|
|
193
|
+
var visible = (0, react_1.useMemo)(function () {
|
|
194
|
+
var term = inputValue.trim().toLowerCase();
|
|
195
|
+
if (!term || !hasTyped)
|
|
196
|
+
return [];
|
|
197
|
+
return grouped.filter(function (g) { return g.name.toLowerCase().includes(term); });
|
|
198
|
+
}, [grouped, inputValue, hasTyped]);
|
|
199
|
+
// Update dropdown visibility based on visible items
|
|
200
|
+
(0, react_1.useEffect)(function () {
|
|
201
|
+
setShowDropdown(visible.length > 0);
|
|
202
|
+
}, [visible.length]);
|
|
203
|
+
// Handle click outside to close dropdown
|
|
204
|
+
var handleClickOutside = function (event) {
|
|
205
|
+
if (containerRef.current &&
|
|
206
|
+
!containerRef.current.contains(event.target)) {
|
|
207
|
+
setShowDropdown(false);
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
// Handle scroll to close dropdown
|
|
211
|
+
var handleScroll = function () {
|
|
212
|
+
setShowDropdown(false);
|
|
213
|
+
};
|
|
214
|
+
// Attach event listeners for click outside and scroll
|
|
215
|
+
(0, react_1.useEffect)(function () {
|
|
216
|
+
if (showDropdown) {
|
|
217
|
+
document.addEventListener('click', handleClickOutside);
|
|
218
|
+
window.addEventListener('scroll', handleScroll);
|
|
219
|
+
var mainElement_1 = document.querySelector('main');
|
|
220
|
+
mainElement_1 === null || mainElement_1 === void 0 ? void 0 : mainElement_1.addEventListener('scroll', handleScroll);
|
|
221
|
+
var gridElements_1 = document.querySelectorAll('.k-grid-content, .overflow-auto, .overflow-y-auto, .overflow-x-auto');
|
|
222
|
+
gridElements_1.forEach(function (gridElement) {
|
|
223
|
+
gridElement.addEventListener('scroll', handleScroll);
|
|
224
|
+
});
|
|
225
|
+
return function () {
|
|
226
|
+
document.removeEventListener('click', handleClickOutside);
|
|
227
|
+
window.removeEventListener('scroll', handleScroll);
|
|
228
|
+
mainElement_1 === null || mainElement_1 === void 0 ? void 0 : mainElement_1.removeEventListener('scroll', handleScroll);
|
|
229
|
+
gridElements_1.forEach(function (gridElement) {
|
|
230
|
+
gridElement.removeEventListener('scroll', handleScroll);
|
|
231
|
+
});
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}, [showDropdown]);
|
|
235
|
+
var checkIsEmptyField = function () {
|
|
236
|
+
var _a;
|
|
237
|
+
if (inputValue === undefined)
|
|
238
|
+
return true;
|
|
239
|
+
else
|
|
240
|
+
return ((_a = inputValue === null || inputValue === void 0 ? void 0 : inputValue.toString().length) !== null && _a !== void 0 ? _a : 0) <= 0 ? true : false;
|
|
241
|
+
};
|
|
242
|
+
var getHeight = function () {
|
|
243
|
+
switch (size) {
|
|
244
|
+
case 'sm':
|
|
245
|
+
return ' h-[34px] ';
|
|
246
|
+
default:
|
|
247
|
+
return ' ';
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
var getErrors = function (err) {
|
|
251
|
+
var _a, _b, _c, _d;
|
|
252
|
+
var errMsg = '';
|
|
253
|
+
if (err.message) {
|
|
254
|
+
errMsg = err === null || err === void 0 ? void 0 : err.message;
|
|
255
|
+
}
|
|
256
|
+
else if ((_a = err === null || err === void 0 ? void 0 : err.id) === null || _a === void 0 ? void 0 : _a.message) {
|
|
257
|
+
errMsg = (_b = err === null || err === void 0 ? void 0 : err.id) === null || _b === void 0 ? void 0 : _b.message;
|
|
258
|
+
}
|
|
259
|
+
else if ((_c = err === null || err === void 0 ? void 0 : err.name) === null || _c === void 0 ? void 0 : _c.message) {
|
|
260
|
+
errMsg = (_d = err === null || err === void 0 ? void 0 : err.name) === null || _d === void 0 ? void 0 : _d.message;
|
|
261
|
+
}
|
|
262
|
+
return errMsg;
|
|
263
|
+
};
|
|
264
|
+
var handleError = function (data) {
|
|
265
|
+
var _a;
|
|
266
|
+
if (getErrors(data[name]) === 'required' ||
|
|
267
|
+
getErrors(data[name]) === 'Required') {
|
|
268
|
+
return "".concat(label !== null && label !== void 0 ? label : labelTitle, " is ").concat(getErrors(data[name]));
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
return (_a = getErrors(data[name])) !== null && _a !== void 0 ? _a : '';
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
var generateClassName = function (type) {
|
|
275
|
+
var className = propsClassName || '';
|
|
276
|
+
switch (type) {
|
|
277
|
+
case 'input':
|
|
278
|
+
className += " block text-common text-input-text font-normal px-3.5 w-full text-sm text-gray-900 bg-transparent border appearance-none peer h-10 rounded-[4px] disabled:text-input-disabled bg-white disabled:bg-disabled ".concat(label && isModern
|
|
279
|
+
? 'placeholder-transparent'
|
|
280
|
+
: 'focus:placeholder-grey-secondary placeholder-input-label', " focus:placeholder-grey-secondary");
|
|
281
|
+
if (errors && errors[name]) {
|
|
282
|
+
className +=
|
|
283
|
+
' border-[#FDA29B] focus:border-error-[#FDA29B] focus:ring-[#FDA29B] focus:ring-3 focus:outline-[#FDA29B] input-outline';
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
className +=
|
|
287
|
+
' text-grey-dark border-input-light focus:border-blue-navy focus:outline-none focus:ring-0';
|
|
288
|
+
}
|
|
289
|
+
className += getHeight();
|
|
290
|
+
break;
|
|
291
|
+
case 'label':
|
|
292
|
+
className += " flex modern-input-label-truncate peer-focus:modern-input-peer-focus-label-size \n ".concat(disabled
|
|
293
|
+
? 'cursor-pointer'
|
|
294
|
+
: 'cursor-text peer-focus:cursor-pointer', " ").concat(disabled && !checkIsEmptyField()
|
|
295
|
+
? 'disabled-input-label-bg'
|
|
296
|
+
: !disabled || !checkIsEmptyField()
|
|
297
|
+
? 'active-input-label-bg'
|
|
298
|
+
: '', " absolute duration-300 transform -translate-y-4 top-2 z-1 origin-[0] px-0 peer-placeholder-shown:-translate-y-1/2 peer-placeholder-shown:top-1/2 peer-focus:top-2 peer-focus:-translate-y-4 start-[14px] rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto ").concat(disabled
|
|
299
|
+
? 'cursor-pointer'
|
|
300
|
+
: 'cursor-text peer-focus:cursor-pointer', "\n ").concat(checkIsEmptyField()
|
|
301
|
+
? 'modern-input-label-size'
|
|
302
|
+
: 'modern-input-peer-focus-label-size');
|
|
303
|
+
if (errors && errors[name]) {
|
|
304
|
+
className += ' text-error-light ';
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
className += ' text-grey-dark peer-focus:text-blue-navy';
|
|
308
|
+
}
|
|
309
|
+
break;
|
|
310
|
+
case 'message':
|
|
311
|
+
className = ' text-error-icon ';
|
|
312
|
+
break;
|
|
313
|
+
case 'adorement':
|
|
314
|
+
className += ' absolute right-0 adorement gap-1 flex items-center ';
|
|
315
|
+
break;
|
|
316
|
+
default:
|
|
317
|
+
break;
|
|
318
|
+
}
|
|
319
|
+
return className;
|
|
320
|
+
};
|
|
321
|
+
var getInnerWidth = function () {
|
|
322
|
+
var innerwidth = adorementRef.current
|
|
323
|
+
? adorementRef.current.offsetWidth
|
|
324
|
+
: 0;
|
|
325
|
+
return innerwidth;
|
|
326
|
+
};
|
|
327
|
+
var onLabelClick = function () {
|
|
328
|
+
var _a;
|
|
329
|
+
if (!disabled) {
|
|
330
|
+
(_a = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
var getDropPosition = function () {
|
|
334
|
+
if (!insideOpen && (inputRef === null || inputRef === void 0 ? void 0 : inputRef.current)) {
|
|
335
|
+
var dropdownHeight = 200; // Assume the height of the dropdown is 200px, adjust as needed
|
|
336
|
+
var inputRect = inputRef.current.getBoundingClientRect();
|
|
337
|
+
var spaceBelow = window.innerHeight - inputRect.bottom;
|
|
338
|
+
var spaceAbove = inputRect.top;
|
|
339
|
+
var top_1;
|
|
340
|
+
var bottom = void 0;
|
|
341
|
+
if (spaceBelow < dropdownHeight && spaceAbove > dropdownHeight) {
|
|
342
|
+
// Show above if not enough space below
|
|
343
|
+
bottom = window.innerHeight - inputRect.top + 2;
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
// Show below (default)
|
|
347
|
+
top_1 = inputRect.bottom + 2;
|
|
348
|
+
}
|
|
349
|
+
setDropPosition({
|
|
350
|
+
position: 'fixed',
|
|
351
|
+
left: inputRect.left,
|
|
352
|
+
top: top_1,
|
|
353
|
+
bottom: bottom,
|
|
354
|
+
width: inputRect.width,
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
return undefined;
|
|
358
|
+
};
|
|
359
|
+
// Calculate dropdown position when it opens
|
|
360
|
+
(0, react_1.useEffect)(function () {
|
|
361
|
+
if (showDropdown && !insideOpen) {
|
|
362
|
+
window.addEventListener('resize', getDropPosition);
|
|
363
|
+
getDropPosition();
|
|
364
|
+
return function () {
|
|
365
|
+
window.removeEventListener('resize', getDropPosition);
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
}, [showDropdown, insideOpen]);
|
|
369
|
+
return ((0, jsx_runtime_1.jsxs)("div", __assign({ ref: containerRef, className: "flex flex-col gap-1 autocomplete-with-suggection ".concat(propsClassName || '') }, { children: [label && !isModern && ((0, jsx_runtime_1.jsx)("div", __assign({ className: "mb-3" }, { children: (0, jsx_runtime_1.jsxs)("label", __assign({ className: "text-xs font-medium" }, { children: [label, required ? (0, jsx_runtime_1.jsx)("span", __assign({ className: "text-error" }, { children: " *" })) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {})] })) }))), (0, jsx_runtime_1.jsxs)("div", __assign({ className: "tooltip-container" }, { children: [isHovered && errors && errors[name] && ((0, jsx_runtime_1.jsxs)("span", __assign({ className: "tooltip" }, { children: [handleError(errors), " "] }))), (0, jsx_runtime_1.jsxs)("div", __assign({ className: "flex relative w-full" }, { children: [(0, jsx_runtime_1.jsxs)("div", __assign({ className: "relative w-full", onMouseEnter: function () { }, onMouseLeave: function () { } }, { children: [(0, jsx_runtime_1.jsx)("input", { type: "text", id: id ? "custom-autocomplete-".concat(id) : "custom-autocomplete-".concat(name), name: name, value: inputValue ? inputValue : '', ref: inputRef, disabled: disabled, onChange: function (e) {
|
|
370
|
+
var val = e.target.value;
|
|
371
|
+
setInputValue(val);
|
|
372
|
+
setHasTyped(true);
|
|
373
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(val);
|
|
374
|
+
}, onBlur: function () { }, placeholder: placeholder, autoComplete: "off", "data-testid": "custom-autocomplete-suggestions", "aria-describedby": id, style: {
|
|
375
|
+
paddingRight: getInnerWidth(),
|
|
376
|
+
}, className: " ".concat(generateClassName('input')) }), isModern && ((0, jsx_runtime_1.jsxs)("label", __assign({ htmlFor: id !== null && id !== void 0 ? id : name, onClick: function () { return onLabelClick(); }, className: generateClassName('label') }, { children: [label ? (0, jsx_runtime_1.jsx)("span", __assign({ className: "truncate" }, { children: label })) : '', required ? (0, jsx_runtime_1.jsx)("span", __assign({ className: "text-error" }, { children: " *" })) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {})] })))] })), (0, jsx_runtime_1.jsx)("div", __assign({ className: "flex items-center justify-center" }, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ ref: adorementRef, className: "".concat(generateClassName('adorement'), " qbs-autocomplete-adorement custom-dorpdown-adorement mr-[1px] ").concat(isLoading ? 'bg-white' : '') }, { children: [isLoading && (0, jsx_runtime_1.jsx)(Spinner_1.default, {}), errors && errors[name] && ((0, jsx_runtime_1.jsx)("div", __assign({ className: " text-error-label relative cursor-pointer ".concat(generateClassName('message')), onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () { return setIsHovered(false); } }, { children: (0, jsx_runtime_1.jsx)(customIcons_1.default, { name: "alert", type: "medium" }) })))] })) }))] }))] })), showDropdown && visible.length > 0 && ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: insideOpen ? ((0, jsx_runtime_1.jsx)("div", __assign({ className: "suggection-list" }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ className: "bg-white border border-grey-light shadow-gray-300 shadow-md rounded-sm max-h-40 overflow-auto text-[11px] text-gray-700 px-3.5 py-1.5" }, { children: visible.map(function (g) { return ((0, jsx_runtime_1.jsx)(SuggestionItem, { name: g.name, count: g.count, showCount: g.count > 0 }, g.name)); }) })) }))) : ((0, jsx_runtime_1.jsx)(portal_1.default, { children: (0, jsx_runtime_1.jsx)("div", __assign({ className: "autocomplete-suggections suggection-list bg-white shadow-gray-300 shadow-md border border-grey-light z-50", style: dropPosition }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ className: "h-auto max-h-40 overflow-auto w-full py-1.5" }, { children: visible.map(function (g) { return ((0, jsx_runtime_1.jsx)("div", __assign({ className: "px-3.5 text-[11px] text-gray-700" }, { children: (0, jsx_runtime_1.jsx)(SuggestionItem, { name: g.name, count: g.count, showCount: g.count > -1 }) }), g.name)); }) })) })) })) }))] })));
|
|
377
|
+
};
|
|
378
|
+
exports.default = ModernAutoCompleteSuggections;
|
|
379
|
+
//# sourceMappingURL=ReactAutoCompleteSuggections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactAutoCompleteSuggections.js","sourceRoot":"","sources":["../src/ReactAutoCompleteSuggections.tsx"],"names":[],"mappings":"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"}
|