isKeyframeSelector.mjs 627 B

1234567891011121314151617181920212223242526272829
  1. import { keyframeSelectorKeywords, namedTimelineRangeKeywords } from '../reference/keywords.mjs';
  2. const HAS_TIMELINE_RANGE = new RegExp(
  3. `^(?:${[...namedTimelineRangeKeywords.values()].join('|')})\\s+(?:\\d+|\\d*\\.\\d+)%$`,
  4. 'i',
  5. );
  6. /**
  7. * Check whether a string is a keyframe selector.
  8. *
  9. * @param {string} selector
  10. * @returns {boolean}
  11. */
  12. export default function isKeyframeSelector(selector) {
  13. if (keyframeSelectorKeywords.has(selector)) {
  14. return true;
  15. }
  16. // Percentages
  17. if (/^(?:\d+|\d*\.\d+)%$/.test(selector)) {
  18. return true;
  19. }
  20. if (HAS_TIMELINE_RANGE.test(selector)) {
  21. return true;
  22. }
  23. return false;
  24. }