{"version":3,"file":"ngverse-motion-core.mjs","sources":["../../../../libs/motion/core/src/lib/motion-builder.ts","../../../../libs/motion/core/src/ngverse-motion-core.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n  animate,\n  animateChild,\n  animation,\n  AnimationKeyframesSequenceMetadata,\n  AnimationMetadata,\n  AnimationOptions,\n  AnimationReferenceMetadata,\n  AnimationStyleMetadata,\n  query,\n  transition,\n  trigger,\n  useAnimation,\n} from '@angular/animations';\nimport {\n  CHILDREN_ANIMATION_TYPE,\n  CreateMotionFactory,\n  MotionOptions,\n  TriggerMotionOptions,\n} from './motion-types';\n\nfunction resolveChildren(\n  animation: AnimationReferenceMetadata,\n  children: CHILDREN_ANIMATION_TYPE\n) {\n  if (children === 'before') {\n    return [query('@*', animateChild(), { optional: true }), animation];\n  }\n  if (children === 'after') {\n    return [animation, query('@*', animateChild(), { optional: true })];\n  } else {\n    return [animation];\n  }\n}\n\nexport function createDefaults<T extends MotionOptions>(options?: T): T {\n  return {\n    ...options,\n  } as T;\n}\n\nexport function setDefaults<T extends MotionOptions>(defaults: T) {\n  return (options: Partial<T>) => Object.assign(defaults, options);\n}\n\nfunction mapToTime(duration: number, easing: string) {\n  return `${duration}ms ${easing}`;\n}\n\nfunction getOptions<T extends MotionOptions>(\n  options: T | undefined,\n  defaults: T,\n  globalDefaults: T\n): Required<T> {\n  return {\n    ...globalDefaults,\n    ...defaults,\n    ...options,\n  } as Required<T>;\n}\n\nexport function createMotion<T extends Partial<MotionOptions>>(\n  animation: AnimationReferenceMetadata,\n  defaults: MotionOptions,\n  globalDefaults: MotionOptions\n) {\n  return (options?: Partial<T>) => {\n    const parsedOptions = getOptions(options, defaults, globalDefaults);\n    const _duration = parsedOptions.duration;\n    const _delay = parsedOptions.delay;\n    const _easing = parsedOptions.easing;\n\n    const animationOptions: AnimationOptions = {\n      delay: _delay,\n      params: {\n        time: mapToTime(_duration, _easing),\n        ...parsedOptions,\n      },\n    };\n    return useAnimation(animation, animationOptions);\n  };\n}\n\nexport function buildMotion<T extends MotionOptions>(\n  before: AnimationMetadata[],\n  after: AnimationKeyframesSequenceMetadata | AnimationStyleMetadata,\n  defaults: MotionOptions,\n  globalDefaults: MotionOptions\n) {\n  const _motion = animation([...before, animate('{{ time }}', after)]);\n  return createMotion<T>(_motion, defaults, globalDefaults);\n}\n\nexport function createMotionFromAnimate<T extends Partial<MotionOptions>>(\n  keyframes: AnimationKeyframesSequenceMetadata | AnimationStyleMetadata,\n  defaults: MotionOptions,\n  globalDefaults: MotionOptions\n) {\n  const _motion = animation([animate('{{ time }}', keyframes)]);\n  return createMotion<T>(_motion, defaults, globalDefaults);\n}\n\nexport function createTrigger<T extends Partial<TriggerMotionOptions>>(\n  motionFactory: CreateMotionFactory<any>,\n  triggerName: string,\n  transitionName: string,\n  defaults: T,\n  globalDefaults: TriggerMotionOptions\n) {\n  return (options?: Partial<T>) => {\n    const _triggerName = options?.triggerName ?? triggerName;\n    const parsedOptions = getOptions(options, defaults, globalDefaults);\n    const _transitionName = transitionName;\n    const children = parsedOptions.children as CHILDREN_ANIMATION_TYPE;\n\n    return trigger(_triggerName, [\n      transition(\n        _transitionName,\n        resolveChildren(motionFactory(options), children)\n      ),\n    ]);\n  };\n}\n\nexport function createOnEnter<T extends Partial<TriggerMotionOptions>>(\n  rawFactory: CreateMotionFactory<any>,\n  name: string,\n  defaults: T,\n  globalDefaults: TriggerMotionOptions\n) {\n  return createTrigger<T>(\n    rawFactory,\n    `${name}OnEnter`,\n    ':enter',\n    defaults,\n    globalDefaults\n  );\n}\n\nexport function createOnLeave<T extends Partial<TriggerMotionOptions>>(\n  rawFactory: CreateMotionFactory<any>,\n  name: string,\n  defaults: T,\n  globalDefaults: TriggerMotionOptions\n) {\n  return createTrigger<T>(\n    rawFactory,\n    `${name}OnLeave`,\n    ':leave',\n    defaults,\n    globalDefaults\n  );\n}\n\nexport function createOnIncr<T extends Partial<TriggerMotionOptions>>(\n  rawFactory: CreateMotionFactory<any>,\n  name: string,\n  defaults: T,\n  globalDefaults: TriggerMotionOptions\n) {\n  return createTrigger<T>(\n    rawFactory,\n    `${name}OnIncr`,\n    ':incr',\n    defaults,\n    globalDefaults\n  );\n}\n\nexport function createOnDecr<T extends Partial<TriggerMotionOptions>>(\n  rawFactory: CreateMotionFactory<any>,\n  name: string,\n  defaults: T,\n  globalDefaults: TriggerMotionOptions\n) {\n  return createTrigger<T>(\n    rawFactory,\n    `${name}OnDecr`,\n    ':decr',\n    defaults,\n    globalDefaults\n  );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}