@fisherwise/react-autocomplete-hint
Version:
A React component for Autocomplete hint
58 lines (57 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFirstDuplicateOption = exports.sortAsc = exports.interpolateStyle = exports.mergeRefs = void 0;
function mergeRefs() {
var refs = [];
for (var _i = 0; _i < arguments.length; _i++) {
refs[_i] = arguments[_i];
}
var filteredRefs = refs.filter(Boolean);
return function (inst) {
for (var _i = 0, filteredRefs_1 = filteredRefs; _i < filteredRefs_1.length; _i++) {
var ref = filteredRefs_1[_i];
if (typeof ref === 'function') {
ref(inst);
}
else if (ref && 'current' in ref) {
ref.current = inst;
}
}
};
}
exports.mergeRefs = mergeRefs;
;
// IE doesn't seem to get the composite computed value (eg: 'padding',
// 'borderStyle', etc.), so generate these from the individual values.
function interpolateStyle(styles, attr, subattr) {
if (subattr === void 0) { subattr = ''; }
// Title-case the sub-attribute.
if (subattr) {
subattr = subattr.replace(subattr[0], subattr[0].toUpperCase());
}
return ['Top', 'Right', 'Bottom', 'Left']
.map(function (dir) { return styles[attr + dir + subattr]; })
.join(' ');
}
exports.interpolateStyle = interpolateStyle;
function sortAsc(a, b) {
if (a > b) {
return 1;
}
if (a < b) {
return -1;
}
return 0;
}
exports.sortAsc = sortAsc;
function getFirstDuplicateOption(array) {
var tracker = new Set();
for (var i = 0; i < array.length; i++) {
if (tracker.has(array[i].label)) {
return array[i].label;
}
tracker.add(array[i].label);
}
return null;
}
exports.getFirstDuplicateOption = getFirstDuplicateOption;