UNPKG

@alyle/ui

Version:

Minimal Design, a set of components for Angular

1 lines • 343 kB
{"version":3,"file":"alyle-ui.mjs","sources":["../../../lib/src/palette.ts","../../../lib/src/shadow.ts","../../../lib/src/alyle-config-service.ts","../../../lib/src/platform/platform.ts","../../../lib/src/platform/passive-listeners.ts","../../../lib/src/minimal/common.ts","../../../lib/src/common/build-common-behaviors.ts","../../../lib/src/ripple/ripple.ts","../../../lib/src/theme/theme-config.ts","../../../lib/src/minimal/memoize.ts","../../../lib/src/theme/style.ts","../../../lib/src/parse.ts","../../../lib/src/style-utils.ts","../../../lib/src/theme/core-theme.service.ts","../../../lib/src/position/position.ts","../../../lib/src/theme/theme2.service.ts","../../../lib/src/styles/core-styles.ts","../../../lib/src/ripple/ripple.service.ts","../../../lib/src/common/disable-ripple.ts","../../../lib/src/common/disabled.ts","../../../lib/src/common/color.ts","../../../lib/src/common/bg.ts","../../../lib/src/common/raised.ts","../../../lib/src/common/outlined.ts","../../../lib/src/common/elevation.ts","../../../lib/src/common/shadow-color.ts","../../../lib/src/common/tabindex.ts","../../../lib/src/theme/paper.ts","../../../lib/src/theme/with-class.directive.ts","../../../lib/src/minimal/renderer-style.ts","../../../lib/src/theme/style.directive.ts","../../../lib/src/theme/common.module.ts","../../../lib/src/minimal/is-boolean.ts","../../../lib/src/minimal/default-entry.ts","../../../lib/src/minimal/scroll-to.ts","../../../lib/src/minimal/to-number.ts","../../../lib/src/minimal/component-destroyed.ts","../../../lib/src/minimal/host-class.ts","../../../lib/src/focus-state/focus-state.ts","../../../lib/src/version.ts","../../../lib/src/gesture/gesture-config.ts","../../../lib/src/theme.module.ts","../../../lib/src/undefined.ts","../../../lib/src/dom/overlay-ref.ts","../../../lib/src/dom/overlay-container.ts","../../../lib/src/dom/overlay-config.ts","../../../lib/src/dom/overlay-backdrop.ts","../../../lib/src/dom/overlay-injector.ts","../../../lib/src/dom/overlay-factory.ts","../../../lib/src/dom/overlay.ts","../../../lib/src/dom/overlay.module.ts","../../../lib/src/dom/overlay-styles.ts","../../../lib/src/dom/mutation-observer-factory.ts","../../../lib/src/dom/resize.ts","../../../lib/src/dom/scroll.ts","../../../lib/src/position/overlay-position.ts","../../../lib/src/position/align.ts","../../../lib/src/selection/selection.ts","../../../lib/src/error/theme-variable-undefined.ts","../../../lib/src/expansion-icon/expansion-icon.ts","../../../lib/src/expansion-icon/expansion-icon.html","../../../lib/src/expansion-icon/expansion-icon.module.ts","../../../lib/alyle-ui.ts"],"sourcesContent":["export function getContrastYIQ(hexcolor) {\n  const r = parseInt(hexcolor.substr(0, 2), 16);\n  const g = parseInt(hexcolor.substr(2, 2), 16);\n  const b = parseInt(hexcolor.substr(4, 2), 16);\n  const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n  return (yiq >= 128) ? 'black' : 'white';\n}\n","import { Color } from '@alyle/ui/color';\n\nconst shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nexport const Shadows = [\n  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n  [0, 1, 3, 0, 0, 1, 1, 0, 0, 2, 1, -1],\n  [0, 1, 5, 0, 0, 2, 2, 0, 0, 3, 1, -2],\n  [0, 1, 8, 0, 0, 3, 4, 0, 0, 3, 3, -2],\n  [0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0],\n  [0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0],\n  [0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0],\n  [0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1],\n  [0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2],\n  [0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2],\n  [0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3],\n  [0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3],\n  [0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4],\n  [0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4],\n  [0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4],\n  [0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5],\n  [0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5],\n  [0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5],\n  [0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6],\n  [0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6],\n  [0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7],\n  [0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7],\n  [0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7],\n  [0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8],\n  [0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8]\n];\n\nexport function shadowBuilder(elevation: number | string, color?: Color) {\n  let _color = color || new Color(0, 0, 0);\n  const rgb = _color.rgba();\n\n  if (!(rgb[0] === rgb[1] && rgb[0] === rgb[2])) {\n    // Darken and saturate if the color is not in the grayscale\n    _color = _color.darken().saturate(2);\n  }\n\n  const colors = [\n    _color.alpha(shadowKeyUmbraOpacity).css(),\n    _color.alpha(shadowKeyPenumbraOpacity).css(),\n    _color.alpha(shadowAmbientShadowOpacity).css()\n  ];\n\n  const e = Shadows[elevation];\n  // tslint:disable-next-line:max-line-length\n  return `${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px ${colors[0]},${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px ${colors[1]},${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px ${colors[2]}`;\n\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const THEME_VARIABLES = new InjectionToken<PaletteVariables>('ly.theme.variables');\nexport const IS_CORE_THEME = new InjectionToken<true>('ly.is.root');\n\nexport interface Default {\n  [key: string]: any;\n}\n\nexport interface PaletteVariables {\n  default?: string;\n  contrast?: string;\n  [key: string]: string | undefined;\n}\n\nexport interface ColorScheme {\n  background?: {\n    default?: string,\n    paper?: string,\n    [key: string]: any;\n  };\n  text?: {\n    default: string,\n    primary?: string,\n    secondary?: string,\n    disabled?: string,\n    hint?: string,\n    [key: string]: any;\n  };\n  divider?: string;\n  /** Components variables */\n  colorShadow?: string;\n  bar?: string;\n  input?: {\n    label?: string,\n    underline?: string\n  };\n  [key: string]: any;\n}\n","\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nconst hasV8BreakIterator = (typeof(Intl) !== 'undefined' && (Intl as any).v8BreakIterator);\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n * @deprecated Use Angular CDK instead\n * `import { Platform } from '@angular/cdk/platform'`\n */\nexport class Platform {\n  static readonly isBrowser: boolean = typeof document === 'object' && !!document;\n  /** Layout Engines */\n  static readonly EDGE = Platform.isBrowser && /(edge)/i.test(navigator.userAgent);\n  static readonly TRIDENT = Platform.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n\n  // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n  static readonly BLINK = Platform.isBrowser &&\n      (!!((window as any).chrome || hasV8BreakIterator) && !!CSS && !Platform.EDGE && !Platform.TRIDENT);\n\n  // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n  // ensure that Webkit runs standalone and is not used as another engine's base.\n  static readonly WEBKIT = Platform.isBrowser &&\n      /AppleWebKit/i.test(navigator.userAgent) && !Platform.BLINK && !Platform.EDGE && !Platform.TRIDENT;\n\n  /** Browsers and Platform Types */\n  static readonly IOS = Platform.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !(window as any).MSStream;\n\n  // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n  // them self as Gecko-like browsers and modify the userAgent's according to that.\n  // Since we only cover one explicit Firefox case, we can simply check for Firefox\n  // instead of having an unstable check for Gecko.\n  static readonly FIREFOX = Platform.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n\n  // Trident on mobile adds the android platform to the userAgent to trick detections.\n  static readonly ANDROID = Platform.isBrowser && /android/i.test(navigator.userAgent) && !Platform.TRIDENT;\n\n  // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n  // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n  // Safari browser should also use Webkit as its layout engine.\n  static readonly SAFARI = Platform.isBrowser && /safari/i.test(navigator.userAgent) && Platform.WEBKIT;\n}\n","let supportsPassive;\nexport function supportsPassiveEventListeners(): boolean {\n  if (supportsPassive === void 0) {\n    try {\n      const opts = Object.defineProperty({}, 'passive', {\n        get: () => {\n          supportsPassive = true;\n        }\n      });\n      window.addEventListener('testPassive', null as any, opts);\n      window.removeEventListener('testPassive', null as any, opts);\n    } catch (e) { }\n  }\n  return supportsPassive;\n}\n","import {\n  Directive, Input, TemplateRef, ViewContainerRef, OnDestroy, NgModule, ElementRef\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\n\nexport interface KeyAttribute {\n  [key: string]: any;\n}\n\n@Directive({\n  selector: '[ngTransclude]',\n  exportAs: 'ngTransclude',\n  standalone: false\n})\nexport class NgTranscludeDirective implements OnDestroy {\n\n  private _ngTransclude: TemplateRef<any> | null;\n\n  /**\n   * Time in ms it takes before it is destroyed\n   */\n  @Input() timeout: number;\n\n  _timeoutId: number;\n\n  @Input()\n  set ngTransclude(templateRef: TemplateRef<any>) {\n    if (templateRef && !this._ngTransclude) {\n      if (this._platform.isBrowser && this._timeoutId != null) {\n        window.clearTimeout(this._timeoutId);\n        this._timeoutId = null!;\n        this.vcr.clear();\n      }\n      this._ngTransclude = templateRef;\n      this.vcr.createEmbeddedView(templateRef);\n    } else if (this._ngTransclude && !templateRef) {\n      this._ngTransclude = null;\n      this.clear();\n    }\n  }\n\n  get getNgTransclude() {\n    return this._ngTransclude;\n  }\n\n  constructor(\n    readonly vcr: ViewContainerRef,\n    private _platform: Platform\n  ) { }\n\n  clear() {\n    if (this._platform.isBrowser && this.timeout) {\n      this._timeoutId = window.setTimeout(() => {\n        this.vcr.clear();\n        this._timeoutId = null!;\n      }, this.timeout);\n    } else {\n      this.vcr.clear();\n    }\n  }\n\n  ngOnDestroy() {\n    if (this._platform.isBrowser) {\n      window.clearTimeout(this._timeoutId);\n    }\n    this.vcr.clear();\n  }\n}\n@NgModule({\n  exports: [NgTranscludeDirective],\n  declarations: [NgTranscludeDirective]\n})\nexport class NgTranscludeModule {\n\n}\n\n/**\n * @ignore\n */\nexport function getNativeElement(element: HTMLElement | ElementRef<HTMLElement>): HTMLElement {\n  return element instanceof ElementRef ? element.nativeElement : element;\n}\n","import { Color } from '@alyle/ui/color';\nimport { Constructor } from './constructor';\nimport { shadowBuilder } from '../shadow';\nimport { CanColor } from './color';\nimport { CanBg } from './bg';\nimport { CanDisable } from './disabled';\nimport { CanRaised } from './raised';\nimport { CanElevation } from './elevation';\nimport { CanOutlined } from './outlined';\nimport { CanShadowColor } from './shadow-color';\nimport { LyTheme2 } from '../theme/theme2.service';\nimport { ElementRef } from '@angular/core';\nimport { getNativeElement } from '../minimal/common';\nimport { ThemeVariables } from '../theme/theme-config';\n\n\nconst DEFAULT_VALUE = '';\nconst STYLE_PRIORITY = -1;\n\nexport interface RequireParamsStyleUpdater {\n  _theme: LyTheme2;\n}\n\nexport interface CanStyleUpdater {\n  _theme: LyTheme2;\n  updateStyle: (element: ElementRef | Element) => void;\n  setAutoContrast: () => void;\n}\nexport type CanStyleUpdaterCtor = Constructor<RequireParamsStyleUpdater & Partial<CanColor & CanBg & CanDisable & CanRaised & CanElevation & CanOutlined & CanShadowColor>>;\n\nexport function mixinStyleUpdater<T extends CanStyleUpdaterCtor>(base: T): Constructor<CanStyleUpdater> & T {\n  return class extends base {\n    _classNameAnonymous: string;\n    _autoContrast: boolean;\n    setAutoContrast() {\n      this._autoContrast = true;\n    }\n    updateStyle(element: ElementRef<any> | HTMLElement) {\n      const __bg = this._superHyperInternalPropertyBg;\n      const __color = this._superHyperInternalPropertyColor === 'auto'\n        ? ''\n        : this._superHyperInternalPropertyColor;\n      const __raised = this._superHyperInternalPropertyRaised;\n      const __elevation = this._superHyperInternalPropertyElevation;\n      const __disabled = this._superHyperInternalPropertyDisabled;\n      const __outlined = this._superHyperInternalPropertyOutlined;\n      const __shadowColor = this._superHyperInternalPropertyShadowColor;\n      const __isContrast = this._autoContrast || this._superHyperInternalPropertyColor === 'auto';\n      const el = getNativeElement(element);\n\n      const newKey = `c--${\n        __bg || DEFAULT_VALUE}_${\n          __color || DEFAULT_VALUE}_${\n            __raised || DEFAULT_VALUE}_${\n              __elevation || DEFAULT_VALUE}_${\n                __disabled || DEFAULT_VALUE}_${\n                  __outlined || DEFAULT_VALUE}_${\n                    __shadowColor || DEFAULT_VALUE}_${\n                      __isContrast || DEFAULT_VALUE}`;\n      const newClass = this._theme.renderStyle(newKey, (theme: ThemeVariables) => {\n        let sColor: Color | undefined;\n        let sBackground: Color | undefined;\n        let sBorder: string | undefined;\n        let sPointerEvents: string | undefined;\n        let sBoxShadow: string | undefined;\n        let sBoxShadowActive: string | undefined;\n\n        if (__outlined) {\n          sBorder = '1px solid currentColor';\n        }\n        if (__disabled) {\n          sColor = theme.disabled.contrast;\n          sPointerEvents = 'none';\n          if (__bg || __raised) {\n            sBackground = theme.disabled.default;\n          }\n        } else {\n          if (__bg) {\n            sBackground = colorOf(theme, __bg);\n            if (__isContrast && !__color) {\n              sColor = theme.colorOf(`${__bg}:contrast`);\n\n              // Generate auto contrast if is necessary\n              if (sColor.css().includes('invalid')) {\n                const lum = (__bg instanceof Color ? __bg : theme.colorOf(__bg)).luminance();\n                sColor = lum < 0.5 ? theme.text.light : theme.text.dark;\n              }\n            }\n          }\n          if (!sColor && __color) {\n            sColor = colorOf(theme, __color);\n          }\n          if (__raised || (__elevation != null)) {\n            if (!__bg) {\n              sBackground = theme.background.primary.default;\n            }\n            const backgroundColorCss = sBackground !== __bg && colorOf(theme, __bg || 'background:primary', 'shadow');\n            const shadowColor = (__shadowColor && colorOf(theme, __shadowColor)) || backgroundColorCss || sBackground || sColor || theme.shadow;\n            if (__elevation != null) {\n              sBoxShadow = shadowBuilder(__elevation, shadowColor);\n            } else {\n              sBoxShadow = shadowBuilder(3, shadowColor);\n              sBoxShadowActive = shadowBuilder(8, shadowColor);\n            }\n          }\n        }\n        return (_className: string) => `${_className}{${sColor ? 'color:' + sColor : ''};${sBackground ? 'background:' + sBackground : ''};${sBorder ? 'border:' + sBorder : ''};${sPointerEvents ? 'pointer-events:' + sPointerEvents : ''};${sBoxShadow ? 'box-shadow:' + sBoxShadow : ''};}${_className}:active{${sBoxShadowActive ? 'box-shadow:' + sBoxShadowActive : ''};}`;\n      }, STYLE_PRIORITY);\n\n      el.classList.remove(this._classNameAnonymous);\n      el.classList.add(newClass);\n      this._classNameAnonymous = newClass;\n    }\n\n    constructor(...args: any[]) { super(...args); }\n  };\n}\n\nfunction colorOf(theme: ThemeVariables, color: string | number | Color, optional?: string) {\n  return color instanceof Color ? color : theme.colorOf(color, optional);\n}\n","import { NgZone } from '@angular/core';\nimport { ThemeVariables } from '../theme/theme-config';\nimport { Platform } from '@angular/cdk/platform';\n\nexport interface RippleConfig {\n  centered?: boolean;\n  disabled?: boolean;\n  sensitive?: boolean;\n  radius?: 'containerSize' | number;\n  percentageToIncrease?: number;\n}\n\nexport class RippleRef {\n  state = true;\n  timestamp = -Date.now();\n  readonly container: HTMLElement = document.createElement('span');\n  end() {\n    this.state = false;\n    this.timestamp += Date.now();\n  }\n}\n\nexport class Ripple {\n  private _rippleRef?: RippleRef;\n  private _eventHandlers: Map<string, (e: Event) => void> = new Map<string, (e: Event) => void>();\n  config: RippleConfig = {};\n  private _transitionDuration = this._themeVariables.ripple.duration;\n  private _eventOptions = {passive: true} as any;\n  constructor(\n    private _themeVariables: ThemeVariables,\n    private _ngZone: NgZone,\n    private classes: any,\n    private _containerElement: HTMLElement,\n    platform: Platform,\n    private _triggerElement?: HTMLElement,\n  ) {\n    if (platform.isBrowser) {\n      if (typeof PointerEvent === 'function' && typeof TouchEvent  === 'function') {\n        this._eventHandlers.set('pointerdown', this.onPointerDown.bind(this));\n      } else {\n        this._eventHandlers.set('mousedown', this.onPointerDown.bind(this));\n      }\n      this._eventHandlers.set('touchend', this.onPointerLeave.bind(this));\n      this._eventHandlers.set('touchcancel', this.onPointerLeave.bind(this));\n      this._eventHandlers.set('mouseup', this.onPointerLeave.bind(this));\n      this._eventHandlers.set('mouseleave', this.onPointerLeave.bind(this));\n      if (!_triggerElement) {\n        _triggerElement = _containerElement;\n      }\n      this.setTriggerElement(_triggerElement);\n    }\n  }\n\n  setConfig(config: RippleConfig) {\n    this.config = config;\n  }\n\n  private get _rectContainer(): ClientRect {\n    return this._containerElement.getBoundingClientRect();\n  }\n\n  private setTriggerElement(element: HTMLElement) {\n    if (element) {\n      this._ngZone.runOutsideAngular(() => {\n        this._eventHandlers.forEach((fn, type) => element.addEventListener(type, fn, this._eventOptions));\n      });\n    }\n\n    this._triggerElement = element;\n  }\n\n  private createRipple(styles: {[key: string]: number | string}) {\n    this._rippleRef = new RippleRef();\n    const container = this._rippleRef.container;\n    container.className = this.classes.rippleContainer;\n    for (const key in styles) {\n      if (styles.hasOwnProperty(key)) {\n        const element = styles[key];\n        if (typeof element === 'number') {\n          container.style[key] = `${element}px`;\n        } else {\n          container.style[key] = element;\n        }\n      }\n    }\n    this._containerElement.appendChild(container);\n    window.getComputedStyle(container).getPropertyValue('opacity');\n    container.style.transform = `scale(1)`;\n  }\n\n  private onPointerDown(event: MouseEvent) {\n    if (!this.config.disabled) {\n      /**Destroy previous ripple if exist */\n      this.endRipple();\n      this.startRipple(event, this.config);\n    }\n  }\n  private onPointerLeave(_event: MouseEvent) {\n    if (!this.config.disabled) {\n      this.endRipple();\n    }\n  }\n\n  startRipple(event: MouseEvent | PointerEvent, rippleConfig: RippleConfig) {\n    const containerRect = this._rectContainer;\n    let x = event.clientX,\n    y = event.clientY;\n    if (rippleConfig.centered) {\n      x = containerRect.left + containerRect.width / 2;\n      y = containerRect.top + containerRect.height / 2;\n    }\n    const left = x - containerRect.left;\n    const top = y - containerRect.top;\n    let radius = rippleConfig.radius === 'containerSize' ? maxSize(containerRect) / 2 : rippleConfig.radius || rippleRadius(x, y, containerRect);\n    if (rippleConfig.percentageToIncrease) {\n      radius += radius * rippleConfig.percentageToIncrease / 100;\n    }\n    this.createRipple({\n      left: left - radius,\n      top: top - radius,\n      width: radius * 2,\n      height: radius * 2,\n      transitionDuration: `${this._transitionDuration}ms`\n    });\n  }\n\n  private runTimeoutOutsideZone(fn: Function, delay = 0) {\n    this._ngZone.runOutsideAngular(() => setTimeout(fn, delay));\n  }\n\n  endRipple() {\n    const rippleRef: RippleRef | undefined = this._rippleRef;\n    const duration = this._transitionDuration;\n    if (rippleRef && rippleRef.state) {\n      rippleRef.end();\n      this.runTimeoutOutsideZone(() => {\n        rippleRef.container.style.opacity = '0';\n        rippleRef.container.style.transitionDuration = `${this._transitionDuration / 5}ms`;\n      // }, rippleRef.timestamp < duration ? duration : 0);\n      // }, rippleRef.timestamp < duration ? duration / (duration * .001 + 1) : 0);\n      }, rippleRef.timestamp < duration ? duration * .15 : 0);\n      this.runTimeoutOutsideZone(() => {\n        rippleRef.container.parentNode!.removeChild(rippleRef.container);\n      // }, rippleRef.timestamp < duration ? duration * 2 : duration);\n      // }, rippleRef.timestamp < duration ? duration / (duration * .001 + 1) * 2 : duration);\n      }, rippleRef.timestamp < duration ? duration * 2 : duration);\n      this._rippleRef = undefined;\n    }\n  }\n  removeEvents() {\n    if (this._triggerElement) {\n      this._eventHandlers.forEach((fn, type) => {\n        this._triggerElement!.removeEventListener(type, fn, this._eventOptions);\n      });\n    }\n  }\n\n}\n\nfunction rippleRadius(x: number, y: number, rect: ClientRect) {\n  const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\n  const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\n  return Math.sqrt(distX * distX + distY * distY);\n}\n\nfunction maxSize(rect: ClientRect) {\n  return Math.max(rect.width, rect.height);\n}\n","import { InjectionToken } from '@angular/core';\nimport { LyStyleUtils, Dir } from '../style-utils';\nimport { RippleVariables } from './variables/ripple';\nimport { Color } from '@alyle/ui/color';\n\nexport const LY_THEME_GLOBAL_VARIABLES = new InjectionToken<PartialThemeVariables>('ly.theme.global.variables');\nexport const LY_THEME = new InjectionToken<ThemeConfig | ThemeConfig[]>('ly_theme_config');\nexport const LY_THEME_NAME = new InjectionToken<string>('ly.theme.name');\nexport const LY_ENABLE_SELECTORS_FN = new InjectionToken<boolean>('LY_ENABLE_SELECTORS_FN');\n\n/**\n * Add a prefix to the class name that will be generated for styles.\n * Only works in production mode.\n */\nexport const LY_CLASS_NAME_PREFIX = new InjectionToken<string>('LY_CLASS_NAME_PREFIX');\n\nexport interface ThemeConfig {\n  name: string;\n  primary: DefaultVal & PaletteColor;\n  accent: DefaultVal & PaletteColor;\n  warn: DefaultVal & PaletteColor;\n  disabled: {\n    default: Color\n    contrast: Color\n  };\n  paper: DefaultVal & PaletteColor;\n  background: {\n    /** Secondary */\n    default: Color\n    /** @deprecated use paper.default instead */\n    primary: DefaultVal & PaletteColor\n    /** @deprecated use background.default instead */\n    secondary: Color\n    /** @deprecated */\n    tertiary: Color\n  };\n  hover: Color;\n  text: {\n    default: Color\n    primary: Color\n    secondary: Color\n    disabled: Color\n    hint: Color\n    /** When a contrast is needed for a dark background */\n    light: Color\n    /** When a contrast is needed for a light background */\n    dark: Color\n  };\n  /** color for divider */\n  divider: Color;\n  shadow: Color;\n  drawer: {\n    /** color for drawer:backdrop */\n    backdrop: Color\n  };\n  iconButton: {\n    size: string\n  };\n  icon: {\n    fontSize: string\n  };\n  zIndex: {\n    toolbar: number\n    drawer: number\n    overlay: number\n    [key: string]: number\n  };\n  direction?: Dir | `${Dir}`;\n  animations: {\n    curves: {\n      standard: string\n      deceleration: string\n      acceleration: string\n      sharp: string\n    },\n    durations: {\n      complex: number\n      entering: number\n      exiting: number\n    }\n  };\n  ripple: RippleVariables;\n}\n\nexport type ThemeVariables = LyStyleUtils & ThemeConfig;\nexport type PartialThemeVariables = RecursivePartial<ThemeVariables>;\n\nexport interface DefaultVal {\n  default: Color;\n}\nexport interface PaletteColor {\n  contrast?: Color;\n  /** shadow color */\n  shadow?: Color;\n}\n\ntype primitive = string | number | boolean | undefined | null;\ntype RecursivePartialObject<T> = {\n  [P in keyof T]?: RecursivePartial<T[P]>;\n};\nexport type RecursivePartial<T> = T extends primitive ? T : RecursivePartialObject<T>;\n\n","\nexport function memoize<T extends (key: number) => unknown>(fn: T): T;\nexport function memoize<T extends (key: string) => unknown>(fn: T): T;\nexport function memoize<T extends (key: string | number) => unknown>(fn: T): T {\n  const cache: {\n    [key: string]: unknown\n  } = {};\n\n  return ((key: string | number) => {\n    if (cache[key] === undefined) {\n      cache[key] = fn(key);\n    }\n    return cache[key] as unknown;\n  }) as T;\n}\n","import { ThemeVariables } from './theme-config';\nimport { StyleTemplate } from '../parse';\nimport { Color } from '@alyle/ui/color';\nimport { memoize } from '../minimal/memoize';\n\n/**\n * For internal use only\n * @docsPrivate\n */\nexport const _STYLE_MAP: Map<any, StyleMap5> = new Map();\n\n/**\n * For internal use only\n * @docs-private\n */\nexport interface StyleMap5 {\n  styles: Styles;\n  type: TypeStyle;\n  priority?: number | null;\n  css: {\n    [themeName: string]: string\n  } | string;\n  /** global theme */\n  classes?: {\n    [key: string]: string\n  } | string;\n  /** requireUpdate */\n  classesWithTheme?: {\n    [themeName: string]: {\n      [key: string]: string\n    } | string\n  };\n  /** Only for styles of TypeStyle.one */\n  parentStyle?: Styles;\n  requireUpdate?: boolean;\n  id: string | null;\n  isNewStyle?: boolean;\n  /** This is used when a instance contains multiple styles */\n  keys?: string[];\n}\n\nexport enum TypeStyle {\n  Multiple,\n  OnlyOne,\n  /**\n   * A lyl Style\n   */\n  LylStyle\n}\n\n\n/**\n * Style Object\n */\nexport interface StyleContainer {\n  [key: string]: StyleContainer | string | number | string[] | null | undefined | StyleTemplate | Color;\n}\n\nexport interface StyleGroup {\n  /** Prefix name */\n  $name?: string;\n  $keyframes?: KeyframesDeprecated;\n  $priority?: number;\n  [key: string]: StyleContainer\n    | (() => StyleTemplate) | StyleTemplate\n    | (() => (StyleTemplate | null | undefined)[] | StyleTemplate | null | undefined)\n    | string | number | undefined | null | StyleTemplateValue;\n}\n\nexport type StyleTemplateValue = \n  | StyleTemplate | StyleTemplate[]\n  | (() => StyleTemplate | (StyleTemplate | null | undefined)[] | null | undefined);\n\nexport interface LyStyleGroup {\n  /** Prefix name */\n  $name?: string;\n  $priority?: number;\n  [key: string]: (() => (StyleTemplate | null | undefined))\n    | (() => (StyleTemplate | null | undefined)[] | StyleTemplate | null | undefined)\n    | StyleTemplate\n    | string | number | undefined | null | StyleTemplateValue;\n}\n\n/**\n * CSS declarations block\n */\nexport type StyleDeclarationsBlock = ((T: any, theme: any) => StyleContainer | string) | StyleContainer | string | null | undefined;\n\nexport type LyStyles = ((T: any, theme: any, selectors: any) => LyStyleGroup) | undefined | null;\nexport type Styles = (((T: any, theme: any) => StyleGroup) | StyleGroup | undefined | null) | LyStyles;\n\nexport interface KeyframesDeprecated {\n  [name: string]: {\n    [percent: number]: StyleContainer\n  };\n}\n\ntype LyClassesProperties<T> = {\n  [\n    P in keyof (\n      T extends ((theme: any, ref?: any, selectors?: any) => infer R) ? R : T\n    )\n  ]: string;\n};\n\n// Convert all properties to `string` type, and exclude properties that not is class name\nexport type LyClasses<T> = Omit<LyClassesProperties<T>, '$name' | '$keyframes' | '@global' | '$priority' | '$global'>;\nexport type LySelectors<T> = {\n  [P in keyof LyClasses<T>]: `.${string}`\n};\n\ntype Omit<T, K> = Pick<T, Exclude<keyof T, K>>;\n\ntype LyComponentStyleItem<COMPONENT, INPUTS extends keyof COMPONENT> = {\n  [P in INPUTS]: (theme: ThemeVariables, value: COMPONENT[P]) => StyleContainer\n};\n\nexport interface LyComponentStyle<COMPONENT, INPUTS extends keyof COMPONENT> {\n  [key: string]: LyComponentStyleItem<COMPONENT, INPUTS>;\n}\n\nexport const getThemeNameForSelectors = memoize((themeId: string) => {\n  return `${themeId}<~(selectors)`;\n});\n\nexport type SelectorsFn = <T>(styles: T) => LySelectors<T>;\n\n","import { Color } from '@alyle/ui/color';\n\nconst LINE_FEED_REGEX = () => /[\\n\\s]*([^\\n]+)/g;\nconst AMPERSAND_REGEX = () => /&/g;\n\nenum RuleType {\n  FontFace,\n  MediaQuery,\n  KeyFrame,\n  Style,\n  DynamicStyle,\n  CompiledStyle\n}\n\ninterface Rule {\n  selector: string;\n  block: string;\n  type: RuleType;\n  hasMedia?: boolean;\n  isEmpty: boolean;\n  isReady?: boolean;\n}\n\ntype Selectors = string[] | string;\n\n/**\n * Transform a lyl style block to CSS\n */\nexport class LylParse {\n\n  constructor(\n    private _template: string,\n    private _className: string = '${_className}',\n    private _isServer: boolean,\n    /** Is true when used inside lyl */\n    private _isDevMode: boolean\n  ) { }\n\n  toCss() {\n    const selectors: Selectors[] = [];\n    const resolvedSelectors: Rule[] = [];\n    const rules: Rule[] = [];\n    this._template\n      .replace(/(\\/\\/\\s[^\\n\\r]*(?:[\\n\\r]+|$))/g, '') // remove comments\n      .replace(/,[\\n\\s]+/g, ',')\n      .replace(LINE_FEED_REGEX(), (_ex, fullLine: string) => {\n\n      if (fullLine.endsWith('{')) {\n        if (selectors.length === 0) {\n          selectors.push([this._className]);\n          this._createRule(rules, RuleType.Style, selectors, resolvedSelectors);\n        } else {\n          const line_1 = fullLine.slice(0, fullLine.length - 1).trim();\n          if (line_1 === '@font-face') {\n            selectors.push(\n              line_1\n            );\n            this._createRule(rules, RuleType.FontFace, selectors, resolvedSelectors);\n          } else if (line_1.startsWith('@m')) {\n            selectors.push(\n              line_1\n            );\n            this._createRule(rules, RuleType.MediaQuery, selectors, resolvedSelectors);\n\n          } else if (line_1.startsWith('@k')) {\n            selectors.push(\n              line_1\n            );\n            this._createRule(rules, RuleType.KeyFrame, selectors, resolvedSelectors);\n          } else {\n            selectors.push(\n              line_1\n              .split(',')\n              .map(_ => _.trim())\n              );\n            this._createRule(rules, RuleType.Style, selectors, resolvedSelectors);\n          }\n\n        }\n\n\n      } else if (fullLine.length === 1 && fullLine === '}') {\n        this._removeParentSelector(rules, selectors, resolvedSelectors);\n      } else if (this._isDevMode && fullLine.startsWith('/* >> ds')) {\n        const lin = fullLine;\n\n        this._createRuleWithResolvedSelector(rules, RuleType.DynamicStyle, selectors, resolvedSelectors, lin);\n      } else if (this._isServer && fullLine.startsWith('...')) {\n        const content = fullLine.slice(3);\n\n        this._createRuleWithResolvedSelector(rules, RuleType.CompiledStyle, selectors, resolvedSelectors, content);\n\n      } else {\n        if (fullLine) {\n          if (this._isDevMode && fullLine.includes('undefined')) {\n            return '';\n          }\n          if (this._isDevMode && fullLine.endsWith(';')) {\n            throw new Error(`Do not require semicolon in [${fullLine}]`);\n          }\n          if (fullLine.includes(': ')) {\n            fullLine = fullLine.replace(': ', ':');\n          }\n          fullLine += ';';\n          this._appendDeclaration(rules, RuleType.Style, fullLine);\n        }\n      }\n      return '';\n    });\n\n\n    return rules\n      .filter(rule => !rule.isEmpty)\n      .map(rule => {\n        return rule.block;\n      }).join('');\n\n  }\n\n\n  private _createRule(rules: Rule[], type: RuleType, selectors: Selectors[], resolvedSelectors: Rule[]) {\n    const parentRule = resolvedSelectors[resolvedSelectors.length - 1] as (Rule | undefined);\n    const prevRule = rules[rules.length - 1] as (Rule | undefined);\n\n    if (prevRule && !prevRule.isReady) {\n      prevRule.block += `}`;\n      prevRule.isReady = true;\n    }\n    let selector = '';\n    if (type === RuleType.FontFace) {\n      selector = `@font-face`;\n    } else if (type === RuleType.KeyFrame) {\n      selector = selectors[1] as string;\n    } else if (parentRule && parentRule.type === RuleType.KeyFrame) {\n      selector = selectors[selectors.length - 1][0];\n    } else if (type === RuleType.MediaQuery || (parentRule && parentRule.type === RuleType.MediaQuery && prevRule && prevRule.isEmpty)) {\n      selector = resolveSelectors(selectors, false);\n    } else {\n      selector = resolveSelectors(selectors, true);\n    }\n    const rule: Rule = {\n      selector,\n      block: `${selector}{`,\n      type: RuleType.Style,\n      isEmpty: true\n    };\n    resolvedSelectors.push({selector: '', block: '', type: type, isEmpty: true});\n    rules.push(rule);\n\n    // If is new media query\n    if (type === RuleType.MediaQuery) {\n      // rule.block += `{`;\n      rule.hasMedia = true;\n    }\n    if (parentRule && parentRule.hasMedia) {\n      rule.hasMedia = true;\n    }\n\n    if (type === RuleType.KeyFrame) {\n      rule.isReady = true;\n      rule.isEmpty = false;\n    }\n    return rule;\n  }\n\n  private _createRuleWithResolvedSelector(\n    rules: Rule[],\n    type: RuleType,\n    selectors: Selectors[],\n    resolvedSelectors: Rule[],\n    content: string\n  ) {\n    if (!content) {\n      return;\n    }\n\n    const prevRule = rules[rules.length - 1];\n    const parentRule = resolvedSelectors[resolvedSelectors.length - 1] as (Rule | undefined);\n    const { hasMedia } = prevRule;\n    let selector = '';\n    if (type === RuleType.MediaQuery || (parentRule && parentRule.type === RuleType.MediaQuery && prevRule && prevRule.isEmpty)) {\n      selector = resolveSelectors(selectors, false);\n    } else {\n      selector = resolveSelectors(selectors, true);\n    }\n\n    // Close previous\n    if (prevRule && !prevRule.isReady) {\n      prevRule.block += `}`;\n    }\n\n    const rule: Rule = {\n      selector: selector,\n      block: ``,\n      type,\n      hasMedia,\n      isEmpty: false\n    };\n    if (type === RuleType.CompiledStyle) {\n      rule.block = transformCC(content, selector);\n    } else if (type === RuleType.DynamicStyle) {\n      rule.block = content.replace(/\\|\\|\\&\\|\\|/g, selector);\n    }\n    rule.isReady = true;\n    rules.push(rule);\n  }\n\n  private _appendDeclaration(rules: Rule[], _type: RuleType, content: string) {\n    if (!content) {\n      return;\n    }\n\n    let prevRule = rules[rules.length - 1];\n    if (prevRule && prevRule.isReady) {\n      prevRule = {\n        selector: prevRule.selector,\n        block: `${prevRule.selector}{`,\n        type: prevRule.type,\n        hasMedia: prevRule.hasMedia,\n        isEmpty: false\n      };\n      rules.push(prevRule);\n    }\n    prevRule.block += content;\n    prevRule.isEmpty = false;\n\n  }\n\n  private _removeParentSelector(rules: Rule[], selectors: Selectors[], resolvedSelectors: Rule[]) {\n    selectors.pop();\n    const prevRule = rules[rules.length - 1] as (undefined | Rule);\n    const currentRule = resolvedSelectors.pop();\n    if (!prevRule) {\n      return;\n    }\n\n    // Close previous rule\n    if (!prevRule.isReady) {\n      prevRule.block += `}`;\n      prevRule.isReady = true;\n    }\n    if (\n      currentRule && (currentRule.type === RuleType.MediaQuery || currentRule.type === RuleType.KeyFrame)\n    ) {\n      prevRule.block += `}`;\n      prevRule.isReady = true;\n    }\n  }\n\n}\n\n\nfunction transformCC(content: string, sel: string) {\n  content = content.replace(/\\/\\* >> cc[^\\/\\*]+\\*\\//g, '');\n  let expression = content.slice(2, content.length - 1);\n  expression = `st2c((${expression}), \\`${sel}\\`)`;\n  return `\\${${expression}}`;\n}\n\nexport function resolveSelectors(selectors: Selectors[], ignoreMediaQuery?: boolean) {\n  let media: string | null = null;\n  const sel = selectors\n    .filter((_): _ is string[] => {\n      if (typeof _ === 'string') {\n        if (!ignoreMediaQuery) {\n          media = _;\n        }\n        return false;\n      }\n      return !!_.filter(__ => __).length;\n    });\n\n  const sel2 = sel.length === 1\n    ? sel[0].join(',')\n    : sel.length ? (sel.reduce((prv, curr) => {\n    const result = prv.map(item => curr.map(cu => {\n      if (cu.includes('&')) {\n        return cu.replace(AMPERSAND_REGEX(), item);\n      }\n      return `${item} ${cu}`;\n    }));\n    return Array.prototype.concat.apply([], result) as string[];\n  }) as string[]).join(',') : '';\n\n  if (media) {\n    return `${media}{${sel2}`;\n  }\n  return sel2;\n}\n\n\nexport type StyleTemplate = (className: string) => string;\n\nexport function lyl(literals: TemplateStringsArray, ...placeholders: (string | Color | StyleCollection | number | StyleTemplate | null | undefined)[]) {\n  return (className: string) => {\n    let result = '';\n    // Save expressions\n    for (let i = 0; i < placeholders.length; i++) {\n      const placeholder = placeholders[i];\n      result += literals[i];\n      if (result.endsWith('...')) {\n        result = result.slice(0, result.length - 3);\n        if (typeof placeholder === 'function'\n          || placeholder instanceof StyleCollection\n        ) {\n          result += `${createUniqueCommentSelector('ds')}${st2c(placeholder, '||&||')}`;\n        }\n      } else {\n        result += placeholder;\n      }\n    }\n\n    // add the last literal\n    result += literals[literals.length - 1];\n    const css = new LylParse(result, className, false, true).toCss();\n    return css;\n  };\n}\n\nfunction createUniqueCommentSelector(text = 'id') {\n  return `/* >> ${text} -- ${Math.floor(new Date().valueOf() * Math.random()).toString(36)} */`;\n}\n\ntype Transformer<T> = (st: T) => (StyleTemplate);\n\nexport class StyleCollection<T = any> {\n  private _templates: (StyleTemplate | T)[];\n  private _transformer?: Transformer<T>;\n\n  constructor(...templates: (T)[])\n  constructor(...templates: (StyleTemplate | T)[]) {\n    this._templates = templates;\n    this.css = this.css.bind(this);\n  }\n\n  add(...templates: (T)[]): StyleCollection<T>;\n  add(...templates: (StyleTemplate | T)[]): StyleCollection;\n  add(...templates: (StyleTemplate | T)[]): StyleCollection | StyleCollection<T> {\n    // return new StyleCollection(...[...this._templates, ...templates]);\n    this._templates.push(...templates);\n    return this;\n  }\n\n  /** Transform style */\n  setTransformer(transformer: Transformer<T>) {\n    this._transformer = transformer;\n    return this;\n  }\n\n  /**\n   * @return StyleTemplate\n   * @docs-private\n   */\n  css(className: string) {\n    let lin = '';\n    const templates = this._templates;\n    for (let index = 0; index < templates.length; index++) {\n      let template: StyleTemplate;\n      if (this._transformer) {\n        template = ((this._transformer(templates[index] as T)));\n      } else {\n        template = (templates[index] as StyleTemplate);\n      }\n      lin += template(className);\n    }\n    return lin;\n  }\n\n}\n\n/**\n * Transform a ...{style} to css\n * For internal use purposes only\n * @param fn StyleTemplate or StyleCollection\n * @param className class name\n */\nexport function st2c(\n  fn: StyleTemplate | StyleCollection | null | undefined,\n  className: string) {\n  if (fn == null) {\n    return '';\n  }\n  if (fn instanceof StyleCollection) {\n    return fn.css(className);\n  }\n  return fn(className);\n}\n\nexport class StringIdGenerator {\n  private _chars: string;\n  private _nextId: number[];\n  constructor(chars = 'abcdefghijklmnopqrstuvwxyz') {\n    this._chars = chars;\n    this._nextId = [0];\n  }\n\n  next() {\n    const r: string[] = [];\n    for (const char of this._nextId) {\n      r.unshift(this._chars[char]);\n    }\n    this._increment();\n    return r.join('');\n  }\n\n  private _increment() {\n    for (let i = 0; i < this._nextId.length; i++) {\n      const val = ++this._nextId[i];\n      if (val >= this._chars.length) {\n        this._nextId[i] = 0;\n      } else {\n        return;\n      }\n    }\n    this._nextId.push(0);\n  }\n}\n","import { Color, hexColorToInt } from '@alyle/ui/color';\nimport { _STYLE_MAP, Styles, LyClasses } from './theme/style';\nimport { StyleCollection, StyleTemplate } from './parse';\nimport { memoize } from './minimal/memoize';\n\nexport class LyStyleUtils {\n  name: string;\n  typography: {\n    fontFamily?: string;\n    htmlFontSize: number,\n    fontSize: number;\n  };\n  breakpoints: {\n    XSmall: string,\n    Small: string,\n    Medium: string,\n    Large: string,\n    XLarge: string,\n\n    Handset: string,\n    Tablet: string,\n    Web: string,\n\n    HandsetPortrait: string,\n    TabletPortrait: string,\n    WebPortrait: string,\n\n    HandsetLandscape: string,\n    TabletLandscape: string,\n    WebLandscape: string,\n    [key: string]: string\n  };\n  direction: Dir | `${Dir}`;\n\n  /** Returns left or right according to the direction */\n  get before() {\n    return this.getDirection(DirAlias.before);\n  }\n\n  /** Returns left or right according to the direction */\n  get after() {\n    return this.getDirection(DirAlias.after);\n  }\n\n  /** Returns top */\n  readonly above = 'top';\n\n  /** Returns bottom */\n  readonly below = 'bottom';\n\n  pxToRem(value: number) {\n    const size = this.typography.fontSize / 14;\n    return `${value / this.typography.htmlFontSize * size}rem`;\n  }\n  colorOf(value: string | number, optional?: string): Color {\n    if (typeof value === 'number') {\n      return new Color(value);\n    }\n    if (value[0] === '#' && value.length === 7) {\n      return new Color(hexColorToInt(value));\n    }\n    const color = get(this, value, optional);\n    if (color) {\n      return color;\n    }\n    /** Create invalid color */\n    return new Color();\n  }\n  getBreakpoint(key: string) {\n    return `@media ${this.breakpoints[key] || key}`;\n  }\n\n  selectorsOf<T>(styles: T & Styles): LyClasses<T> {\n    const styleMap = _STYLE_MAP.get(styles);\n    if (styleMap) {\n      return styleMap.classes || styleMap[this.name];\n    } else {\n      throw Error('Classes not found');\n    }\n  }\n\n  getDirection(val: DirAlias | 'before' | 'after' | 'above' | 'below') {\n    if (val === DirAlias.before) {\n      return this.direction === 'rtl' ? 'right' : 'left';\n    } else if (val === DirAlias.after) {\n      return this.direction === 'rtl' ? 'left' : 'right';\n    } else if (val === 'above') {\n      return 'top';\n    } else if (val === 'below') {\n      return 'bottom';\n    }\n    return val;\n  }\n\n  isRTL() {\n    return this.direction === Dir.rtl;\n  }\n}\n\nexport enum Dir {\n  rtl = 'rtl',\n  ltr = 'ltr'\n}\nexport enum DirAlias {\n  before = 'before',\n  after = 'after'\n}\nexport enum DirPosition {\n  left = 'left',\n  right = 'right'\n}\n\n/**\n * get color of object\n * @param obj object\n * @param path path\n * @param optional get optional value, if not exist return default if not is string\n */\nfunction get(obj: Object, path: string[] | string, optional?: string): Color {\n  if (path === 'transparent') {\n    return new Color(0, 0, 0, 0);\n  }\n  const _path: string[] = path instanceof Array ? path : path.split(':');\n  for (let i = 0; i < _path.length; i++) {\n    const posibleOb = obj[_path[i]];\n    if (posibleOb) {\n      obj = posibleOb;\n    } else {\n      /** if not exist */\n      return new Color();\n    }\n  }\n  if (obj instanceof Color) {\n    return obj;\n  } else if (optional) {\n    return obj[optional] ?? obj['default'];\n  } else {\n    return obj['default'];\n  }\n  // return typeof obj === 'string' ? obj as string : obj['default'] as string;\n}\n\nexport type MediaQueryArray = (string | number)[];\n\nexport type MediaQueryArrayDeprecated = (\n  (number | string | [(string | number), string])\n)[];\n\n/**\n * Extract breakpoints from a string to make it a unique `StyleTemplate`\n * @param str Media Queries in inline style\n * @param transformer A function with parameters to create a `StyleTemplate`\n * @deprecated\n */\nexport function withMediaInline(\n  str: string | number | MediaQueryArray,\n  transformer: ((val: string | number, media: string | null) => StyleTemplate)\n) {\n  const styleCollection = new StyleCollection();\n  if (typeof str === 'string') {\n    const values = parseMediaQueriesFromString(str);\n    for (let index = 0; index < values.length; index++) {\n      parseMediaQueryFromString(values[index]).forEach((_) => {\n        styleCollection.add(transformer(_[0], _[1]));\n      });\n    }\n  } else if (typeof str === 'number' || str === null || str === undefined) {\n    styleCollection.add(transformer(str as any, null));\n  } else {\n    for (let index = 0; index < str.length; index++) {\n      const val = str[index];\n      if (typeof val === 'number' || val === null || val === undefined) {\n        styleCollection.add(transformer(val, null));\n      } else if (typeof val === 'string') {\n        parseMediaQueryFromString(val).forEach((_) => {\n          styleCollection.add(transformer(_[0], _[1]));\n        });\n      }\n    }\n  }\n  return styleCollection.css;\n}\n\n/**\n * Extract media query from a string\n */\nexport const parseMediaQueryFromString = memoize((key: string) => {\n  const valItem = key.split(/\\@/g);\n  const strValue = valItem.shift()!;\n  const len = valItem.length;\n  const value = isNaN(+strValue) ? strValue : +strValue;\n  const re: [string | number, string | null][] = [];\n  if (len) {\n    for (let j = 0; j < len; j++) {\n      re.push([value, valItem[j]]);\n    }\n  } else {\n    re.push([value, null]);\n  }\n  return re;\n});\n\n/**\n * Extract media queries from a string\n */\nexport const parseMediaQueriesFromString = memoize((key: string) => {\n  return key.split(' ');\n});\n\n/**\n * @depracated use `withMediaInline` instead.\n */\nexport function eachMedia(\n  str: string | number | MediaQueryArrayDeprecated,\n  fn: ((val: string | number, media: string | null, index: number) => void)\n): void;\n/**\n * @depracated use `withMediaInline` instead.\n */\nexport function eachMedia(\n  str: string | number | MediaQueryArrayDeprecated,\n  fn: ((val: string | number, media: string | null, index: number) => StyleTemplate),\n  styleCollection: boolean\n): StyleTemplate;\n/**\n * @depracated use `withMediaInline` instead.\n */\nexport function eachMedia(\n  str: string | number | MediaQueryArrayDeprecated,\n  fn: ((val: string | number, media: string | null, index: number) => (void | StyleTemplate)),\n  withStyleCollection?: boolean\n): StyleTemplate | void {\n  let styleCollection: StyleCollection | undefined;\n  if (withStyleCollection) {\n    styleCollection = new StyleCollection();\n  }\n  if (typeof str === 'string') {\n    const values = str.split(/\\ /g);\n    for (let index = 0; index < values.length; index++) {\n      const valItem = values[index].split(/\\@/g);\n      const strValue = valItem.shift()!;\n      const len = valItem.length;\n      const value = isNaN(+strValue) ? strValue : +strValue;\n      if (len) {\n        for (let j = 0; j < len; j++) {\n          resolveMediaEachItemStyle(fn, value, valItem[j], index, styleCollection);\n        }\n      } else {\n        resolveMediaEachItemStyle(fn, value, null, index, styleCollection);\n      }\n    }\n  } else if (typeof str === 'number' || typeof str === 'string' || str === null || str === undefined) {\n    resolveMediaEachItemStyle(fn, str as any, null, 0, styleCollection);\n  } else {\n    // is array\n    for (let index = 0; index < str.length; index++) {\n      const val = str[index];\n      if (typeof val === 'number' || typeof val === 'string') {\n        resolveMediaEachItemStyle(fn, val, null, index, styleCollection);\n      } else {\n        const medias = val[1].split(/\\@/g).filter(media => media);\n        const strValue = val[0];\n        const len = medias.length;\n        if (len) {\n          for (let ii = 0; ii < len; ii++) {\n            resolveMediaEachItemStyle(fn, strValue, medias[ii], index, styleCollection);\n          }\n        } else {\n          resolveMediaEachItemStyle(fn, strValue, null, index, styleCollection);\n        }\n      }\n\n    }\n  }\n  if (styleCollection) {\n    return styleCollection.css;\n  }\n}\n\nfunction resolveMediaEachItemStyle(\n  fn: (val: string | number, media: string | null, index: number) => void | StyleTemplate,\n  val: string | number,\n  media: string | null,\n  index: number,\n  styleCollection?: StyleCollection\n) {\n  const styl = fn(val, media, index);\n  if (styleCollection && styl) {\n    styleCollection.add(styl);\n  }\n}\n\n/**\n * Simple object check.\n * @param item\n */\nfunction isObject(item) {\n  return (item && typeof item === 'object' && !Array.isArray(item));\n}\n\nexport function mergeDeep<T, U>(target: T, source: U): T & U;\nexport function mergeDeep<T, U, V>(target: T, source1: U, source2: V): T & U & V;\nexport function mergeDeep<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;\nexport function mergeDeep(target: object, ...sources: any[]): any;\n\n/**\n * Deep merge two objects.\n * @param target\n * @param ...sources\n */\nexport function mergeDeep(target: any, ...sources: any[]) {\n  if (!sources.length) { return target; }\n  const source = sources.shift();\n\n  if (isObject(target) && isObject(source)) {\n    for (const key in source) {\n      if (isObject(source[key])) {\n        if (!target[key]) { Object.assign(target, { [key]: {} }); }\n        mergeDeep(target[key], source[key]);\n      } else {\n        Object.assign(target, { [key]: source[key] });\n      }\n    }\n  }\n\n  return mergeDeep(target, ...sources);\n}\n\n/**\n * Simple object check.\n * @param item\n */\nfunction isObjectForTheme(item: any) {\n  return (item && typeof item === 'object' && !Array.isArray(item))\n  && !(item instanceof StyleCollection)\n  && !(item instanceof Color);\n}\n\nexport function mergeThemes<T, U>(target: T, source: U): T & U;\nexport function mergeThemes<T, U, V>(target: T, source1: U, source2: V): T & U & V;\nexport function mergeThemes<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;\nexport function mergeThemes(target: object, ...sources: any[]): any;\nexport function mergeThemes(target: any, ...sources: any[]): any {\n  if (!sources.length) { return target; }\n  const source = sources.shift();\n\n  if (isObjectForTheme(target) && isObjectForTheme(source)) {\n    for (const key in source) {\n      if (isObjectForTheme(source[key])) {\n        if (!target[key]) { Object.assign(target, { [key]: {} }); }\n        mergeThemes(target[key], source[key]);\n      } else {\n        const targetKey = target[key];\n        const sourceKey = source[key];\n        // Merge styles\n        if (targetKey instanceof StyleCollection && typeof sourceKey === 'function') {\n          target[key] = (target[key] as StyleCollection).add(sourceKey);\n        } else if (sourceKey instanceof Color) {\n          target[key] = sourceKey;\n        } else {\n          // Object.assign(target, { [key]: source[key] });\n          target[key] = source[key];\n        }\n      }\n    }\n  }\n\n  return mergeThemes(target, ...sources);\n}\n","import { Injectable, Inject, Renderer2, RendererFactory2, ViewEncapsulation, Optional, isDevMode } from '@angular/core';\nimport { ThemeConfig, ThemeVariables, LY_CLASS_NAME_PREFIX, LY_ENABLE_SELECTORS_FN } from './theme-config';\nimport { DOCUMENT } from '@angular/common';\nimport { DataStyle } from '../theme.service';\nimport { mergeThemes } from '../style-utils';\nimport { Platform } from '@angular/cdk/platform';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CoreTheme {\n  readonly classNamePrefix?: string;\n  renderer: Renderer2;\n  mediaStyleContainer: HTMLElement;\n  primaryStyleContainer: HTMLElement;\n  secondaryStyleContainer: HTMLElement;\n  firstElement: HTMLElement;\n  readonly themes = new Set<string>();\n  private _themeMap = new Map<string, ThemeVariables>();\n  private _styleMap = new Map<string, Map<string, DataStyle>>();\n  private _document: Document;\n  static classNamePrefix?: string;\n  constructor(\n    private rendererFactory: RendererFactory2,\n    @Inject(DOCUMENT) _document: any,\n    platform: Platform,\n    @Optional() @Inject(LY_CLASS_NAME_PREFIX) readonly _classNamePrefix?: string,\n    @Optional() @Inject(LY_ENABLE_SELECTORS_FN) readonly _enableSelectorsFn?: boolean\n  ) {\n    if (_enableSelectorsFn == null) {\n      this._enableSelectorsFn = true;\n    }\n    this._document = _document;\n\n    if (!isDevMode() && _classNamePrefix) {\n      CoreTheme.classNamePrefix = this.classNamePrefix = _classNamePrefix;\n    }\n\n    if (platform.isBrowser) {\n      // Clean\n      const nodes: NodeList = this._document.body.querySelectorAll('ly-s-c');\n      if (nodes.length) {\n        for (let index = 0; index < nodes.length; index++) {\n          const element = nodes.item(index)!;\n          (this._document.body as HTMLBodyElement).removeChild(element);\n        }\n      }\n    }\n\n    this.firstElement = this._document.body.firstChild! as HTMLElement;\n\n    this.renderer = this.rendererFactory.createRenderer(null, {\n      id: 'ly',\n      encapsulation: ViewEncapsulation.None,\n      styles: [],\n      data: {}\n    });\n  }\n\n  initializeTheme(themeConfig: ThemeConfig[] | ThemeConfig, globalVariables: ThemeConfig) {\n\n    const allThemes = Array.isArray(themeConfig) ? themeConfig : [themeConfig];\n\n    const themes = new Map<string, ThemeConfig[]>();\n\n    allThemes.forEach(item => {\n      // Do not install themes that are already initialized.\n      if (this.hasTheme(item.name)) {\n        // throw new Error(`Theme '${item.name}' is already initialized.`);\n      // }\n      }\n      if (themes.has(item.name)) {\n        themes.get(item.name)!.push(item);\n      } else {\n        themes.set(item.name, [item]);\n      }\n    });\n\n    themes.forEach((items) => {\n      if (globalVariables) {\n        items.push(globalVariables);\n      }\n      if (items.length > 1) {\n        mergeThemes(items[0], ...items.slice(1));\n      }\n      this._add(items[0] as any);\n      this.themes.add(items[0].name);\n    });\n  }\n\n  /**\n   * add new theme\n   * @param theme: ThemeVariables\n   */\n  private _add(theme: ThemeVariables) {\n    this._themeMap.set(theme.name, theme);\n    this._styleMap.set(theme.name, new Map());\n  }\n\n  hasTheme(theme: ThemeVariables | string) {\n    const name = typeof theme === 'string' ? theme : theme.name;\n    return this._themeMap.has(name);\n  }\n\n  get(name: string) {\n    return this._themeMap.get(name);\n  }\n\n  updateClassName(element: any, renderer: Renderer2, newClassname: string, oldClassname?: string) {\n    if (oldClassname) {\n      renderer.removeClass(element, oldClassname);\n    }\n    renderer.addClass(element, newClassname);\n  }\n\n}\n","import { ThemeVariables } from '../theme/theme-config';\nimport { DirPosition } from '../style-utils';\n\nexport enum YPosition {\n  above = 'above',\n  below = 'below'\n}\n\nexport enum XPosition {\n  before = 'before',\n  after = 'after',\n  left = 'left',\n  right = 'right'\n}\n\nexport type Placement = XPosition | YPosition | `${XPosition}` | `${YPosition}`;\n\nconst INITIAL_V = 'initial';\n\n/**\n * @deprecated Use `OverlayPosition` instead.\n */\nexport class Positioning {\n  private _offsetCheck = 16;\n  private readonly _originRect = this.origin.getBoundingClientRect() as DOMRect;\n  private readonly _overlayElementRect = this.overlayElement.getBoundingClientRect() as DOMRect;\n  x: number;\n  y: number;\n  ax: number;\n  ay: number;\n  /** Origin X */\n  ox: string;\n  /** Origin Y */\n  oy: string;\n  width: string = INITIAL_V;\n  height: string = INITIAL_V;\n  private _origin: boolean;\n  get offsetX(): number {\n    return typeof this._offset === 'number'\n    ? this._offset\n    : this._offset.x || 0;\n  }\n  get offsetY(): number {\n    return typeof this._offset === 'number'\n    ? this._offset\n    : this._offset.y || 0;\n  }\n  constructor(\n    private placement: Placement,\n    private xPosition: XPosition | `${XPosition}`,\n    private yPosition: YPosition | `${YPosition}`,\n    private origin: Element,\n    private overlayElement: Element,\n    private _themeVariables: ThemeVariables,\n    private _offset: number | {\n      x?: number\n      y?: number\n    } = 0,\n    _flip = true\n  ) {\n\n    const offsetCheckx2 = this._offsetCheck * 2;\n    this.createPosition();\n\n    if (_flip) {\n      for (let index = 0; index < 2; index++) {\n        if (this.checkAll(false, true)) {\n          this.createPosition();\n        }\n      }\n    }\n\n    // when there is not enough space\n    if (this.checkAll(true, false)) {\n      let requireUpdateOrigin = false;\n      const _max_width = this._overlayElementRect.width + offsetCheckx2 > window.innerWidth;\n      const _max_height = this._overlayElementRect.height + offsetCheckx2 > window.innerHeight;\n      if (_max_height) {\n        this.y = this._offsetCheck;\n        this.height = `${window.innerHeight - offsetCheckx2}px`;\n        requireUpdateOrigin = true;\n      } else if (this.checkBottom(false, false)) {\n        this.y += this.checkBottom(true, false) as number;\n        requireUpdateOrigin = true;\n      } else if (this.checkTop(false, false)) {\n        this.y -= this.checkTop(true, false) as number;\n        requireUpdateOrigin = true;\n      }\n\n      if (_max_width) {\n        this.x = this._offsetCheck;\n        this.width = `${window.innerWidth - offsetCheckx2}px`;\n        requireUpdateOrigin = true;\n      } else if (this.checkRight(false, false)) {\n        this.x += this.checkRight(true, false) as number;\n        requireUpdateOrigin = true;\n      } else if (this.checkLeft(false, false)) {\n        this.x -= this.checkLeft(true, false) as number;\n        requireUpdateOrigin = true;\n      }\n\n      if (requireUpdateOrigin) {\n        this.updateOrigin();\n      }\n    }\n\n    if (this._offset) {\n      this.updateOrigin();\n    }\n\n    // round result\n    this.x = Math.round(this.x);\n    this.y = Math.round(this.y);\n    this.ax = Math.round(this.ax);\n    this.ay = Math.round(this.ay);\n\n  }\n\n  private createPosition(\n  ) {\n    if (this.xPosition && this.yPosition) {\n      throw new Error(`You can not use \\`xPosition\\` and \\`yPosition\\` together, use only one of them.`);\n    }\n    // if ((this.xPosition || this.yPosition) && !this.placement) {\n    //   throw new Error(`\\`placement\\` is required.`);\n    // }\n    let x = this._originRect.x,\n        y = this._originRect.y,\n        ox = 'center',\n        oy = 'center';\n    // if (this.placement) {\n    if (this.placement === YPosition.above) {\n        x += (this._originRect.width - this._overlayElementRect.width) / 2;\n        y += -this._overlayElementRect.height;\n        oy = 'bottom';\n\n        // set offset\n        y -= this.offsetY;\n      } else if (this.placement === YPosition.below) {\n        x += (this._originRect.width - this._overlayElementRect.width) / 2;\n        y += this._originRect.height;\n        oy = 'top';\n\n        // set offset\n        y += this.offsetY;\n      } else {\n        const dir = this._themeVariables.getDirection(this.placement as any);\n        if (dir === DirPosition.left) {\n          ox = '100%';\n          x += -this._overlayElementRect.width;\n          y += (this._originRect.height - this._overlayElementRect.height) / 2;\n\n          // set offset\n          x -= this.offsetX;\n        } else if (dir === DirPosition.right) {\n          ox = '0%';\n          x += this._originRect.width;\n          y += (this._originRect.height - this._overlayElementRect.height) / 2;\n\n          // set offset\n          x += this.offsetX;\n        }\n      }\n\n    if (this.xPosition) {\n        const dir = this._themeVariables.getDirection(this.xPosition as any);\n        if (dir === DirPosition.right) {\n          ox = '0%';\n          x = this._originRect.x;\n\n          // set offset\n          x += this.offsetX;\n        } else if (dir === DirPosition.left) {\n          ox = '100%';\n          x = this._originRect.x + this._originRect.width - this._overlayElementRect.width;\n\n          // set offset\n          x -= this.offsetX;\n        }\n      } else if (this.yPosition) {\n        if (this.yPosition === YPosition.above) {\n          y = this._originRect.y + this._originRect.height - this._overlayElementRect.height;\n          oy = '100%';\n\n          // set offset\n          y += this.offsetY;\n        } else if (this.yPosition === YPosition.below) {\n          y = this._originRect.y;\n          oy = '0%';\n\n          // set offset\n          y -= this.offsetY;\n        }\n      }\n    // }\n    this.x = x;\n    this.y = y;\n    this.ax = x;\n    this.ay = y;\n    this.ox = ox;\n    this.oy = oy;\n    return {\n      x: Math.round(x),\n      y: Math.round(y),\n      ox,\n      oy\n    };\n  }\n\n  private checkLeft(returnVal: boolean, invertIfNeed: boolean): boolean | number {\n    const rest = this.ax - this._offsetCheck;\n    if (returnVal) {\n      return rest;\n    }\n    if (rest < 0) {\n      if (invertIfNeed) {\n        if (this.placement !== YPosition.above && this.placement !== YPosition.below) {\n          this.placement = invertPlacement(this.placement);\n        }\n        if (this.xPosition) {\n          this.xPosition = invertPlacement(this.xPosition) as XPosition;\n        }\n      }\n      return true;\n    }\n    return false;\n  }\n  private checkRight(returnVal: boolean, invertIfNeed: boolean): boolean | number {\n    const rest = window.innerWidth - (this.ax + this._overlayElementRect.width + this._offsetCheck);\n    if (returnVal) {\n      return rest;\n    }\n    if (rest < 0) {\n      if (invertIfNeed) {\n        if (this.placement !== YPosition.above && this.placement !== YPosition.below) {\n          this.placement = invertPlacement(this.placement);\n        }\n        if (this.xPosition) {\n          this.xPosition = invertPlacement(this.xPosition) as XPosition;\n        }\n      }\n      return true;\n    }\n    return false;\n  }\n  private checkTop(returnVal: boolean, invertIfNeed: boolean): boolean | number {\n    const rest = this.ay - this._offsetCheck;\n    if (returnVal) {\n      return rest;\n    }\n    if (rest < 0) {\n      if (invertIfNeed) {\n        if (this.placement === YPosition.above || this.placement === YPosition.below) {\n          this.placement = invertPlacement(this.placement);\n        }\n        if (this.yPosition) {\n          this.yPosition = invertPlacement(this.yPosition) as YPosition;\n        }\n      }\n      return true;\n    }\n    return false;\n  }\n  private checkBottom(returnVal: boolean, invertIfNeed: boolean): boolean | number {\n    const rest = window.innerHeight - (this.ay + this._overlayElementRect.height + this._offsetCheck);\n    if (returnVal) {\n      return rest;\n    }\n    if (rest < 0) {\n      if (invertIfNeed) {\n        if (this.placement === YPosition.above || this.placement === YPosition.below) {\n          this.placement = invertPlacement(this.placement);\n        }\n        if (this.yPosition) {\n          this.yPosition = invertPlacement(this.yPosition) as YPosition;\n        }\n      }\n      return true;\n    }\n    return false;\n  }\n\n  private checkAll(returnVal: boolean, invertIfNeed: boolean) {\n    return this.checkLeft(returnVal, invertIfNeed) ||\n    this.checkRight(returnVal, invertIfNeed) ||\n    this.checkTop(returnVal, invertIfNeed) ||\n    this.checkBottom(returnVal, invertIfNeed);\n  }\n\n  private updateOrigin() {\n    // do not update if it is defined\n    if (this._origin) {\n      return;\n    }\n\n    this._origin = true;\n    const oax = this._originRect.x + this._originRect.width / 2;\n    const oay = this._originRect.y + this._originRect.height / 2;\n    const vax = this.x + this._overlayElementRect.width / 2;\n    const vay = this.y + this._overlayElementRect.height / 2;\n    this.ox = `${oax - vax + this._overlayElementRect.width / 2}px`;\n    this.oy = `${oay - vay + this._overlayElementRect.height / 2}px`;\n  }\n\n}\nexport function invertPlacement(placement: Placement): Placement {\n  if (placement === YPosition.above) {\n    return YPosition.below;\n  } else if (placement === YPosition.below) {\n    return YPosition.above;\n  } else if (placement === XPosition.after) {\n    return XPosition.before;\n  } else if (placement === XPosition.before) {\n    return XPosition.after;\n  } else if (placement === XPosition.right) {\n    return XPosition.left;\n  } else if (placement === XPosition.left) {\n    return XPosition.right;\n  }\n  return placement;\n}\n","import { Injectable, Renderer2, Inject, isDevMode, NgZone, Optional } from '@angular/core';\nimport {\n  LY_THEME_NAME,\n  ThemeVariables,\n  LY_THEME,\n  LY_THEME_GLOBAL_VARIABLES,\n  ThemeConfig } from './theme-config';\nimport { CoreTheme } from './core-theme.service';\nimport { DataStyle } from '../theme.service';\nimport { DOCUMENT } from '@angular/common';\nimport { DirAlias, Dir } from '../style-utils';\nimport { YPosition } from '../position/position';\nimport { StyleMap5,\n  StyleGroup,\n  TypeStyle,\n  StyleContainer,\n  _STYLE_MAP,\n  Styles,\n  StyleDeclarationsBlock,\n  KeyframesDeprecated,\n  LyClasses,\n  getThemeNameForSelectors,\n  LyStyles,\n  LySelectors,\n  StyleTemplateValue} from './style';\nimport { Subject } from 'rxjs';\nimport { StyleTemplate, StringIdGenerator } from '../parse';\nimport { Platform } from '@angular/cdk/platform';\nimport { memoize } from '../minimal/memoize';\n\nconst REF_REG_EXP = /\\{([\\w-]+)\\}/g;\n\nlet nextKeyFrameId = 0;\nconst yClassID = new StringIdGenerator();\nexport const keyframesUniqueId = new StringIdGenerator();\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class StylesInDocument {\n  styles: {\n    [themeName: string]: Map<string | Styles, HTMLStyleElement>\n  } = {};\n  styleContainers = new Map<number, HTMLElement>();\n  styleElementGlobalMap = new Map<string | Styles, HTMLStyleElement>();\n}\n\nconst THEME_MAP = new Map<string, {\n  base: string\n  change: string | null\n}>();\n\n@Injectable()\nexport class LyTheme2 {\n  /**\n   * @deprecated use `themeVariables` instead\n   */\n  config: ThemeVariables;\n  _styleMap: Map<string, DataStyle>;\n  initialTheme: string;\n  elements: Map<string | Styles, HTMLStyleElement>;\n  _elementsMap = new Map<any, HTMLStyleElement>();\n\n  /** Event emitted when the direction has changed. */\n  private _directionChanged = new Subject<void>();\n  get directionChanged() {\n    return this._directionChanged.asObservable();\n  }\n\n  /** Event emitted when the theme has changed. */\n  private _themeChanged = new Subject<void>();\n  readonly themeChanged = this._themeChanged.asObservable();\n\n  /** Get Theme Variables */\n  get variables(): ThemeVariables {\n    return this.config;\n  }\n  private themeMap = THEME_MAP;\n  /** ssr or hmr */\n  private isDevOrServer = isDevMode() || !this._platform.isBrowser;\n  protected _document: Document;\n\n\n  constructor(\n    private stylesInDocument: StylesInDocument,\n    public core: CoreTheme,\n    @Inject(LY_THEME_NAME) themeName,\n    @Optional() @Inject(LY_THEME) themeConfig: ThemeConfig[] | ThemeConfig,\n    @Optional() @Inject(LY_THEME_GLOBAL_VARIABLES) globalVariables: ThemeConfig,\n    @Inject(DOCUMENT) _document: any,\n    private _ngZone: NgZone,\n    private _platform: Platform\n  ) {\n    this._document = _document;\n    if (themeConfig) {\n      core.initializeTheme(themeConfig, globalVariables);\n    }\n    if (themeName) {\n      this.setUpTheme(themeName);\n    }\n  }\n  setUpTheme(themeName: string) {\n    if (!this.config) {\n      const theme = this.core.get(themeName);\n      if (theme === undefined) {\n        throw new Error(`Theme ${themeName} not found in CoreTheme`);\n      }\n      this.config = theme;\n      this._styleMap = new Map<string, DataStyle>();\n      this.elements = themeName in this.stylesInDocument.styles\n      ? this.stylesInDocument.styles[themeName]\n      : this.stylesInDocument.styles[themeName] = new Map();\n      if (!this.initialTheme) {\n        this.initialTheme = this.config.name;\n      }\n      if (!this.themeMap.has(this.initialTheme)) {\n        this.themeMap.set(this.initialTheme, {\n          base: this.initialTheme,\n          change: null\n        });\n      }\n    }\n  }\n\n  /**\n   * Build multiple styles and render them in the DOM\n   */\n  renderStyleSheet<T>(styles: T & LyStyles): LyClasses<T> {\n    return this._createStyleContent2(styles, null, null, TypeStyle.Multiple);\n  }\n\n  renderStyle<THEME_VARIABLES>(\n    id: string,\n    style: (theme: THEME_VARIABLES, ref: ThemeRef) => StyleTemplate,\n    priority?: number\n  ): string;\n\n  renderStyle<THEME_VARIABLES>(\n    style: (theme: THEME_VARIABLES, ref: ThemeRef) => StyleTemplate,\n    priority?: number\n  ): string;\n  /**\n   * Build the styles and render them in the DOM\n   */\n  renderStyle<THEME_VARIABLES>(\n    styleOrId: ((theme: THEME_VARIABLES, ref: ThemeRef) => StyleTemplate) | string,\n    priorityOrStyle?: number | ((theme: THEME_VARIABLES, ref: ThemeRef) => StyleTemplate),\n    priority?: number\n  ): string {\n    if (typeof styleOrId === 'string') {\n      return this._createStyleContent2(priorityOrStyle as (theme: THEME_VARIABLES, ref: ThemeRef) => StyleTemplate,\n        styleOrId,\n        priority,\n        TypeStyle.LylStyle);\n    }\n    return this._createStyleContent2(styleOrId,\n      null,\n      priorityOrStyle as number,\n      TypeStyle.LylStyle);\n  }\n\n  /**\n   * Add a new dynamic style, use only within @Input()\n   * @param id Unique id\n   * @param style Styles\n   * @param el Element\n   * @param instance The instance of this, this replaces the existing style with a new one when it changes\n   * @param parentStyle Parent Style\n   */\n  addStyle(id: string,\n           style?: StyleDeclarationsBlock,\n           el?: any,\n           instance?: string | null,\n           priority?: number | null,\n           parentStyle?: Styles) {\n    const newClass = this._createStyleContent2(style, id, priority, TypeStyle.OnlyOne, false, parentStyle) as string;\n    if (newClass === instance) {\n      return newClass;\n    }\n    if (el) {\n      if (instance) {\n        el.classList.remove(instance);\n      }\n      el.classList.add(newClass);\n    }\n    return newClass;\n  }\n\n  /**\n   * Create basic style\n   * @param style Styles.\n   * Note: Use only with immutable variable.\n   * @param priority Priority of style\n   * @param parentStyle\n   */\n  style(style: StyleDeclarationsBlock, priority?: number | null, parentStyle?: Styles): string {\n    return this._createStyleContent2(style,\n      null,\n      priority,\n      TypeStyle.OnlyOne,\n      false, parentStyle) as string;\n  }\n\n  private updateClassName(element: any, renderer: Renderer2, newClassname: string, oldClassname?: string) {\n    this.core.updateClassName(element, renderer, newClassname, oldClassname);\n  }\n  updateClass(element: any, renderer: Renderer2, newClass: string, oldClass?: string) {\n    if (newClass === oldClass) {\n      return newClass;\n    }\n    this.updateClassName(element, renderer, newClass, oldClass);\n    return newClass;\n  }\n\n  /**\n   * Change the current theme for another.\n   * @param themeName theme name\n   */\n  setTheme(themeName: string) {\n    if (!this._platform.isBrowser) {\n      throw new Error(`\\`theme.setTheme('theme-name')\\` is only available in browser platform`);\n    }\n    if (themeName !== this.config.name) {\n      const theme = this.themeMap.get(this.initialTheme);\n      const dir = this.config.direction;\n      if (theme == null) {\n        throw new Error(`Theme ${themeName} not found in themeMap`);\n      }\n      theme.change = themeName;\n      this.config = this.core.get(themeName)!;\n      this.config.direction = dir;\n      this._updateAllStyles();\n      this._themeChanged.next();\n    }\n  }\n\n  /** Toggle right-to-left/left-to-right */\n  toggleDirection() {\n    const current = this.config.direction;\n    this.config.direction = current === Dir.ltr ? Dir.rtl : Dir.ltr;\n    this._updateAllStyles();\n    this._directionChanged.next();\n  }\n\n  setDirection(dir: Dir | `${Dir}`) {\n    if (this.config.direction !== dir) {\n      this.config.direction = dir;\n      this._updateAllStyles();\n      this._directionChanged.next();\n    }\n  }\n\n  private _updateAllStyles() {\n    this.elements.forEach((_, key) => {\n      const styleData = _STYLE_MAP.get(key)!;\n      if (styleData.requireUpdate) {\n        this._createStyleContent2(styleData.styles, styleData.id, styleData.priority, styleData.type, true, styleData.parentStyle);\n      }\n    });\n  }\n\n  /**\n   * Create a simple style\n   * return className\n   * @param id id of style\n   * @param css style object or string\n   * @param priority style priority(default: 0)\n   */\n  addSimpleStyle(id: string, css: StyleContainer | ((theme) => StyleContainer), priority?: number, parentStyle?: Styles): string {\n    return this._createStyleContent2(css as any, id, priority, TypeStyle.OnlyOne, false, parentStyle) as string;\n  }\n\n\n  /**\n   * Add new add a new style sheet\n   * @param styles styles\n   * @param priority priority for style\n   */\n  addStyleSheet<T>(styles: T & Styles, priority?: number): LyClasses<T> {\n    return this._createStyleContent2(styles, null, priority, TypeStyle.Multiple);\n  }\n\n  /**\n   * Check if a style exist\n   * @param stylesOrId Style or Id of a style\n   */\n  existStyle(stylesOrId: string | Styles | StyleDeclarationsBlock): boolean {\n    if (_STYLE_MAP.has(stylesOrId)) {\n      const styleMap = _STYLE_MAP.get(stylesOrId)!;\n      return !!(styleMap.classes || styleMap[this.initialTheme]);\n    }\n    return false;\n  }\n\n  /**\n   * return selectors if exists\n   *\n   * e.g.\n   *\n   * ```ts\n   * {\n   *   root: '.c'\n   * }\n   * ```\n   * @param styles id\n   */\n  selectorsOf<T>(styles: T): LySelectors<T> {\n    const themeName = this.initialTheme;\n    if (!_STYLE_MAP.has(styles)) {\n      _STYLE_MAP.set(styles, {\n        isNewStyle: true,\n        styles: styles as unknown as Styles,\n        type: TypeStyle.Multiple,\n        css: {},\n        id: null\n      });\n    }\n    const styleMap = _STYLE_MAP.get(styles)!;\n    const themeNameForSelectors = getThemeNameForSelectors(themeName);\n    const classesMap = styleMap[themeNameForSelectors] || (styleMap[themeNameForSelectors] = {});\n    return classesMap;\n  }\n\n  // private _selectors(currentStyles: any) {\n  //   return (externalStyle: any) => {\n  //     if (currentStyles !== externalStyle) {\n  //       this.renderStyleSheet(externalStyle);\n  //     }\n  //     return this.selectorsOf(externalStyle);\n  //   };\n  // }\n\n  selectorOf(styles: string | StyleTemplate): string {\n    const themeName = this.initialTheme;\n    const styleMap = _STYLE_MAP.get(styles)!;\n    return styleMap.classes || styleMap[themeName];\n  }\n\n  /**\n   * For internal use only\n   * @docs-private\n   */\n  _createStyleContent2(\n    styles: Styles\n      | StyleDeclarationsBlock\n      | ((theme: any, ref: ThemeRef) => StyleTemplate),\n    id: string | null,\n    priority: number | undefined | null,\n    type: TypeStyle,\n    forChangeTheme?: boolean,\n    parentStyle?: Styles\n  ) {\n    const newId = id || styles as Styles;\n    if (!_STYLE_MAP.has(newId)) {\n      _STYLE_MAP.set(newId, {\n        isNewStyle: true,\n        priority,\n        styles: styles as Styles,\n        type,\n        css: {},\n        id,\n        parentStyle\n      });\n    }\n    const styleMap = _STYLE_MAP.get(newId)!;\n    const themeName = this.initialTheme;\n    const isCreated = styleMap.isNewStyle || !(styleMap.classes || styleMap[themeName]);\n    if (isCreated || forChangeTheme) {\n      styleMap.isNewStyle = false;\n      // create new style for new theme\n      let css: string | { [themeName: string]: string; };\n      const themeMap = this.themeMap.get(this.initialTheme)!;\n      const config = this.core.get(themeMap.change || themeName) as ThemeVariables;\n      if (typeof styles === 'function') {\n        styleMap.requireUpdate = true;\n        css = type === TypeStyle.LylStyle\n          ? this.core._enableSelectorsFn\n            ? createLylStyle(\n              styleMap,\n              (styles as ((theme: any, ref: ThemeRef, currentSelectors: any) => StyleTemplate))(config, _selectors(styles, this), null),\n              themeName, this.core.classNamePrefix)\n            : createLylStyle(\n                styleMap,\n                (styles as ((theme: any, ref: ThemeRef, currentSelectors: any) => StyleTemplate))(config, this, null),\n                themeName, this.core.classNamePrefix)\n          : this.core._enableSelectorsFn\n            ? groupStyleToString(styleMap, (styles as LyStyles)!(config, _selectors(styles, this), null)! as StyleGroup,\n              themeName,\n              id,\n              type,\n              config,\n              this.core.classNamePrefix)\n            : groupStyleToString(styleMap, (styles as ((T: any, theme: any) => StyleGroup))(config, this) as StyleGroup,\n              themeName,\n              id,\n              type,\n              config,\n              this.core.classNamePrefix);\n        if (!forChangeTheme) {\n          styleMap.css[themeName] = css;\n        }\n      } else {\n        /** create a new id for style that does not <-<require>-> changes */\n        css = groupStyleToString(styleMap, styles as StyleGroup, themeName, newId as string, type, config, this.core.classNamePrefix);\n        styleMap.css = css;\n      }\n      if (!this.elements.has(newId)) {\n        const newEl = this._createStyleElement();\n        if (styleMap.requireUpdate) {\n          // This is required for when a theme changes\n          this.elements.set(newId, newEl);\n        } else if (this.isDevOrServer) {\n          // in dev mode or server it is not necessary\n          // since the styles will not change\n          this.stylesInDocument.styleElementGlobalMap.set(newId, newEl);\n        }\n        this._renderCss(newEl, css, styleMap.priority);\n      }\n      if (forChangeTheme) {\n        const el = this.elements.get(newId) as HTMLStyleElement;\n        el.removeChild(el.firstChild!);\n        el.appendChild(this._document.createTextNode(css));\n      }\n    } else if (this.isDevOrServer) {\n      /**\n       * append child style if not exist in dom\n       * for ssr or hmr\n       */\n      if (!this.elements.has(newId)) {\n        const _css = styleMap.css[themeName] || styleMap.css;\n        const map = this.stylesInDocument.styleElementGlobalMap;\n        if (styleMap.requireUpdate) {\n          const styleElement = this._createStyleElement();\n          this.elements.set(newId, styleElement);\n          this._renderCss(styleElement, _css, styleMap.priority);\n        } else if (!map.has(newId)) {\n          const styleElement = this._createStyleElement();\n          map.set(newId, styleElement);\n          this._renderCss(styleElement, _css, styleMap.priority);\n        }\n      }\n    }\n    return styleMap.classes || styleMap[themeName];\n  }\n\n  private _createStyleContainer(priority: number | null | undefined) {\n    priority = priority ?? 0;\n    const { styleContainers } = this.stylesInDocument;\n    if (!styleContainers.has(priority)) {\n      const el = this.core.renderer.createElement(`ly-s-c`);\n      if (isDevMode()) {\n        this.core.renderer.setAttribute(el, 'priority', `${priority}`);\n      }\n      if (styleContainers.size === 0) {\n        styleContainers.set(priority, el);\n        this._document.body.insertBefore(el, this._document.body.firstChild);\n        return el as HTMLStyleElement;\n      } else {\n        styleContainers.set(priority, el);\n        const refChild = this._getRefFromAPriority(priority!);\n        this._document.body.insertBefore(el, refChild!);\n        return styleContainers.get(priority)!;\n      }\n    }\n    return styleContainers.get(priority)!;\n  }\n\n  private _getRefFromAPriority(priority: number) {\n    const { styleContainers } = this.stylesInDocument;\n    const keys = (Array.from(styleContainers.keys())).sort(sortNumberArray);\n    const key = keys.find(_ => priority < _);\n    return (key !== undefined && styleContainers.get(key)) || this.core.firstElement;\n  }\n\n  private _createStyleElement() {\n    const styleElement = this._document.createElement('style');\n    return styleElement;\n  }\n\n  private _renderCss(styleElement: HTMLStyleElement, css: string, priority: number | undefined | null) {\n    const container = this._createStyleContainer(priority);\n    styleElement.appendChild(this._document.createTextNode(css));\n    container.appendChild(styleElement);\n  }\n\n  requestAnimationFrame(fn: (...args: any[]) => void) {\n    if (typeof requestAnimationFrame === 'function') {\n      this._ngZone.runOutsideAngular(() => {\n        requestAnimationFrame(() => {\n          fn();\n        });\n      });\n    } else {\n      fn();\n    }\n  }\n\n}\n\nfunction createLylStyle(\n  styleMap: StyleMap5,\n  styles: StyleTemplate,\n  themeName: string,\n  classNamePrefix?: string\n) {\n\n  // use current class or set new\n  let className: string;\n  className = styleMap[themeName]\n    || (\n      styleMap[themeName] = isDevMode()\n        ? styleMap.id\n          ? `${toValidClassName(styleMap.id!)}-${createNextClassId(classNamePrefix)}`\n          : `${(styleMap.styles as Function).name || 'ii'}-${createNextClassId(classNamePrefix)}`\n        : createNextClassId(classNamePrefix)\n    );\n\n  return styles(`.${className}`);\n}\n\nfunction groupStyleToString(\n  styleMap: StyleMap5,\n  styles: StyleGroup,\n  themeName: string,\n  id: string | null,\n  typeStyle: TypeStyle,\n  themeVariables: ThemeVariables,\n  classNamePrefix?: string\n) {\n\n  // for styles type string\n  if (typeStyle === TypeStyle.OnlyOne) {\n    // use current class or set new\n    const className = styleMap.requireUpdate\n    ? styleMap[themeName] || (styleMap[themeName] = createNextClassId(classNamePrefix))\n    : styleMap.classes\n      ? styleMap.classes\n      : styleMap.classes = createNextClassId(classNamePrefix);\n    let rules: string;\n    if (typeof styles === 'string') {\n      rules = `.${className}{${styles}}`;\n    } else {\n      rules = styleToString(id, null, styles as StyleContainer, themeVariables, className as any);\n    }\n    if (styleMap.parentStyle) {\n      const styleMapOfParentStyle = _STYLE_MAP.get(styleMap.parentStyle);\n      if (!styleMapOfParentStyle) {\n        throw new Error(`The parentStyle not exist or is called before being created.`);\n      }\n      return replaceRefs(rules, styleMapOfParentStyle[themeName]);\n    }\n    return rules;\n  }\n\n  // for multiples styles\n  const themeNameForSelectors = getThemeNameForSelectors(themeName);\n  const classesMap = styleMap[themeName] || (styleMap[themeName] = {});\n  const selectorsMap = styleMap[themeNameForSelectors] || (styleMap[themeNameForSelectors] = {});\n  const styleGroup = styles as StyleGroup;\n  let content = '';\n  const name = styleGroup.$name ? `${styleGroup.$name}-` : '';\n\n  // set priority\n  if (styleGroup.$priority != null) {\n    styleMap.priority = styleGroup.$priority;\n  }\n\n  if (!styleMap.keys) {\n    styleMap.keys = Object.keys(styles);\n  }\n\n  const keys = styleMap.keys;\n\n  /** This loop creates the classes if necessary */\n  for (let index = 0; index < keys.length; index++) {\n    const key = keys[index];\n    const value = styles[key];\n    if (key === '$global' || key === '$keyframes') {\n      continue;\n    }\n\n    if (typeof value === 'function' || Array.isArray(value)) {\n      // lyl\n      // set new id if not exist\n      if (!(key in classesMap)) {\n        classesMap[key] = isDevMode()\n          ? (key === 'root'\n            ? `${toValidClassName(name)}${createNextClassId(classNamePrefix)}`\n            : `${toValidClassName(name + key)}-${createNextClassId(classNamePrefix)}`)\n          : createNextClassId(classNamePrefix);\n      }\n\n    } else if (typeof value === 'object' || value === null) {\n      // TODO: @deprecated\n      // remove this in the future\n      // set new id if not exist\n      if (!(key in classesMap)) {\n        classesMap[key] = isDevMode()\n        ? toValidClassName(`y-${name}${key}-${createNextClassId(classNamePrefix)}`)\n        : createNextClassId(classNamePrefix);\n      }\n\n    } else {\n      continue;\n    }\n\n    if (!(key in selectorsMap)) {\n      selectorsMap[key] = `.${classesMap[key]}`;\n    }\n\n  }\n  let requireReplaceRefs = false;\n\n  for (let index = 0; index < keys.length; index++) {\n    const key = keys[index];\n    const value = styles[key];\n    const isArray = Array.isArray(value);\n    if (typeof value === 'function' || isArray) {\n      // lyl\n      if (key === '$global') {\n        content += arrayLylToString(value, ``);\n      } else {\n        const selector = selectorsMap[key];\n        content += arrayLylToString(value, selector);\n      }\n\n    } else if (key === '$keyframes') {\n      console.warn(`'$keyframes' is deprecated, use '$global' instead to create keyframes.`);\n      requireReplaceRefs = true;\n      content += keyframesToString(name, classesMap, value as KeyframesDeprecated, themeVariables);\n    } else if (typeof value === 'object' && value !== null) {\n      requireReplaceRefs = true;\n      const currentClassName = classesMap[key];\n      const style = styleToString(key, styleGroup.$name, value as StyleContainer, themeVariables, currentClassName);\n      content += style;\n      if (value === null) {\n        console.warn(`__`, {style});\n      }\n    } // ignore if value === null\n  }\n\n  if (requireReplaceRefs) {\n    return replaceRefs(content, classesMap);\n  }\n  return content;\n\n}\n\nfunction arrayLylToString(\n  value: StyleTemplateValue,\n  selector: string\n) {\n  let content = '';\n  if (Array.isArray(value)) {\n    for (let index = 0; index < value.length; index++) {\n      const item = value[index];\n      if (item) {\n        content += lylToString(item, selector);\n      }\n    }\n  } else {\n    return lylToString(value, selector);\n  }\n  return content;\n}\n\nfunction lylToString(\n  value: StyleTemplateValue,\n  selector: string\n) {\n  let content = '';\n  if (!value) return content;\n  if (value.length) { // if lyl is a function\n    content += (value as any)(selector);\n  } else {\n    const st = (value as (() => (StyleTemplate | null | undefined)[] | StyleTemplate | null | undefined))();\n    if (!st) return content;\n    if (Array.isArray(st)) {\n      content += st.reduce((acc, curr) => acc + (curr?.(selector) ?? ''), '')\n    } else {\n      content += st(selector);\n    }\n  }\n  return content;\n}\n\nfunction replaceRefs(str: string, data: Object) {\n  return str.replace(REF_REG_EXP, (_match, token) => {\n    const className = data[token];\n    if (className) {\n      return `.${data[token]}`;\n    } else {\n      return data[`@г.->-${token}`];\n    }\n  }\n  );\n}\n\n/**\n * {color:'red'} to .className{color: red}\n */\nfunction styleToString(\n  key: string | null,\n  $name: string | null | undefined,\n  ob: StyleContainer,\n  themeVariables: ThemeVariables,\n  currentKey: string,\n  parentKey?: string\n) {\n\n  let content = '';\n  let subContent = '';\n  let keyAndValue = '';\n  let newKey: string;\n  if (parentKey) {\n    if (currentKey.indexOf('&') !== -1) {\n      newKey = currentKey.replace(/&/g, parentKey);\n    } else if (currentKey.indexOf('@media') === 0) {\n      newKey = `${currentKey}`;\n    } else if (currentKey === '@global' || parentKey === '@global') {\n      newKey = currentKey;\n    } else {\n      newKey = `${parentKey} ${currentKey}`;\n    }\n  } else if (key === '@global') {\n    newKey = key;\n  } else {\n    newKey = `.${currentKey}`;\n  }\n  for (const styleKey in ob) {\n    if (ob.hasOwnProperty(styleKey)) {\n      const element = ob[styleKey];\n      // Omit style with value null\n      if (element != null) {\n        // Check if is Object literal\n        if (element.constructor === Object) {\n          subContent += styleToString(key, $name, element as StyleContainer, themeVariables, styleKey, newKey);\n        } else {\n          keyAndValue += convertToStyleValue(styleKey, element as string | string[], themeVariables);\n        }\n      }\n    }\n  }\n  if (keyAndValue) {\n    if (isDevMode()) {\n      let lin = '\\n\\n';\n      if ($name) {\n        lin += `/** Style Sheet name: ${$name} */\\n`;\n      }\n      lin += `/** Style Key: ${key} */\\n`;\n      content += `${lin}`;\n    }\n    if (newKey.indexOf('@media') === 0) {\n      content += `${newKey}`;\n      keyAndValue = `${parentKey}{${keyAndValue}}`;\n    } else if (parentKey && parentKey === '@global') {\n      content += `${currentKey}`;\n    } else {\n      content += `${newKey}`;\n    }\n    content += `{${keyAndValue}}`;\n  }\n  return content + subContent;\n}\n\nfunction convertToStyleValue(key: string, value: string | string[], themeVariables: ThemeVariables) {\n  const newStyleKey = converterToCssKeyAndStyleCache(key, themeVariables);\n  if (value.constructor === Array) {\n    let lin = '';\n    for (let index = 0; index < value.length; index++) {\n      lin += `${newStyleKey}:${value[index]};`;\n    }\n    return lin;\n  } else {\n    return `${newStyleKey}:${value};`;\n  }\n}\n\nfunction keyframesToString(styleName: string, keysMap: object, keyframes: KeyframesDeprecated, themeVariables: ThemeVariables) {\n  let content = '';\n\n  for (const name in keyframes) {\n    if (keyframes.hasOwnProperty(name)) {\n      const keyframe = keyframes[name];\n      // Sometimes the name of a class can be the same as the name of a keyframe,\n      // so we add a character to be different\n      const newUniqueName = `@г.->-${name}`;\n      // set new id if not exist\n      const newName = newUniqueName in keysMap\n      ? keysMap[newUniqueName]\n      : keysMap[newUniqueName] = isDevMode() ? toValidClassName(`${styleName}${name}-${createNextKeyframeId()}-v`) : createNextKeyframeId();\n      content += `@keyframes ${newName}{`;\n      for (const percent in keyframe) {\n        if (keyframe.hasOwnProperty(percent)) {\n          content += `${percent}%{`;\n          const styles = keyframe[percent];\n          for (const key in styles) {\n            if (styles.hasOwnProperty(key)) {\n              const val = styles[key];\n              content += convertToStyleValue(key, val as string | string[], themeVariables);\n            }\n          }\n          content += `}`;\n        }\n      }\n      content += `}`;\n    }\n  }\n  return content;\n}\n\nexport function converterToCssKeyAndStyle(str: string, themeVariables: ThemeVariables) {\n  const hyphenCase = toHyphenCase(str);\n  if (hyphenCase.indexOf(DirAlias.before) !== -1) {\n    return dirCache(str, hyphenCase, themeVariables, DirAlias.before);\n  } else if (hyphenCase.indexOf(DirAlias.after) !== -1) {\n    return dirCache(str, hyphenCase, themeVariables, DirAlias.after);\n  } else if (hyphenCase.indexOf(YPosition.above) !== -1) {\n    return YPositionCache(str, hyphenCase, themeVariables, YPosition.above, TOP);\n  } else if (hyphenCase.indexOf(YPosition.below) !== -1) {\n    return YPositionCache(str, hyphenCase, themeVariables, YPosition.below, BOTTOM);\n  }\n  return hyphenCase;\n}\n\nfunction toValidClassName(str: string) {\n  const s = str.replace(/^[0-9]|[^\\w\\-]/g, _ => {\n    return `_${_.charCodeAt(0)}`;\n  });\n  return s;\n}\n\n\nfunction toHyphenCase(str: string) {\n  return str.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`);\n}\n\nfunction converterToCssKeyAndStyleCache(str: string, themeVariables: ThemeVariables): string {\n  const map = STYLE_KEYS_MAP[themeVariables.direction];\n  return str in map\n  ? map[str]\n  : map[str] = converterToCssKeyAndStyle(str, themeVariables);\n}\n\nconst ignoreCSSKEY = {\n  'break-after': 'break-after',\n  'break-before': 'break-before',\n  'page-break-after': 'page-break-after',\n  'page-break-before': 'page-break-before'\n};\n\nconst STYLE_KEYS_MAP = {\n  rtl: {\n    ...ignoreCSSKEY\n  },\n  ltr: {\n    ...ignoreCSSKEY\n  }\n};\n\nconst BOTTOM = 'bottom';\nconst TOP = 'top';\n\nfunction dirCache(original, val: string, themeVariables: ThemeVariables, dirAlias: DirAlias) {\n  const map = STYLE_KEYS_MAP[themeVariables.direction];\n  // Replace in original, for do not repeat this again\n  return map[original] = val.replace(dirAlias, themeVariables.getDirection(dirAlias));\n}\n\nfunction YPositionCache(original, val: string, themeVariables: ThemeVariables, pos: YPosition, to: 'top' | 'bottom') {\n  const map = STYLE_KEYS_MAP[themeVariables.direction];\n  // Replace in original, for do not repeat this again\n  return map[original] = val.replace(pos, to);\n}\n\nexport function capitalizeFirstLetter(str: string) {\n  return str[0].toUpperCase() + str.slice(1);\n}\n\nfunction createNextClassId(classNamePrefix?: string) {\n  return classNamePrefix\n    ? `${classNamePrefix}${yClassID.next()}`\n    : yClassID.next();\n}\n\n/**\n * Create next class id from key\n * @private\n */\nexport const ck = memoize((_key: string) => {\n  return createNextClassId(CoreTheme.classNamePrefix);\n});\n\n/**\n * Create next selector id from key\n */\nexport const dot = memoize((key: string) => {\n  return `.${ck(key)}`;\n});\n\nfunction createNextKeyframeId() {\n  return `k${(nextKeyFrameId++).toString(36)}`;\n}\n\nexport interface ThemeRef extends Pick<LyTheme2, 'selectorsOf' | 'renderStyleSheet'> { }\n\nfunction sortNumberArray(a: number, b: number) {\n  return a - b;\n}\n\nfunction _selectors(currentStyles: any, theme: LyTheme2) {\n  const fn = (externalStyle: any) => {\n    if (currentStyles !== externalStyle) {\n      theme.renderStyleSheet(externalStyle);\n    }\n    return theme.selectorsOf(externalStyle);\n  };\n  if (theme.core._enableSelectorsFn) {\n    fn.selectorsOf = theme.selectorsOf.bind(theme);\n    fn.renderStyleSheet = theme.renderStyleSheet.bind(theme);\n  }\n  return fn;\n}\n\n","import { Injectable } from '@angular/core';\nimport { LyTheme2 } from '../theme/theme2.service';\n\n\nexport const LY_COMMON_STYLES = {\n  fill: (_className: string) => `${_className}{position:absolute;top:0;bottom:0;left:0;right:0;}`,\n  visuallyHidden: (_className: string) => `${_className}{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none;}`,\n  button: (_className: string) => `${_className}{-webkit-tap-highlight-color:transparent;background-color:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;margin:0;outline:none;box-sizing:border-box;position:relative;text-decoration-line:none;-webkit-text-decoration-line:none;}${_className}::-moz-focus-inner{border:0;}`\n};\n\nexport const LY_COMMON_STYLES_DEPRECATED = {\n  fill: {\n    position: 'absolute',\n    top: 0,\n    bottom: 0,\n    left: 0,\n    right: 0,\n  },\n  visuallyHidden: {\n    border: 0,\n    clip: 'rect(0 0 0 0)',\n    height: '1px',\n    margin: '-1px',\n    overflow: 'hidden',\n    padding: 0,\n    position: 'absolute',\n    width: '1px',\n    outline: 0,\n    '-webkit-appearance': 'none',\n    '-moz-appearance': 'none'\n  },\n  button: {\n    '-webkit-tap-highlight-color': 'transparent',\n    backgroundColor: `transparent`,\n    border: 0,\n    '-moz-appearance': 'none',\n    '-webkit-appearance': 'none',\n    margin: 0,\n    outline: 'none',\n    boxSizing: 'border-box',\n    position: 'relative',\n    textDecorationLine: 'none',\n    '-webkit-text-decoration-line': 'none',\n    '&::-moz-focus-inner': {\n      border: 0\n    }\n  }\n};\n\n@Injectable({ providedIn: 'root' })\nexport class LyCoreStyles {\n  classes = this.theme.addStyleSheet(LY_COMMON_STYLES_DEPRECATED);\n  constructor(private theme: LyTheme2) { }\n}\n","import { Injectable } from '@angular/core';\nimport { ThemeVariables } from '../theme/theme-config';\nimport { LY_COMMON_STYLES_DEPRECATED } from '../styles/core-styles';\nimport { LyTheme2 } from '../theme/theme2.service';\n\nexport const styles = (theme: ThemeVariables) => ({\n  rippleContainer: {\n    position: 'absolute',\n    width: '2px',\n    height: '2px',\n    background: 'currentColor',\n    opacity: '.2',\n    borderRadius: '50%',\n    transform: 'scale(0)',\n    transition: `opacity ${theme.ripple.transition.opacity},transform ${theme.ripple.transition.transform\n    }`,\n    pointerEvents: 'none'\n  },\n  container: {\n    ...LY_COMMON_STYLES_DEPRECATED.fill,\n    overflow: 'hidden',\n    pointerEvents: 'none',\n    borderRadius: 'inherit'\n  }\n});\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LyRippleService {\n  classes = this.theme.addStyleSheet(styles);\n  constructor(\n    private theme: LyTheme2\n  ) { }\n\n}\n","import { ElementRef, NgZone } from '@angular/core';\nimport { Constructor } from './constructor';\nimport { LyTheme2 } from '../theme/theme2.service';\nimport { Ripple, RippleConfig } from '../ripple/ripple';\nimport { styles } from '../ripple/ripple.service';\nimport { Platform } from '@angular/cdk/platform';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport interface RequireParams {\n  _theme: LyTheme2;\n  _ngZone: NgZone;\n  _platform: Platform;\n}\n\nexport interface CanDisableRipple {\n  _triggerElement: ElementRef;\n  _rippleContainer: ElementRef;\n  disableRipple: boolean;\n  _rippleConfig: RippleConfig;\n  _removeRippleEvents: () => void;\n}\n\nexport function mixinDisableRipple<T extends Constructor<RequireParams>>(base: T): Constructor<CanDisableRipple> & T {\n  return class extends base {\n    _rippleContainer: ElementRef;\n    _triggerElement: ElementRef;\n    _rippleConfig: RippleConfig = {};\n    private _ripple: Ripple | null;\n    private _disableRipple;\n\n    get disableRipple(): boolean { return this._disableRipple; }\n    set disableRipple(val: BooleanInput) {\n      if (this._platform.isBrowser && val !== this._disableRipple) {\n        const newVal = this._disableRipple = coerceBooleanProperty(val);\n        // remove previous ripple if exist\n        this._removeRippleEvents();\n        if (!newVal) {\n          // add ripple\n          Promise.resolve(null).then(() => {\n            const triggerElement: HTMLElement = this._triggerElement.nativeElement;\n            const rippleContainer = (this._rippleContainer && this._rippleContainer.nativeElement) || triggerElement;\n            this._ripple = new Ripple(this._theme.variables, this._ngZone, this._theme.addStyleSheet(styles), rippleContainer, this._platform, triggerElement);\n            this._ripple.setConfig(this._rippleConfig);\n          });\n        }\n      }\n    }\n\n    constructor(...args: any[]) {\n      super(...args);\n    }\n\n    _removeRippleEvents() {\n      if (this._platform.isBrowser) {\n        if (this._ripple) {\n          this._ripple.removeEvents();\n          this._ripple = null;\n        }\n      }\n    }\n  };\n}\n","import { Constructor } from './constructor';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport interface CanDisable {\n  disabled: boolean;\n  /**\n   * It is only used for common behavior, therefore, it should not be used for other purposes.\n   */\n  readonly _superHyperInternalPropertyDisabled: boolean;\n}\n\n/** @docs-private */\nexport type CanDisableCtor = Constructor<CanDisable>;\n\nexport function mixinDisabled<T extends Constructor>(base: T): CanDisableCtor & T {\n  return class extends base {\n    _superHyperInternalPropertyDisabled: boolean = false;\n\n    get disabled(): boolean { return this._superHyperInternalPropertyDisabled; }\n    set disabled(value: BooleanInput) { this._superHyperInternalPropertyDisabled = coerceBooleanProperty(value); }\n\n    constructor(...args: any[]) { super(...args); }\n  };\n}\n","import { Constructor } from './constructor';\nimport { Color } from '@alyle/ui/color';\n\nexport interface CanColor {\n  color: string | number | Color;\n  /**\n   * It is only used for common behavior, therefore, it should not be used for other purposes.\n   */\n  readonly _superHyperInternalPropertyColor: string | number | Color;\n}\n\nexport function mixinColor<T extends Constructor>(base: T): Constructor<CanColor> & T {\n  return class extends base {\n    _superHyperInternalPropertyColor: string | number | Color;\n\n    get color(): string | number | Color { return this._superHyperInternalPropertyColor; }\n    set color(val: string | number | Color) {\n      const defaultColor = val;\n      if (defaultColor !== this.color) {\n        this._superHyperInternalPropertyColor = defaultColor;\n      }\n    }\n\n    constructor(...args: any[]) {\n      super(...args);\n    }\n  };\n}\n","import { Constructor } from './constructor';\nimport { Color } from '@alyle/ui/color';\n\nexport interface CanBg {\n  bg: string | number | Color;\n  /**\n   * It is only used for common behavior, therefore, it should not be used for other purposes.\n   */\n  readonly _superHyperInternalPropertyBg: string | number | Color;\n}\n\nexport function mixinBg<T extends Constructor>(base: T): Constructor<CanBg> & T {\n  return class extends base {\n    _superHyperInternalPropertyBg: string | number | Color;\n\n    get bg(): string | number | Color { return this._superHyperInternalPropertyBg; }\n    set bg(val: string | number | Color) {\n      const defaultColor = val;\n      if (defaultColor !== this.bg) {\n        this._superHyperInternalPropertyBg = defaultColor;\n      }\n    }\n\n    constructor(...args: any[]) {\n      super(...args);\n    }\n  };\n}\n","import { Constructor } from './constructor';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport interface CanRaised {\n  raised: boolean;\n  /**\n   * It is only used for common behavior, therefore, it should not be used for other purposes.\n   */\n  readonly _superHyperInternalPropertyRaised: boolean;\n}\n\nexport function mixinRaised<T extends Constructor>(base: T): Constructor<CanRaised> & T {\n  return class extends base {\n    _superHyperInternalPropertyRaised: boolean;\n\n    get raised(): boolean { return this._superHyperInternalPropertyRaised; }\n    set raised(value: BooleanInput) { this._superHyperInternalPropertyRaised = coerceBooleanProperty(value); }\n\n    constructor(...args: any[]) { super(...args); }\n  };\n}\n","import { Constructor } from './constructor';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport interface CanOutlined {\n  outlined: boolean;\n  /**\n   * It is only used for common behavior, therefore, it should not be used for other purposes.\n   */\n  readonly _superHyperInternalPropertyOutlined: boolean;\n}\n\nexport function mixinOutlined<T extends Constructor>(base: T): Constructor<CanOutlined> & T {\n  return class extends base {\n    _superHyperInternalPropertyOutlined: boolean;\n\n    get outlined(): boolean { return this._superHyperInternalPropertyOutlined; }\n    set outlined(value: BooleanInput) { this._superHyperInternalPropertyOutlined = coerceBooleanProperty(value); }\n\n    constructor(...args: any[]) { super(...args); }\n  };\n}\n","import { Constructor } from './constructor';\n\nexport interface CanElevation {\n  elevation: number;\n  /**\n   * It is only used for common behavior, therefore, it should not be used for other purposes.\n   */\n  readonly _superHyperInternalPropertyElevation: number;\n}\n\nexport function mixinElevation<T extends Constructor>(base: T): Constructor<CanElevation> & T {\n  return class extends base {\n    _superHyperInternalPropertyElevation: number;\n\n    get elevation() { return this._superHyperInternalPropertyElevation; }\n    set elevation(value: any) { this._superHyperInternalPropertyElevation = value; }\n\n    constructor(...args: any[]) { super(...args); }\n  };\n}\n","import { Constructor } from './constructor';\nimport { Color } from '@alyle/ui/color';\n\nexport interface CanShadowColor {\n  shadowColor: string | number | Color;\n  /**\n   * It is only used for common behavior, therefore, it should not be used for other purposes.\n   */\n  readonly _superHyperInternalPropertyShadowColor: string | number | Color;\n}\n\nexport function mixinShadowColor<T extends Constructor>(base: T): Constructor<CanShadowColor> & T {\n  return class extends base {\n    _superHyperInternalPropertyShadowColor: string | number | Color;\n\n    get shadowColor(): string | number | Color { return this._superHyperInternalPropertyShadowColor; }\n    set shadowColor(value: string | number | Color) { this._superHyperInternalPropertyShadowColor = value; }\n\n    constructor(...args: any[]) { super(...args); }\n  };\n}\n","import { Constructor } from './constructor';\nimport { CanDisable } from './disabled';\n\nconst DEFAULT_TAB_INDEX = 0;\n\n/** @docs-private */\nexport interface HasTabIndex {\n  tabIndex: number;\n}\n\n/** @docs-private */\nexport type HasTabIndexCtor = Constructor<HasTabIndex>;\n\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(base: T): Constructor<HasTabIndex> & T {\n  return class extends base {\n    private _tabIndex: number = DEFAULT_TAB_INDEX;\n\n    get tabIndex(): number {\n      return this.disabled ? -1 : this._tabIndex;\n    }\n    set tabIndex(value: number) {\n      this._tabIndex = value != null ? value : DEFAULT_TAB_INDEX;\n    }\n\n    constructor(...args: any[]) {\n      super(...args);\n    }\n  };\n}\n","import { Directive, OnChanges, ElementRef, NgZone, OnDestroy, Input, OnInit, Renderer2 } from '@angular/core';\nimport { LyTheme2 } from './theme2.service';\nimport { mixinStyleUpdater, mixinBg, mixinRaised, mixinOutlined, mixinElevation, mixinShadowColor, mixinDisableRipple, mixinColor } from '../common/index';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\n\nconst DEFAULT_BG = 'paper';\n\nexport class LyPaperBase {\n  constructor(\n    public _theme: LyTheme2,\n    public _ngZone: NgZone,\n    public _platform: Platform\n  ) { }\n}\n\nexport const LyPaperMixinBase = mixinStyleUpdater(\nmixinBg(\n  mixinColor(\n    mixinRaised(\n      mixinOutlined(\n        mixinElevation(\n          mixinShadowColor(\n            mixinDisableRipple(LyPaperBase))))))));\n\n@Directive({\n  selector: `ly-paper, [ly-paper], [ly-text]`,\n  inputs: [\n    'bg',\n    'color',\n    'raised',\n    'outlined',\n    'elevation',\n    'shadowColor',\n    'disableRipple'\n  ],\n  standalone: false\n})\nexport class LyPaper extends LyPaperMixinBase implements OnChanges, OnInit, OnDestroy {\n  _hasText: boolean;\n\n  @Input('ly-text')\n  set hasText(val: BooleanInput) {\n    this._hasText = coerceBooleanProperty(val);\n  }\n  get hasText(): boolean {\n    return this._hasText;\n  }\n\n  constructor(\n    theme: LyTheme2,\n    ngZone: NgZone,\n    private _el: ElementRef,\n    private _renderer: Renderer2,\n    platform: Platform\n  ) {\n    super(theme, ngZone, platform);\n    this.setAutoContrast();\n    this._triggerElement = this._el;\n    this._rippleContainer = this._el;\n  }\n\n  ngOnChanges() {\n    this.updateStyle(this._el);\n  }\n\n  ngOnInit() {\n    if (!this.bg && !this.hasText) {\n      this.bg = DEFAULT_BG;\n      this.updateStyle(this._el);\n      this._renderer.addClass(this._el.nativeElement, this._theme.addSimpleStyle(\n        'lyPaper',\n        ({\n          display: 'block'\n        })\n        ));\n    }\n  }\n\n  ngOnDestroy() {\n    this._removeRippleEvents();\n  }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n  selector: '[withClass]',\n  standalone: false\n})\nexport class LyWithClass {\n\n  @Input()\n  set withClass(val: string) {\n    if (!val) {\n      throw new Error(`'${val}' is not valid className`);\n    }\n    this.el.nativeElement.classList.add(val);\n  }\n  constructor(\n    private el: ElementRef\n  ) { }\n}\n","import { Injectable, ElementRef, Renderer2, Optional } from '@angular/core';\nimport { LyTheme2, ThemeRef } from '../theme/theme2.service';\nimport { StyleTemplate } from '../parse';\nimport { TypeStyle, LyStyles, LyClasses, SelectorsFn } from '../theme/style';\nimport { parseMediaQueriesFromString, parseMediaQueryFromString, MediaQueryArray } from '../style-utils';\n\n@Injectable()\nexport class StyleRenderer {\n  private readonly _set: Set<string> = new Set<string>();\n  private _nEl: HTMLElement;\n\n  constructor(\n    private _theme: LyTheme2,\n    @Optional() _el: ElementRef,\n    @Optional() private _renderer: Renderer2\n  ) {\n    if (_el) {\n      this._nEl = _el.nativeElement;\n      this._set = new Set<string>();\n    }\n  }\n\n  /**\n   * Build multiple styles and render them in the DOM.\n   * @param styles Styles\n   * @param applyRootClass If `applyToRoot` is `true` and the root property is defined,\n   * it will automatically be added to the component.\n   *\n   * e.g.\n   *\n   * ```ts\n   * const STYLES = () => ({\n   *   root: lyl `{...}`, // this class will be added to the root component\n   *   item: lyl `{...}`\n   * })\n   * ```\n   *\n   * Also accepts the name of a class.\n   *\n   * e.g.\n   *\n   * ```ts\n   * renderSheet(STYLES, 'item')\n   * ```\n   */\n  renderSheet<T>(styles: T & LyStyles, applyRootClass?: boolean | keyof LyClasses<T>): LyClasses<T> {\n    const classes = this._theme.renderStyleSheet(styles);\n    if (applyRootClass === true && (classes as any).root) {\n      this.addClass((classes as any).root);\n      return classes;\n    }\n    if (applyRootClass) {\n      const customClass = (classes as any)[applyRootClass];\n      if (customClass) {\n        this.addClass(customClass);\n      }\n    }\n    return classes;\n  }\n\n  add(\n    style: (theme: any, ref: ThemeRef) => StyleTemplate\n  ): string;\n  add(\n    style: (theme: any, ref: ThemeRef) => StyleTemplate,\n    priority: number\n  ): string;\n  add(\n    style: (theme: any, ref: ThemeRef) => StyleTemplate,\n    oldClass: string\n  ): string;\n  add(\n    id: string,\n    style: (theme: any, ref: ThemeRef) => StyleTemplate\n  ): string;\n\n  add(\n    style: (theme: any, ref: ThemeRef) => StyleTemplate,\n    priority: number,\n    oldClass: string | null\n  ): string;\n  add(\n    id: string,\n    style: (theme: any, ref: ThemeRef) => StyleTemplate,\n    priority: number\n  ): string;\n  add(\n    id: string,\n    style: (theme: any, ref: ThemeRef) => StyleTemplate,\n    oldClass: string | null\n  ): string;\n\n  add(\n    id: string,\n    style: (theme: any, ref: ThemeRef) => StyleTemplate,\n    priority: number,\n    oldClass: string | null\n  ): string;\n\n  /**\n   * Render style and apply class name to host Component or Directive,\n   * require provide `StyleRenderer` in your Component.\n   * e.g.\n   * @Component({\n   *   ...\n   *   providers: [ StyleRenderer ]\n   * })\n   */\n  add(\n    id: string | ((theme: any, ref: ThemeRef) => StyleTemplate),\n    style?: ((theme: any, ref: ThemeRef) => StyleTemplate) | number | string,\n    priority?: number | string | undefined | null,\n    oldClass?: string | undefined | null\n  ): string {\n    const args = arguments;\n    /** Class name or keyframe name */\n    let className: string | undefined;\n    let len = args.length;\n\n    // clean\n    if (len === 4 && args[3] == null) {\n      len -= 1;\n    }\n    if (len === 3 && args[2] == null) {\n      len -= 1;\n    }\n\n    if (len === 1) {\n      className = this._theme._createStyleContent2(id,\n        null,\n        null,\n        TypeStyle.LylStyle);\n    } else if (len === 2) {\n      if (typeof id === 'string') {\n        className = this._theme._createStyleContent2(style as (theme: any, ref: ThemeRef) => StyleTemplate,\n          id,\n          null,\n          TypeStyle.LylStyle);\n      } else if (typeof style === 'number') {\n        className = this._theme._createStyleContent2(id as (theme: any, ref: ThemeRef) => StyleTemplate,\n          null,\n          style,\n          TypeStyle.LylStyle);\n      } else {\n        className = this._theme._createStyleContent2(id as (theme: any, ref: ThemeRef) => StyleTemplate,\n          null,\n          null,\n          TypeStyle.LylStyle);\n        oldClass = style as string;\n      }\n    } else if (len === 3) {\n      if (typeof id === 'string') {\n        if (typeof priority === 'number') {\n          // (id, style, priority)\n          className = this._theme._createStyleContent2(style as (theme: any, ref: ThemeRef) => StyleTemplate,\n          id,\n          priority,\n          TypeStyle.LylStyle);\n        } else {\n          // (id, style, oldClass)\n          className = this._theme._createStyleContent2(style as (theme: any, ref: ThemeRef) => StyleTemplate,\n          id,\n          null,\n          TypeStyle.LylStyle);\n          oldClass = priority;\n        }\n      } else {\n        // (style, priority, oldClass)\n        className = this._theme._createStyleContent2(id as (theme: any, ref: ThemeRef) => StyleTemplate,\n          null,\n          style as number,\n          TypeStyle.LylStyle);\n        oldClass = priority as string;\n      }\n    } else if (len === 4) {\n      className = this._theme._createStyleContent2(style as (theme: any, ref: ThemeRef) => StyleTemplate,\n        id as string,\n        priority as number,\n        TypeStyle.LylStyle);\n    }\n    if (this._nEl) {\n      return this.updateClass(className!, oldClass);\n    }\n    throw new Error(\n      `StyleRenderer is required on the Component!\\n`\n      + `Add provider for StyleRenderer in Component or Directive:\\n\\n`\n      + `e.g:\\n\\n`\n      + `@Component({\\n`\n      + `  providers: [ StyleRenderer ]\\n`\n      + `})\\n`\n    );\n  }\n\n  render(\n    style: (theme: any, ref: ThemeRef) => StyleTemplate\n  ): string;\n  render(\n    style: (theme: any, ref: ThemeRef) => StyleTemplate,\n    priority: number\n  ): string;\n  render(\n    id: string,\n    style: (theme: any, ref: ThemeRef) => StyleTemplate\n  ): string;\n  render(\n    id: string,\n    style: (theme: any, ref: ThemeRef) => StyleTemplate,\n    priority: number\n  ): string;\n\n  /**\n   * Only render style and return class name.\n   */\n  render(\n    styleOrId: string | ((theme: any, ref: ThemeRef) => StyleTemplate),\n    priorityOrStyle?: ((theme: any, ref: ThemeRef) => StyleTemplate) | number | string,\n    priority?: number | undefined | null\n  ): string {\n    if (typeof styleOrId === 'string') {\n      return this._theme._createStyleContent2(priorityOrStyle as (theme: any, ref: ThemeRef) => StyleTemplate,\n        styleOrId,\n        priority,\n        TypeStyle.LylStyle);\n    }\n    return this._theme._createStyleContent2(styleOrId,\n      null,\n      priority,\n      TypeStyle.LylStyle);\n  }\n\n  addClass(className: string) {\n    if (!this._set.has(className)) {\n      this._set.add(className);\n      this._renderer.addClass(this._nEl, className);\n    }\n  }\n\n  removeClass(className?: string | null) {\n    if (className && this._set.has(className)) {\n      this._set.delete(className);\n      this._renderer.removeClass(this._nEl, className);\n    }\n  }\n\n  removeClasses(rawClassVal?: string[] | null | undefined) {\n    if (rawClassVal) {\n      rawClassVal.forEach(klass =>\n        this.removeClass(klass)\n      );\n    }\n  }\n\n  toggleClass(className: string, enabled: boolean) {\n    if (enabled) {\n      this.addClass(className);\n    } else {\n      this.removeClass(className);\n    }\n  }\n\n  updateClass(newClassName: string, oldClassName: string | null | undefined) {\n    this.removeClass(oldClassName);\n    this.addClass(newClassName);\n    return newClassName;\n  }\n\n}\n\nexport type InputStyle<INPUT, C = any> = (val: Exclude<NonNullable<INPUT>, MediaQueryArray>, media: string | null, comp: C) =>\n  (\n    ((theme: any, ref: ThemeRef | SelectorsFn) => StyleTemplate) | null\n  );\n\n\n/**\n * Parameter decorator to be used for create Dynamic style together with `@Input`\n * @param style style\n * @param formatWith A function to format the value\n * @decorator\n */\nexport function Style2<INPUT = any, C = any>(\n  style: InputStyle<INPUT, C>,\n  formatWith?: ((value: INPUT) => any) | null,\n  priority?: number\n): (target: WithStyles, propertyKey: string, descriptor?: TypedPropertyDescriptor<INPUT> | undefined) => void {\n\n  return function(\n    target: WithStyles,\n    propertyKey: string,\n    descriptor?: TypedPropertyDescriptor<INPUT>\n  ) {\n    target.constructor[propertyKey] = style;\n    const _propertyKey = `_${propertyKey}Value`;\n    if (descriptor) {\n      const set = descriptor.set!;\n      descriptor.set = function(val: INPUT) {\n        const newValue = formatWith ? formatWith(val) : val;\n        createStyle(\n          this,\n          propertyKey,\n          newValue,\n          style,\n          priority\n        );\n        set.call(this, newValue);\n      };\n      if (!descriptor.get) {\n        descriptor.get = function() {\n          return this[_propertyKey];\n        };\n      }\n    } else {\n      Object.defineProperty(target, propertyKey, {\n        configurable: true,\n        enumerable: true,\n        set(val: INPUT) {\n          const newValue = formatWith ? formatWith(val) : val;\n          createStyle(\n            this,\n            propertyKey,\n            newValue,\n            style,\n            priority\n          );\n        },\n        get() {\n          return this[_propertyKey];\n        }\n      });\n    }\n  };\n}\n\n/**\n * Parameter decorator to be used for create Dynamic style together with `@Input`\n * @param style style\n * @decorator\n */\nexport function Style<INPUT = any, C = any>(\n  style: InputStyle<INPUT, C>\n): (target: WithStyles, propertyKey: string, descriptor?: TypedPropertyDescriptor<INPUT> | undefined) => void;\n\n/**\n * Parameter decorator to be used for create Dynamic style together with `@Input`\n * @param style style\n * @decorator\n */\nexport function Style<INPUT = any, C = any>(\n  style: InputStyle<INPUT, C>,\n  priority: number\n): (target: WithStyles, propertyKey: string, descriptor?: TypedPropertyDescriptor<INPUT> | undefined) => void;\n\n/**\n * Parameter decorator to be used for create Dynamic style together with `@Input`\n * @param style style\n * @decorator\n */\nexport function Style<INPUT = any, C = any>(\n  style: InputStyle<INPUT, C>,\n  priority: number,\n  formatWith?: ((value: INPUT) => any) | null,\n): (target: WithStyles, propertyKey: string, descriptor?: TypedPropertyDescriptor<INPUT> | undefined) => void;\n\n/**\n * Parameter decorator to be used for create Dynamic style together with `@Input`\n * @param style style\n * @decorator\n */\nexport function Style<INPUT = any, C = any>(\n  style: InputStyle<INPUT, C>,\n  formatWith: ((value: INPUT) => any) | null,\n  priority?: number,\n): (target: WithStyles, propertyKey: string, descriptor?: TypedPropertyDescriptor<INPUT> | undefined) => void;\n\n/**\n * Parameter decorator to be used for create Dynamic style together with `@Input`\n * @param style style\n * @param priority priority of style, default: 0\n * @decorator\n */\nexport function Style<INPUT = any, C = any>(\n  style: InputStyle<INPUT, C>,\n  formatWithOrPriority?: number | ((value: INPUT) => any) | null,\n  priorityOrFormatWith?: number | ((value: INPUT) => any) | null,\n): (target: WithStyles, propertyKey: string, descriptor?: TypedPropertyDescriptor<INPUT> | undefined) => void {\n  return function(\n    target: WithStyles,\n    propertyKey: string,\n    descriptor?: TypedPropertyDescriptor<INPUT>\n    ) {\n    let formatWith: (((value: INPUT) => any) | null) = null;\n    let priority: number | undefined = undefined;\n    if (typeof priorityOrFormatWith === 'function' || typeof formatWithOrPriority === 'number') {\n      formatWith = priorityOrFormatWith as (((value: INPUT) => any) | null);\n      priority = formatWithOrPriority as number;\n    } else {\n      formatWith = formatWithOrPriority as (((value: INPUT) => any) | null);\n      priority = priorityOrFormatWith as number;\n    }\n    target.constructor[propertyKey] = style;\n    const _propertyKey = `_${propertyKey}Value`;\n    if (descriptor) {\n      const set = descriptor.set!;\n      descriptor.set = function(val: INPUT) {\n        const newValue = formatWith ? formatWith(val) : val;\n        createStyle(\n          this,\n          propertyKey,\n          newValue,\n          style,\n          priority\n        );\n        set.call(this, val);\n      };\n      if (!descriptor.get) {\n        descriptor.get = function() {\n          return this[_propertyKey];\n        };\n      }\n    } else {\n      Object.defineProperty(target, propertyKey, {\n        configurable: true,\n        enumerable: true,\n        set(val: INPUT) {\n          createStyle(\n            this,\n            propertyKey,\n            val,\n            style,\n            priority\n          );\n        },\n        get() {\n          return this[_propertyKey];\n        }\n      });\n    }\n  };\n}\n\n/**\n * Create a responsive style for component with a key\n * @param c The component\n * @param propertyKeyConfig Style key\n * @param value value\n * @param style style template\n * @param priority priority of style\n */\nexport function createStyle<INPUT, C>(\n  c: WithStyles,\n  propertyKeyConfig: string | StylePropertyKey,\n  value: INPUT,\n  style: InputStyle<INPUT, C>,\n  priority?: number\n) {\n  const propertyKey = typeof propertyKeyConfig === 'string' ? propertyKeyConfig : propertyKeyConfig.key;\n  const _propertyKeyClass = `_${propertyKey}Class`;\n  const _propertyKey = `_${propertyKey}Value`;\n  const oldValue = c[_propertyKey];\n  c[_propertyKey] = value;\n  if (value === null || value === undefined || (value as any) === false) {\n    // Remove classes\n    const classesForRemove: null | string[] = c[_propertyKeyClass];\n    if (classesForRemove && classesForRemove.length) {\n      classesForRemove.forEach((className: string) =>\n        c.sRenderer.removeClass(className)\n      );\n    }\n  } else if (typeof value === 'string') {\n    if (oldValue !== value) {\n      c.sRenderer.removeClasses(c[_propertyKeyClass]);\n      const values = parseMediaQueriesFromString(value);\n      for (let index = 0; index < values.length; index++) {\n        const valAndMediaKey = values[index];\n        parseMediaQueryFromString(valAndMediaKey).forEach((_) => {\n          _renderStyle(c, propertyKeyConfig, _[0], _[1], style, priority);\n        });\n      }\n    }\n  } else if (typeof value === 'number' || (value as any) === true) {\n    if (oldValue !== value) {\n      c.sRenderer.removeClasses(c[_propertyKeyClass]);\n      _renderStyle(c, propertyKeyConfig, value as any, null, style, priority);\n    }\n  } else if (oldValue !== `${value}`) {\n    c.sRenderer.removeClasses(c[_propertyKeyClass]);\n    // Is array\n    for (let index = 0; index < (value as any).length; index++) {\n      const val = value[index];\n      if (typeof val === 'number' || val === null || val === undefined) {\n        _renderStyle(c, propertyKeyConfig, val, null, style, priority);\n      } else if (typeof val === 'string') {\n        parseMediaQueryFromString(val).forEach((_) => {\n          _renderStyle(c, propertyKeyConfig, _[0], _[1], style, priority);\n        });\n      }\n    }\n  }\n}\n\nexport function _renderStyle<INPUT, C>(\n  c: WithStyles,\n  propertyKeyConfig: string | StylePropertyKey,\n  val: string | number,\n  media: string | null,\n  style: InputStyle<INPUT, C>,\n  priority?: number\n) {\n  const propertyKey = typeof propertyKeyConfig === 'string' ? propertyKeyConfig : propertyKeyConfig.key;\n  const _propertyKeyClass = `_${propertyKey}Class`;\n  const styleTemplate = style(val as any, media, c as any);\n  const hasMedia = !!media;\n  if (styleTemplate == null) {\n    // Remove classes\n    const classesForRemove: null | string[] = c[_propertyKeyClass];\n    if (classesForRemove && classesForRemove.length) {\n      classesForRemove.forEach((className: string) =>\n        c.sRenderer.removeClass(className)\n      );\n      c[_propertyKeyClass] = [];\n    }\n  } else {\n    if (c[_propertyKeyClass] === undefined) {\n      c[_propertyKeyClass] = [];\n    }\n    c[_propertyKeyClass].push(c.sRenderer.add(\n      `${typeof propertyKeyConfig === 'string' ? getComponentName(c) : propertyKeyConfig.и}--${propertyKey}-${media ? val + '_' + media : val}`,\n      styleTemplate,\n      getComponentPriority(c, hasMedia ? 99999 : priority),\n      c[_propertyKeyClass]\n    ));\n  }\n}\n\nexport interface StylePropertyKey {\n  и: string;\n  key: string;\n}\n\nexport interface WithStyles {\n  /** Style Priority, default: 0 */\n  readonly $priority?: number;\n  readonly sRenderer: StyleRenderer;\n}\n\nfunction getComponentName(comp: any) {\n  return comp.constructor.и || comp.constructor.name || 'unnamed';\n}\nfunction getComponentPriority(comp: any, priority?: number) {\n  return priority ?? comp.$priority ?? (comp.constructor as any).$priority ?? 0;\n}\n","import { Directive, ElementRef, SimpleChanges, OnChanges, isDevMode } from '@angular/core';\n\nimport { StyleRenderer, Style, WithStyles, InputStyle, Style2 } from '../minimal/renderer-style';\nimport { ThemeVariables } from './theme-config';\nimport { coerceNumberProperty, NumberInput } from '@angular/cdk/coercion';\nimport { shadowBuilder } from '../shadow';\n\nconst STYLE_PRIORITY = -0.5;\n\n/**\n * @dynamic\n */\n@Directive({\n  selector: `[lyStyle],\n              [lyColor],\n              [lyBg],\n              [lyP], [lyPf], [lyPe], [lyPt], [lyPb], [lyPx], [lyPy],\n              [lyM], [lyMf], [lyMe], [lyMt], [lyMb], [lyMx], [lyMy],\n              [lySize],\n              [lyWidth], [lyMaxWidth], [lyMinWidth],\n              [lyHeight], [lyMaxHeight], [lyMinHeight],\n              [lyDisplay],\n              [lyFlex],\n              [lyFlexBasis],\n              [lyFlexDirection],\n              [lyFlexGrow],\n              [lyFlexSelf],\n              [lyFlexShrink],\n              [lyFlexWrap],\n              [lyJustifyContent],\n              [lyJustifyItems],\n              [lyJustifySelf],\n              [lyAlignContent],\n              [lyAlignItems],\n              [lyOrder]`,\n  providers: [\n    StyleRenderer\n  ],\n  inputs: [\n    'lyStyle',\n    'color: lyColor',\n    'bg: lyBg',\n    'p: lyP', 'pf: lyPf', 'pe: lyPe', 'pt: lyPt', 'pb: lyPb', 'px: lyPx', 'py: lyPy',\n    'm: lyM', 'mf: lyMf', 'me: lyMe', 'mt: lyMt', 'mb: lyMb', 'mx: lyMx', 'my: lyMy',\n    'size: lySize',\n    'width: lyWidth', 'maxWidth: lyMaxWidth', 'minWidth: lyMinWidth',\n    'height: lyHeight', 'maxHeight: lyMaxHeight', 'minHeight: lyMinHeight',\n    'display: lyDisplay',\n    'flex: lyFlex',\n    'flexBasis: lyFlexBasis',\n    'flexDirection: lyFlexDirection',\n    'flexGrow: lyFlexGrow',\n    'flexSelf: lyFlexSelf',\n    'flexShrink: lyFlexShrink',\n    'flexWrap: lyFlexWrap',\n    'justifyContent: lyJustifyContent',\n    'justifyItems: lyJustifyItems',\n    'justifySelf: lyJustifySelf',\n    'alignContent: lyAlignContent',\n    'alignItems: lyAlignItems',\n    'order: lyOrder',\n    'elevation: lyElevation'\n  ],\n  standalone: false\n})\nexport class LyStyle implements WithStyles {\n\n  set size(value: string | number | null) {\n    this.width = value;\n    this.height = value;\n  }\n\n  constructor(\n    readonly sRenderer: StyleRenderer\n  ) { }\n  /** @docs-private */\n  static readonly и = 'LyStyle';\n  static readonly $priority = STYLE_PRIORITY;\n\n  static readonly with: InputStyle<string | number | null>;\n\n  @Style<string | null>(\n    (value) => (theme: ThemeVariables) => (\n      (_className: string) => `${_className}{color:${theme.colorOf(value)};}`\n    )\n  ) color: string | number | null;\n\n  @Style<string | null>(\n    (value) => (theme: ThemeVariables) => (\n      (_className: string) => `${_className}{background:${theme.colorOf(value)};}`\n    )\n  ) bg: string | number | null;\n\n  @Style<string | number | null>(\n    (value, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{padding:${to8Px(value)};}}`\n    )\n  ) p: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints, after }) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{padding-${after}:${to8Px(val)};}}`\n    )\n  ) pf: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints, before }) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{padding-${before}:${to8Px(val)};}}`\n    )\n  ) pe: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{padding-top:${to8Px(val)};}}`\n    )\n  ) pt: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{padding-bottom:${to8Px(val)};}}`\n    )\n  ) pb: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{padding:0 ${to8Px(val)};}}`\n    )\n  ) px: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{padding:${to8Px(val)} 0;}}`\n    )\n  ) py: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{margin:${to8Px(val)};}}`\n    )\n  ) m: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints, after }) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{margin-${after}:${to8Px(val)};}}`\n    )\n  ) mf: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints, before }) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{margin-${before}:${to8Px(val)};}}`\n    )\n  ) me: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{margin-top:${to8Px(val)};}}`\n    )\n  ) mt: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{margin-bottom:${to8Px(val)};}}`\n    )\n  ) mb: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{margin:0 ${to8Px(val)};}}`\n    )\n  ) mx: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{margin:${to8Px(val)} 0;}}`\n    )\n  ) my: string | number | null;\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{width:${transform(val)};}}`\n    )\n  ) width: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{max-width:${transform(val)};}}`\n    )\n  ) maxWidth: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{min-width:${transform(val)};}}`\n    )\n  ) minWidth: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{height:${transform(val)};}}`\n    )\n  ) height: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{max-height:${transform(val)};}}`\n    )\n  ) maxHeight: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{min-height:${transform(val)};}}`\n    )\n  ) minHeight: string | number | null;\n\n  @Style<string | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{display:${val};}}`\n    )\n  ) display: string | null;\n\n\n  // Flexbox\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{flex:${val};}}`\n    )\n  ) flex: string | number | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{flex-basis:${val};}}`\n    )\n  ) flexBasis: string | number | null;\n\n  @Style<string | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{flex-direction:${val};}}`\n    )\n  ) flexDirection: string | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{flex-grow:${val};}}`\n    )\n  ) flexGrow: string | number | null;\n\n  @Style<string | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{flex-self:${val};}}`\n    )\n  ) flexSelf: string | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{flex-shrink:${val};}}`\n    )\n  ) flexShrink: string | number | null;\n\n  @Style<string | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{flex-wrap:${val};}}`\n    )\n  ) flexWrap: string | null;\n\n  @Style<string | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{justify-content:${val};}}`\n    )\n  ) justifyContent: string | null;\n\n  @Style<string | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{justify-items:${val};}}`\n    )\n  ) justifyItems: string | null;\n\n  @Style<string | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{justify-self:${val};}}`\n    )\n  ) justifySelf: string | null;\n\n  @Style<string | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{align-content:${val};}}`\n    )\n  ) alignContent: string | null;\n\n  @Style<string | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{align-items:${val};}}`\n    )\n  ) alignItems: string | null;\n\n  @Style<string | number | null>(\n    (val, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && breakpoints[ media ]) || 'all'}{${_className}{order:${val};}}`\n    )\n  ) order: string | number | null;\n\n  @Style<string | number | null>(\n    (value, media) => ({ breakpoints }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && (breakpoints[ media ] || media)) || 'all'}{${_className}{${value};}}`\n    )\n  )\n  lyStyle: string | null;\n\n  @Style2<string | number>(\n    (value: number, media) => ({ breakpoints, shadow }: ThemeVariables) => (\n      (_className: string) => `@media ${(media && (breakpoints[ media ] || media)) || 'all'}{${_className}{box-shadow:${shadowBuilder(value, shadow)};}}`\n    ),\n    coerceNumberProperty\n  )\n  elevation: NumberInput;\n\n}\n\n/**\n * @dynamic\n * @deprecated\n * Spacing\n * [p], [pf], [pe], [pt], [pb], [px], [py],\n * [m], [mf], [me], [mt], [mb], [mx], [my],\n * Sizing\n * [size],\n * [width], [maxWidth], [minWidth],\n * [height], [maxHeight], [minHeight],\n * Others\n * [lyStyle]\n */\n@Directive({\n  selector: `\n              [p], [pf], [pe], [pt], [pb], [px], [py],\n              [m], [mf], [me], [mt], [mb], [mx], [my],\n              [size]:not([ly-button]),\n              [width]:not(svg):not(canvas):not(embed):not(iframe):not(img):not(input):not(object):not(video),\n              [maxWidth], [minWidth],\n              [height]:not(svg):not(canvas):not(embed):not(iframe):not(img):not(input):not(object):not(video),\n              [maxHeight], [minHeight],\n              [display],\n              [flex],\n              [flexBasis],\n              [flexDirection],\n              [flexGrow],\n              [flexSelf],\n              [flexShrink],\n              [flexWrap],\n              [justifyContent],\n              [justifyItems],\n              [justifySelf],\n              [alignContent],\n              [alignItems],\n              [order]`,\n  providers: [\n    StyleRenderer\n  ],\n  inputs: [\n    'p', 'pf', 'pe', 'pt', 'pb', 'px', 'py',\n    'm', 'mf', 'me', 'mt', 'mb', 'mx', 'my',\n    'size',\n    'width', 'maxWidth', 'minWidth',\n    'height', 'maxHeight', 'minHeight',\n    'display',\n    'flex',\n    'flexBasis',\n    'flexDirection',\n    'flexGrow',\n    'flexSelf',\n    'flexShrink',\n    'flexWrap',\n    'justifyContent',\n    'justifyItems',\n    'justifySelf',\n    'alignContent',\n    'alignItems',\n    'order',\n  ],\n  standalone: false\n})\nexport class LyStyleDeprecated extends LyStyle implements OnChanges {\n  constructor(\n    sRenderer: StyleRenderer,\n    private _el: ElementRef\n  ) {\n    super(sRenderer);\n  }\n  ngOnChanges(changes: SimpleChanges) {\n    if (isDevMode()) {\n      for (const key in changes) {\n        if (changes.hasOwnProperty(key)) {\n          const message = `[${key}] is deprecated, use [ly${key.charAt(0).toUpperCase() + key.slice(1)}] instead.`;\n          console.warn({\n            message,\n            element: this._el.nativeElement\n          });\n        }\n      }\n    }\n  }\n}\n\n/**\n * Convert to px if the value is a number, otherwise leave it as is\n * @docs-private\n */\nfunction to8Px(val: number | string) {\n  return typeof val === 'number'\n    ? `${val * 8}px`\n    : val.includes(' ')\n      ? val.split(' ').map(_ => strTo8Px(_)).join(' ')\n      : strTo8Px(val);\n}\n\nfunction strTo8Px(val: string) {\n  const num = +val;\n  return isNaN(num) ? val : `${num * 8}px`;\n}\n\nfunction strToPx(val: string) {\n  const num = +val;\n  return isNaN(num) ? val : `${num}px`;\n}\n\nfunction transform(value: number | string) {\n  return Number(value) <= 1\n    ? `${value as number * 100}%`\n    : typeof value === 'number'\n      ? `${value}px`\n      : value.includes(' ')\n        ? value.split(' ').map(_ => strToPx(_)).join(' ')\n        : strToPx(value);\n}\n","import { NgModule } from '@angular/core';\n\nimport { LyPaper } from './paper';\nimport { LyWithClass } from './with-class.directive';\nimport { LyStyle, LyStyleDeprecated } from './style.directive';\n\n@NgModule({\n  declarations: [LyStyle, LyWithClass, LyPaper],\n  exports: [LyStyle, LyWithClass, LyPaper]\n})\nexport class LyCommonModule { }\n\n/**\n * @deprecated\n */\n@NgModule({\n  exports: [LyStyleDeprecated],\n  declarations: [LyStyleDeprecated]\n})\nexport class LyStyleDeprecatedModule { }\n\n","export function toBoolean(value: any) {\n  return value != null && `${value}` !== 'false';\n}\n","export function defaultEntry(value: string | number, defaultValue: string | number) {\n  return value !== '' && value !== void 0 ? value : defaultValue;\n}\n","/**\n * @experimental\n * Element to move, time in ms to animate\n */\nexport function scrollTo(element: HTMLElement, duration: number) {\n  let e = document.documentElement;\n  if (e.scrollTop === 0) {\n    const t = e.scrollTop;\n    ++e.scrollTop;\n    e = t + 1 === e.scrollTop-- ? e : document.body;\n  }\n  scrollToFromTo(e, e.scrollTop, element, duration);\n}\n\n// Element to move, element or px from, element or px to, time in ms to animate\nfunction scrollToFromTo(element: HTMLElement, from: any, to: number | HTMLElement, duration: number) {\n  if (duration <= 0) { return; }\n  if (typeof from === 'object') { from = from.offsetTop; }\n  if (typeof to === 'object') { to = to.offsetTop; }\n\n  createScrollWithAnimation(element, from, to, 0, 1 / duration, 20, easeOutCuaic);\n}\n\n/**\n * @experimental\n */\nexport function scrollWithAnimation(\n  element: HTMLElement,\n  to: number,\n  duration: number,\n  p?: 'x' | 'y',\n  motion?: (t: number) => number\n) {\n  const _motion = motion || easeOutCuaic;\n  const { scrollLeft } = element;\n  return createScrollWithAnimation(element, scrollLeft, to, 0, 1 / duration, 20, _motion, p);\n}\n\nfunction createScrollWithAnimation(\n  element: HTMLElement,\n  xFrom: number,\n  xTo: number,\n  t01: number,\n  speed: number,\n  step: number,\n  motion: (t: number) => number,\n  p?: 'x' | 'y'\n) {\n  const scrollT = p === 'y' ? 'scrollTop' : 'scrollLeft';\n  if (t01 < 0 || t01 > 1 || speed <= 0) {\n    element[ scrollT ] = xTo;\n    return;\n  }\n  element[ scrollT ] = xFrom - (xFrom - xTo) * motion(t01);\n  t01 += speed * step;\n\n  setTimeout(() => {\n    createScrollWithAnimation(element, xFrom, xTo, t01, speed, step, motion, p);\n  }, step);\n}\n\n\n// function linearTween(t: number) {\n//   return t;\n// }\n\n// function easeInQuad(t: number) {\n//   return t * t;\n// }\n\n// function easeOutQuad(t: number) {\n//   return -t * (t - 2);\n// }\n\n// function easeInOutQuad(t: number) {\n//   t /= 0.5;\n//   if (t < 1) {return t * t / 2; }\n//   t--;\n//   return (t * (t - 2) - 1) / 2;\n// }\n\n// function easeInCuaic(t: number) {\n//   return t * t * t;\n// }\n\nfunction easeOutCuaic(t: number) {\n  t--;\n  return t * t * t + 1;\n}\n\n// function easeInOutCuaic(t: number) {\n//   t /= 0.5;\n//   if (t < 1) {return t * t * t / 2; }\n//   t -= 2;\n//   return (t * t * t + 2) / 2;\n// }\n\n// function easeInQuart(t: number) {\n//   return t * t * t * t;\n// }\n\n// function easeOutQuart(t: number) {\n//   t--;\n//   return -(t * t * t * t - 1);\n// }\n\n// function easeInOutQuart(t: number) {\n//   t /= 0.5;\n//   if (t < 1) {return 0.5 * t * t * t * t; }\n//   t -= 2;\n//   return -(t * t * t * t - 2) / 2;\n// }\n\n// function easeInQuint(t: number) {\n//   return t * t * t * t * t;\n// }\n\n// function easeOutQuint(t: number) {\n//   t--;\n//   return t * t * t * t * t + 1;\n// }\n\n// function easeInOutQuint(t: number) {\n//   t /= 0.5;\n//   if (t < 1) {return t * t * t * t * t / 2; }\n//   t -= 2;\n//   return (t * t * t * t * t + 2) / 2;\n// }\n\n// function easeInSine(t: number) {\n//   return -Math.cos(t / (Math.PI / 2)) + 1;\n// }\n\n// function easeOutSine(t: number) {\n//   return Math.sin(t / (Math.PI / 2));\n// }\n\n// function easeInOutSine(t: number) {\n//   return -(Math.cos(Math.PI * t) - 1) / 2;\n// }\n\n// function easeInExpo(t: number) {\n//   return Math.pow(2, 10 * (t - 1));\n// }\n\n// function easeOutExpo(t: number) {\n//   return -Math.pow(2, -10 * t) + 1;\n// }\n\n// function easeInOutExpo(t: number) {\n//   t /= 0.5;\n//   if (t < 1) {return Math.pow(2, 10 * (t - 1)) / 2; }\n//   t--;\n//   return (-Math.pow(2, -10 * t) + 2) / 2;\n// }\n\n// function easeInCirc(t: number) {\n//   return -Math.sqrt(1 - t * t) - 1;\n// }\n\n// function easeOutCirc(t: number) {\n//   t--;\n//   return Math.sqrt(1 - t * t);\n// }\n\n// function easeInOutCirc(t: number) {\n//   t /= 0.5;\n//   if (t < 1) {return -(Math.sqrt(1 - t * t) - 1) / 2; }\n//   t -= 2;\n//   return (Math.sqrt(1 - t * t) + 1) / 2;\n// }\n","export function toNumber(value: any): number;\nexport function toNumber<D>(value: any, _default: D): number | D;\nexport function toNumber(val: any, _default?: number) {\n\n  const num = typeof val === 'number'\n  ? val\n  : typeof val === 'string' && val.length\n    ? +val\n    : _default;\n  return isNaN(num as any) ? (_default === void 0 ? 0 : _default) : num;\n}\n","import { OnDestroy } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction componentDestroyed(component: OnDestroy): Observable<void> {\n    const modifiedComponent = component as {\n      __componentDestroyed$?: Observable<void>\n      ngOnDestroy?(): void\n    };\n    if (modifiedComponent.__componentDestroyed$) {\n        return modifiedComponent.__componentDestroyed$;\n    }\n    const oldNgOnDestroy = component.ngOnDestroy;\n    const stop$ = new ReplaySubject<void>();\n    modifiedComponent.ngOnDestroy = function() {\n        if (oldNgOnDestroy) {\n          oldNgOnDestroy.apply(component);\n        }\n        stop$.next();\n        stop$.complete();\n    };\n    return modifiedComponent.__componentDestroyed$ = stop$.asObservable();\n}\n\nexport function untilComponentDestroyed<T>(component: OnDestroy): (source: Observable<T>) => Observable<T> {\n    return (source: Observable<T>) => source.pipe(takeUntil(componentDestroyed(component as OnDestroy)));\n}\n","import { Injectable, ElementRef, Renderer2 } from '@angular/core';\n\n\n@Injectable()\nexport class LyHostClass {\n  private readonly _set = new Set<string>();\n  private _nEl: HTMLElement;\n\n  constructor(\n    _el: ElementRef,\n    private _renderer: Renderer2\n  ) {\n    this._nEl = _el.nativeElement;\n    console.log(`LyHostClass: Deprecated use instead StyleRenderer`);\n  }\n\n  add(className: string) {\n    if (!this._set.has(className)) {\n      this._set.add(className);\n      this._renderer.addClass(this._nEl, className);\n    }\n  }\n\n  remove(className?: string | null) {\n    if (className && this._set.has(className)) {\n      this._set.delete(className);\n      this._renderer.removeClass(this._nEl, className);\n    }\n  }\n\n  toggle(className: string, enabled: boolean) {\n    if (enabled) {\n      this.add(className);\n    } else {\n      this.remove(className);\n    }\n  }\n\n  update(newClassName: string, oldClassName: string | null | undefined) {\n    this.remove(oldClassName);\n    this.add(newClassName);\n    return newClassName;\n  }\n}\n\n","import { ElementRef, NgZone, Injectable, OnDestroy } from '@angular/core';\nimport { supportsPassiveEventListeners } from '../platform/index';\nimport { Observable, Subject } from 'rxjs';\nimport { getNativeElement } from '../minimal/common';\nimport { Platform } from '@angular/cdk/platform';\n\nexport enum FocusStatus {\n  /**mouse and/or touch*/\n  DEFAULT = 'default',\n  /** keyboard and/or program*/\n  KEYBOARD = 'keyboard',\n}\n\nexport interface FocusStateInfo {\n  unlisten: () => void;\n  subject: Subject<FocusState>;\n}\n\nexport type FocusState = 'keyboard' | 'mouse' | null;\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LyFocusState implements OnDestroy {\n  private _elementMap = new Map<HTMLElement, FocusStateInfo>();\n  private _currentEvent: FocusState;\n  private _removeGlobalListeners: () => void;\n  private _count = 0;\n\n  constructor(\n    private _ngZone: NgZone,\n    private _platform: Platform\n  ) { }\n\n  listen(element: HTMLElement | ElementRef<HTMLElement>, keyElement?: HTMLElement | ElementRef<HTMLElement>): Observable<FocusState> | null {\n    if (!this._platform.isBrowser) {\n      // return null if it is not browser platform\n      return null;\n    }\n\n    const nativeElement = getNativeElement(element);\n    const key = keyElement && getNativeElement(keyElement) || nativeElement;\n\n    if (this._elementMap.has(key)) {\n      return this._elementMap.get(key)!.subject.asObservable();\n    }\n\n    const focusState: FocusStateInfo = {\n      unlisten: null as any,\n      subject: new Subject<FocusState>()\n    };\n    this._incrementCount();\n    const focusListener = (event: FocusEvent) => this._on(event, focusState.subject);\n    const blurListener = (event: FocusEvent) => this._on(event, focusState.subject);\n\n    focusState.unlisten = () => {\n      nativeElement.removeEventListener('focus', focusListener, true);\n      nativeElement.removeEventListener('blur', blurListener, true);\n    };\n\n    this._elementMap.set(key, focusState);\n\n    this._ngZone.runOutsideAngular(() => {\n      nativeElement.addEventListener('focus', focusListener, true);\n      nativeElement.addEventListener('blur', blurListener, true);\n    });\n    return focusState.subject.asObservable();\n  }\n\n  focusElement(element: HTMLElement | ElementRef<HTMLElement>, origin: FocusState, options: FocusOptions) {\n    const nativeElement = getNativeElement(element);\n\n    this._currentEvent = origin;\n\n    if (typeof nativeElement.focus === 'function') {\n      nativeElement.focus(options);\n    }\n  }\n\n  unlisten(element: HTMLElement | ElementRef<HTMLElement>) {\n    if (!this._platform.isBrowser) {\n      return;\n    }\n    const el = getNativeElement(element);\n    const focusStateInfo = this._elementMap.get(el);\n    if (focusStateInfo) {\n      focusStateInfo.unlisten();\n      this._elementMap.delete(el);\n      this._decrementCount();\n    }\n  }\n\n  private _on(event: FocusEvent, subject: Subject<FocusState>) {\n    let by: FocusState = null;\n    if (event.type === 'focus') {\n      by = this._currentEvent || 'keyboard';\n    }\n    this._ngZone.run(() => subject.next(by));\n  }\n\n  private _addGlobalListeners() {\n    if (!this._platform.isBrowser) {\n      return;\n    }\n\n    const eventListenerOptions = supportsPassiveEventListeners()\n    ? {\n      passive: true,\n      capture: true\n    } : false;\n\n    const documentKeydownListener = () => this._ngZone.runOutsideAngular(() => this._currentEvent = 'keyboard');\n    const documentMousedownListener = () => this._ngZone.runOutsideAngular(() => this._currentEvent = 'mouse');\n\n    this._ngZone.runOutsideAngular(() => {\n      document.addEventListener('keydown', documentKeydownListener, eventListenerOptions);\n      document.addEventListener('mousedown', documentMousedownListener, eventListenerOptions);\n    });\n    this._removeGlobalListeners = () => {\n      document.removeEventListener('keydown', documentKeydownListener, eventListenerOptions);\n      document.removeEventListener('mousedown', documentMousedownListener, eventListenerOptions);\n    };\n  }\n\n  private _incrementCount() {\n    if (++this._count === 1) {\n      this._addGlobalListeners();\n    }\n  }\n\n  private _decrementCount() {\n    if (!--this._count) {\n      this._removeGlobalListeners();\n    }\n  }\n\n  ngOnDestroy() {\n    this._elementMap.forEach((_, element) => this.unlisten(element));\n  }\n}\n","export const AUI_VERSION = '19.0.0';\nexport const AUI_LAST_UPDATE = '2025-06-18T19:43:54.483Z';\n","import { Injectable, InjectionToken, Optional, Inject } from '@angular/core';\nimport { HammerGestureConfig } from '@angular/platform-browser';\nimport { HammerOptions, HammerInstance } from './gesture-annotations';\n\nexport const LY_HAMMER_OPTIONS = new InjectionToken<HammerOptions>('LY_HAMMER_OPTIONS');\n\nconst HAMMER_GESTURES_EVENTS = [\n  'slide',\n  'slidestart',\n  'slideend',\n  'slideright',\n  'slideleft',\n  'slidecancel'\n];\n\n/**\n * Fake HammerInstance that is used when a Hammer instance is requested when HammerJS has not\n * been loaded on the page.\n */\nconst noopHammerInstance: HammerInstance = {\n  on: () => {},\n  off: () => {},\n};\n\n@Injectable()\nexport class LyHammerGestureConfig extends HammerGestureConfig {\n  events: string[] = HAMMER_GESTURES_EVENTS;\n  constructor(\n    @Optional() @Inject(LY_HAMMER_OPTIONS) private _hammerOptions: HammerOptions\n  ) {\n    super();\n  }\n  buildHammer(element: HTMLElement): HammerInstance {\n    const hammer = typeof window !== 'undefined' ? (window as any).Hammer : null;\n\n    if (!hammer) {\n      return noopHammerInstance;\n    }\n\n    const mc = new hammer(element, this._hammerOptions || {});\n\n    const pan = new hammer.Pan();\n    const swipe = new hammer.Swipe();\n    const slide = this._createRecognizer(pan, {event: 'slide', threshold: 0}, swipe);\n\n    pan.recognizeWith(swipe);\n\n    // Add customized gestures to Hammer manager\n    mc.add([swipe, pan, slide]);\n    return mc;\n  }\n\n  /** Creates a new recognizer, without affecting the default recognizers of HammerJS */\n  private _createRecognizer(base: any, options: any, ...inheritances: any[]) {\n    const recognizer = new (base.constructor)(options);\n\n    inheritances.push(base);\n    inheritances.forEach(item => recognizer.recognizeWith(item));\n\n    return recognizer;\n  }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { LyTheme2 } from './theme/theme2.service';\nimport { LY_THEME_NAME } from './theme/theme-config';\nimport { StyleRenderer } from './minimal/renderer-style';\n\n@NgModule()\nexport class LyThemeModule {\n  static setTheme(themeName: string): ModuleWithProviders<LyThemeModule> {\n    return {\n      ngModule: LyThemeModule,\n      providers: [\n        [ LyTheme2 ],\n        [ StyleRenderer ],\n        { provide: LY_THEME_NAME, useValue: themeName }\n      ]\n    };\n  }\n}\n","export class Undefined {\n  constructor() { }\n}\n\nexport const UndefinedValue = new Undefined();\n","import { ComponentRef } from '@angular/core';\n\n// @Injectable()\nexport class LyOverlayRef<T = any> {\n  containerElement: HTMLDivElement;\n  componentRef: ComponentRef<T> | null;\n\n  /** Function that will be called on scroll or resize event */\n  onResizeScroll: (() => void) | null;\n\n  /** Detaches a view from dirty checking again of ApplicationRef. */\n  readonly detach: () => void;\n\n  /** Remove element of DOM */\n  remove: () => void;\n\n  /** Detach & remove */\n  destroy: () => void;\n}\n","import { Inject, Injectable, NgZone } from '@angular/core';\nimport { LyTheme2 } from '../theme/theme2.service';\nimport { ThemeVariables } from '../theme/theme-config';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { OverlayReference } from './overlay-reference';\n\n\nconst styles = (theme: ThemeVariables) => {\n  return {\n    overlay: (_className: string) => `${_className}{position:fixed;top:0;left:0;right:0;bottom:0;z-index:${theme.zIndex.overlay};pointer-events:none;}`\n  };\n};\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LyOverlayContainer {\n  private _classes = this.theme.addStyleSheet(styles);\n  protected readonly _containerElement: HTMLElement;\n  private _items = new Set<any>();\n  private _overlays = new Set<OverlayReference>();\n  protected _document: Document;\n  protected _isAttached: boolean;\n  get overlayLen() {\n    return this._items.size;\n  }\n  private _isActiveOverlayContainer: boolean;\n  constructor(\n    private theme: LyTheme2,\n    private _platform: Platform,\n    private _ngZone: NgZone,\n    @Inject(DOCUMENT) document: any,\n  ) {\n    this._document = document;\n    if (this._platform.isBrowser) {\n      const container = document.createElement('ly-overlay-container');\n      document.body.appendChild(container);\n      this._containerElement = container;\n    }\n  }\n  get containerElement(): HTMLElement {\n    return this._containerElement;\n  }\n\n  addOverlay(overlayRef: OverlayReference) {\n    this._overlays.add(overlayRef);\n    if (!this._isAttached) {\n      this._ngZone.runOutsideAngular(() =>\n        this._document.body.addEventListener('keydown', this._keydownListener),\n      );\n      this._isAttached = true;\n    }\n  }\n\n  removeOverlay(overlayRef: OverlayReference) {\n    this._overlays.delete(overlayRef);\n    if (!this._overlays.size && this._isAttached) {\n      this._document.body.removeEventListener('keydown', this._keydownListener);\n      this._isAttached = false;\n    }\n  }\n\n  /**\n   * Add instance\n   * @ignore\n   */\n  _addElement(item: Element) {\n    this._items.add(item);\n    this.containerElement.appendChild(item);\n    this._update();\n  }\n\n    /**\n   * Remove instance\n   * @ignore\n   */\n  _removeElement(item: Element) {\n    this.containerElement.removeChild(item);\n    this._items.delete(item);\n    this._update();\n  }\n\n  /**\n   * Update styles for overlay container\n   * @ignore\n   */\n  private _update() {\n    if (this._items.size) {\n      if (!this._isActiveOverlayContainer) {\n        this._isActiveOverlayContainer = true;\n        this._containerElement.classList.add(this._classes.overlay);\n      }\n    } else if (this._isActiveOverlayContainer) {\n      this._containerElement.classList.remove(this._classes.overlay);\n      this._isActiveOverlayContainer = false;\n    }\n  }\n\n  /** Keyboard event listener that will be attached to the body. */\n  private _keydownListener = (event: KeyboardEvent) => {\n    const overlays = Array.from(this._overlays);\n\n    for (let i = overlays.length - 1; i > -1; i--) {\n      const observed = overlays[i]._keydownEvents.observers.length > 0;\n      if (observed) {\n        const keydownEvents = overlays[i]._keydownEvents;\n        this._ngZone.run(() => keydownEvents.next(event));\n        break;\n      }\n    }\n  }\n}\n","import { Injector } from '@angular/core';\n\nexport class LyOverlayConfig {\n  /** Styles for overlay container */\n  styles?: Object;\n  classes?: string[];\n  hasBackdrop?: boolean = true;\n  backdropClass?: string;\n  fnDestroy?: (...arg: any) => void;\n  /** Function that will be called on scroll or resize event */\n  onResizeScroll?: (() => void);\n  /**\n   * Whether the user can click on the backdrop to close the overlay.\n   */\n  disableClose?: boolean = false;\n  injector?: Injector;\n}\n","import { Component, HostListener, ElementRef } from '@angular/core';\nimport { LyTheme2 } from '../theme/theme2.service';\nimport { LyOverlayConfig } from './overlay-config';\nimport { LY_COMMON_STYLES } from '../styles/core-styles';\nimport { StyleRenderer } from '../minimal/renderer-style';\nimport {\n  st2c } from '../parse';\n\nconst STYLE_PRIORITY = -2;\nexport const STYLES_BACKDROP_ROOT = () => (_className: string) => `${st2c((LY_COMMON_STYLES.fill), `${_className}`)}${_className}{width:100vw;height:100vh;pointer-events:all;user-select:none;}`;\n\n@Component({\n  selector: 'ly-overlay-backdrop',\n  template: ``,\n  providers: [\n    StyleRenderer\n  ],\n  standalone: false\n})\nexport class LyOverlayBackdrop {\n  @HostListener('click') onclick() {\n    if (!this._config.disableClose) {\n      this._config.fnDestroy!();\n    }\n  }\n  constructor(\n    private _el: ElementRef<HTMLElement>,\n    _theme: LyTheme2,\n    readonly sRenderer: StyleRenderer,\n    private _config: LyOverlayConfig\n  ) {\n    _el.nativeElement.classList.add(sRenderer.add(STYLES_BACKDROP_ROOT, STYLE_PRIORITY));\n\n    // this applies custom class for backdrop,\n    // if one is not defined, do nothing.\n    const backdropClass = _config.backdropClass;\n    if (backdropClass) {\n      this._el.nativeElement.classList.add(backdropClass);\n    }\n  }\n}\n","import { Injector } from '@angular/core';\nimport { LyOverlayRef } from './overlay-ref';\nimport { LyOverlayConfig } from './overlay-config';\n\nexport function createOverlayInjector(parent: Injector, config: LyOverlayConfig, overlayFactory: any) {\n  return Injector.create({\n    providers: [\n      {\n        provide: LyOverlayConfig,\n        useValue:  config\n      },\n      {\n        provide: LyOverlayRef,\n        useValue:  overlayFactory\n      }\n    ],\n    parent\n  });\n}\n","import { EmbeddedViewRef, ComponentRef, ComponentFactoryResolver, ApplicationRef, TemplateRef, Injector, Type } from '@angular/core';\nimport { Subscription, merge, Observable, Subject } from 'rxjs';\nimport { LyOverlayConfig } from './overlay-config';\nimport { LyOverlayBackdrop } from './overlay-backdrop';\nimport { LyOverlayContainer } from './overlay-container';\nimport { createOverlayInjector } from './overlay-injector';\nimport { ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { OverlayReference } from './overlay-reference';\n\nexport class OverlayFactory<T = any> implements OverlayReference {\n  /** Stream of keydown events dispatched to this overlay. */\n  readonly _keydownEvents = new Subject<KeyboardEvent>();\n  private _viewRef: EmbeddedViewRef<any> | null;\n  private _el: HTMLDivElement | null;\n  private _backdropElement: Element | null;\n  private _compRef: ComponentRef<T> | null;\n  private _compRefOverlayBackdrop?: ComponentRef<any> | null;\n  private _windowSRSub: Subscription = Subscription.EMPTY;\n  private _isDetached = false;\n  private _isRemoved = false;\n\n  private _newInjector: Injector;\n\n  /** Function that will be called on scroll or resize event */\n  onResizeScroll: (() => void) | null;\n\n  get injector(): Injector | undefined {\n    return this._newInjector;\n  }\n\n  get containerElement() {\n    return this._el as HTMLDivElement;\n  }\n  get backdropElement() {\n    return this._backdropElement;\n  }\n  get componentRef() {\n    return this._compRef;\n  }\n\n  get isDestroyed() {\n    return this._isRemoved;\n  }\n\n  constructor(\n    private _componentFactoryResolver: ComponentFactoryResolver,\n    private _appRef: ApplicationRef,\n    _templateRefOrComponent: TemplateRef<any> | Type<T> | string,\n    private _overlayContainer: LyOverlayContainer,\n    _context: any,\n    private _injector: Injector,\n    _scrollDispatcher: ScrollDispatcher,\n    _viewportRuler: ViewportRuler,\n    _config?: LyOverlayConfig\n  ) {\n    const config = { ...new LyOverlayConfig(), ..._config };\n    this._el = document.createElement('div');\n    const __styles = {\n      position: 'absolute',\n      display: 'flex',\n      justifyContent: 'center',\n      alignItems: 'center',\n      pointerEvents: 'none'\n    };\n    if (config) {\n      Object.assign(__styles, config.styles);\n    }\n\n    const newInjector = this._newInjector = createOverlayInjector(config.injector || this._injector, {\n      fnDestroy: this.destroy.bind(this),\n        ...config,\n        styles: __styles,\n      }, this);\n\n    this._updateStyles(__styles);\n    if (config) {\n      if (config.onResizeScroll) {\n        this.onResizeScroll = config.onResizeScroll;\n      }\n\n      this._windowSRSub = merge(_scrollDispatcher.scrolled(0), _viewportRuler.change()).subscribe(() => {\n        if (this.onResizeScroll) {\n          this.onResizeScroll();\n        }\n      });\n\n      if (config.classes) {\n        const classes = config.classes;\n        classes.forEach((className) => (this._el as HTMLDivElement).classList.add(className));\n      }\n    }\n    this.updateBackdrop(!!config.hasBackdrop);\n    this._appendComponentToBody(_templateRefOrComponent, _context, newInjector);\n    this._updateBackdropPosition();\n\n  }\n\n  updateBackdrop(hasBackdrop: boolean) {\n    if (hasBackdrop) {\n      if (this._compRefOverlayBackdrop) {\n        return;\n      }\n      this._compRefOverlayBackdrop = this._generateComponent(LyOverlayBackdrop, this._newInjector);\n      this._appRef.attachView(this._compRefOverlayBackdrop.hostView);\n      this._backdropElement = this._compRefOverlayBackdrop.location.nativeElement;\n      this._overlayContainer._addElement(this._backdropElement!);\n    } else if (this._compRefOverlayBackdrop) {\n      this._appRef.detachView(this._compRefOverlayBackdrop.hostView);\n      this._backdropElement = this._compRefOverlayBackdrop.location.nativeElement;\n      this._overlayContainer._removeElement(this._backdropElement!);\n      this._compRefOverlayBackdrop = null;\n    }\n    this._updateBackdropPosition();\n  }\n\n  /** Gets an observable of keydown events targeted to this overlay. */\n  keydownEvents(): Observable<KeyboardEvent> {\n    return this._keydownEvents;\n  }\n\n  private _updateStyles(__styles: object) {\n    /** Apply styles */\n    /** set styles */\n    for (const key in __styles) {\n      if (__styles.hasOwnProperty(key)) {\n        const styleVal = __styles[key];\n        if (styleVal != null) {\n          this._el!.style[key] = typeof __styles[key] === 'number' ? `${styleVal}px` : styleVal;\n        }\n      }\n    }\n  }\n\n  private _appendComponentToBody(type: TemplateRef<any> | Type<any> | string, context, injector: Injector) {\n    if (type instanceof TemplateRef) {\n      // Create a component reference from the component\n      const viewRef = this._viewRef = type.createEmbeddedView(context || {});\n      this._appRef.attachView(viewRef);\n\n      // Get DOM element from component\n      viewRef.rootNodes.forEach(_ => this._el!.appendChild(_));\n\n      // Append DOM element to the body\n      this._overlayContainer._addElement(this._el!);\n    } else if (typeof type === 'string') {\n      this._el!.innerText = type;\n      this._overlayContainer._addElement(this._el!);\n    } else {\n      this._compRef = this._generateComponent(type, injector);\n      this._appRef.attachView(this._compRef.hostView);\n      this._el!.appendChild(this._compRef.location.nativeElement);\n      this._overlayContainer._addElement(this._el!);\n    }\n    this._overlayContainer.addOverlay(this);\n  }\n\n  private _updateBackdropPosition() {\n    const container = this._overlayContainer.containerElement;\n    if (\n      this._backdropElement?.parentElement === container\n      && this._el?.parentElement === container\n    ) {\n      this._overlayContainer.containerElement.insertBefore(this._backdropElement, this._el);\n    }\n  }\n\n  private _generateComponent(type: Type<any>, injector: Injector) {\n    const factory = this._componentFactoryResolver.resolveComponentFactory(type);\n    return factory.create(injector);\n  }\n\n  /** Detaches a view from dirty checking again of ApplicationRef. */\n  detach() {\n    if (this._isDetached) {\n      return;\n    }\n    this._isDetached = true;\n    if (this._viewRef) {\n      this._appRef.detachView(this._viewRef);\n    }\n    if (this._compRef) {\n      this._appRef.detachView(this._compRef.hostView);\n    }\n    this._overlayContainer.removeOverlay(this);\n    this._keydownEvents.complete();\n  }\n\n  /** Remove element of DOM */\n  remove() {\n    if (this._isRemoved) {\n      return;\n    }\n    this._isRemoved = true;\n    if (this._viewRef) {\n      this._viewRef.destroy();\n      this._overlayContainer._removeElement(this._el!);\n      this._el = null;\n      this._viewRef = null;\n    } else if (this._compRef) {\n      this._compRef.destroy();\n      this._overlayContainer._removeElement(this._el!);\n      this._el = null;\n      this._compRef = null;\n    } else if (this._el) {\n      // remove if template is string\n      this._overlayContainer._removeElement(this._el);\n      this._el = null;\n    }\n    this.updateBackdrop(false);\n    this._windowSRSub.unsubscribe();\n  }\n\n  /** Detach & remove */\n  destroy() {\n    this.detach();\n    this.remove();\n  }\n}\n","import { TemplateRef, Injectable, ApplicationRef, ComponentFactoryResolver, Injector, Type } from '@angular/core';\nimport { LyOverlayContainer } from './overlay-container';\nimport { OverlayFactory } from './overlay-factory';\nimport { LyOverlayConfig } from './overlay-config';\nimport { ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\n\n@Injectable()\nexport class LyOverlay {\n\n  constructor(\n    private _overlayContainer: LyOverlayContainer,\n    private _componentFactoryResolver: ComponentFactoryResolver,\n    private _appRef: ApplicationRef,\n    private _injector: Injector,\n    private _scrollDispatcher: ScrollDispatcher,\n    private _viewportRuler: ViewportRuler\n  ) { }\n\n  create<T>(templateOrComponent: Type<T> | TemplateRef<any> | string, context?: any, config?: LyOverlayConfig) {\n    return new OverlayFactory<T>(\n      this._componentFactoryResolver,\n      this._appRef,\n      templateOrComponent,\n      this._overlayContainer,\n      context,\n      this._injector,\n      this._scrollDispatcher,\n      this._viewportRuler,\n      config\n    );\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { LyOverlayBackdrop } from './overlay-backdrop';\nimport { LyOverlay } from './overlay';\n\n@NgModule({\n    declarations: [LyOverlayBackdrop],\n    providers: [\n        LyOverlay\n    ]\n})\nexport class LyOverlayModule { }\n","export const STYLES_BACKDROP_DARK = ({\n  backgroundColor: 'rgba(0,0,0,.32)'\n});\n","import { Injectable, ElementRef, OnDestroy } from '@angular/core';\n\nconst MUTATION_OBSERVER_INIT = {\n  characterData: true,\n  childList: true,\n  subtree: true\n};\n\n@Injectable({providedIn: 'root'})\nexport class MutationObserverFactory {\n  create(callback: MutationCallback): MutationObserver | null {\n    return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);\n  }\n}\n\n@Injectable({providedIn: 'root'})\nexport class ElementObserver implements OnDestroy {\n  private _observedElements = new Map<Element, MutationObserver | null>();\n\n  constructor(\n    private _mutationObserverFactory: MutationObserverFactory\n  ) { }\n\n  ngOnDestroy() {\n    this._observedElements.forEach((_, element) => this.destroy(element));\n  }\n\n  observe(elementOrRef: Element | ElementRef<Element>, fn: MutationCallback, options?: MutationObserverInit) {\n    const element = elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n    if (!this._observedElements.has(element)) {\n      const observer = this._mutationObserverFactory.create(fn);\n      if (observer) {\n        observer.observe(element, options || MUTATION_OBSERVER_INIT);\n      }\n      this._observedElements.set(element, observer);\n    }\n    return this._observedElements.get(element);\n  }\n\n  /**\n   * Destroy Observer\n   */\n  destroy(elementOrRef: Element | ElementRef<Element>) {\n    const element = elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n    if (this._observedElements.has(element)) {\n      const observer = this._observedElements.get(element);\n      if (observer) {\n        this._observedElements.get(element)!.disconnect();\n      }\n      this._observedElements.delete(element);\n    }\n  }\n}\n","import { Injectable, Inject, NgZone } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { fromEvent , Observable, empty } from 'rxjs';\nimport { map, share, auditTime } from 'rxjs/operators';\n\nimport { Platform } from '../platform/index';\n\n/**\n * @deprecated use ViewportRuler instead\n * import { ViewportRuler } from '@angular/cdk/scrolling';\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class WinResize {\n\n  resize$: Observable<number>;\n\n  constructor(\n    @Inject(DOCUMENT) private document: any,\n    ngZone: NgZone\n  ) {\n    if (Platform.isBrowser) {\n      ngZone.runOutsideAngular(() => {\n        this.resize$ = fromEvent(window, 'resize').pipe(\n          auditTime(20),\n          map(() => {\n            return window.innerHeight || this.document.documentElement.clientHeight;\n          }),\n          share()\n        );\n      });\n    } else {\n      this.resize$ = empty();\n    }\n  }\n}\n","import { Inject, Injectable, NgZone } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { auditTime, map, share } from 'rxjs/operators';\nimport { empty, fromEvent, Observable } from 'rxjs';\nimport { Platform } from '../platform/platform';\n\n/**\n * @deprecated use ScrollDispatcher instead\n * import { ScrollDispatcher } from '@angular/cdk/scrolling';\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class WinScroll {\n\n  scroll$: Observable<number>;\n\n  constructor(\n    @Inject(DOCUMENT) private _document: any,\n    ngZone: NgZone\n  ) {\n    if (Platform.isBrowser) {\n      ngZone.runOutsideAngular(() => {\n        this.scroll$ = fromEvent(window.document, 'scroll').pipe(\n          auditTime(20),\n          map(() => {\n            return window.scrollY || this._document.documentElement.scrollTop;\n          }),\n          share()\n        );\n      });\n    } else {\n      this.scroll$ = empty();\n    }\n  }\n}\n","import { XPosition, YPosition } from './position';\nimport { LyTheme2 } from '../theme/theme2.service';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\n\n\n\nexport class LyOverlayPosition {\n  private _triggerRect: ClientRect;\n  private _overlayRect: ClientRect;\n  private _xAnchor?: XPosition | number;\n  private _yAnchor?: YPosition | number;\n  private _xAxis: XPosition = XPosition.after;\n  private _yAxis: YPosition = YPosition.below;\n  private _flip: boolean = false;\n  private _viewportOffset = 16;\n  private _viewportHeight: number = 0;\n  private _viewportWidth: number = 0;\n  private _xOffset = 0;\n  private _yOffset = 0;\n  private _rawX: number;\n  private _rawY: number;\n  /** Transform element's bounding `ClientRect` before render. */\n  private _transform?: (triggerRect: ClientRect, overlayRect: ClientRect) => void;\n\n  private _anchorDir: 'left' | 'right';\n  private _axisDir: 'left' | 'right';\n\n  /** xAnchor position */\n  private _xa: number;\n  /** XAnchor position */\n  private _ya: number;\n\n  get x() {\n    return this._x;\n  }\n  private _x: number;\n\n  get y() {\n    return this._y;\n  }\n  private _y: number;\n\n  get xo() {\n    return this._xo;\n  }\n  private _xo: number;\n\n  get yo() {\n    return this._yo;\n  }\n  private _yo: number;\n\n  get width() {\n    return this._width;\n  }\n  private _width: number | null;\n\n  get height() {\n    return this._height;\n  }\n  private _height: number | null;\n\n  get triggerRect() {\n    return this._triggerRect;\n  }\n\n  /** Returns x, but not rounded */\n  get rawX() {\n    return this._rawX;\n  }\n\n  /** Returns y, but not rounded */\n  get rawY() {\n    return this._rawY;\n  }\n\n  constructor(\n    private _theme: LyTheme2,\n    private _viewportRuler: ViewportRuler,\n    private _trigger: Element,\n    private _overlay: Element,\n  ) { }\n\n  build() {\n    this._updateRects();\n    this._setDefaultAnchor();\n    this._updateDir();\n    this._callTransformIfExists();\n    this._calculateResponsive();\n    this._calculateOrigin();\n    this._round();\n    return this;\n  }\n\n  private _updateRects() {\n    this._triggerRect = getMutableClientRect(this._trigger);\n    this._overlayRect = getMutableClientRect(this._overlay);\n    const { width, height } = this._viewportRuler.getViewportSize();\n    this._viewportWidth = width;\n    this._viewportHeight = height;\n  }\n\n  private _setDefaultAnchor() {\n    if (!this._xAnchor) {\n      this._xAnchor = this._xAxis === XPosition.after ? XPosition.before : XPosition.after;\n    }\n    if (!this._yAnchor) {\n      this._yAnchor = this._yAxis;\n    }\n  }\n\n  private _callTransformIfExists() {\n    if (this._transform) {\n      this._transform(this._triggerRect, this._overlayRect);\n    }\n  }\n\n  private _updateDir() {\n    // If it is not number\n    if (typeof this._xAnchor !== 'number') {\n      this._anchorDir = this._theme.variables.getDirection(this._xAnchor as any) as 'left' | 'right';\n    }\n    this._axisDir = this._theme.variables.getDirection(this._xAxis as any) as 'left' | 'right';\n  }\n\n  private _calculateResponsive() {\n    this._calculate();\n    if (this._flip && typeof this._xAnchor === 'string' && typeof this._yAnchor === 'string') {\n      if (this._isOverflowX() && (this._overlayRect.width < (this._xa - this._viewportOffset))) {\n        this.setXAxis(flipPosition(this._xAxis))\n            .setXAnchor(flipPosition(this._xAnchor));\n        this._updateDir();\n        this._calculate();\n      }\n      if (this._isOverflowY() && (this._overlayRect.height < (this._ya - this._viewportOffset))) {\n        this.setYAxis(flipPosition(this._yAxis))\n            .setYAnchor(flipPosition(this._yAnchor));\n        this._calculate();\n      }\n    }\n\n    if (this._isOverflowX()) {\n      if (this._overlayRect.width > this._viewportWidth - (this._viewportOffset * 2)) {\n        this._x = this._viewportOffset;\n        this._width = this._viewportWidth - (this._viewportOffset * 2);\n      } else if (this._isOverflowLeft()) {\n        this._x = this._viewportOffset;\n      } else if (this._isOverflowRight()) {\n        this._x = this._viewportWidth - this._overlayRect.width - this._viewportOffset;\n      }\n    }\n    if (this._isOverflowY()) {\n      if (this._overlayRect.height > this._viewportHeight - (this._viewportOffset * 2)) {\n        this._y = this._viewportOffset;\n        this._height = this._viewportHeight - (this._viewportOffset * 2);\n      } else if (this._isOverflowTop()) {\n        this._y = this._viewportOffset;\n      } else if (this._isOverflowBottom()) {\n        this._y = this._viewportHeight - this._overlayRect.height - this._viewportOffset;\n      }\n    }\n  }\n\n  /**\n   * Return true if the menu overflows vertically\n   */\n  private _isOverflowX() {\n    return this._isOverflowLeft() // Left\n    || this._isOverflowRight(); // Right\n  }\n  private _isOverflowLeft() {\n    return this.x < this._viewportOffset;\n  }\n  private _isOverflowRight() {\n    return (this.x + this._overlayRect.width) > (this._viewportWidth - this._viewportOffset);\n  }\n\n  /** Return true the menu overflows horizontally */\n  private _isOverflowY() {\n    return this._isOverflowTop() // Top\n    || this._isOverflowBottom(); // Bottom\n  }\n  private _isOverflowTop() {\n    return this.y < this._viewportOffset;\n  }\n  private _isOverflowBottom() {\n    return (this.y + this._overlayRect.height) > (this._viewportHeight - this._viewportOffset);\n  }\n\n  private _calculate() {\n    this._calculateAnchorPosition();\n    this._calculateAxis();\n  }\n\n  private _calculateAnchorPosition() {\n    this._xa = this._triggerRect[this._anchorDir];\n    if (this._yAnchor === YPosition.above) {\n      this._ya = this._triggerRect.top;\n    } else {\n      this._ya = this._triggerRect.bottom;\n    }\n    // apply offset with support for rtl\n    if (this._anchorDir === 'left') {\n      this._xa += this._xOffset;\n    } else {\n      this._xa -= this._xOffset;\n    }\n    this._ya += this._yOffset;\n  }\n\n  private _calculateAxis() {\n    if (this._axisDir === 'left') {\n      this._x = this._xa - this._overlayRect.width;\n    } else {\n      this._x = this._xa;\n    }\n\n    if (this._yAxis === YPosition.above) {\n      this._y = this._ya - this._overlayRect.height;\n    } else {\n      this._y = this._ya;\n    }\n  }\n\n  /** Calculate origin for overlay */\n  private _calculateOrigin() {\n    const xAnchorCenter = this._xa - this._xOffset;\n    const yAnchorCenter = this._ya - this._yOffset;\n    const xOverlayCenter = this.x + (this._overlayRect.width / 2);\n    const yOverlayCenter = this.y + (this._overlayRect.height / 2);\n    const xo = (xAnchorCenter - xOverlayCenter) + this._overlayRect.width / 2;\n    const yo = (yAnchorCenter - yOverlayCenter) + this._overlayRect.height / 2;\n    this._xo = xo;\n    this._yo = yo;\n  }\n\n  private _round() {\n    this._rawX = this.x;\n    this._rawY = this.y;\n    this._x = Math.round(this.x);\n    this._y = Math.round(this.y);\n  }\n\n  // setTrigger(val: Element) {\n  //   this._trigger = val;\n  //   return this;\n  // }\n  // setOverlay(val: Element) {\n  //   this._overlay = val;\n  //   return this;\n  // }\n  setXAnchor(val: XPosition | number) {\n    this._xAnchor = val;\n    return this;\n  }\n  setYAnchor(val: YPosition | number) {\n    this._yAnchor = val;\n    return this;\n  }\n  setXAxis(val?: XPosition | null) {\n    this._xAxis = val ?? XPosition.after;\n    return this;\n  }\n  setYAxis(val?: YPosition | null) {\n    this._yAxis = val ?? YPosition.below;\n    return this;\n  }\n\n  setFlip(flip: boolean = true) {\n    this._flip = flip;\n    return this;\n  }\n\n  setXOffset(val: number) {\n    this._xOffset = val;\n    return this;\n  }\n  setYOffset(val: number) {\n    this._yOffset = val;\n    return this;\n  }\n\n  /**\n   * Offset from the edge of the viewport to the center.\n   * It is the minimum space that must be between the window and the overlay.\n   */\n  setViewportOffset(val: number) {\n    this._viewportOffset = val;\n    return this;\n  }\n  setTransform(transform: (triggerRect: ClientRect, overlayRect: ClientRect) => void) {\n    this._transform = transform;\n    return this;\n  }\n}\n\n\n/** Gets a mutable version of an element's bounding `ClientRect`. */\nfunction getMutableClientRect(element: Element): ClientRect {\n  const clientRect = element.getBoundingClientRect();\n\n  // We need to clone the `clientRect` here, because all the values on it are readonly\n  // and we need to be able to update them. Also we can't use a spread here, because\n  // the values on a `ClientRect` aren't own properties. See:\n  // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#Notes\n  return {\n    top: clientRect.top,\n    right: clientRect.right,\n    bottom: clientRect.bottom,\n    left: clientRect.left,\n    width: clientRect.width,\n    height: clientRect.height\n  } as ClientRect;\n}\n\nfunction flipPosition(position: XPosition): XPosition;\nfunction flipPosition(position: YPosition): YPosition;\nfunction flipPosition(position: XPosition | YPosition): XPosition | YPosition {\n  switch (position) {\n    case XPosition.after:\n      return XPosition.before;\n    case XPosition.before:\n      return XPosition.after;\n    case XPosition.left:\n      return XPosition.right;\n    case XPosition.right:\n      return XPosition.left;\n    case YPosition.above:\n      return YPosition.below;\n    case YPosition.below:\n      return YPosition.above;\n  }\n}\n","export enum AlignAlias {\n  rowReverse = 'row-reverse',\n  columnReverse = 'column-reverse',\n  wrapReverse = 'wrap-reverse',\n  start = 'flex-start',\n  end = 'flex-end',\n  between = 'space-between',\n  around = 'space-around',\n  evenly = 'space-evenly'\n}\n","export interface SelectionOpts<T = any> {\n  multiple?: true;\n  /**\n   * Initially selected values\n   * Note: if `multiple` === `true` then `selecteds` should be of type `T[]`\n   * else it should be of type `T`\n   */\n  selecteds?: T | T[];\n  getKey?: (o: T) => unknown;\n}\n\nfunction same(o: any): unknown {\n  return o;\n}\n\nexport class LySelectionModel<T = any> {\n  readonly _selectionMap = new Map<unknown, T>();\n  private _multiple?: true;\n  private _getKeyFn: (o: T) => unknown = same;\n\n  /** Cache for the array value of the selected items. */\n  private _selected: T[] | null;\n\n  /** Selected values. */\n  get selected(): T[] {\n    if (!this._selected) {\n      this._selected = Array.from(this._selectionMap.values());\n    }\n\n    return this._selected;\n  }\n\n  constructor(opts?: SelectionOpts<T>) {\n    if (!opts) {\n      return;\n    }\n    const { multiple, getKey } = opts;\n    if (getKey) {\n      this._getKeyFn = getKey;\n    }\n    if (multiple === true) {\n      this._multiple = true;\n      const { selecteds } = opts;\n      if (Array.isArray(selecteds) && selecteds.length) {\n        this.select(...selecteds);\n      }\n    } else {\n      const { selecteds } = opts as { selecteds: T };\n      if (selecteds) {\n        this._markSelected(selecteds);\n      }\n    }\n  }\n\n  /**\n   * Toggles a value between selected and deselected.\n   */\n  toggle(value: T): void {\n    this.isSelected(value) ? this.deselect(value) : this.select(value);\n  }\n\n  /**\n   * Selects one or several values.\n   */\n  select(...values: T[]): void {\n    values.forEach(value => this._markSelected(value));\n    this._clearSelectedValues();\n  }\n\n  /**\n   * Deselects a value or an array of values.\n   */\n  deselect(...values: T[]): void {\n    values.forEach(value => this._unmarkSelected(value));\n    this._clearSelectedValues();\n  }\n\n  /**\n   * Determines whether a value is selected.\n   */\n  isSelected(value: T): boolean {\n    const key = this._getKeyFn(value);\n    return this._selectionMap.has(key);\n  }\n\n  /**\n   * Determines whether the model does not have a value.\n   */\n  isEmpty(): boolean {\n    return this._selectionMap.size === 0;\n  }\n\n  /**\n   * Determines whether the model has a value.\n   */\n  hasValue(): boolean {\n    return this._selectionMap.size !== 0;\n  }\n\n  /**\n   * Gets whether multiple values can be selected.\n   */\n  isMultipleSelection() {\n    return this._multiple;\n  }\n\n  /**\n   * Clears all of the selected values.\n   */\n  clear(): void {\n    this._unmarkAll();\n    this._clearSelectedValues();\n  }\n\n  /** Selects a value. */\n  private _markSelected(value: T) {\n    if (!this.isSelected(value)) {\n      if (!this._multiple) {\n        this._unmarkAll();\n      }\n\n      const key = this._getKeyFn(value);\n      this._selectionMap.set(key, value);\n    }\n  }\n\n  /** Deselects a value. */\n  private _unmarkSelected(value: T) {\n    if (this.isSelected(value)) {\n      const key = this._getKeyFn(value);\n      this._selectionMap.delete(key);\n    }\n  }\n\n  /** Clears out the selected values. */\n  private _unmarkAll() {\n    if (!this.isEmpty()) {\n      this._selectionMap.clear();\n    }\n  }\n  /** Clear the selected values so they can be re-cached. */\n  private _clearSelectedValues() {\n    this._selected = null;\n  }\n\n}\n","export function getLyThemeVariableUndefinedError(variable: string) {\n  return Error(`Variable '${variable}' undefined in Theme.`);\n}\n\nexport function getLyThemeVariableOptionUndefinedError(comp: string, variable: string) {\n  return Error(`${comp}: variable ${variable} is undefined in Theme.`);\n}\nexport function getLyThemeStyleUndefinedError(comp: string, input: string, val: string) {\n  return Error(`${comp}: no styles defined in the theme have been found for \\`@Input() ${input}\\`,`\n    + ` the value given is \\`${val}\\`.`);\n}\n","import { Component, ChangeDetectionStrategy, Input, ElementRef, Renderer2 } from '@angular/core';\nimport { LyTheme2, ThemeRef } from '../theme/theme2.service';\nimport { ThemeVariables } from '../theme/theme-config';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { StyleRenderer } from '../minimal/renderer-style';\n\nconst STYLES = (theme: ThemeVariables, ref: ThemeRef) => {\n  const __ = ref.selectorsOf(STYLES);\n  return {\n    root: (_className: string) => `${_className}{width:1em;height:1em;display:inline-block;position:relative;font-size:24px;}`,\n    line: (_className: string) => `${_className}{top:calc(0.5em - 1px);position:absolute;width:${1 / 3}em;height:2px;background-color:currentColor;display:inline-block;transition:all ${theme.animations.durations.entering}ms ${theme.animations.curves.standard};}${_className}:first-of-type{left:0.25em;-webkit-transform:rotate(45deg);transform:rotate(45deg);}${_className}:last-of-type{right:0.25em;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);}`,\n    up: () => (_className: string) => `${_className} ${__.line}:first-of-type{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);}${_className} ${__.line}:last-of-type{-webkit-transform:rotate(45deg);transform:rotate(45deg);}`\n  };\n};\n\n@Component({\n  selector: 'ly-expansion-icon',\n  templateUrl: './expansion-icon.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    StyleRenderer\n  ],\n  standalone: false\n})\nexport class LyExpansionIcon {\n  readonly classes = this.sRenderer.renderSheet(STYLES, true);\n\n  private _color: string;\n  private _colorClass: string;\n\n  private _up = false;\n\n  @Input()\n  set color(val: string) {\n    this._colorClass = this._theme.addStyle('LyExpansionIcon.color', (theme: ThemeVariables) => ({\n      '{line}': {\n        backgroundColor: theme.colorOf(val)\n      }\n    }), this._el.nativeElement, this._colorClass, null, STYLES);\n  }\n  get color() {\n    return this._color;\n  }\n  @Input()\n  set up(val: BooleanInput) {\n    const newVal = coerceBooleanProperty(val);\n\n    if (newVal !== this.up) {\n      this._up = newVal;\n      if (newVal) {\n        this._renderer.addClass(this._el.nativeElement, this.classes.up);\n      } else {\n        this._renderer.removeClass(this._el.nativeElement, this.classes.up);\n      }\n    }\n  }\n  get up() {\n    return this._up;\n  }\n\n  constructor(\n    readonly sRenderer: StyleRenderer,\n    private _theme: LyTheme2,\n    private _renderer: Renderer2,\n    private _el: ElementRef,\n  ) { }\n\n  toggle() {\n    this.up = !this.up;\n  }\n}\n","<span [className]=\"classes.line\"></span>\n<span [className]=\"classes.line\"></span>","import { NgModule } from '@angular/core';\nimport { LyExpansionIcon } from './expansion-icon';\n\n@NgModule({\n  declarations: [LyExpansionIcon],\n  exports: [LyExpansionIcon]\n})\nexport class LyExpansionIconModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["STYLE_PRIORITY","i2","i1.LyTheme2","styles","i1.StyleRenderer","i2.StyleRenderer","i3.LyOverlayConfig","i1.LyOverlayContainer","i2.LyTheme2"],"mappings":";;;;;;;;;;;;AAAM,SAAU,cAAc,CAAC,QAAQ,EAAA;AACrC,IAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7C,IAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI;AACtD,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,OAAO,GAAG,OAAO;AACzC;;ACJA,MAAM,qBAAqB,GAAG,GAAG;AACjC,MAAM,wBAAwB,GAAG,IAAI;AACrC,MAAM,0BAA0B,GAAG,IAAI;AAC1B,MAAA,OAAO,GAAG;IACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,EAAE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"}