@hashicorp/design-system-components
Version:
Helios Design System Components
42 lines (37 loc) • 956 B
JavaScript
import { buildWaiter } from '@ember/test-waiters';
/**
* Copyright IBM Corp. 2021, 2025
* SPDX-License-Identifier: MPL-2.0
*/
const waiter = buildWaiter('raf-waiter');
// a utility that wraps requestAnimationFrame and integrates with Ember's test waiters
function requestAnimationFrameWaiter(callback) {
const token = waiter.beginAsync();
return requestAnimationFrame(() => {
try {
callback();
} finally {
waiter.endAsync(token);
}
});
}
function pixelToNumber(px) {
return Number(px.replace('px', ''));
}
function isPixelSize(value) {
if (value === undefined) {
return false;
}
return /^-?\d+(\.\d+)?px$/.test(value);
}
function parsePixel(value) {
if (value === undefined) {
return undefined;
}
if (!isPixelSize(value)) {
return undefined;
}
return pixelToNumber(value);
}
export { isPixelSize, parsePixel, pixelToNumber, requestAnimationFrameWaiter };
//# sourceMappingURL=utils.js.map