{"version":3,"file":"notiz-motion.mjs","sources":["../../../../libs/motion/src/lib/util/types.ts","../../../../libs/motion/src/lib/util/value-types.ts","../../../../libs/motion/src/lib/util/drivers.ts","../../../../libs/motion/src/lib/util/interpolate.ts","../../../../libs/motion/src/lib/util/animate.ts","../../../../libs/motion/src/lib/animate.ts","../../../../libs/motion/src/lib/directives/variants.directive.ts","../../../../libs/motion/src/lib/directives/animate.directive.ts","../../../../libs/motion/src/lib/directives/hover.directive.ts","../../../../libs/motion/src/lib/directives/intersection.directive.ts","../../../../libs/motion/src/lib/directives/leave.directive.ts","../../../../libs/motion/src/lib/directives/tap.directive.ts","../../../../libs/motion/src/lib/directives/sequence.directive.ts","../../../../libs/motion/src/lib/directives/combine.directive.ts","../../../../libs/motion/src/notiz-motion.ts"],"sourcesContent":["import {\n  AnimationOptions as PopMotionAnimationOptions,\n  DecayOptions,\n  KeyframeOptions,\n  SpringOptions,\n} from 'popmotion';\n\nexport type OmitFromTo<T> = Omit<T, 'from' | 'to'>;\nexport type OmitPopMotionLifecycles = Omit<\n  PopMotionAnimationOptions<any>,\n  'onUpdate' | 'onComplete' | 'onRepeat' | 'onPlay' | 'onStop'\n>;\n\nexport type BaseOptions = OmitFromTo<OmitPopMotionLifecycles> &\n  (\n    | OmitFromTo<DecayOptions>\n    | OmitFromTo<KeyframeOptions<any>>\n    | OmitFromTo<SpringOptions>\n  );\n\n  export type PropertyOptionsObject =  (OmitPopMotionLifecycles &\n    (DecayOptions | KeyframeOptions<any> | SpringOptions))\n\nexport type PropertyOptions =\n  | string\n  | number\n  | (string | number)[]\n  | PropertyOptionsObject;\n\nexport type AnimationVariants = { [key: string]: AnimationOptions };\n\nexport interface AnimationUpdate {\n  options: AnimationOptions;\n  property: string;\n  value: any;\n  from?: any;\n  to?: any;\n}\n\ntype PartialRecord<K extends keyof any, T> = {\n  [P in K]?: T;\n};\n\nexport type AnimationOptions = (\n  | PartialRecord<keyof typeof SupportedProperties, PropertyOptions>\n  | { [key: string]: PropertyOptions }\n) &\n  Partial<BaseOptions>;\n\nexport enum SupportedProperties {\n  'borderWidth',\n  'borderTopWidth',\n  'borderRightWidth',\n  'borderBottomWidth',\n  'borderLeftWidth',\n  'borderRadius',\n  'radius',\n  'borderTopLeftRadius',\n  'borderTopRightRadius',\n  'borderBottomRightRadius',\n  'borderBottomLeftRadius',\n  'width',\n  'maxWidth',\n  'height',\n  'maxHeight',\n  'size',\n  'top',\n  'right',\n  'bottom',\n  'left',\n  'padding',\n  'paddingTop',\n  'paddingRight',\n  'paddingBottom',\n  'paddingLeft',\n  'margin',\n  'marginTop',\n  'marginRight',\n  'marginBottom',\n  'marginLeft',\n  'rotate',\n  'rotateX',\n  'rotateY',\n  'rotateZ',\n  'scale',\n  'scaleX',\n  'scaleY',\n  'scaleZ',\n  'skew',\n  'skewX',\n  'skewY',\n  'distance',\n  'translateX',\n  'translateY',\n  'translateZ',\n  'x',\n  'y',\n  'z',\n  'perspective',\n  'transformPerspective',\n  'opacity',\n  'originX',\n  'originY',\n  'originZ',\n  'zIndex',\n  'fillOpacity',\n  'strokeOpacity',\n  'numOctaves',\n  'color',\n  'backgroundColor',\n  'outlineColor',\n  'fill',\n  'stroke',\n  'borderColor',\n  'borderTopColor',\n  'borderRightColor',\n  'borderBottomColor',\n  'borderLeftColor',\n  'filter',\n  'WebkitFilter',\n}\n\nexport enum AnimationOptionKeys {\n  'autoplay',\n  'driver',\n  'elapsed',\n  'repeat',\n  'repeatType',\n  'repeatDelay',\n  'type',\n  'velocity',\n  'power',\n  'timeConstant',\n  'modifyTarget',\n  'restDelta',\n  'duration',\n  'ease',\n  'offset',\n  'bounce',\n  'restSpeed',\n}\n\nexport const animationOptions = Array.from(Object.values(AnimationOptionKeys));\n","import {\n  alpha,\n  degrees,\n  progressPercentage,\n  px,\n  scale,\n  color,\n  number,\n  complex,\n  ValueType,\n} from 'style-value-types';\n// @ts-ignore\nimport * as units from 'units-css';\nexport interface ValueTypeMap {\n  [key: string]: ValueType;\n}\n\nexport const int: ValueType = {\n  ...number,\n  transform: Math.round,\n};\n\nconst transformTypes: ValueTypeMap = {\n  // Transform props\n  rotate: degrees,\n  rotateX: degrees,\n  rotateY: degrees,\n  rotateZ: degrees,\n  scale,\n  scaleX: scale,\n  scaleY: scale,\n  scaleZ: scale,\n  skew: degrees,\n  skewX: degrees,\n  skewY: degrees,\n  distance: px,\n  translateX: px,\n  translateY: px,\n  translateZ: px,\n  x: px,\n  y: px,\n  z: px,\n  perspective: px,\n  transformPerspective: px,\n  opacity: alpha,\n  originX: progressPercentage,\n  originY: progressPercentage,\n  originZ: px,\n};\n\nexport const valueTypes: ValueTypeMap = {\n  ...transformTypes,\n  // Border props\n  borderWidth: px,\n  borderTopWidth: px,\n  borderRightWidth: px,\n  borderBottomWidth: px,\n  borderLeftWidth: px,\n  borderRadius: px,\n  radius: px,\n  borderTopLeftRadius: px,\n  borderTopRightRadius: px,\n  borderBottomRightRadius: px,\n  borderBottomLeftRadius: px,\n\n  // Positioning props\n  width: px,\n  maxWidth: px,\n  height: px,\n  maxHeight: px,\n  size: px,\n  top: px,\n  right: px,\n  bottom: px,\n  left: px,\n\n  // Spacing props\n  padding: px,\n  paddingTop: px,\n  paddingRight: px,\n  paddingBottom: px,\n  paddingLeft: px,\n  margin: px,\n  marginTop: px,\n  marginRight: px,\n  marginBottom: px,\n  marginLeft: px,\n\n  // Misc\n  zIndex: int,\n\n  // SVG\n  fillOpacity: alpha,\n  strokeOpacity: alpha,\n  numOctaves: int,\n\n  // Color props\n  color,\n  backgroundColor: color,\n  outlineColor: color,\n  fill: color,\n  stroke: color,\n\n  // Border props\n  borderColor: color,\n  borderTopColor: color,\n  borderRightColor: color,\n  borderBottomColor: color,\n  borderLeftColor: color,\n};\n\nexport function getValue(\n  element: HTMLElement,\n  property: string,\n  value: string | number | (string | number)[] | object,\n  referenceValue?: string | number | (string | number)[] | object\n): string | string[] {\n  if (Array.isArray(value)) {\n    const array = value.map(\n      (x) => getValue(element, property, x, referenceValue) as string\n    );\n    return array;\n  }\n\n  const v = typeof value === 'number' ? `${value}` : value;\n  const type = valueTypes[property] || complex;\n  const containsNumber = typeof v === 'string' && /\\d/.test(v);\n\n  if (v === 'none') {\n    const none = type.getAnimatableNone\n      ? type.getAnimatableNone(referenceValue || v)\n      : v;\n    return none;\n  }\n\n  if (type === color) {\n    // convert to rgba\n    return color.transform?.(color.parse(v));\n  }\n\n  if (!containsNumber) {\n    return v as string;\n  }\n\n  if (type === px && !px.test(v)) {\n    return convertToPx(v as string, element, property);\n  }\n\n  return (type as any).transform\n    ? (type as any).transform((type as any).parse(v))\n    : v;\n}\n\nexport const convertToPx = (\n  from: number | string,\n  element: HTMLElement,\n  property: string\n): string => {\n  const value = units.convert('px', from, element, property);\n  return typeof value === 'number' && !isNaN(value)\n    ? `${value}px`\n    : (value as string);\n};\n\nexport const getDefault = (property: string): string =>\n  units.getDefaultValue(property);\n\nexport function vwToPx(value: number) {\n  return value / (window.innerWidth / 100 || 1);\n}\n","import { Observable, pairwise, share } from 'rxjs';\n\nexport function progress(progress$: Observable<number>, duration: number) {\n  let progress = 0;\n  return (update: (delta: number) => void) => {\n    const subscription = progress$\n      .pipe(pairwise(), share())\n      .subscribe(([prev, curr]) => {\n        const delta = (curr * duration) / 100 - (prev * duration) / 100;\n        progress += delta;\n        update(delta);\n      });\n    return {\n      start: () => {},\n      stop: () => {\n        subscription.unsubscribe();\n      },\n    };\n  };\n}\n","import { map, Observable } from \"rxjs\";\n\ntype ExtrapolateType = \"extend\" | \"identity\" | \"clamp\";\n\nfunction interpolateFunction(\n  input: number,\n  inputRange: [number, number],\n  outputRange: [number, number],\n  options: {\n    easing: (input: number) => number;\n    extrapolateLeft: ExtrapolateType;\n    extrapolateRight: ExtrapolateType;\n  }\n): number {\n  const { extrapolateLeft, extrapolateRight, easing } = options;\n\n  let result = input;\n  const [inputMin, inputMax] = inputRange;\n  const [outputMin, outputMax] = outputRange;\n\n  if (result < inputMin) {\n    if (extrapolateLeft === \"identity\") {\n      return result;\n    }\n\n    if (extrapolateLeft === \"clamp\") {\n      result = inputMin;\n    } else if (extrapolateLeft === \"extend\") {\n      // noop\n    }\n  }\n\n  if (result > inputMax) {\n    if (extrapolateRight === \"identity\") {\n      return result;\n    }\n\n    if (extrapolateRight === \"clamp\") {\n      result = inputMax;\n    } else if (extrapolateRight === \"extend\") {\n      // noop\n    }\n  }\n\n  if (outputMin === outputMax) {\n    return outputMin;\n  }\n\n  // Input Range\n  result = (result - inputMin) / (inputMax - inputMin);\n\n  // Easing\n  result = easing(result);\n\n  // Output Range\n  result = result * (outputMax - outputMin) + outputMin;\n\n  return result;\n}\n\nfunction findRange(input: number, inputRange: readonly number[]) {\n  let i;\n  for (i = 1; i < inputRange.length - 1; ++i) {\n    if (inputRange[i] >= input) {\n      break;\n    }\n  }\n\n  return i - 1;\n}\n\nfunction checkValidInputRange(arr: readonly number[]) {\n  for (let i = 1; i < arr.length; ++i) {\n    if (!(arr[i] > arr[i - 1])) {\n      throw new Error(\n        `inputRange must be strictly monotonically non-decreasing but got [${arr.join(\n          \",\"\n        )}]`\n      );\n    }\n  }\n}\n\nfunction checkInfiniteRange(name: string, arr: readonly number[]) {\n  if (arr.length < 2) {\n    throw new Error(name + \" must have at least 2 elements\");\n  }\n\n  for (const index in arr) {\n    if (typeof arr[index] !== \"number\") {\n      throw new Error(`${name} must contain only numbers`);\n    }\n\n    if (arr[index] === -Infinity || arr[index] === Infinity) {\n      throw new Error(\n        `${name} must contain only finite numbers, but got [${arr.join(\",\")}]`\n      );\n    }\n  }\n}\n\nexport function _interpolate(\n  input: number,\n  inputRange: readonly number[],\n  outputRange: readonly number[],\n  options?: {\n    easing?: (input: number) => number;\n    extrapolateLeft?: ExtrapolateType;\n    extrapolateRight?: ExtrapolateType;\n  }\n): number {\n  if (\n    typeof input === \"undefined\" ||\n    typeof inputRange === \"undefined\" ||\n    typeof outputRange === \"undefined\"\n  ) {\n    throw new Error(\"input or inputRange or outputRange can not be undefined\");\n  }\n\n  if (inputRange.length !== outputRange.length) {\n    throw new Error(\n      \"inputRange (\" +\n        inputRange.length +\n        \") and outputRange (\" +\n        outputRange.length +\n        \") must have the same length\"\n    );\n  }\n\n  checkInfiniteRange(\"inputRange\", inputRange);\n  checkInfiniteRange(\"outputRange\", outputRange);\n\n  checkValidInputRange(inputRange);\n\n  const easing = options?.easing ?? ((num: number): number => num);\n\n  let extrapolateLeft: ExtrapolateType = \"extend\";\n  if (options?.extrapolateLeft !== undefined) {\n    extrapolateLeft = options.extrapolateLeft;\n  }\n\n  let extrapolateRight: ExtrapolateType = \"extend\";\n  if (options?.extrapolateRight !== undefined) {\n    extrapolateRight = options.extrapolateRight;\n  }\n\n  if (typeof input !== \"number\") {\n    throw new TypeError(\"Cannot interpolation an input which is not a number\");\n  }\n\n  const range = findRange(input, inputRange);\n  return interpolateFunction(\n    input,\n    [inputRange[range], inputRange[range + 1]],\n    [outputRange[range], outputRange[range + 1]],\n    {\n      easing,\n      extrapolateLeft,\n      extrapolateRight,\n    }\n  );\n}\n\nexport function interpolate(\n  inputRange: readonly number[],\n  outputRange: readonly number[],\n  options?: {\n    easing?: (input: number) => number;\n    extrapolateLeft?: ExtrapolateType;\n    extrapolateRight?: ExtrapolateType;\n  }\n) {\n  return function (frame: Observable<number>): Observable<number> {\n    return frame.pipe(\n      map((n) => _interpolate(n, inputRange, outputRange, options))\n    );\n  };\n}\n","import { Styler } from 'stylefire';\nimport {\n  AnimationOptions,\n  AnimationUpdate,\n  AnimationVariants,\n  PropertyOptions,\n  animationOptions,\n  BaseOptions,\n  SupportedProperties,\n  PropertyOptionsObject,\n} from '../util/types';\nimport { getDefault, getValue } from '../util/value-types';\n\nexport function reverseAnimation(\n  animation: AnimationOptions,\n  initial: AnimationUpdate[]\n) {\n  const copy = JSON.parse(JSON.stringify({ ...animation }));\n  initial.forEach(({ from, to, property }) => {\n    const value = to && Array.isArray(to) ? [from, ...to].reverse() : from;\n    if (typeof copy[property] === 'object' && !Array.isArray(copy[property])) {\n      copy[property].to = value;\n      copy[property].from = undefined;\n    } else {\n      copy[property] = value;\n    }\n  });\n  return copy;\n}\n\nexport function getAnimation(\n  options: AnimationOptions | string,\n  variants?: AnimationVariants\n) {\n  if (typeof options !== 'string') {\n    return options;\n  }\n  if (variants && variants[options]) {\n    return variants[options];\n  }\n  console.warn('variant not found', options);\n  return {};\n}\n\nexport function composeOptions(\n  options: AnimationOptions,\n  property: keyof typeof SupportedProperties,\n  element: HTMLElement,\n  styler: Styler\n) {\n  const baseOptions = getBaseOptions(options);\n  baseOptions.type ||= 'spring';\n  const propertyOptions = options[property]!;\n  const toValue = getToValue(propertyOptions, property);\n  const fromValue = getFromValue(propertyOptions, property, styler);\n\n  const to = getValue(element, property, toValue, fromValue);\n  const from =\n    fromValue !== undefined\n      ? getValue(element, property, fromValue, toValue)\n      : getValue(element, property, styler.get(property), toValue);\n\n  if (typeof propertyOptions === 'object' && !Array.isArray(propertyOptions)) {\n    return { ...baseOptions, ...propertyOptions, from, to };\n  }\n  return { ...baseOptions, from, to };\n}\n\nexport function getToValue(propertyOptions: PropertyOptions, property: string) {\n  if (Array.isArray(propertyOptions)) {\n    return propertyOptions;\n  }\n\n  if (typeof propertyOptions === 'object') {\n    return propertyOptions['to'] !== undefined\n      ? propertyOptions['to']\n      : getDefault(property);\n  }\n\n  if (propertyOptions === undefined) {\n    return getDefault(property);\n  }\n\n  return propertyOptions;\n}\n\nexport function getFromValue(\n  propertyOptions: PropertyOptions,\n  property: string,\n  styler: Styler\n) {\n  if ((<PropertyOptionsObject>propertyOptions).from !== undefined) {\n    return (<PropertyOptionsObject>propertyOptions).from;\n  }\n  return styler.get(property);\n}\n\nexport function getBaseOptions(options: AnimationOptions) {\n  const ret = {};\n  Object.keys(options)\n    .filter((k) => animationOptions.some((s) => s === k))\n    .forEach((k) => {\n      Object.assign(ret, { [k]: options[k as keyof AnimationOptions] });\n    });\n  return ret as BaseOptions;\n}\n","import { combineLatest, Observable } from 'rxjs';\nimport {\n  animate as popmotionAnimate,\n  AnimationOptions as PopmotionAnimationOptions,\n} from 'popmotion';\nimport { Styler } from 'stylefire';\nimport {\n  AnimationOptions,\n  AnimationUpdate,\n  animationOptions,\n  SupportedProperties,\n} from './util/types';\nimport { composeOptions } from './util/animate';\n\nexport function animate$(\n  options: AnimationOptions,\n  element: HTMLElement,\n  styler: Styler,\n  complete: boolean = true\n): Observable<AnimationUpdate[]> {\n  return combineLatest(\n    Object.keys(options)\n      .filter((k) => !animationOptions.some((a) => a === k))\n      .map((k) => {\n        const key = k as keyof typeof SupportedProperties;\n        return animateProperty$(\n          styler,\n          key,\n          composeOptions(options, key, element, styler),\n          complete\n        );\n      })\n  );\n}\n\n// returns popmotion property animation wrapped in observable\nexport function animateProperty$(\n  styler: Styler,\n  property: string,\n  options: PopmotionAnimationOptions<any>,\n  complete: boolean\n): Observable<AnimationUpdate> {\n  return new Observable((observer) => {\n    const animationOptions: PopmotionAnimationOptions<any> = {\n      ...options,\n      onUpdate: (value) => {\n        const s = {};\n        Object.assign(s, { [property]: value });\n        styler.set({ [property]: value });\n        observer.next({\n          options,\n          from: options.from,\n          to: options.to,\n          value,\n          property,\n        });\n      },\n      onComplete: () => complete && observer.complete(),\n    };\n    const animation = popmotionAnimate(animationOptions);\n    observer.unsubscribe = () => {\n      animation.stop();\n    };\n  });\n}\n","import { Directive, Input } from '@angular/core';\nimport { AnimationVariants } from '../util/types';\n\n@Directive({\n  selector: '[variants]',\n  standalone: true,\n})\nexport class Variants {\n  @Input() variants!: AnimationVariants;\n  constructor() {}\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n  Directive,\n  ElementRef,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  PLATFORM_ID,\n  inject,\n} from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport {\n  filter,\n  finalize,\n  map,\n  share,\n  switchMap,\n  takeUntil,\n} from 'rxjs/operators';\nimport styler, { Styler } from 'stylefire';\nimport { animate$ } from '../animate';\nimport { getAnimation } from '../util/animate';\nimport { AnimationOptions } from '../util/types';\nimport { Variants } from './variants.directive';\n\n@Directive({\n  selector: '[animate]',\n  exportAs: 'animate',\n  standalone: true,\n})\nexport class Motion implements OnDestroy, OnInit {\n  styler!: Styler;\n  readonly destroy$ = new Subject<void>();\n  private _animation = new BehaviorSubject<AnimationOptions | string | null>(\n    null\n  );\n  private _animationState = new BehaviorSubject<{\n    state: 'start' | 'active' | 'finished';\n    options: AnimationOptions | string;\n  } | null>(null);\n\n  @Output() complete = this._animationState.pipe(\n    filter((animation) => !!animation),\n    filter((s) => s!.state === 'finished'),\n    map((s) => s!.options)\n  );\n\n  @Output() start = this._animationState.pipe(\n    filter((animation) => !!animation),\n    filter((s) => s!.state === 'start'),\n    map((s) => s!.options)\n  );\n\n  animation$ = this._animation.pipe(\n    filter((animation) => !!animation),\n    switchMap((animation) =>\n      this._animate(animation!).pipe(\n        map((x, i) => {\n          if (i === 0) {\n            this._animationState.next({ state: 'start', options: animation! });\n          } else {\n            this._animationState.next({ state: 'active', options: animation! });\n          }\n          return x;\n        }),\n        finalize(() => {\n          this._animationState.next({\n            state: 'finished',\n            options: animation!,\n          });\n        })\n      )\n    ),\n    takeUntil(this.destroy$),\n    share()\n  );\n  @Input('animate') set animation(animate: AnimationOptions | string | null) {\n    this.zone.runOutsideAngular(() => {\n      this._animation.next(animate);\n    });\n  }\n  get animation() {\n    return this._animation.getValue();\n  }\n\n  @Input('complete')\n  _complete = true;\n\n  platformId = inject(PLATFORM_ID);\n\n  constructor(\n    private el: ElementRef<HTMLElement>,\n    @Optional() private variants: Variants,\n    private zone: NgZone\n  ) {}\n\n  ngOnInit(): void {\n    if (!isPlatformBrowser(this.platformId)) {\n      return;\n    }\n    this.styler = styler(this.el.nativeElement);\n    this.zone.runOutsideAngular(() => {\n      this.animation$.subscribe();\n    });\n  }\n\n  animate(options?: AnimationOptions | string) {\n    if (!isPlatformBrowser(this.platformId)) {\n      return;\n    }\n    if (options) {\n      this._animation.next(options);\n    } else {\n      this._animation.next(this.animation);\n    }\n  }\n\n  _animate(options: AnimationOptions | string) {\n    if (typeof options === 'string') {\n      const animation = getAnimation(options, this.variants?.variants);\n\n      return animate$(\n        animation,\n        this.el.nativeElement,\n        this.styler,\n        this._complete\n      );\n    }\n    return animate$(\n      options as AnimationOptions,\n      this.el.nativeElement,\n      this.styler,\n      this._complete\n    );\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  Input,\n  NgZone,\n  OnInit,\n  Optional,\n} from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { map, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { reverseAnimation, getAnimation } from '../util/animate';\nimport { AnimationOptions, AnimationUpdate } from '../util/types';\nimport { Motion } from './animate.directive';\nimport { Variants } from './variants.directive';\n\n@Directive({\n  selector: '[animate.hover]',\n  standalone: true,\n})\nexport class Hover implements OnInit {\n  @Input('animate.hover') options!: AnimationOptions | string;\n  private initial!: AnimationUpdate[];\n  constructor(\n    private el: ElementRef<HTMLElement>,\n    private animate: Motion,\n    @Optional() private variants: Variants,\n    private zone: NgZone\n  ) {}\n\n  ngOnInit(): void {\n    this.zone.runOutsideAngular(() => {\n      fromEvent(this.el.nativeElement, 'mouseenter')\n        .pipe(\n          tap(() => this.animate.animate(this.options)),\n          switchMap(() => this.animate.animation$),\n          tap((next) => (this.initial = this.initial || next)),\n          takeUntil(this.animate.destroy$)\n        )\n        .subscribe();\n\n      fromEvent(this.el.nativeElement, 'mouseleave')\n        .pipe(\n          map(() =>\n            reverseAnimation(\n              getAnimation(this.options, this.variants?.variants),\n              this.initial\n            )\n          ),\n          tap((animation) => this.animate.animate(animation)),\n          switchMap(() => this.animate.animation$),\n          takeUntil(this.animate.destroy$)\n        )\n        .subscribe();\n    });\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n} from '@angular/core';\nimport { intersection$ } from '@notiz/toolbelt/intersection';\nimport { Subject } from 'rxjs';\nimport {\n  distinctUntilChanged,\n  filter,\n  map,\n  switchMap,\n  take,\n  takeUntil,\n  tap,\n} from 'rxjs/operators';\nimport { animate$ } from '../animate';\nimport { getAnimation, reverseAnimation } from '../util/animate';\nimport { AnimationOptions, AnimationUpdate } from '../util/types';\nimport { Motion } from './animate.directive';\nimport { Variants } from './variants.directive';\n\n@Directive({\n  selector: '[animate.intersection]',\n  standalone: true,\n})\nexport class Intersection implements OnInit, OnDestroy {\n  @Input('animate.intersection') options!: AnimationOptions | string;\n  @Input() repeat = false;\n  @Input() intersectionOptions: IntersectionObserverInit = {};\n  @Output('in') _in = new EventEmitter();\n  @Output('out') _out = new EventEmitter();\n  private initial!: AnimationUpdate[];\n  private destroy$ = new Subject<void>();\n  constructor(\n    private el: ElementRef<HTMLElement>,\n    private animate: Motion,\n    @Optional() private variants: Variants,\n    private zone: NgZone,\n  ) {}\n\n  ngOnInit(): void {\n    if (this.options) {\n      this.el.nativeElement.style.visibility = 'hidden';\n    }\n\n    this.zone.runOutsideAngular(() => {\n      intersection$(this.el.nativeElement, this.intersectionOptions)\n        .pipe(\n          map((e) => e.isIntersecting),\n          distinctUntilChanged(),\n          map((e) => (e ? this.in() : this.out())),\n          filter((animation) => !!animation),\n          switchMap((animation) => animation!),\n          takeUntil(this.destroy$),\n        )\n        .subscribe();\n    });\n  }\n\n  private in() {\n    this._in.emit();\n    if (this.initial && !this.repeat) {\n      return;\n    }\n    if (!this.options) {\n      return;\n    }\n    this.animate.animate(this.options);\n    this.zone.runOutsideAngular(() => {\n      this.animate.animation$\n        .pipe(\n          take(1),\n          tap((next) => (this.initial = next)),\n        )\n        .subscribe();\n      animate$(\n        { visibility: 'visible' },\n        this.el.nativeElement,\n        this.animate.styler,\n      ).subscribe();\n    });\n    return this.animate.animation$;\n  }\n  private out() {\n    this._out.emit();\n    if (!this.repeat) {\n      return;\n    }\n    if (!this.options || !this.initial) {\n      return;\n    }\n    const animation = reverseAnimation(\n      getAnimation(this.options, this.variants?.variants),\n      this.initial,\n    );\n    this.animate.animate(animation);\n    return this.animate.animation$;\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Optional,\n  PLATFORM_ID,\n} from '@angular/core';\nimport styler from 'stylefire';\nimport { animate$ } from '../animate';\nimport { getAnimation } from '../util/animate';\nimport { AnimationOptions } from '../util/types';\nimport { Variants } from './variants.directive';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Directive({\n  selector: '[animate.leave]',\n  standalone: true,\n})\nexport class Leave implements OnDestroy, OnInit {\n  @Input('animate.leave') options!: AnimationOptions | string;\n  private parent!: HTMLElement;\n  private index!: number;\n\n  constructor(\n    private el: ElementRef<HTMLElement>,\n    @Optional() private variants: Variants,\n    private zone: NgZone,\n    @Inject(PLATFORM_ID) private platform: Object\n  ) {}\n\n  ngOnInit(): void {\n    if (!isPlatformBrowser(this.platform)) return;\n\n    this.parent = this.el.nativeElement.parentElement!;\n    this.index = Array.from(this.parent.children).indexOf(\n      this.el.nativeElement\n    );\n  }\n  ngOnDestroy(): void {\n    if (!isPlatformBrowser(this.platform)) return;\n\n    const inserted = this.parent.insertBefore(\n      this.el.nativeElement,\n      this.parent.children[this.index]\n    );\n    this.zone.runOutsideAngular(() => {\n      animate$(\n        getAnimation(this.options, this.variants?.variants),\n        inserted,\n        styler(inserted)\n      ).subscribe({ complete: () => this.parent?.removeChild(inserted) });\n    });\n  }\n}\n","import { Directive, ElementRef, Input, NgZone, Optional } from '@angular/core';\nimport { fromEvent, merge } from 'rxjs';\nimport {\n  tap,\n  takeUntil,\n  map,\n  switchMap,\n  repeat,\n  first,\n  filter,\n  share,\n} from 'rxjs/operators';\nimport { getAnimation, reverseAnimation } from '../util/animate';\nimport { AnimationOptions, AnimationUpdate } from '../util/types';\nimport { Motion } from './animate.directive';\nimport { Variants } from './variants.directive';\n\n@Directive({\n  selector: '[animate.tap]',\n  standalone: true,\n})\nexport class Tap {\n  @Input('animate.tap') options!: AnimationOptions | string;\n  private initial!: AnimationUpdate[];\n  constructor(\n    private el: ElementRef<HTMLElement>,\n    private animate: Motion,\n    @Optional() private variants: Variants,\n    private zone: NgZone\n  ) {}\n  ngOnInit(): void {\n    this.zone.runOutsideAngular(() => {\n      const animation = fromEvent(this.el.nativeElement, 'pointerdown').pipe(\n        tap(() => this.animate.animate(this.options)),\n        switchMap(() => this.animate.animation$),\n        tap((next) => (this.initial = this.initial || next)),\n        map((initial) =>\n          reverseAnimation(\n            getAnimation(this.options, this.variants?.variants),\n            initial\n          )\n        ),\n        share()\n      );\n\n      animation.pipe(takeUntil(this.animate.destroy$)).subscribe();\n\n      animation\n        .pipe(\n          switchMap((animation) =>\n            fromEvent(this.el.nativeElement, 'pointerup').pipe(\n              map(() => animation)\n            )\n          ),\n          first(),\n          repeat(),\n          tap((animation) => this.animate.animate(animation)),\n          switchMap((animation) => this.animate.animation$),\n          takeUntil(this.animate.destroy$)\n        )\n        .subscribe();\n    });\n  }\n}\n","import { Directive, Input, OnInit } from '@angular/core';\nimport { Motion } from './animate.directive';\nimport { AnimationOptions } from '../util/types';\nimport {\n  BehaviorSubject,\n  concat,\n  last,\n  map,\n  switchMap,\n  takeUntil,\n} from 'rxjs';\n\n@Directive({\n  selector: '[animate.sequence]',\n  standalone: true,\n})\nexport class Sequence implements OnInit {\n  private _sequence = new BehaviorSubject<AnimationOptions[]>([]);\n  public get sequence(): AnimationOptions[] {\n    return this._sequence.getValue();\n  }\n\n  @Input('animate.sequence')\n  public set sequence(value: AnimationOptions[]) {\n    this._sequence.next(value);\n  }\n\n  constructor(private animate: Motion) {}\n  ngOnInit(): void {\n    this._sequence\n      .pipe(\n        map((sequence) =>\n          sequence.map((animation) =>\n            this.animate._animate(animation).pipe(last())\n          )\n        ),\n        switchMap((sequence) => concat(...sequence)),\n        takeUntil(this.animate.destroy$)\n      )\n      .subscribe();\n  }\n}\n","import { Directive, Input, OnInit } from '@angular/core';\nimport { Motion } from './animate.directive';\nimport { AnimationOptions } from '../util/types';\nimport { BehaviorSubject, last, map, merge, switchMap, takeUntil } from 'rxjs';\n\n@Directive({\n  selector: '[animate.combine]',\n  standalone: true,\n})\nexport class Combine implements OnInit {\n  private _combine = new BehaviorSubject<AnimationOptions[]>([]);\n  public get combine(): AnimationOptions[] {\n    return this._combine.getValue();\n  }\n\n  @Input('animate.combine')\n  public set combine(value: AnimationOptions[]) {\n    this._combine.next(value);\n  }\n\n\n\n  constructor(private animate: Motion) {}\n  ngOnInit(): void {\n    this._combine\n      .pipe(\n        map((combine) =>\n          combine.map((animation) =>\n            this.animate._animate(animation).pipe(last())\n          )\n        ),\n        switchMap((combine) => merge(...combine)),\n        takeUntil(this.animate.destroy$)\n      )\n      .subscribe();\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["popmotionAnimate","map","share","i1.Variants","i1.Motion","i2.Variants","switchMap","takeUntil"],"mappings":"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"}