{"version":3,"file":"ngx-breakpoint-observer.mjs","sources":["../../../../libs/ngx-breakpoint-observer/src/lib/breakpoints.ts","../../../../libs/ngx-breakpoint-observer/src/lib/utils/increase-with-unit.ts","../../../../libs/ngx-breakpoint-observer/src/lib/utils/to-value.ts","../../../../libs/ngx-breakpoint-observer/src/lib/utils/utils.ts","../../../../libs/ngx-breakpoint-observer/src/lib/inject-media-query.ts","../../../../libs/ngx-breakpoint-observer/src/lib/inject-breakpoints.ts","../../../../libs/ngx-breakpoint-observer/src/lib/observe-media-query.ts","../../../../libs/ngx-breakpoint-observer/src/lib/observe-breakpoints.ts","../../../../libs/ngx-breakpoint-observer/src/index.ts","../../../../libs/ngx-breakpoint-observer/src/ngx-breakpoint-observer.ts"],"sourcesContent":["/**\r\n * Breakpoints from Tailwind V3\r\n *\r\n * @see https://tailwindcss.com/docs/breakpoints\r\n */\r\nexport const breakpointsTailwind = {\r\n  sm: 640,\r\n  md: 768,\r\n  lg: 1024,\r\n  xl: 1280,\r\n  '2xl': 1536,\r\n};\r\n\r\n/**\r\n * Breakpoints from Bootstrap V5\r\n *\r\n * @see https://getbootstrap.com/docs/5.3/layout/breakpoints\r\n */\r\nexport const breakpointsBootstrap = {\r\n  xs: 0,\r\n  sm: 576,\r\n  md: 768,\r\n  lg: 992,\r\n  xl: 1200,\r\n  xxl: 1400,\r\n};\r\n\r\n/**\r\n * Breakpoints from Angular Material\r\n *\r\n * @see https://material.angular.io/cdk/layout/overview\r\n */\r\nexport const breakpointsMaterial = {\r\n  xsmall: 0,\r\n  small: 600,\r\n  medium: 960,\r\n  large: 1280,\r\n  xlarge: 1920,\r\n};\r\n","/**\r\n * Increase string a value with unit\r\n *\r\n * @example '2px' + 1 = '3px'\r\n * @example '15em' + (-2) = '13em'\r\n */\r\nexport function increaseWithUnit(target: number, delta: number): number;\r\nexport function increaseWithUnit(target: string, delta: number): string;\r\nexport function increaseWithUnit(\r\n  target: string | number,\r\n  delta: number\r\n): string | number;\r\nexport function increaseWithUnit(\r\n  target: string | number,\r\n  delta: number\r\n): string | number {\r\n  if (typeof target === 'number') return target + delta;\r\n  const value = RegExp(/^-?\\d+\\.?\\d*/).exec(target)?.[0] ?? '';\r\n  const unit = target.slice(value.length);\r\n  const result = Number.parseFloat(value) + delta;\r\n  if (Number.isNaN(result)) return target;\r\n  return result + unit;\r\n}\r\n","import { MaybeSignalOrGetter } from '../types';\r\n\r\n/**\r\n * Get the value of value/signal/getter.\r\n */\r\nexport function toValue<T>(r: MaybeSignalOrGetter<T>): T {\r\n  return typeof r === 'function' ? (r as any)() : r;\r\n}\r\n","export const isClient =\r\n  typeof window !== 'undefined' && typeof document !== 'undefined';\r\nexport const defaultWindow = isClient ? window : undefined;\r\n","import { DestroyRef, inject, signal, Signal } from '@angular/core';\r\nimport { ConfigurableWindow, MaybeSignalOrGetter } from './types';\r\nimport { defaultWindow, toValue } from './utils';\r\n\r\n/**\r\n * Reactive Media Query.\r\n *\r\n * @param query Media query as a signal or getter or string.\r\n * @param options Configuration options for window.\r\n * @returns A read-only signal indicating whether the media query matches.\r\n */\r\nexport function injectMediaQuery(\r\n  query: MaybeSignalOrGetter<string>,\r\n  options: ConfigurableWindow = {}\r\n): Signal<boolean> {\r\n  const destroyRef = inject(DestroyRef);\r\n  const { window = defaultWindow } = options;\r\n  const isSupported =\r\n    window && 'matchMedia' in window && typeof window.matchMedia === 'function';\r\n\r\n  let mediaQuery: MediaQueryList | undefined;\r\n  const matches = signal(false);\r\n\r\n  const handler = (event: MediaQueryListEvent) => {\r\n    matches.set(event.matches);\r\n  };\r\n\r\n  if (isSupported) {\r\n    mediaQuery = window.matchMedia(toValue(query));\r\n    matches.set(mediaQuery.matches);\r\n    if ('addEventListener' in mediaQuery)\r\n      mediaQuery.addEventListener('change', handler);\r\n    // @ts-expect-error deprecated API\r\n    else mediaQuery.addListener(handler);\r\n  }\r\n\r\n  destroyRef.onDestroy(() => {\r\n    if (!mediaQuery) return;\r\n\r\n    if ('removeEventListener' in mediaQuery)\r\n      mediaQuery.removeEventListener('change', handler);\r\n    // @ts-expect-error deprecated API\r\n    else mediaQuery.removeListener(handler);\r\n  });\r\n\r\n  return matches.asReadonly();\r\n}\r\n","import { computed, Signal } from '@angular/core';\r\nimport { injectMediaQuery } from './inject-media-query';\r\nimport {\r\n  Breakpoints,\r\n  MaybeSignalOrGetter,\r\n  ObserveBreakpointsOptions,\r\n} from './types';\r\nimport { defaultWindow, increaseWithUnit, toValue } from './utils';\r\n\r\n/**\r\n * Reactive viewport breakpoints.\r\n *\r\n * This function provides a set of reactive utilities to handle viewport breakpoints.\r\n * It includes shortcut methods like `greaterOrEqual`, `smallerOrEqual`, `between`, etc.\r\n *\r\n * @param breakpoints A map of breakpoint names and their corresponding values.\r\n * @param options Configuration options such as window and strategy.\r\n * @returns An object with breakpoint utilities and shortcut methods.\r\n */\r\nexport function injectBreakpoints<K extends string>(\r\n  breakpoints: Breakpoints<K>,\r\n  options: ObserveBreakpointsOptions = {}\r\n) {\r\n  const { window = defaultWindow, strategy = 'min-width' } = options;\r\n\r\n  function getValue(k: MaybeSignalOrGetter<K>, delta?: number): string {\r\n    let v = breakpoints[toValue(k)];\r\n\r\n    if (delta !== null && delta !== undefined) {\r\n      v = increaseWithUnit(v, delta);\r\n    }\r\n\r\n    if (typeof v === 'number') {\r\n      v = `${v}px`;\r\n    }\r\n\r\n    return v;\r\n  }\r\n\r\n  function match(query: string): boolean {\r\n    if (!window) return false;\r\n\r\n    return window.matchMedia(query).matches;\r\n  }\r\n\r\n  const greaterOrEqual = (k: MaybeSignalOrGetter<K>): Signal<boolean> => {\r\n    return injectMediaQuery(() => `(min-width: ${getValue(k)})`, options);\r\n  };\r\n\r\n  const smallerOrEqual = (k: MaybeSignalOrGetter<K>): Signal<boolean> => {\r\n    return injectMediaQuery(() => `(max-width: ${getValue(k)})`, options);\r\n  };\r\n\r\n  function current() {\r\n    const points = Object.keys(breakpoints).map(\r\n      i => [i, greaterOrEqual(i as K)] as const\r\n    );\r\n    return computed(() => points.filter(([, v]) => v()).map(([k]) => k));\r\n  }\r\n\r\n  const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\r\n    Object.defineProperty(shortcuts, k, {\r\n      get: () =>\r\n        strategy === 'min-width'\r\n          ? greaterOrEqual(k as K)\r\n          : smallerOrEqual(k as K),\r\n      enumerable: true,\r\n      configurable: true,\r\n    });\r\n    return shortcuts;\r\n  }, {} as Record<K, Signal<boolean>>);\r\n\r\n  return Object.assign(shortcutMethods, {\r\n    greaterOrEqual,\r\n    smallerOrEqual,\r\n    greater(k: MaybeSignalOrGetter<K>) {\r\n      return injectMediaQuery(\r\n        () => `(min-width: ${getValue(k, 0.1)})`,\r\n        options\r\n      );\r\n    },\r\n    smaller(k: MaybeSignalOrGetter<K>) {\r\n      return injectMediaQuery(\r\n        () => `(max-width: ${getValue(k, -0.1)})`,\r\n        options\r\n      );\r\n    },\r\n    between(a: MaybeSignalOrGetter<K>, b: MaybeSignalOrGetter<K>) {\r\n      return injectMediaQuery(\r\n        () =>\r\n          `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`,\r\n        options\r\n      );\r\n    },\r\n    isGreater(k: MaybeSignalOrGetter<K>) {\r\n      return match(`(min-width: ${getValue(k, 0.1)})`);\r\n    },\r\n    isGreaterOrEqual(k: MaybeSignalOrGetter<K>) {\r\n      return match(`(min-width: ${getValue(k)})`);\r\n    },\r\n    isSmaller(k: MaybeSignalOrGetter<K>) {\r\n      return match(`(max-width: ${getValue(k, -0.1)})`);\r\n    },\r\n    isSmallerOrEqual(k: MaybeSignalOrGetter<K>) {\r\n      return match(`(max-width: ${getValue(k)})`);\r\n    },\r\n    isInBetween(a: MaybeSignalOrGetter<K>, b: MaybeSignalOrGetter<K>) {\r\n      return match(\r\n        `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`\r\n      );\r\n    },\r\n    current,\r\n    active() {\r\n      const breakpoints = current();\r\n      return computed(() =>\r\n        breakpoints().length === 0\r\n          ? ''\r\n          : breakpoints()[breakpoints().length - 1]\r\n      );\r\n    },\r\n  });\r\n}\r\n","import { effect, type Signal, signal, untracked } from '@angular/core';\r\nimport { ConfigurableWindow, MaybeSignalOrGetter } from './types';\r\nimport { defaultWindow, toValue } from './utils';\r\n\r\n/**\r\n * **@deprecated** Use `injectMediaQuery` instead.\r\n *\r\n * This function will be removed in version `4.0.0`.\r\n *\r\n * Reactive Media Query.\r\n *\r\n * @param query\r\n * @param options\r\n */\r\nexport function observeMediaQuery(\r\n  query: MaybeSignalOrGetter<string>,\r\n  options: ConfigurableWindow = {}\r\n): Signal<boolean> {\r\n  const { window = defaultWindow } = options;\r\n  const isSupported =\r\n    window && 'matchMedia' in window && typeof window.matchMedia === 'function';\r\n\r\n  let mediaQuery: MediaQueryList | undefined;\r\n  const matches = signal(false);\r\n\r\n  const handler = (event: MediaQueryListEvent) => {\r\n    matches.set(event.matches);\r\n  };\r\n\r\n  const cleanup = () => {\r\n    if (!mediaQuery) return;\r\n\r\n    if ('removeEventListener' in mediaQuery)\r\n      mediaQuery.removeEventListener('change', handler);\r\n    // @ts-expect-error deprecated API\r\n    else mediaQuery.removeListener(handler);\r\n  };\r\n\r\n  effect(onCleanup => {\r\n    if (!isSupported) return;\r\n\r\n    mediaQuery = window.matchMedia(toValue(query));\r\n\r\n    if ('addEventListener' in mediaQuery)\r\n      mediaQuery.addEventListener('change', handler);\r\n    // @ts-expect-error deprecated API\r\n    else mediaQuery.addListener(handler);\r\n\r\n    untracked(() => matches.set(!!mediaQuery?.matches));\r\n\r\n    onCleanup(cleanup);\r\n  });\r\n\r\n  return matches.asReadonly();\r\n}\r\n","import { computed, type Signal } from '@angular/core';\r\nimport { observeMediaQuery } from './observe-media-query';\r\nimport {\r\n  Breakpoints,\r\n  MaybeSignalOrGetter,\r\n  ObserveBreakpointsOptions,\r\n} from './types';\r\nimport { defaultWindow, increaseWithUnit, toValue } from './utils';\r\n\r\n/**\r\n * **@deprecated** Use `injectBreakpoints` instead.\r\n *\r\n * This function will be removed in version `4.0.0`.\r\n *\r\n * Reactive viewport breakpoints.\r\n *\r\n * @param breakpoints\r\n * @param options\r\n */\r\nexport function observeBreakpoints<K extends string>(\r\n  breakpoints: Breakpoints<K>,\r\n  options: ObserveBreakpointsOptions = {}\r\n) {\r\n  const { window = defaultWindow, strategy = 'min-width' } = options;\r\n\r\n  function getValue(k: MaybeSignalOrGetter<K>, delta?: number): string {\r\n    let v = breakpoints[toValue(k)];\r\n\r\n    if (delta !== null && delta !== undefined) {\r\n      v = increaseWithUnit(v, delta);\r\n    }\r\n\r\n    if (typeof v === 'number') {\r\n      v = `${v}px`;\r\n    }\r\n\r\n    return v;\r\n  }\r\n\r\n  function match(query: string): boolean {\r\n    if (!window) return false;\r\n\r\n    return window.matchMedia(query).matches;\r\n  }\r\n\r\n  const greaterOrEqual = (k: MaybeSignalOrGetter<K>): Signal<boolean> => {\r\n    return observeMediaQuery(() => `(min-width: ${getValue(k)})`, options);\r\n  };\r\n\r\n  const smallerOrEqual = (k: MaybeSignalOrGetter<K>): Signal<boolean> => {\r\n    return observeMediaQuery(() => `(max-width: ${getValue(k)})`, options);\r\n  };\r\n\r\n  function current() {\r\n    const points = Object.keys(breakpoints).map(\r\n      i => [i, greaterOrEqual(i as K)] as const\r\n    );\r\n    return computed(() => points.filter(([, v]) => v()).map(([k]) => k));\r\n  }\r\n\r\n  const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\r\n    Object.defineProperty(shortcuts, k, {\r\n      get: () =>\r\n        strategy === 'min-width'\r\n          ? greaterOrEqual(k as K)\r\n          : smallerOrEqual(k as K),\r\n      enumerable: true,\r\n      configurable: true,\r\n    });\r\n    return shortcuts;\r\n  }, {} as Record<K, Signal<boolean>>);\r\n\r\n  return Object.assign(shortcutMethods, {\r\n    greaterOrEqual,\r\n    smallerOrEqual,\r\n    greater(k: MaybeSignalOrGetter<K>) {\r\n      return observeMediaQuery(\r\n        () => `(min-width: ${getValue(k, 0.1)})`,\r\n        options\r\n      );\r\n    },\r\n    smaller(k: MaybeSignalOrGetter<K>) {\r\n      return observeMediaQuery(\r\n        () => `(max-width: ${getValue(k, -0.1)})`,\r\n        options\r\n      );\r\n    },\r\n    between(a: MaybeSignalOrGetter<K>, b: MaybeSignalOrGetter<K>) {\r\n      return observeMediaQuery(\r\n        () =>\r\n          `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`,\r\n        options\r\n      );\r\n    },\r\n    isGreater(k: MaybeSignalOrGetter<K>) {\r\n      return match(`(min-width: ${getValue(k, 0.1)})`);\r\n    },\r\n    isGreaterOrEqual(k: MaybeSignalOrGetter<K>) {\r\n      return match(`(min-width: ${getValue(k)})`);\r\n    },\r\n    isSmaller(k: MaybeSignalOrGetter<K>) {\r\n      return match(`(max-width: ${getValue(k, -0.1)})`);\r\n    },\r\n    isSmallerOrEqual(k: MaybeSignalOrGetter<K>) {\r\n      return match(`(max-width: ${getValue(k)})`);\r\n    },\r\n    isInBetween(a: MaybeSignalOrGetter<K>, b: MaybeSignalOrGetter<K>) {\r\n      return match(\r\n        `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`\r\n      );\r\n    },\r\n    current,\r\n    active() {\r\n      const breakpoints = current();\r\n      return computed(() =>\r\n        breakpoints().length === 0\r\n          ? ''\r\n          : breakpoints()[breakpoints().length - 1]\r\n      );\r\n    },\r\n  });\r\n}\r\n","/*\r\n * Public API Surface of ngx-breakpoint-observer\r\n */\r\n\r\nexport * from './lib/breakpoints';\r\nexport * from './lib/inject-breakpoints';\r\nexport * from './lib/inject-media-query';\r\nexport * from './lib/observe-breakpoints';\r\nexport * from './lib/observe-media-query';\r\nexport * from './lib/types';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}