{"version":3,"file":"util-D9FfmVnv.mjs","sources":["../../../../../../packages/animations/browser/src/error_helpers.ts","../../../../../../packages/animations/browser/src/render/web_animations/animatable_props_set.ts","../../../../../../packages/animations/browser/src/render/shared.ts","../../../../../../packages/animations/browser/src/util.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {RuntimeErrorCode} from '../../src/errors';\nimport {ɵRuntimeError as RuntimeError} from '@angular/core';\n\nconst LINE_START = '\\n - ';\n\nexport function invalidTimingValue(exp: string | number): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_TIMING_VALUE,\n    ngDevMode && `The provided timing value \"${exp}\" is invalid.`,\n  );\n}\n\nexport function negativeStepValue(): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.NEGATIVE_STEP_VALUE,\n    ngDevMode && 'Duration values below 0 are not allowed for this animation step.',\n  );\n}\n\nexport function negativeDelayValue(): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.NEGATIVE_DELAY_VALUE,\n    ngDevMode && 'Delay values below 0 are not allowed for this animation step.',\n  );\n}\n\nexport function invalidStyleParams(varName: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_STYLE_PARAMS,\n    ngDevMode &&\n      `Unable to resolve the local animation param ${varName} in the given list of values`,\n  );\n}\n\nexport function invalidParamValue(varName: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_PARAM_VALUE,\n    ngDevMode && `Please provide a value for the animation param ${varName}`,\n  );\n}\n\nexport function invalidNodeType(nodeType: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_NODE_TYPE,\n    ngDevMode && `Unable to resolve animation metadata node #${nodeType}`,\n  );\n}\n\nexport function invalidCssUnitValue(userProvidedProperty: string, value: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_CSS_UNIT_VALUE,\n    ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`,\n  );\n}\n\nexport function invalidTrigger(): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_TRIGGER,\n    ngDevMode &&\n      \"animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))\",\n  );\n}\n\nexport function invalidDefinition(): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_DEFINITION,\n    ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()',\n  );\n}\n\nexport function invalidState(metadataName: string, missingSubs: string[]): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_STATE,\n    ngDevMode &&\n      `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(\n        ', ',\n      )}`,\n  );\n}\n\nexport function invalidStyleValue(value: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_STYLE_VALUE,\n    ngDevMode && `The provided style string value ${value} is not allowed.`,\n  );\n}\n\nexport function invalidProperty(prop: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_PROPERTY,\n    ngDevMode &&\n      `The provided animation property \"${prop}\" is not a supported CSS property for animations`,\n  );\n}\n\nexport function invalidParallelAnimation(\n  prop: string,\n  firstStart: number,\n  firstEnd: number,\n  secondStart: number,\n  secondEnd: number,\n): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_PARALLEL_ANIMATION,\n    ngDevMode &&\n      `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`,\n  );\n}\n\nexport function invalidKeyframes(): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_KEYFRAMES,\n    ngDevMode && `keyframes() must be placed inside of a call to animate()`,\n  );\n}\n\nexport function invalidOffset(): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_OFFSET,\n    ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`,\n  );\n}\n\nexport function keyframeOffsetsOutOfOrder(): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER,\n    ngDevMode && `Please ensure that all keyframe offsets are in order`,\n  );\n}\n\nexport function keyframesMissingOffsets(): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS,\n    ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`,\n  );\n}\n\nexport function invalidStagger(): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_STAGGER,\n    ngDevMode && `stagger() can only be used inside of query()`,\n  );\n}\n\nexport function invalidQuery(selector: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_QUERY,\n    ngDevMode &&\n      `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`,\n  );\n}\n\nexport function invalidExpression(expr: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_EXPRESSION,\n    ngDevMode && `The provided transition expression \"${expr}\" is not supported`,\n  );\n}\n\nexport function invalidTransitionAlias(alias: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.INVALID_TRANSITION_ALIAS,\n    ngDevMode && `The transition alias value \"${alias}\" is not supported`,\n  );\n}\n\nexport function validationFailed(errors: Error[]): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.VALIDATION_FAILED,\n    ngDevMode && `animation validation failed:\\n${errors.map((err) => err.message).join('\\n')}`,\n  );\n}\n\nexport function buildingFailed(errors: Error[]): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.BUILDING_FAILED,\n    ngDevMode && `animation building failed:\\n${errors.map((err) => err.message).join('\\n')}`,\n  );\n}\n\nexport function triggerBuildFailed(name: string, errors: Error[]): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.TRIGGER_BUILD_FAILED,\n    ngDevMode &&\n      `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors\n        .map((err) => err.message)\n        .join('\\n - ')}`,\n  );\n}\n\nexport function animationFailed(errors: Error[]): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.ANIMATION_FAILED,\n    ngDevMode &&\n      `Unable to animate due to the following errors:${LINE_START}${errors\n        .map((err) => err.message)\n        .join(LINE_START)}`,\n  );\n}\n\nexport function registerFailed(errors: Error[]): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.REGISTRATION_FAILED,\n    ngDevMode &&\n      `Unable to build the animation due to the following errors: ${errors\n        .map((err) => err.message)\n        .join('\\n')}`,\n  );\n}\n\nexport function missingOrDestroyedAnimation(): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION,\n    ngDevMode && \"The requested animation doesn't exist or has already been destroyed\",\n  );\n}\n\nexport function createAnimationFailed(errors: Error[]): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.CREATE_ANIMATION_FAILED,\n    ngDevMode &&\n      `Unable to create the animation due to the following errors:${errors\n        .map((err) => err.message)\n        .join('\\n')}`,\n  );\n}\n\nexport function missingPlayer(id: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.MISSING_PLAYER,\n    ngDevMode && `Unable to find the timeline player referenced by ${id}`,\n  );\n}\n\nexport function missingTrigger(phase: string, name: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.MISSING_TRIGGER,\n    ngDevMode &&\n      `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`,\n  );\n}\n\nexport function missingEvent(name: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.MISSING_EVENT,\n    ngDevMode &&\n      `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`,\n  );\n}\n\nexport function unsupportedTriggerEvent(phase: string, name: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT,\n    ngDevMode &&\n      `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`,\n  );\n}\n\nexport function unregisteredTrigger(name: string): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.UNREGISTERED_TRIGGER,\n    ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`,\n  );\n}\n\nexport function triggerTransitionsFailed(errors: Error[]): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED,\n    ngDevMode &&\n      `Unable to process animations due to the following failed trigger transitions\\n ${errors\n        .map((err) => err.message)\n        .join('\\n')}`,\n  );\n}\n\nexport function triggerParsingFailed(name: string, errors: Error[]): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.TRIGGER_PARSING_FAILED,\n    ngDevMode &&\n      `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors\n        .map((err) => err.message)\n        .join(LINE_START)}`,\n  );\n}\n\nexport function transitionFailed(name: string, errors: Error[]): Error {\n  return new RuntimeError(\n    RuntimeErrorCode.TRANSITION_FAILED,\n    ngDevMode && `@${name} has failed due to:\\n ${errors.map((err) => err.message).join('\\n- ')}`,\n  );\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nexport const ANIMATABLE_PROP_SET = new Set([\n  '-moz-outline-radius',\n  '-moz-outline-radius-bottomleft',\n  '-moz-outline-radius-bottomright',\n  '-moz-outline-radius-topleft',\n  '-moz-outline-radius-topright',\n  '-ms-grid-columns',\n  '-ms-grid-rows',\n  '-webkit-line-clamp',\n  '-webkit-text-fill-color',\n  '-webkit-text-stroke',\n  '-webkit-text-stroke-color',\n  'accent-color',\n  'all',\n  'backdrop-filter',\n  'background',\n  'background-color',\n  'background-position',\n  'background-size',\n  'block-size',\n  'border',\n  'border-block-end',\n  'border-block-end-color',\n  'border-block-end-width',\n  'border-block-start',\n  'border-block-start-color',\n  'border-block-start-width',\n  'border-bottom',\n  'border-bottom-color',\n  'border-bottom-left-radius',\n  'border-bottom-right-radius',\n  'border-bottom-width',\n  'border-color',\n  'border-end-end-radius',\n  'border-end-start-radius',\n  'border-image-outset',\n  'border-image-slice',\n  'border-image-width',\n  'border-inline-end',\n  'border-inline-end-color',\n  'border-inline-end-width',\n  'border-inline-start',\n  'border-inline-start-color',\n  'border-inline-start-width',\n  'border-left',\n  'border-left-color',\n  'border-left-width',\n  'border-radius',\n  'border-right',\n  'border-right-color',\n  'border-right-width',\n  'border-start-end-radius',\n  'border-start-start-radius',\n  'border-top',\n  'border-top-color',\n  'border-top-left-radius',\n  'border-top-right-radius',\n  'border-top-width',\n  'border-width',\n  'bottom',\n  'box-shadow',\n  'caret-color',\n  'clip',\n  'clip-path',\n  'color',\n  'column-count',\n  'column-gap',\n  'column-rule',\n  'column-rule-color',\n  'column-rule-width',\n  'column-width',\n  'columns',\n  'filter',\n  'flex',\n  'flex-basis',\n  'flex-grow',\n  'flex-shrink',\n  'font',\n  'font-size',\n  'font-size-adjust',\n  'font-stretch',\n  'font-variation-settings',\n  'font-weight',\n  'gap',\n  'grid-column-gap',\n  'grid-gap',\n  'grid-row-gap',\n  'grid-template-columns',\n  'grid-template-rows',\n  'height',\n  'inline-size',\n  'input-security',\n  'inset',\n  'inset-block',\n  'inset-block-end',\n  'inset-block-start',\n  'inset-inline',\n  'inset-inline-end',\n  'inset-inline-start',\n  'left',\n  'letter-spacing',\n  'line-clamp',\n  'line-height',\n  'margin',\n  'margin-block-end',\n  'margin-block-start',\n  'margin-bottom',\n  'margin-inline-end',\n  'margin-inline-start',\n  'margin-left',\n  'margin-right',\n  'margin-top',\n  'mask',\n  'mask-border',\n  'mask-position',\n  'mask-size',\n  'max-block-size',\n  'max-height',\n  'max-inline-size',\n  'max-lines',\n  'max-width',\n  'min-block-size',\n  'min-height',\n  'min-inline-size',\n  'min-width',\n  'object-position',\n  'offset',\n  'offset-anchor',\n  'offset-distance',\n  'offset-path',\n  'offset-position',\n  'offset-rotate',\n  'opacity',\n  'order',\n  'outline',\n  'outline-color',\n  'outline-offset',\n  'outline-width',\n  'padding',\n  'padding-block-end',\n  'padding-block-start',\n  'padding-bottom',\n  'padding-inline-end',\n  'padding-inline-start',\n  'padding-left',\n  'padding-right',\n  'padding-top',\n  'perspective',\n  'perspective-origin',\n  'right',\n  'rotate',\n  'row-gap',\n  'scale',\n  'scroll-margin',\n  'scroll-margin-block',\n  'scroll-margin-block-end',\n  'scroll-margin-block-start',\n  'scroll-margin-bottom',\n  'scroll-margin-inline',\n  'scroll-margin-inline-end',\n  'scroll-margin-inline-start',\n  'scroll-margin-left',\n  'scroll-margin-right',\n  'scroll-margin-top',\n  'scroll-padding',\n  'scroll-padding-block',\n  'scroll-padding-block-end',\n  'scroll-padding-block-start',\n  'scroll-padding-bottom',\n  'scroll-padding-inline',\n  'scroll-padding-inline-end',\n  'scroll-padding-inline-start',\n  'scroll-padding-left',\n  'scroll-padding-right',\n  'scroll-padding-top',\n  'scroll-snap-coordinate',\n  'scroll-snap-destination',\n  'scrollbar-color',\n  'shape-image-threshold',\n  'shape-margin',\n  'shape-outside',\n  'tab-size',\n  'text-decoration',\n  'text-decoration-color',\n  'text-decoration-thickness',\n  'text-emphasis',\n  'text-emphasis-color',\n  'text-indent',\n  'text-shadow',\n  'text-underline-offset',\n  'top',\n  'transform',\n  'transform-origin',\n  'translate',\n  'vertical-align',\n  'visibility',\n  'width',\n  'word-spacing',\n  'z-index',\n  'zoom',\n]);\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {\n  AnimationEvent,\n  AnimationPlayer,\n  AUTO_STYLE,\n  NoopAnimationPlayer,\n  ɵAnimationGroupPlayer,\n  ɵPRE_STYLE as PRE_STYLE,\n  ɵStyleDataMap,\n} from '../../../src/animations';\n\nimport {AnimationStyleNormalizer} from '../../src/dsl/style_normalization/animation_style_normalizer';\nimport {animationFailed} from '../error_helpers';\n\nimport {ANIMATABLE_PROP_SET} from './web_animations/animatable_props_set';\n\nexport function optimizeGroupPlayer(players: AnimationPlayer[]): AnimationPlayer {\n  switch (players.length) {\n    case 0:\n      return new NoopAnimationPlayer();\n    case 1:\n      return players[0];\n    default:\n      return new ɵAnimationGroupPlayer(players);\n  }\n}\n\nexport function normalizeKeyframes(\n  normalizer: AnimationStyleNormalizer,\n  keyframes: Array<ɵStyleDataMap>,\n  preStyles: ɵStyleDataMap = new Map(),\n  postStyles: ɵStyleDataMap = new Map(),\n): Array<ɵStyleDataMap> {\n  const errors: Error[] = [];\n  const normalizedKeyframes: Array<ɵStyleDataMap> = [];\n  let previousOffset = -1;\n  let previousKeyframe: ɵStyleDataMap | null = null;\n  keyframes.forEach((kf) => {\n    const offset = kf.get('offset') as number;\n    const isSameOffset = offset == previousOffset;\n    const normalizedKeyframe: ɵStyleDataMap = (isSameOffset && previousKeyframe) || new Map();\n    kf.forEach((val, prop) => {\n      let normalizedProp = prop;\n      let normalizedValue = val;\n      if (prop !== 'offset') {\n        normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n        switch (normalizedValue) {\n          case PRE_STYLE:\n            normalizedValue = preStyles.get(prop)!;\n            break;\n\n          case AUTO_STYLE:\n            normalizedValue = postStyles.get(prop)!;\n            break;\n\n          default:\n            normalizedValue = normalizer.normalizeStyleValue(\n              prop,\n              normalizedProp,\n              normalizedValue,\n              errors,\n            );\n            break;\n        }\n      }\n      normalizedKeyframe.set(normalizedProp, normalizedValue);\n    });\n    if (!isSameOffset) {\n      normalizedKeyframes.push(normalizedKeyframe);\n    }\n    previousKeyframe = normalizedKeyframe;\n    previousOffset = offset;\n  });\n  if (errors.length) {\n    throw animationFailed(errors);\n  }\n\n  return normalizedKeyframes;\n}\n\nexport function listenOnPlayer(\n  player: AnimationPlayer,\n  eventName: string,\n  event: AnimationEvent | undefined,\n  callback: (event: any) => any,\n) {\n  switch (eventName) {\n    case 'start':\n      player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n      break;\n    case 'done':\n      player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n      break;\n    case 'destroy':\n      player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n      break;\n  }\n}\n\nexport function copyAnimationEvent(\n  e: AnimationEvent,\n  phaseName: string,\n  player: AnimationPlayer,\n): AnimationEvent {\n  const totalTime = player.totalTime;\n  const disabled = (player as any).disabled ? true : false;\n  const event = makeAnimationEvent(\n    e.element,\n    e.triggerName,\n    e.fromState,\n    e.toState,\n    phaseName || e.phaseName,\n    totalTime == undefined ? e.totalTime : totalTime,\n    disabled,\n  );\n  const data = (e as any)['_data'];\n  if (data != null) {\n    (event as any)['_data'] = data;\n  }\n  return event;\n}\n\nexport function makeAnimationEvent(\n  element: any,\n  triggerName: string,\n  fromState: string,\n  toState: string,\n  phaseName: string = '',\n  totalTime: number = 0,\n  disabled?: boolean,\n): AnimationEvent {\n  return {element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled};\n}\n\nexport function getOrSetDefaultValue<T, V>(map: Map<T, V>, key: T, defaultValue: V) {\n  let value = map.get(key);\n  if (!value) {\n    map.set(key, (value = defaultValue));\n  }\n  return value;\n}\n\nexport function parseTimelineCommand(command: string): [string, string] {\n  const separatorPos = command.indexOf(':');\n  const id = command.substring(1, separatorPos);\n  const action = command.slice(separatorPos + 1);\n  return [id, action];\n}\n\nconst documentElement: HTMLElement | null = /* @__PURE__ */ (() =>\n  typeof document === 'undefined' ? null : document.documentElement)();\n\nexport function getParentElement(element: any): unknown | null {\n  const parent = element.parentNode || element.host || null; // consider host to support shadow DOM\n  if (parent === documentElement) {\n    return null;\n  }\n  return parent;\n}\n\nfunction containsVendorPrefix(prop: string): boolean {\n  // Webkit is the only real popular vendor prefix nowadays\n  // cc: http://shouldiprefix.com/\n  return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\n\nlet _CACHED_BODY: {style: any} | null = null;\nlet _IS_WEBKIT = false;\nexport function validateStyleProperty(prop: string): boolean {\n  if (!_CACHED_BODY) {\n    _CACHED_BODY = getBodyNode() || {};\n    _IS_WEBKIT = _CACHED_BODY!.style ? 'WebkitAppearance' in _CACHED_BODY!.style : false;\n  }\n\n  let result = true;\n  if (_CACHED_BODY!.style && !containsVendorPrefix(prop)) {\n    result = prop in _CACHED_BODY!.style;\n    if (!result && _IS_WEBKIT) {\n      const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n      result = camelProp in _CACHED_BODY!.style;\n    }\n  }\n\n  return result;\n}\n\nexport function validateWebAnimatableStyleProperty(prop: string): boolean {\n  return ANIMATABLE_PROP_SET.has(prop);\n}\n\nexport function getBodyNode(): any | null {\n  if (typeof document != 'undefined') {\n    return document.body;\n  }\n  return null;\n}\n\nexport function containsElement(elm1: any, elm2: any): boolean {\n  while (elm2) {\n    if (elm2 === elm1) {\n      return true;\n    }\n    elm2 = getParentElement(elm2);\n  }\n  return false;\n}\n\nexport function invokeQuery(element: any, selector: string, multi: boolean): any[] {\n  if (multi) {\n    return Array.from(element.querySelectorAll(selector));\n  }\n  const elem = element.querySelector(selector);\n  return elem ? [elem] : [];\n}\n\nexport function hypenatePropsKeys(original: ɵStyleDataMap): ɵStyleDataMap {\n  const newMap: ɵStyleDataMap = new Map();\n  original.forEach((val, prop) => {\n    const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n    newMap.set(newProp, val);\n  });\n  return newMap;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {\n  AnimateTimings,\n  AnimationMetadata,\n  AnimationMetadataType,\n  AnimationOptions,\n  sequence,\n  ɵStyleData,\n  ɵStyleDataMap,\n} from '../../src/animations';\n\nimport {Ast as AnimationAst, AstVisitor as AnimationAstVisitor} from './dsl/animation_ast';\nimport {AnimationDslVisitor} from './dsl/animation_dsl_visitor';\nimport {\n  invalidNodeType,\n  invalidParamValue,\n  invalidStyleParams,\n  invalidTimingValue,\n  negativeDelayValue,\n  negativeStepValue,\n} from './error_helpers';\n\nconst ONE_SECOND = 1000;\n\nexport const SUBSTITUTION_EXPR_START = '{{';\nexport const SUBSTITUTION_EXPR_END = '}}';\nexport const ENTER_CLASSNAME = 'ng-enter';\nexport const LEAVE_CLASSNAME = 'ng-leave';\nexport const NG_TRIGGER_CLASSNAME = 'ng-trigger';\nexport const NG_TRIGGER_SELECTOR = '.ng-trigger';\nexport const NG_ANIMATING_CLASSNAME = 'ng-animating';\nexport const NG_ANIMATING_SELECTOR = '.ng-animating';\n\nexport function resolveTimingValue(value: string | number) {\n  if (typeof value == 'number') return value;\n\n  const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n  if (!matches || matches.length < 2) return 0;\n\n  return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\n\nfunction _convertTimeValueToMS(value: number, unit: string): number {\n  switch (unit) {\n    case 's':\n      return value * ONE_SECOND;\n    default: // ms or something else\n      return value;\n  }\n}\n\nexport function resolveTiming(\n  timings: string | number | AnimateTimings,\n  errors: Error[],\n  allowNegativeValues?: boolean,\n) {\n  return timings.hasOwnProperty('duration')\n    ? <AnimateTimings>timings\n    : parseTimeExpression(<string | number>timings, errors, allowNegativeValues);\n}\n\nfunction parseTimeExpression(\n  exp: string | number,\n  errors: Error[],\n  allowNegativeValues?: boolean,\n): AnimateTimings {\n  const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n  let duration: number;\n  let delay: number = 0;\n  let easing: string = '';\n  if (typeof exp === 'string') {\n    const matches = exp.match(regex);\n    if (matches === null) {\n      errors.push(invalidTimingValue(exp));\n      return {duration: 0, delay: 0, easing: ''};\n    }\n\n    duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n\n    const delayMatch = matches[3];\n    if (delayMatch != null) {\n      delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n    }\n\n    const easingVal = matches[5];\n    if (easingVal) {\n      easing = easingVal;\n    }\n  } else {\n    duration = exp;\n  }\n\n  if (!allowNegativeValues) {\n    let containsErrors = false;\n    let startIndex = errors.length;\n    if (duration < 0) {\n      errors.push(negativeStepValue());\n      containsErrors = true;\n    }\n    if (delay < 0) {\n      errors.push(negativeDelayValue());\n      containsErrors = true;\n    }\n    if (containsErrors) {\n      errors.splice(startIndex, 0, invalidTimingValue(exp));\n    }\n  }\n\n  return {duration, delay, easing};\n}\n\nexport function normalizeKeyframes(\n  keyframes: Array<ɵStyleData> | Array<ɵStyleDataMap>,\n): Array<ɵStyleDataMap> {\n  if (!keyframes.length) {\n    return [];\n  }\n  if (keyframes[0] instanceof Map) {\n    return keyframes as Array<ɵStyleDataMap>;\n  }\n  return keyframes.map((kf) => new Map(Object.entries(kf)));\n}\n\nexport function normalizeStyles(styles: ɵStyleDataMap | Array<ɵStyleDataMap>): ɵStyleDataMap {\n  return Array.isArray(styles) ? new Map(...styles) : new Map(styles);\n}\n\nexport function setStyles(element: any, styles: ɵStyleDataMap, formerStyles?: ɵStyleDataMap) {\n  styles.forEach((val, prop) => {\n    const camelProp = dashCaseToCamelCase(prop);\n    if (formerStyles && !formerStyles.has(prop)) {\n      formerStyles.set(prop, element.style[camelProp]);\n    }\n    element.style[camelProp] = val;\n  });\n}\n\nexport function eraseStyles(element: any, styles: ɵStyleDataMap) {\n  styles.forEach((_, prop) => {\n    const camelProp = dashCaseToCamelCase(prop);\n    element.style[camelProp] = '';\n  });\n}\n\nexport function normalizeAnimationEntry(\n  steps: AnimationMetadata | AnimationMetadata[],\n): AnimationMetadata {\n  if (Array.isArray(steps)) {\n    if (steps.length == 1) return steps[0];\n    return sequence(steps);\n  }\n  return steps as AnimationMetadata;\n}\n\nexport function validateStyleParams(\n  value: string | number | null | undefined,\n  options: AnimationOptions,\n  errors: Error[],\n) {\n  const params = options.params || {};\n  const matches = extractStyleParams(value);\n  if (matches.length) {\n    matches.forEach((varName) => {\n      if (!params.hasOwnProperty(varName)) {\n        errors.push(invalidStyleParams(varName));\n      }\n    });\n  }\n}\n\nconst PARAM_REGEX = /* @__PURE__ */ new RegExp(\n  `${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`,\n  'g',\n);\nexport function extractStyleParams(value: string | number | null | undefined): string[] {\n  let params: string[] = [];\n  if (typeof value === 'string') {\n    let match: any;\n    while ((match = PARAM_REGEX.exec(value))) {\n      params.push(match[1] as string);\n    }\n    PARAM_REGEX.lastIndex = 0;\n  }\n  return params;\n}\n\nexport function interpolateParams(\n  value: string | number,\n  params: {[name: string]: any},\n  errors: Error[],\n): string | number {\n  const original = `${value}`;\n  const str = original.replace(PARAM_REGEX, (_, varName) => {\n    let localVal = params[varName];\n    // this means that the value was never overridden by the data passed in by the user\n    if (localVal == null) {\n      errors.push(invalidParamValue(varName));\n      localVal = '';\n    }\n    return localVal.toString();\n  });\n\n  // we do this to assert that numeric values stay as they are\n  return str == original ? value : str;\n}\n\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: any[]) => m[1].toUpperCase());\n}\n\nexport function camelCaseToDashCase(input: string): string {\n  return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport function allowPreviousPlayerStylesMerge(duration: number, delay: number) {\n  return duration === 0 || delay === 0;\n}\n\nexport function balancePreviousStylesIntoKeyframes(\n  element: any,\n  keyframes: Array<ɵStyleDataMap>,\n  previousStyles: ɵStyleDataMap,\n) {\n  if (previousStyles.size && keyframes.length) {\n    let startingKeyframe = keyframes[0];\n    let missingStyleProps: string[] = [];\n    previousStyles.forEach((val, prop) => {\n      if (!startingKeyframe.has(prop)) {\n        missingStyleProps.push(prop);\n      }\n      startingKeyframe.set(prop, val);\n    });\n\n    if (missingStyleProps.length) {\n      for (let i = 1; i < keyframes.length; i++) {\n        let kf = keyframes[i];\n        missingStyleProps.forEach((prop) => kf.set(prop, computeStyle(element, prop)));\n      }\n    }\n  }\n  return keyframes;\n}\n\nexport function visitDslNode(\n  visitor: AnimationDslVisitor,\n  node: AnimationMetadata,\n  context: any,\n): any;\nexport function visitDslNode(\n  visitor: AnimationAstVisitor,\n  node: AnimationAst<AnimationMetadataType>,\n  context: any,\n): any;\nexport function visitDslNode(visitor: any, node: any, context: any): any {\n  switch (node.type) {\n    case AnimationMetadataType.Trigger:\n      return visitor.visitTrigger(node, context);\n    case AnimationMetadataType.State:\n      return visitor.visitState(node, context);\n    case AnimationMetadataType.Transition:\n      return visitor.visitTransition(node, context);\n    case AnimationMetadataType.Sequence:\n      return visitor.visitSequence(node, context);\n    case AnimationMetadataType.Group:\n      return visitor.visitGroup(node, context);\n    case AnimationMetadataType.Animate:\n      return visitor.visitAnimate(node, context);\n    case AnimationMetadataType.Keyframes:\n      return visitor.visitKeyframes(node, context);\n    case AnimationMetadataType.Style:\n      return visitor.visitStyle(node, context);\n    case AnimationMetadataType.Reference:\n      return visitor.visitReference(node, context);\n    case AnimationMetadataType.AnimateChild:\n      return visitor.visitAnimateChild(node, context);\n    case AnimationMetadataType.AnimateRef:\n      return visitor.visitAnimateRef(node, context);\n    case AnimationMetadataType.Query:\n      return visitor.visitQuery(node, context);\n    case AnimationMetadataType.Stagger:\n      return visitor.visitStagger(node, context);\n    default:\n      throw invalidNodeType(node.type);\n  }\n}\n\nexport function computeStyle(element: any, prop: string): string {\n  return (<any>window.getComputedStyle(element))[prop];\n}\n"],"names":["RuntimeError","ɵAnimationGroupPlayer","normalizeKeyframes","PRE_STYLE"],"mappings":"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"}