PHP 7.4.33
Preview: parseAnimationValue.js Size: 2.30 KB
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/tailwindcss/src/util/parseAnimationValue.js
const DIRECTIONS = new Set(['normal', 'reverse', 'alternate', 'alternate-reverse'])
const PLAY_STATES = new Set(['running', 'paused'])
const FILL_MODES = new Set(['none', 'forwards', 'backwards', 'both'])
const ITERATION_COUNTS = new Set(['infinite'])
const TIMINGS = new Set([
  'linear',
  'ease',
  'ease-in',
  'ease-out',
  'ease-in-out',
  'step-start',
  'step-end',
])
const TIMING_FNS = ['cubic-bezier', 'steps']

const COMMA = /\,(?![^(]*\))/g // Comma separator that is not located between brackets. E.g.: `cubic-bezier(a, b, c)` these don't count.
const SPACE = /\ +(?![^(]*\))/g // Similar to the one above, but with spaces instead.
const TIME = /^(-?[\d.]+m?s)$/
const DIGIT = /^(\d+)$/

export default function parseAnimationValue(input) {
  let animations = input.split(COMMA)
  return animations.map((animation) => {
    let value = animation.trim()
    let result = { value }
    let parts = value.split(SPACE)
    let seen = new Set()

    for (let part of parts) {
      if (!seen.has('DIRECTIONS') && DIRECTIONS.has(part)) {
        result.direction = part
        seen.add('DIRECTIONS')
      } else if (!seen.has('PLAY_STATES') && PLAY_STATES.has(part)) {
        result.playState = part
        seen.add('PLAY_STATES')
      } else if (!seen.has('FILL_MODES') && FILL_MODES.has(part)) {
        result.fillMode = part
        seen.add('FILL_MODES')
      } else if (
        !seen.has('ITERATION_COUNTS') &&
        (ITERATION_COUNTS.has(part) || DIGIT.test(part))
      ) {
        result.iterationCount = part
        seen.add('ITERATION_COUNTS')
      } else if (!seen.has('TIMING_FUNCTION') && TIMINGS.has(part)) {
        result.timingFunction = part
        seen.add('TIMING_FUNCTION')
      } else if (!seen.has('TIMING_FUNCTION') && TIMING_FNS.some((f) => part.startsWith(`${f}(`))) {
        result.timingFunction = part
        seen.add('TIMING_FUNCTION')
      } else if (!seen.has('DURATION') && TIME.test(part)) {
        result.duration = part
        seen.add('DURATION')
      } else if (!seen.has('DELAY') && TIME.test(part)) {
        result.delay = part
        seen.add('DELAY')
      } else if (!seen.has('NAME')) {
        result.name = part
        seen.add('NAME')
      } else {
        if (!result.unknown) result.unknown = []
        result.unknown.push(part)
      }
    }

    return result
  })
}

Directory Contents

Dirs: 0 × Files: 46
Name Size Perms Modified Actions
774 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
98 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
560 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
283 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
1.30 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
2.65 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
4.20 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
578 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
703 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
1.19 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
10.00 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
361 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
255 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
96 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
410 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
9.63 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
1.01 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
126 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
142 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
262 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
1.57 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
789 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
634 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
771 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
8.81 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
4.24 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
2.30 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
1.81 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
867 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
510 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
429 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
7.99 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
992 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
5.58 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
785 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
6.80 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
1.55 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
243 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
1.49 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
72 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
137 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
739 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
1.60 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
888 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
1020 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
1.19 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).