suomifi-ui-components
Version:
Suomi.fi UI component library
79 lines (76 loc) • 2.92 kB
JavaScript
import React from 'react';
import { getLogger } from '../log/logger.js';
function windowAvailable() {
return !!(typeof window !== 'undefined' && window.document && window.document.createElement);
}
var useEnhancedEffect = windowAvailable() ? React.useLayoutEffect : React.useEffect;
var getOwnerDocument = function getOwnerDocument(elementRef) {
if (elementRef !== null && elementRef.current !== null) {
var elem = elementRef.current;
var ownerDocument = windowAvailable() ? elem ? elem.ownerDocument : document : null;
return ownerDocument;
}
return null;
};
function filterDuplicateKeys(mainObject, filterObject) {
if (!mainObject) {
return {};
}
return mainObject && filterObject ? Object.fromEntries(Object.entries(mainObject).filter(function (_a) {
var key = _a[0];
return !Object.prototype.hasOwnProperty.call(filterObject, key);
})) : {};
}
var escapeStringRegexp = function escapeStringRegexp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&').replace(/-/g, '\\x2d');
};
var forkRefs = function forkRefs() {
var refs = [];
for (var _i = 0; _i < arguments.length; _i++) {
refs[_i] = arguments[_i];
}
return function (element) {
refs.forEach(function (ref) {
if (typeof ref === 'function') {
ref(element);
} else if (!!ref) {
try {
ref.current = element;
} catch (_a) {
getLogger().error("Cannot assign element ".concat(element, " to ref ").concat(ref));
}
}
});
};
};
var isValidTimeString = function isValidTimeString(timeStr) {
if (timeStr.match(/^\d{1,2}\.\d{2}$/) || timeStr.match(/^\d{1,2}\:\d{2}$/)) {
var parts = timeStr.split(timeStr.includes('.') ? '.' : ':');
var hours = parseInt(parts[0], 10);
var minutes = parseInt(parts[1], 10);
if (hours >= 0 && hours < 25 && minutes >= 0 && minutes < 60) {
return true;
}
}
return false;
};
var autocompleteTimeString = function autocompleteTimeString(timeStr) {
if (!timeStr.match(/^[0-9:.]+$/)) return null;
var inputValInt = parseInt(timeStr, 10);
if (timeStr.match(/^\d{1,2}$/) && inputValInt >= 0 && inputValInt < 25) {
return "".concat(inputValInt, ".00");
}
if (timeStr.match(/^\d{4}$/) && isValidTimeString("".concat(timeStr[0]).concat(timeStr[1], ".").concat(timeStr[2]).concat(timeStr[3]))) {
var hoursInt = parseInt("".concat(timeStr[0]).concat(timeStr[1]), 10);
return "".concat(hoursInt, ".").concat(timeStr[2]).concat(timeStr[3]);
}
if (isValidTimeString(timeStr) && timeStr[0] === '0') {
return "".concat(timeStr[1], ".").concat(timeStr[3]).concat(timeStr[4]);
}
if (isValidTimeString(timeStr)) {
return timeStr.replace(':', '.');
}
return null;
};
export { autocompleteTimeString, escapeStringRegexp, filterDuplicateKeys, forkRefs, getOwnerDocument, useEnhancedEffect, windowAvailable };
//# sourceMappingURL=common.js.map