suomifi-ui-components
Version:
Suomi.fi UI component library
91 lines (85 loc) • 3.29 kB
JavaScript
;
var React = require('react');
var logger = require('../log/logger.js');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var React__default = /*#__PURE__*/_interopDefault(React);
function windowAvailable() {
return !!(typeof window !== 'undefined' && window.document && window.document.createElement);
}
var useEnhancedEffect = windowAvailable() ? React__default.default.useLayoutEffect : React__default.default.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) {
logger.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;
};
exports.autocompleteTimeString = autocompleteTimeString;
exports.escapeStringRegexp = escapeStringRegexp;
exports.filterDuplicateKeys = filterDuplicateKeys;
exports.forkRefs = forkRefs;
exports.getOwnerDocument = getOwnerDocument;
exports.useEnhancedEffect = useEnhancedEffect;
exports.windowAvailable = windowAvailable;
//# sourceMappingURL=common.js.map